From 4c59d92e2e856d1645d154236846055228d2990f Mon Sep 17 00:00:00 2001 From: Pranav Sharma Date: Mon, 28 Oct 2024 16:15:59 +0000 Subject: [PATCH] Squashed 'third_party/googleapis/' changes from e3838fbf05..ab2ad69473 ab2ad69473 feat: Add feature flags proto for Direct Access 3bc81b79e5 feat: add multi-speaker markup, which allows generating dialogue between multiple speakers 48d30c4966 feat: Add PrivateServiceConnect option to WorkerPool 0b8fa5230f chore: Configure package options for ads manager c31e8119fa chore: Remove test paths post-processing for clients using REST transport only 5dc10a42f8 feat: Add Artifact Registry attachment API feat: Add Artifact Registry custom remote support feat: Add Artifact Registry generic repository support feat: Add Artifact Registry server side resource filtering and sorting feat: Add Artifact Registry rule APIs feat: Add Artifact Registry UpdateFile and DeleteFile APIs docs: Include max page size for all Artifact Registry APIs 537fd482f6 feat: add lite search API to allow public website search with API key feat: add LOW_GROUNDED_ANSWER in answer skip reasons feat: support query regex in control match rules docs: keep the API doc up-to-date with recent changes 17aef3793d feat: add a DeleteSite method feat: add MAC address and disk info to the Hardware resource docs: annotate rack_location field as required; this was always enforced d9673c1cab feat: Generate libraries for Parallelstore V1 API 56f5fa4555 feat: add multi-speaker markup, which allows generating dialogue between multiple speakers 9e7a2e5305 feat: add new PscInterfaceConfig field to custom_job.proto 67831b5909 feat: add more longrunnning operation support 7d0624db6f chore: use wildcard for longrunning selector 296f2ac1aa chore: Configure Ruby clients for google-ads-ad_manager b9cbcb97ae feat: Deprecate CustomLayer fields feat: Add toll passes in JP, MX, and US docs: Update various documentation 2c7ba7e84a chore: Update gapic-generator-python to v1.20.0 c93a715681 feat: add selective gapic generation option for publishing feat: add new error reason types for missing origin and overloaded credentials feat: add new TimeSeriesResourceHierarchyLevel for metric metadata b11e6b0741 feat(spanner): Add support for Cloud Spanner Default Backup Schedules 099f913ac8 build: configure authentication for longrunning operations caa02c4f43 docs: update proto reference documentation uri c8a726182c feat: A new field `headline_offer_installment` is added to message `.google.shopping.css.v1.Attributes` feat: A new field `headline_offer_subscription_cost` is added to message `.google.shopping.css.v1.Attributes` feat: A new message `HeadlineOfferSubscriptionCost` is added feat: A new message `HeadlineOfferInstallment` is added feat: A new enum `SubscriptionPeriod` is added 80bfb115ac fix: reduce size of Go compute package (#946) f79b93263f chore: regenerate API index 113ddfebbe feat: add new PSC instance configuration setting and output the PSC DNS name feat: add new API to execute SQL statements feat: add support for Free Trials feat: add support to schedule maintenance feat: additional field to set tags on a backup or cluster feat: add more observability options on the Instance level feat: add new API to perform a promotion or switchover on secondary instances feat: support for obtaining the public ip addresses of an instance and enabling either inbound or outbound public ip feat: add new API to list the databases in a project and location feat: add optional field to keep extra roles on a user if it already exists docs: various typo fixes, correcting the formatting, and clarifications on the request_id and validate_only fields in API requests and on the page_size when listing the database 60688dc330 feat: add brand voice lite, which lets you clone a voice with just 10 seconds of audio beea48a164 feat:Publish Eventarc logging proto for documentation 09f411dc4d feat: add `text` field for Grounding metadata support chunk output 76ca663d1d feat: Updated the exponential backoff settings for the Document AI ProcessDocument and BatchProcessDocuments methods feat: Add RESOURCE_EXHAUSTED to retryable status codes for ProcessDocument method feat: Added an url for issue reporting and api short name b6a9d807da feat: Add branch rule APIs feat: Add field `psc_allowed_projects` to message `.google.cloud.securesourcemanager.v1.Instance` docs: A comment for field `instance` in message `.google.cloud.securesourcemanager.v1.Repository` is changed 211a72fa5c feat: Updated the exponential backoff settings for the Document AI ProcessDocument and BatchProcessDocuments methods feat: Add RESOURCE_EXHAUSTED to retryable status codes for ProcessDocument method feat: Added an url for issue reporting and api short name 0dfb6a9391 chore!: remove notification, service account, and hmac RPCS BREAKING CHANGE: Removes Notification Config, Service Account, and HMAC RPCs. These API have been migrated to Storage Control and are available via the JSON API. 596e2a047b feat: add audio_timestamp to GenerationConfig 5ebb5c1e3d feat: Add brand voice lite e60db19f11 docs: fix product name in documentation 8a54a42f4a feat: Updated protos and build files for Google Ads API v18 7d6f57e4dd feat: Updated dependency on google-cloud-run-v2 7b6975c4bb feat: add `SamplingLevel` type to Data API v1alpha feat: add `sampling_level` to the `ReportDefinition` type 80a2abb0a8 feat: Updated dependency on google-cloud-commerce-consumer-procurement-v1 54cdfa514d feat: Updated dependency on google-cloud-retail-v2 d3566d5efe feat: Add field `instance` to message `.google.cloud.securesourcemanager.v1.ListRepositoriesRequest` docs: A comment for field `instance` in message `.google.cloud.securesourcemanager.v1.Repository` is changed 4c44b3061b feat: discovery of BigQuery snapshots 8d15dcb4f2 feat: added connector version log proto d10780874d feat: Introduce DefaultRuntime to PipelineJob 841ff7bb26 feat: adds support for restore token cab65d5657 feat: add messages and fields related to Redis Instances 2f49d448f9 feat: Add `ProvisioningModelMix` to support mixing of spot and standard instances for secondary workers feat: Add support for configuration of bootdisk IOPS and throughput when bootdisk is a hyperdisk f78cd2f794 docs: Marks the `google.cloud.essentialcontacts.v1.Contact.validation_state` field as `output_only` a26064a9cc chore: add python-specific generation settings to service config fa0c640351 chore: add python-specific generation settings to service config 7a0dc39843 chore: fetch GCE Discovery doc from discovery-artifact-manager (#938) 2196d4843a feat: Add FindNearest API to the stable branch b49a983820 feat: add experimental ArrowData type and arrow_data field within AppendRowsRequest de509e38d3 docs: A comment for field `partner_model_tuning_spec` in message `.google.cloud.aiplatform.v1beta1.TuningJob` is changed ad5cc8e91f build: update package name for @google-ads/marketing-platform-admin fbdc238931 chore: Update gapic-generator-python to v1.19.1 d544df712e fix!: fix the location type annotation 10b8dc3b54 feat: Add low latency journey option to proto feat: Add CustomPronunciationParams for upcoming feature work 72be138392 feat: Add GroundedGenerationService API feat: Add BillingEstimation in data store feat: Support Google Workspace search feat: Support advanced boost search feat: Add one_box_page_size on search feat: Add site_credential for site search config docs: Update documentation d6f9dbca53 feat: Add low latency journey option to proto feat: Add CustomPronunciationParams for upcoming feature work d992b0619e feat: Add IngestionFailureEvent to the external proto 1f77391203 feat: add an effective_cgroup_mode field in node config feat: add storage pools field to NodePool API feat: Add ControlPlaneEndpointsConfig message to consolidate control plane isolation options feat: Add DNSEndpointConfig for new DNS-based control plane access Moves control plane and node isolation fields to respective objects for better semantics, deprecating former locations. Introduces new DNS-based access to control plane, simplifying control plane access. feat: add API to enable/disable secret manager csi component on GKE clusters feat: Add CompliancePosture field for configuration of GKE Compliance Posture product feat: Add RBACBindingConfig to API feat: Add CompliancePosture field for configuration of GKE Compliance Posture product feat: Add KCP_SSHD and KCP_CONNECTION to the supported values for the --logging flag for the create and update cluster commands feat: surface upgrade_target_version in GetServerConfig for all supported release channels feat: added support for Parallelstore CSI Driver docs: Minor documentation updates e848c761f3 Synchronize new proto/yaml changes. 2b6b93bc89 chore: protos for R/W transaction support on multiplexed sessions 8692273ae7 feat: add conversational search feat: add tile navigation docs: keep the API doc up-to-date with recent changes d01eb46894 feat: add conversational search feat: add tile navigation docs: keep the API doc up-to-date with recent changes c24e8361e2 feat: add conversational search feat: add tile navigation docs: keep the API doc up-to-date with recent changes f5caeefcc0 docs: minor wording and branding adjustments c4ef0cc489 feat: A new field `lab_info` is added to message `.google.devtools.testing.v1.AndroidModel` feat: A new message `LabInfo` is added 4be7103ef0 feat: add partner_model_tuning_spec to TuningJob bb00fdde3f feat: updated log_entries proto with fields for replay and cancel execution 3effbf23b1 feat: Support for field update operators in the Datastore API and resolution strategies when there is a conflict at write time c532f355b2 fix!: Remove visibility of unneeded TestIamPermissions RPC fix!: Remove visibility of unneeded InitiateBackup RPC fix!: Remove visibility of unneeded AbandonBackup RPC fix!: Remove visibility of unneeded FinalizeBackup RPC fix!: Remove visibility of unneeded RemoveDataSource RPC fix!: Remove visibility of unneeded SetInternalStatus RPC d0eeab38c8 feat: Add import / export IssueModel feat: Add CMEK InitializeLroSpec feat: Add metadata import to IngestConversations feat: Add sampling to IngestConversations docs: Add a comment for valid `order_by` values in ListConversations docs: Add a comment for valid `update_mask` values in UpdateConversation 1f8352cf46 feat: add Order modification RPCs and License Management Service docs: A comment for enum value `LINE_ITEM_CHANGE_STATE_PENDING_APPROVAL` in enum `LineItemChangeState` is changed docs: A comment for enum value `LINE_ITEM_CHANGE_STATE_APPROVED` in enum `LineItemChangeState` is changed docs: A comment for enum value `LINE_ITEM_CHANGE_STATE_COMPLETED` in enum `LineItemChangeState` is changed docs: A comment for enum value `LINE_ITEM_CHANGE_STATE_REJECTED` in enum `LineItemChangeState` is changed docs: A comment for enum value `LINE_ITEM_CHANGE_STATE_ABANDONED` in enum `LineItemChangeState` is changed docs: A comment for enum value `LINE_ITEM_CHANGE_STATE_ACTIVATING` in enum `LineItemChangeState` is changed docs: A comment for field `request_id` in message `.google.cloud.commerce.consumer.procurement.v1.PlaceOrderRequest` is changed docs: A comment for field `filter` in message `.google.cloud.commerce.consumer.procurement.v1.ListOrdersRequest` is changed 83e1d54c08 feat: Adds cross_device_conversions_by_conversion_date metric feat: Adds cross_device_conversions_value_by_conversion_date metric feat: Adds general_invalid_click_rate metric feat: Adds general_invalid_clicks metric feat: Adds ad_group_effective_label resource feat: Adds campaign_effective_label resource b6a27d13a2 feat: Add support for primary_admin_email as customer_identity for ImportCustomer feat: Add support for importing team customer from a different reseller feat: Add support to look up team customer Cloud Identity information docs: Clarify the expected value of the domain field for team type customers ff4436beeb feat: Removed deprecated api versions 3708fdf26f docs: minor documentation formatting fix for Parallelstore 78d1fb208e feat: adding some more information about supplemental data sources 672cd6a381 feat: Added support for Interactive Reporting fix: Removed closed beta services that had data discrepancies with the SOAP API 475669fc7a feat: add a dynamic retrieval API 4fe2139be5 docs:fixed formatting of some documentation feat:add Builds API feat:add Service Mesh configuration to Services feat:add GPU configuration to Services feat:add INGRESS_TRAFFIC_NONE to Services feat:add ServiceScaling to Services 8d17595189 feat: add continuous sync option in feature_view.proto dd47718199 feat: Define ReplicaComputeCapacity and AsymmetricAutoscalingOption 917e347c53 docs: minor documentation formatting fix for Parallelstore e7fa33a66a feat: Updated google-shopping-merchant-accounts-v1beta dependency 3338937d03 feat: Updated google-shopping-merchant-data_sources-v1beta dependency c472cf7c64 feat: Add doc for permission settings & announcement space support feat: Add doc for import mode external users support docs: Messages API dev docs improvement docs: Memberships API dev docs improvement docs: Discoverable space docs improvement 16a1580c06 feat: add enable_secure_private_service_connect in service attachment 637e2a003c chore: Configure Ruby REST client for google-cloud-oracle_database 692cc30fde feat: adding v1 version of our api 8f00dabdad feat: add new `PscInterfaceConfig` field to `pipeline_job.proto` ce31830dde feat: add psc_automation_configs to DeployIndex v1 42f7085c63 docs: Clarify Batch only supports global custom instance template now 72a51519ae docs: update comment for PROFILE QueryMode feat: add new QueryMode enum values (WITH_STATS, WITH_PLAN_AND_STATS) 463b5a6b06 feat:Add scheduleOptionsV2 and Error fields for TransferConfig a6a6956a02 feat: add a dynamic retrieval API 1b2f804bf4 feat: add 'force' parameter for accounts.delete method docs: updated descriptions for the DeleteAccount and ListAccounts RPCs 2c9fb37781 feat: add INTERVAL API d6f184876e fix: annotate PipelineJob and PipelineTaskRerunConfig fields as optional bd4f3686c1 feat: added support for deploy policies docs: Minor documentation updates 005df4681b fix!: The type of an existing field `time_zone` is changed from `message` to `string` in message `.google.shopping.merchant.accounts.v1beta.ListAccountIssuesRequest` fix!: An existing field `account_aggregation` is removed from message `.google.shopping.merchant.accounts.v1beta.CreateAndConfigureAccountRequest` fix!: Changed field behavior for an existing field `service` in message `.google.shopping.merchant.accounts.v1beta.CreateAndConfigureAccountRequest` fix!: Changed field behavior for an existing field `region_code` in message `.google.shopping.merchant.accounts.v1beta.RetrieveLatestTermsOfServiceRequest` fix!: Changed field behavior for an existing field `kind` in message `.google.shopping.merchant.accounts.v1beta.RetrieveLatestTermsOfServiceRequest` feat: A new field `account_aggregation` is added to message `.google.shopping.merchant.accounts.v1beta.CreateAndConfigureAccountRequest` feat: A new message `AccountAggregation` is added feat: A new service `AutofeedSettingsService` is added feat: A new message `AutofeedSettings` is added feat: A new resource_definition `merchantapi.googleapis.com/AutofeedSettings` is added feat: A new message `GetAutofeedSettingsRequest` is added feat: A new message `UpdateAutofeedSettingsRequest` is added feat: A new field `korean_business_registration_number` is added to message `.google.shopping.merchant.accounts.v1beta.BusinessInfo` d36e288fc5 feat: Client library for the backupvault api is added feat: Add backupplan proto feat: Add backupplanassociation proto feat: Add backupvault_ba proto feat: Add backupvault_gce proto 6125b3deff docs: cleanup of Parallelstore API descriptions feat: add UPGRADING state to Parallelstore state 9c4c174205 feat: Add FileUploads service docs: A comment for enum value `PRODUCTS` in enum `Channel` is changed 0ede901c45 feat: created new boolean fields in conversation dataset for zone isolation and zone separation compliance status feat: add ALAW encoding value to Audio encoding enum 5c181aaf78 feat: add support for Spark Connect sessions in Dataproc Serverless for Spark docs: update docs for `filter` field in `ListSessionsRequest` 30bce2d5f2 feat: Revert to local binding for Ruby reserved keywords 69e9dff10d feat: add ingestion Cloud Storage fields and Platform Logging fields to Topic 67e2cff0ed chore: regenerate API index 534e49c0ca feat: Add support for generating route tokens c18ca2f804 fix: Updated mounted image log proto fields fix!: An existing field `job_type` is renamed to `source_image_type` in message `.google.cloud.backupdr.logging.v1.MountedImage` fix!: An existing field `resource_virtual_size` is renamed to `resource_virtual_size_in_gib` in message `.google.cloud.backupdr.logging.v1.MountedImage` fix!: An existing field `storage_consumed` is renamed to `storage_consumed_in_gib` in message `.google.cloud.backupdr.logging.v1.MountedImage` fix!: An existing field `mount_duration` is renamed to `mounted_image_age` in message `.google.cloud.backupdr.logging.v1.MountedImage` fix!: An existing field `resource_size` is renamed to `resource_size_in_gib` in message `.google.cloud.backupdr.logging.v1.MountedImage` fix!: An existing field `image_expiration_date` is renamed to `source_image_expiration_date` in message `.google.cloud.backupdr.logging.v1.MountedImage` a18d9b2c35 feat: Add LEGACY_BUCKET option to DefaultLogsBucketBehavior docs: Sanitize docs 447d6abd9b fix: remove a proto which has no exported service and hasn't been generated 407deca15c feat: Add support for Cloud Bigtable Node Scaling Factor for CBT Clusters a9253ab19d docs: updated api_short_name 979f71cfae feat: Add GoogleSearchRetrieval tool and candidate.grounding_metadata feat: Add Schema.min_items feat: Add GenerationConfig.{presence_penalty, frequency_penalty, logprobs, response_logprobs, logprobs} and Candidate.{avg_logprobs, logprobs_result} feat: Add PredictionService (for Imagen) feat: Add HarmCategory.HARM_CATEGORY_CIVIC_INTEGRITY feat: Add HarmBlockThreshold.OFF feat: Add TunedModels.reader_project_numbers docs: Small fixes docs: Tag HarmCategories by the model family they're used on. 1cb097eee9 feat: Add GenerationConfig.{presence_penalty, frequency_penalty, logprobs, response_logprobs, logprobs} and Candidate.{avg_logprobs, logprobs_result} feat: Add HarmCategory.HARM_CATEGORY_CIVIC_INTEGRITY docs: Tag HarmCategories by the model family they're used on. feat: Add HarmBlockThreshold.OFF docs: Small fixes 30009c9ff2 feat: add TunedModelRef and RebaseTunedModel Api for Vertex GenAiTuningService docs: limit comment `SupervisedTuningSpec` for 1p tuning 2a98f797cb feat: add TunedModelRef and RebaseTunedModel Api for Vertex GenAiTuningService docs: limit comment `SupervisedTuningSpec` for 1p tuning 970e691c23 chore: Configure Ruby clients for SQL Admin 697834490a chore: expand transport options for go gapic BUILD target f87ae4487b feat: created new boolean fields in conversation model for zone isolation and zone separation compliance status 07b069bfb0 feat: A new field `response_logprbs` is added to message `.google.cloud.aiplatform.v1.GenerationConfig` feat: A new field `logprbs` is added to message `.google.cloud.aiplatform.v1.GenerationConfig` feat: A new field `logprobs_result` is added to message `.google.cloud.aiplatform.v1.Candidate` feat: A new field `model_version` is added to message `.google.cloud.aiplatform.v1.GenerateContentResponse` 923b6f3167 feat: add `GetPropertyQuotasSnapshot` method to the Data API v1alpha feat: add `PropertyQuotasSnapshot` type to the Data API v1alpha docs: update the documentation for the `CreateReportTask` method e88eeaaecc feat: A new field `response_logprbs` is added to message `.google.cloud.aiplatform.v1beta1.GenerationConfig` feat: A new field `logprbs` is added to message `.google.cloud.aiplatform.v1beta1.GenerationConfig` feat: A new field `logprobs_result` is added to message `.google.cloud.aiplatform.v1beta1.Candidate` feat: A new field `model_version` is added to message `.google.cloud.aiplatform.v1beta1.GenerateContentResponse` bd0c988bca feat: A new field `any_of` is added to message `.google.cloud.aiplatform.v1.Schema` b86cd1c068 feat: A new field `any_of` is added to message `.google.cloud.aiplatform.v1beta1.Schema` 7f9941f4ba chore: remove Cloud common resource references from Marketing Platform API 607c2ae826 feat: action for publishing data profiles to SecOps (formelly known as Chronicle) feat: action for publishing data profiles to Security Command Center feat: discovery configs for AWS S3 buckets docs: small improvements and clarifications 02f118441f fix: Increase method timeout to 240s for BigQuery Metastore Partition Service API version v1alpha de3b4b32cd feat: return listing information for subscriptions created via Analytics Hub 81e964a2b0 docs: formatting fixes for StorageDescriptor docs: include more IndexUnusedReason reasons fix!: redact redundant read masks from GetRoutine/ListRoutine RPCs 42492c963a fix!: Pagination feature is introduced for method `ListKeyHandles` in service `Autokey` 2d1f337e5d feat: Add CIVIC_INTEGRITY category to SafetySettings for prediction service cf775e213a feat: Add CIVIC_INTEGRITY category to SafetySettings for prediction service 49d2887d42 feat: A new field `generation_config` is added to message `.google.cloud.aiplatform.v1.CountTokensRequest` feat: A new field `labels` is added to message `.google.cloud.aiplatform.v1.GenerateContentRequest` 42219196a8 feat: add `routing_parameters` to SearchNearbyRequest and SearchTextRequest feat: add `search_along_route_parameters` to SearchTextRequest feat: add `routing_summaries` to SearchNearbyResponse and SearchTextResponse docs: A comment for field `contextual_contents` in message `.google.maps.places.v1.SearchTextResponse` is changed to be more assertive docs: A comment for field `open_now` in message `.google.maps.places.v1.Place` is changed to clarify what it means with new-since-previous-comment current and secondary opening hours fields 551cdf470a feat: add psc_automation_configs to DeployIndex v1beta1 0a87fe7bcf feat: Support adding constraints to new method types REMOVE_GRANTS and GOVERN_TAGS afbb0a8462 fix: set canonical scopes for all LRO calls 9f216d5254 feat: add new `PipelineTaskRerunConfig` field to `pipeline_job.proto` feat: expose `RuntimeArtifact` proto in `ui_pipeline_spec.proto` 55c6f22900 fix!: remove gRPC support for client libraries acf0812d83 chore: regenerate API index 4d5f3a731f feat: Add v1 client libraries 4082d5e51e feat: add managed folder to testIamPermissions method chore: deprecate service account, hmac, and notificationConfig APIs chore: restoring default storage retry policy docs: update dual-region bucket link docs: clarify possible objectAccessControl roles fde103ca32 feat: add an order type field to distinguish a fulfillment request from a sales inquiry feat: add support to mark comments as read or unread feat: rename zone state signal READY_FOR_SITE_TURNUP to FACTORY_TURNUP_CHECKS_PASSED docs: clarify how access_times are used fd52b5754b feat: A new field `generation_config` is added to message `.google.cloud.aiplatform.v1beta1.CountTokensRequest` feat: A new field `labels` is added to message `.google.cloud.aiplatform.v1beta1.GenerateContentRequest` 38d33ad1da feat: A new field `property_ordering` is added to message `.google.cloud.aiplatform.v1.Schema` a57c150115 feat: add vm_ip to CryptoMiningEvent 65306b92f0 feat: A new field `property_ordering` is added to message `.google.cloud.aiplatform.v1beta1.Schema` 31df26d0ff feat: An optional field `security_posture_config` in message `.google.cloud.gkemulticloud.v1.AttachedCluster` is added feat: An optional field `kubelet_config` in message `.google.cloud.gkemulticloud.v1.AwsNodePool` is added e99de3d3cc feat(api): A new rpc 'SwitchActiveReplicaZone' is added to service 'google.cloud.netapp.v1.NetApp' feat: A new message 'google.cloud.netapp.v1.SwitchActiveReplicaZoneRequest' is added feat: A new field 'allow_auto_tiering' in message 'google.cloud.netapp.v1.StoragePool' is added feat: A new field 'cold_tier_size_gib' in message 'google.cloud.netapp.v1.Volume' is added 964f6c9ab5 feat: add resource reference for KMS keys and fix comments ffbe78335c fix!: Field behavior for field `display_name` in message `.google.cloud.cloudcontrolspartner.v1beta.Customer` is changed feat: Field behavior for field `customer_onboarding_state` in message `.google.cloud.cloudcontrolspartner.v1beta.Customer` is changed feat: Field behavior for field `is_onboarded` in message `.google.cloud.cloudcontrolspartner.v1beta.Customer` is changed feat: A new value `ACCESS_TRANSPARENCY_LOGS_SUPPORT_CASE_VIEWER` is added to enum `.google.cloud.cloudcontrolspartner.v1beta.PartnerPermissions.Permission` docs: A comment for field `display_name` in message `.google.cloud.cloudcontrolspartner.v1beta.Customer` is changed 9ebde5402a fix!: Field behavior for field `display_name` in message `.google.cloud.cloudcontrolspartner.v1.Customer` is changed feat: Field behavior for field `customer_onboarding_state` in message `.google.cloud.cloudcontrolspartner.v1.Customer` is changed feat: Field behavior for field `is_onboarded` in message `.google.cloud.cloudcontrolspartner.v1.Customer` is changed feat: A new value `ACCESS_TRANSPARENCY_LOGS_SUPPORT_CASE_VIEWER` is added to enum `.google.cloud.cloudcontrolspartner.v1.PartnerPermissions.Permission` docs: A comment for field `display_name` in message `.google.cloud.cloudcontrolspartner.v1.Customer` is changed 0eb6e43796 feat: Update Discovery Engine Ruby GAPIC dependencies to 1.1.0 for v1 and 0.15.0 for v1beta fc22a982df docs: publish documentation about BigqueryExportStatus log entry proto a834320384 feat: minor fields and documentation update 9382d7406b feat: add file_id to SharePointSource feat: add share_point_sources to RagFile dcc4f933bf feat: add `satisfies_pzi` to `Environment` c5bc296a6d feat: If you're a domain administrator or a delegated administrator, you can now include the `useAdminAccess` parameter when you call the Chat API with your administrator privileges with the following methods to manage Chat spaces and memberships in your Workspace organization: - SearchSpaces - DeleteSpace - UpdateSpace - GetSpace - ListMemberships - DeleteMembership - CreateMembership - UpdateMembership - GetMembership eafe1c87c5 fix!: Update transport type for the google-cloud-api_hub Ruby wrapper client to REST only 0f44538daf feat: A new method `CheckUpgrade` is added to service `Environments` feat: A new field `satisfies_pzi` is added to message `.google.cloud.orchestration.airflow.service.v1.Environment` feat: A new message `CheckUpgradeRequest` is added feat: A new field `airflow_metadata_retention_config` is added to message `.google.cloud.orchestration.airflow.service.v1.DataRetentionConfig` feat: A new message `AirflowMetadataRetentionPolicyConfig` is added docs: A comment for field `maintenance_window` in message `.google.cloud.orchestration.airflow.service.v1.EnvironmentConfig` is changed docs: A comment for message `WorkloadsConfig` is changed docs: A comment for field `storage_mode` in message `.google.cloud.orchestration.airflow.service.v1.TaskLogsRetentionConfig` is changed c27097ea63 docs: Comments are clarified for certain fields in messages `QueryAssetsResponse` and `ResourceSearchResult` 41cd9dba9e fix(deps): Update the Java code generator (gapic-generator-java) to 2.45.0 8ebfd76bd9 chore: update gapic-generator-go to 0.47.0 cbf696d38a feat: Add support for Cloud Bigtable Row Affinity in App Profiles afb6b3599d feat: add Pinecone and Vector Search integration for Vertex RAG 2b46b7546b feat: A new value `CANCELLATION_IN_PROGRESS` is added to enum `State` feat: A new value `CANCELLED` is added to enum `State` 43a4ddc8af chore(googleads)!: remove protos for v15, which has sunset 394f626e83 docs: update documentation for 31 day subscription message retention 02f62c8e24 feat: add support for new Dataproc features 1. Allow flink and trino job support for workflow templates API 2. Add unreachable output field for LIST workflow template API 3. Add unreachable output field for LIST batch templates API 4. Add kms key input for create cluster API 5. Add FLINK metric source for Dataproc Metric Source 32bc036532 feat: add support for new Dataproc features 1. Allow flink job support for jobs 2. Add unreachable output field for LIST jobs API 76ffdb2287 chore(php): Migrate some GA APIs to NEW_SURFACE_ONLY ca82297144 feat: add share_point_sources to SharePointSources feat: add sharepoint_folder_path to SharePointSource feat: add sharepoint_folder_id to SharePointSource feat: add drive_name to SharePointSource feat: add drive_id to SharePointSource feat: add client_id to SharePointSource feat: add client_secret to SharePointSource feat: add tenant_id to SharePointSource feat: add sharepoint_site_name to SharePointSource feat: add share_point_sources to ImportRagFilesConfig feat: add partial_failure_gcs_sink tp ImportRagFilesConfig feat: add partial_failure_bigquery_sink to ImportRagFilesConfig aa4d66ab00 chore: regenerate API index 2f1274f3d0 chore: Deprecate uses of CustomLayerInfo, which will stop being populated soon docs: Clean up documentation per AIP conventions be61427b6c docs: Adding Destination Package to publish client library cb39bdd75d feat: add OFF to HarmBlockThreshold 9aad398cf4 feat: add OFF to HarmBlockThreshold 070b0fd6ac feat: add Database.SourceInfo and Database.source_info (information about database provenance, specifically for restored databases) feat: add Database.CmekConfig and Database.cmek_config (information about CMEK enablement) feat: allow specifying an encryption_config when restoring a database feat: add Database.delete_time (the time a database was deleted, if it ever was) feat: add Database.previous_id (if a database was deleted, what ID it was using beforehand) docs: fix assorted capitalization issues with the word "ID" docs: clarify restore details eb4c1ec024 docs: fix CreateAssessmentRequest comment docs: update API title in docs overview 003e626651 feat: Add API fields for the descriptions of entity type and property in the document schema d3029316f8 docs: update comment link for ListTasks filter f21743b4fe feat: Add CHAT_SPACE link type support for GA launch 34133c71bc chore(python): Update namespace for google/marketingplatform/admin to prepare for release 2cd2b6589e fix!: update the client libraries package prefix to include the `ads` namespace 68f6c7f689 feat: add more configurability to feature_group.proto feat: add ragSource to feature_view.proto feat: add sync watermark to feature_view_sync.proto docs: fix typo in feature_online_store_admin_service.proto cb6a8eeacd feat: add more configurability to feature_group.proto feat: add ragSource to feature_view.proto feat: add sync watermark to feature_view_sync.proto docs: fix typo in feature_online_store_admin_service.proto cb6264a971 feat: add FLEX_START to Scheduling.strategy fa23e3050b feat: add FLEX_START to Scheduling.strategy 8c6de209d3 fix!: remove gRPC support for client libraries b744eff901 feat: add BDRBackupRestoreJobLog used for BackupPlan based backup/restore jobs c13cea289c docs: add a note to the CreateTransferConfigRequest and UpdateTransferConfigRequest to disable restricting service account usage 95a1490f69 feat: returns usage metadata for context caching 5314818275 feat: promote search tuning service to v1 feat: promot user event purge to v1 feat: return structured document info in answers feat: return index status in document feat: support batch documents purge with GCS input feat: support batch get documents metadata by uri patterns feat: return joined status in user event docs: keep the API doc up-to-date with recent changes 6cb0a970d1 feat: support natural language understanding in search feat: allow set relevance threshold on search feat: support one box search feat: return structured document info in answers feat: return index status in document feat: support batch documents purge with GCS input feat: support batch get documents metadata by uri patterns feat: return joined status in user event docs: keep the API doc up-to-date with recent changes ce9d18865e feat: return index status in document feat: support creating workspace search data stores feat: support batch get documents metadata by uri patterns feat: return query segment in NL query understanding feat: return joined status in user event docs: keep the API doc up-to-date with recent changes 9c6ceea874 docs: A comment for message `StreamMetastorePartitionsRequest` is changed docs: A comment for message `StreamMetastorePartitionsResponse` is changed docs: A comment for field `location_uri` in message `.google.cloud.bigquery.storage.v1alpha.StorageDescriptor` is changed 4bf146f058 feat(v1): promote block_project_ssh_keys support to batch v1 API 6a474b31c5 feat:add optional parameters (tarball-access) in DiagnoseClusterRequest 085ad08132 feat: add Vector DB config for Vertex RAG (Weaviate + FeatureStore) feat: add UpdateRagCorpus API for Vertex RAG feat: add ApiKeyConfig field to ApiAuth docs: A comment for field `vertex_prediction_endpoint` in message `.google.cloud.aiplatform.v1beta1.RagEmbeddingModelConfig` is changed docs: A comment for field `distance` in message `.google.cloud.aiplatform.v1beta1.RagContexts` is changed 7310c46ada docs: swap comments on `BONDED` and `NON_BONDED` enums in `BondingType` 07308e1ca2 feat: add v1 NotebookExecutionJob to Schedule 296afd1429 docs: Clarify maximum retention of backups (max 14 weeks) docs: Remove note about backups running at a specific time docs: Standardize on the capitalization of "ID" b99f12ae81 docs: minor doc fixes b83ceb6200 chore: revert accidental changes for gapic_generator_java target in WORKSPACE b1a9e6c1b0 feat: add `EXTENDED` enum value for `ReleaseChannel.Channel` a8f277295c chore: Uncomment Java build rules for API Hub V1 8b2adf3f68 feat: add max_wait_duration to Scheduling aee11eedca feat: add max_wait_duration to Scheduling 0e9edd7617 feat: add ReleaseChannel EXTENDED value 1f98162424 docs: fully qualify relative URLs in proto comments 14d1fe2996 feat: add AssessmentEnvironment for CreateAssessement to explicitly describe the environment of the assessment 3165e16f3b build: Only generate gRPC clients for google/cloud/bigquery/storage/v1alpha f17f11412a feat: request client libraries for new languages feat: add BatchOperationStatus to import metadata docs: A comment for method `ClipAsset` in service `Warehouse` is changed docs: A comment for enum value `IN_PROGRESS` in enum `State` is changed docs: A comment for enum value `SUCCEEDED` in enum `State` is changed docs: A comment for enum value `FAILED` in enum `State` is changed docs: A comment for field `relevance` in message `.google.cloud.visionai.v1.SearchResultItem` is changed a1185ce214 feat: support for enabling outbound public IP on an instance feat: support for getting outbound public IP addresses of an instance feat: support for setting maintenance update policy on a cluster feat: support for getting maintenance schedule of a cluster ec3826751c feat: Support local binding for variables with keyword name collision dfb718a4ae feat: Add field `experimental_features` to message `PythonSettings` a67e27687c feat: Adds CustomColumn's renderType feat: Adds owner_customer_id to campaign_label, ad_group_label, ad_group_ad_label and ad_group_criterion_label 0c11bf2700 chore: remove protobuf-javalite from maven_install target 818d9fd16d docs: update Long Audio capabilities to include SSML 6f3c628e7f feat: add documentation for partition value limit 87fc660f97 docs: Update product URL for google-cloud-managed_kafka 9f96d27b2e chore: Configure Ruby client for google-cloud-gke_connect-gateway-v1 63947bfd92 chore(python): Use `google.cloud.bigquery_storage` instead of `google.cloud.bigquery.storage` for v1alpha 82ab100ce1 chore: Update gkeconnect/gateway v1 BUILD.bazel to prepare for python release 54d659d0ae fix: Update proto dependencies for apphub.googleapis.com after last client library publication 71434fd174 feat!: removed the nonfunctional GatewayService and replaced it with the GatewayControl service 869c2e1fff feat: Support for a custom error message for BatchSizeTooLargeError 8550c7655b fix: Update proto dependencies for apphub.googleapis.com after last client library publication 5e76753c18 feat!: removed the nonfunctional GatewayService and replaced it with the GatewayControl service 9f3335a0e8 feat: A new field `max_chargeable_bytes` is added to message `.google.cloud.sql.v1.BackupRun` feat: A new enum `CaMode` is added feat: A new field `server_ca_mode` is added to message `.google.cloud.sql.v1.ConnectSettings` feat: A new field `satisfies_pzi` is added to message `.google.cloud.sql.v1.DatabaseInstance` feat: A new field `switch_transaction_logs_to_cloud_storage_enabled` is added to message `.google.cloud.sql.v1.DatabaseInstance` feat: A new value `UNSUPPORTED_COLUMNS` is added to enum `SqlExternalSyncSettingErrorType` feat: A new enum `CaMode` is added feat: A new field `server_ca_mode` is added to message `.google.cloud.sql.v1.IpConfiguration` feat: A new value `MAJOR_VERSION_UPGRADE` is added to enum `SqlOperationType` docs: A comment for method `AddServerCa` in service `SqlInstancesService` is changed docs: A comment for method `RotateServerCa` in service `SqlInstancesService` is changed 59883000df docs: update `Certification` field descriptions cc4e33a263 feat: add AddIpOverride RPC feat: add `express_settings` to `Key` docs: clarify `Event.express` field docs: fix billing, quota, and usecase links 57d2c452fc docs: update preview docs for short mode queries docs: mark dataset GcpTags as deprecated feat: add edition to job statistics docs: add Range example to StandardSqlDataType docs feat: expose DataPolicyOptions 07ede94493 docs: clarify tasks success criteria for background runnable d7f3478b9c docs: clarify tasks success criteria for background runnable b678386866 docs: deprecate `authorization_code` c2f74b9a26 chore: update gapic-generator-go to 0.46.2 d9eae9f029 docs: update Long Audio capabilities to include SSML fe8ba054ad fix(deps): Update the Java code generator (gapic-generator-java) to 2.44.0 21c206f737 docs: Many small fixes feat: Add new PromptFeedback and FinishReason entries feat: Add model max_temperature 5157b5f455 docs: Many small fixes feat: Add new PromptFeedback and FinishReason entries for https://github.com/google-gemini/generative-ai-python/issues/476 07ee67599c feat: inspect template modified cadence discovery config for Cloud SQL feat: file store data profiles can now be filtered by type and storage location docs: small improvements cd2318e194 chore: update gapic-generator-go to 0.46.1 611b36b0c5 chore: configure client push to package managers 8425ff95d4 chore: configure client push to package managers 21b26c5151 feat: Disable xrefs for README files in wrapper gems fe00da8d22 refactor!: removed existing client libraries 195c051374 feat: A new method `StreamingSynthesize` is added to service `TextToSpeech` 569fc73ce3 feat: A new method `StreamingSynthesize` is added to service `TextToSpeech` 83e5198365 feat: add HDFS configuration feat: add GCS Managed Folders feat: add S3 Managed Private Network feat: add S3 Cloudfront Domain e813a85a14 docs: changed API title to official name 2b7a9cbe54 docs: Batch CentOS images and HPC CentOS images are EOS 9067360326 docs: Batch CentOS images and HPC CentOS images are EOS docs: Clarify required fields for Runnable.Container docs: Clarify required oneof fields for Runnable.Script docs: Clarify TaskSpec requires one or more runnables 96facece98 feat(spanner): Add resource reference annotation to backup schedules docs(spanner): Add an example to filter backups based on schedule name 182e5df1cc feat: optional field for specifying a service account to use for the build. This helps navigate the change of historical default on new projects. For more details, see https://cloud.google.com/build/docs/cloud-build-service-account-updates feat: optional fields for setting up automatic base image updates. feat: optional field for specifying a revision on GetFunction. feat: optional field for binary authorization policy. feat: optional field for deploying a source from a GitHub repository. feat: additional field on the output that specified whether the deployment supports Physical Zone Separation. feat: Generate upload URL now supports for specifying the GCF generation that the generated upload url will be used for. feat: ListRuntimes response now includes deprecation and decommissioning dates. docs: Refined description in several fields. eb87f475f5 feat(spanner): add edition field to the instance proto 456a812fbc feat: Add BigQuery Metastore Partition Service API version v1alpha 5b517c2637 docs: Format comment in AutoML Translation 23bf1dd6a3 chore(php): Revert two optional to required fields for dialogflow a5c87fe0b6 feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1.BatchPredictionJob` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1.BatchPredictionJob` feat: A new message `RoutingConfig` is added feat: A new field `seed` is added to message `.google.cloud.aiplatform.v1.GenerationConfig` feat: A new field `routing_config` is added to message `.google.cloud.aiplatform.v1.GenerationConfig` feat: A new field `avg_logprobs` is added to message `.google.cloud.aiplatform.v1.Candidate` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1.CustomJob` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1.CustomJob` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1.DataItem` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1.DataItem` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1.Dataset` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1.Dataset` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1.DatasetVersion` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1.DatasetVersion` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1.DeploymentResourcePool` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1.DeploymentResourcePool` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1.EntityType` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1.EntityType` feat: A new message `TimeSeries` is added feat: A new field `time_series` is added to message `.google.cloud.aiplatform.v1.FeatureGroup` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1.FeatureOnlineStore` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1.FeatureOnlineStore` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1.FeatureView` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1.FeatureView` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1.FeatureViewSync` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1.FeatureViewSync` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1.Featurestore` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1.Featurestore` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1.HyperparameterTuningJob` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1.HyperparameterTuningJob` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1.Index` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1.Index` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1.IndexEndpoint` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1.IndexEndpoint` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1.ModelDeploymentMonitoringJob` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1.ModelDeploymentMonitoringJob` feat: A new field `hugging_face_token` is added to message `.google.cloud.aiplatform.v1.GetPublisherModelRequest` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1.NasJob` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1.NasJob` feat: A new field `encryption_spec` is added to message `.google.cloud.aiplatform.v1.NotebookExecutionJob` feat: A new field `sample_request` is added to message `.google.cloud.aiplatform.v1.PublisherModel` feat: A new resource_definition `compute.googleapis.com/NetworkAttachment` is added feat: A new field `service_attachment` is added to message `.google.cloud.aiplatform.v1.PrivateServiceConnectConfig` feat: A new field `total_truncated_example_count` is added to message `.google.cloud.aiplatform.v1.SupervisedTuningDataStats` feat: A new field `truncated_example_indices` is added to message `.google.cloud.aiplatform.v1.SupervisedTuningDataStats` docs: A comment for enum value `STOP` in enum `FinishReason` is changed docs: A comment for enum value `MAX_TOKENS` in enum `FinishReason` is changed docs: A comment for enum value `SAFETY` in enum `FinishReason` is changed docs: A comment for enum value `RECITATION` in enum `FinishReason` is changed docs: A comment for enum value `OTHER` in enum `FinishReason` is changed docs: A comment for enum value `BLOCKLIST` in enum `FinishReason` is changed docs: A comment for enum value `PROHIBITED_CONTENT` in enum `FinishReason` is changed docs: A comment for enum value `SPII` in enum `FinishReason` is changed docs: A comment for enum `Strategy` is changed docs: A comment for enum value `STRATEGY_UNSPECIFIED` in enum `Strategy` is changed docs: A comment for field `model` in message `.google.cloud.aiplatform.v1.GenerateContentRequest` is changed docs: A comment for enum value `AUTO` in enum `Mode` is changed f7d214cb08 chore: Update gapic-generator-python to v1.18.5 3c0b84de0e feat: A new message `RoutingConfig` is added feat: A new field `seed` is added to message `.google.cloud.aiplatform.v1beta1.GenerationConfig` feat: A new field `routing_config` is added to message `.google.cloud.aiplatform.v1beta1.GenerationConfig` feat: A new field `avg_logprobs` is added to message `.google.cloud.aiplatform.v1beta1.Candidate` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1beta1.CustomJob` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1beta1.CustomJob` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1beta1.EntityType` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1beta1.EntityType` feat: A new message `TimeSeries` is added feat: A new field `time_series` is added to message `.google.cloud.aiplatform.v1beta1.FeatureGroup` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1beta1.FeatureOnlineStore` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1beta1.FeatureOnlineStore` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1beta1.FeatureView` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1beta1.FeatureView` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1beta1.FeatureViewSync` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1beta1.FeatureViewSync` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1beta1.Featurestore` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1beta1.Featurestore` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1beta1.HyperparameterTuningJob` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1beta1.HyperparameterTuningJob` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1beta1.Index` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1beta1.Index` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1beta1.IndexEndpoint` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1beta1.IndexEndpoint` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1beta1.ModelDeploymentMonitoringJob` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1beta1.ModelDeploymentMonitoringJob` feat: A new field `hugging_face_token` is added to message `.google.cloud.aiplatform.v1beta1.GetPublisherModelRequest` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1beta1.NasJob` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1beta1.NasJob` feat: A new field `encryption_spec` is added to message `.google.cloud.aiplatform.v1beta1.NotebookExecutionJob` feat: A new field `sample_request` is added to message `.google.cloud.aiplatform.v1beta1.PublisherModel` feat: A new field `service_attachment` is added to message `.google.cloud.aiplatform.v1beta1.PrivateServiceConnectConfig` feat: A new field `total_truncated_example_count` is added to message `.google.cloud.aiplatform.v1beta1.SupervisedTuningDataStats` feat: A new field `truncated_example_indices` is added to message `.google.cloud.aiplatform.v1beta1.SupervisedTuningDataStats` fix!: An existing message `GroundingAttribution` is removed fix!: An existing field `grounding_attributions` is removed from message `.google.cloud.aiplatform.v1beta1.GroundingMetadata` fix!: An existing field `disable_attribution` is removed from message `.google.cloud.aiplatform.v1beta1.GoogleSearchRetrieval` docs: A comment for enum value `STOP` in enum `FinishReason` is changed docs: A comment for enum value `MAX_TOKENS` in enum `FinishReason` is changed docs: A comment for enum value `SAFETY` in enum `FinishReason` is changed docs: A comment for enum value `RECITATION` in enum `FinishReason` is changed docs: A comment for enum value `OTHER` in enum `FinishReason` is changed docs: A comment for enum value `BLOCKLIST` in enum `FinishReason` is changed docs: A comment for enum value `PROHIBITED_CONTENT` in enum `FinishReason` is changed docs: A comment for enum value `SPII` in enum `FinishReason` is changed docs: A comment for enum `Strategy` is changed docs: A comment for enum value `STRATEGY_UNSPECIFIED` in enum `Strategy` is changed docs: A comment for enum value `AUTO` in enum `Mode` is changed docs: A comment for field `distance` in message `.google.cloud.aiplatform.v1beta1.RagContexts` is changed a353d25bae feat: release advanced parsing options for rag files 7601a10765 chore: Configure Ruby wrapper client for google.cloud.apihub.v1 6a4a5720c0 chore: Address reserved keyword collisions and formatting updates 6d6665608f chore: regenerate API index e728fd395b docs: very minor documentation updates dfc2489938 feat: Updated protos and build files for Google Ads API v17 8652e28bd0 feat: optional field for specifying a service account to use for the build. This helps navigate the change of historical default on new projects. For more details, see https://cloud.google.com/build/docs/cloud-build-service-account-updates feat: optional fields for setting up automatic base image updates. feat: optional field for specifying a revision on GetFunction. feat: optional field for binary authorization policy. feat: optional field for deploying a source from a GitHub repository. feat: additional field on the output that specified whether the deployment supports Physical Zone Separation. feat: Generate upload URL now supports for specifying the GCF generation that the generated upload url will be used for. feat: ListRuntimes response now includes deprecation and decommissioning dates. docs: Refined description in several fields. 7767c573e4 feat: Added `build_service_account` field to CloudFunction docs: A comment for field `runtime_version` in message `.google.cloud.functions.v1.CloudFunction` is changed docs: A comment for field `docker_repository` in message `.google.cloud.functions.v1.CloudFunction` is changed docs: A comment for field `automatic_update_policy` in message `.google.cloud.functions.v1.CloudFunction` is changed docs: A comment for field `on_deploy_update_policy` in message `.google.cloud.functions.v1.CloudFunction` is changed docs: A comment for field `url` in message `.google.cloud.functions.v1.SourceRepository` is changed docs: A comment for field `url` in message `.google.cloud.functions.v1.HttpsTrigger` is changed 28685f723d feat: Expose the `FindNearest.distance_result_field` parameter feat: Expose the `FindNearest.distance_threshold` parameter 37b76d3790 feat: Updated protos and build files for Google Ads API v17 d89462962f feat: expose the new vpcflowlogs api proto 1f17bcaf61 feat: Allow v1 api calls for some dataset_service, llm_utility_service, and prediction_service apis without project and location dba0d79077 feat: Allow v1beta1 api calls for some dataset_service, llm_utility_service, and prediction_service apis without project and location 9d6389cd9a feat: add evaluation service proto to v1 0a250ef231 chore(php): Migrate some GA APIs to NEW_SURFACE_ONLY 634d59e1f5 feat: add pointwise and pairwise metrics to evaluation service 2467774a1f chore: regenerate API index (#921) d4acb64370 feat: add block_project_ssh_keys field to the v1alpha job API to block project level ssh keys access to Batch created VMs 7314e20f5e feat: add the TagResources API f907e15b64 feat: add reservation affinity proto feat: add spot field to Vertex Prediction's Dedicated Resources and Custom Training's Scheduling Strategy docs: update the description for the deprecated GPU (K80) 333c1ece4e feat: add reservation affinity proto feat: add spot field to Vertex Prediction's Dedicated Resources and Custom Training's Scheduling Strategy docs: update the description for the deprecated GPU (K80) 00ed8aad1e docs: Refine usage scope for fields `task_execution` and `task_state` in StatusEvent db79b1a514 feat: Adds AdaptiveMt HTML/Glossary support feat: Adds protos for Custom Translation API (AutoML) feat: Adds protos for Transliteration in V3 Advanced translate text feat: Adds protos for Romanization APIs docs: Fixes typos in docs ae593946b7 feat: enable Dynamic Mute feat: New values `EXPLOITATION_FOR_PRIVILEGE_ESCALATION` corresponding to T1068 and `INDICATOR_REMOVAL_FILE_DELETION` corresponding to T1070.004 are added to enum `Technique` docs: T1068 is added for value `EXPLOITATION_FOR_PRIVILEGE_ESCALATION` and T1070.004 is added for value `INDICATOR_REMOVAL_FILE_DELETION` for enum `Technique bc05924644 feat: Add Proactive Generative Knowledge Assist endpoints and types feat: Add Generator related services and types feat: Add GenerateStatelessSuggestion related endpoints and types docs: A comment for field `name` in message `.google.cloud.dialogflow.v2beta1.Conversation` is changed docs: A comment for field `conversation_stage` in message `.google.cloud.dialogflow.v2beta1.Conversation` is changed docs: A comment for field `filter` in message `.google.cloud.dialogflow.v2beta1.ListConversationsRequest` is changed docs: A comment for field `latest_message` in message `.google.cloud.dialogflow.v2beta1.SuggestConversationSummaryRequest` is changed docs: A comment for field `context_size` in message `.google.cloud.dialogflow.v2beta1.SuggestConversationSummaryRequest` is changed docs: A comment for field `assist_query_params` in message `.google.cloud.dialogflow.v2beta1.SuggestConversationSummaryRequest` is changed docs: A comment for field `latest_message` in message `.google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryRequest` is changed docs: A comment for field `max_context_size` in message `.google.cloud.dialogflow.v2beta1.GenerateStatelessSummaryRequest` is changed docs: A comment for field `parent` in message `.google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest` is changed docs: A comment for field `session_id` in message `.google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest` is changed docs: A comment for field `conversation` in message `.google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest` is changed docs: A comment for field `latest_message` in message `.google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest` is changed docs: A comment for message `HumanAgentHandoffConfig` is changed docs: A comment for field `live_person_config` in message `.google.cloud.dialogflow.v2beta1.HumanAgentHandoffConfig` is changed docs: A comment for field `audio` in message `.google.cloud.dialogflow.v2beta1.AudioInput` is changed fix: An existing method_signature `parent` is fixed for method `BatchCreateMessages` in service `Conversations` fix: Changed field behavior for an existing field `parent` in message `.google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest` fix: Changed field behavior for an existing field `session_id` in message `.google.cloud.dialogflow.v2beta1.SearchKnowledgeRequest` dcbd1d4b2c feat: Add Proactive Generative Knowledge Assist endpoints and types feat: Add Generator related services and types feat: Add GenerateStatelessSuggestion related endpoints and types docs: A comment for field `name` in message `.google.cloud.dialogflow.v2.Conversation` is changed docs: A comment for field `conversation_stage` in message `.google.cloud.dialogflow.v2.Conversation` is changed docs: A comment for field `filter` in message `.google.cloud.dialogflow.v2.ListConversationsRequest` is changed docs: A comment for field `latest_message` in message `.google.cloud.dialogflow.v2.SuggestConversationSummaryRequest` is changed docs: A comment for field `context_size` in message `.google.cloud.dialogflow.v2.SuggestConversationSummaryRequest` is changed docs: A comment for field `assist_query_params` in message `.google.cloud.dialogflow.v2.SuggestConversationSummaryRequest` is changed docs: A comment for field `latest_message` in message `.google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest` is changed docs: A comment for field `max_context_size` in message `.google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest` is changed docs: A comment for field `parent` in message `.google.cloud.dialogflow.v2.SearchKnowledgeRequest` is changed docs: A comment for field `session_id` in message `.google.cloud.dialogflow.v2.SearchKnowledgeRequest` is changed docs: A comment for field `conversation` in message `.google.cloud.dialogflow.v2.SearchKnowledgeRequest` is changed docs: A comment for field `latest_message` in message `.google.cloud.dialogflow.v2.SearchKnowledgeRequest` is changed docs: A comment for message `HumanAgentHandoffConfig` is changed docs: A comment for field `live_person_config` in message `.google.cloud.dialogflow.v2.HumanAgentHandoffConfig` is changed docs: A comment for field `audio` in message `.google.cloud.dialogflow.v2.AudioInput` is changed fix: Changed field behavior for an existing field `parent` in message `.google.cloud.dialogflow.v2.SearchKnowledgeRequest` fix: Changed field behavior for an existing field `session_id` in message `.google.cloud.dialogflow.v2.SearchKnowledgeRequest` a1cc0b437a feat: add the `comparisons` field to the `Metadata` resource feat: add the `comparisons` field to the `RunReportRequest`, `RunPivotReportRequest` resources feat: add the `Comparison` type feat: add the `ComparisonMetadata` type docs: a comment for field `custom_definition` in message `DimensionMetadata` is changed 6725aebbe1 feat: Add API Hub v1 c93b54fa30 feat: add fields and the BackupType proto for Hot Backups docs: clarify comments and fix typos c37b7f00ae feat: enable Dynamic Mute feat: New values `EXPLOITATION_FOR_PRIVILEGE_ESCALATION` corresponding to T1068 and `INDICATOR_REMOVAL_FILE_DELETION` corresponding to T1070.004 are added to enum `Technique` docs: T1068 is added for value `EXPLOITATION_FOR_PRIVILEGE_ESCALATION` and T1070.004 is added for value `INDICATOR_REMOVAL_FILE_DELETION` for enum `Technique f7bcaabac1 feat: A new field `imageless_mode` is added to message `.google.cloud.documentai.v1.ProcessRequest` feat: A new field `gen_ai_model_info` is added to message `.google.cloud.documentai.v1.ProcessorVersion` b479bc2f1e feat: add `GetKeyEvent`, `CreateKeyEvent`, `ListKeyEvents`, `UpdateKeyEvent`, and `DeleteKeyEvent` methods feat: mark `GetConversionEvent`, `CreateConversionEvent`, `ListConversionEvents`, `UpdateConversionEvent`, and `DeleteConversionEvent` methods as deprecated docs: add deprecation comment to `GetConversionEvent`, `CreateConversionEvent`, `ListConversionEvents`, `UpdateConversionEvent`, and `DeleteConversionEvent` methods docs: improve comment formatting of the `parent` field in `CreateFirebaseLinkRequest` and `ListFirebaseLinksRequest` docs: improve comment formatting of the `name` field in `DeleteFirebaseLinkRequest`, `GetGlobalSiteTagRequest`, and `GetDataSharingSettingsRequest` docs: improve comment formatting of `account` and `property` fields in `SearchChangeHistoryEventsRequest` feat: add the `create_time` field to the `Audience` resource feat: add the `primary` field to the `ChannelGroup` resource feat: add `CreateBigQueryLink`, `UpdateBigQueryLink`, and `DeleteBigQueryLink` methods feat: add the `dataset_location` field to the `BigQueryLink` resource feat: add the `BIGQUERY_LINK` option to the `ChangeHistoryResourceType` enum feat: add the `gmp_organization` field to the `Account` resource fix!: Rename custom method `CreateSubpropertyRequest` to `ProvisionSubpropertyRequest` feat: add `GetEventEditRule`, `CreateEventEditRule`, `ListEventEditRules`, `UpdateEventEditRule`, `DeleteEventEditRule`, and `ReorderEventEditRules` methods to the Admin API v1 alpha 98e5657241 feat: support natural language understanding in search feat: support search as you type feature feat: allow set relevance threshold on search feat: support import and purge autocomplete data feat: populate more metadata in answer services feat: allow providing language info in data stores feat: add requirement service feat: support import data from AlloyDB feat: support add metadata for website uris docs: keep the API doc up-to-date with recent changes 24c5ee0917 feat: add file_stripe_level and directory_stripe_level fields to Instance 7b2b605b03 docs: mark DataplexTransferStatus.MIGRATED as deprecated 51c59a2099 feat: A new field `imageless_mode` is added to message `.google.cloud.documentai.v1.ProcessRequest` docs: Keep the API doc up-to-date with recent changes d8fce50eea docs: Add public section adcf14f548 docs: A comment for field `active_directory_id` in message `.google.cloud.netapp.v1.CreateActiveDirectoryRequest` is changed docs: A comment for field `backup_id` in message `.google.cloud.netapp.v1.CreateBackupRequest` is changed docs: A comment for field `backup_policy_id` in message `.google.cloud.netapp.v1.CreateBackupPolicyRequest` is changed docs: A comment for field `backup_vault_id` in message `.google.cloud.netapp.v1.CreateBackupVaultRequest` is changed docs: A comment for field `kms_config_id` in message `.google.cloud.netapp.v1.CreateKmsConfigRequest` is changed docs: A comment for field `transfer_bytes` in message `.google.cloud.netapp.v1.TransferStats` is changed docs: A comment for field `total_transfer_duration` in message `.google.cloud.netapp.v1.TransferStats` is changed docs: A comment for enum value `TRANSFERRING` in enum `MirrorState` is changed docs: A comment for field `replication_id` in message `.google.cloud.netapp.v1.CreateReplicationRequest` is changed docs: A comment for field `snapshot_id` in message `.google.cloud.netapp.v1.CreateSnapshotRequest` is changed docs: A comment for field `storage_pool_id` in message `.google.cloud.netapp.v1.CreateStoragePoolRequest` is changed docs: A comment for field `volume_id` in message `.google.cloud.netapp.v1.CreateVolumeRequest` is changed feat: A new field `administrators` is added to message `.google.cloud.netapp.v1.ActiveDirectory` feat: A new field `replica_zone` is added to message `.google.cloud.netapp.v1.StoragePool` feat: A new field `zone` is added to message `.google.cloud.netapp.v1.StoragePool` feat: A new field `large_capacity` is added to message `.google.cloud.netapp.v1.Volume` feat: A new field `multiple_endpoints` is added to message `.google.cloud.netapp.v1.Volume` feat: A new field `replica_zone` is added to message `.google.cloud.netapp.v1.Volume` feat: A new field `zone` is added to message `.google.cloud.netapp.v1.Volume` 29bff4c417 chore(dlp): fix ordering of Connection resource patterns aa6fe3bc95 docs: replace HTML tags with CommonMark notation e77b669b90 feat(spanner): Add support for Cloud Spanner Incremental Backups 87a20e3098 feat: v0_6 Launch feat: Enable hourly and geo segmentation feat: Adds start_time to customer_manager_link feat: Adds support for multimedia ads type feat: Adds support for average_quality_score feat: Adds SOCIAL_FACEBOOK_TRACKING_ONLY in advertising_sub_channel docs: A comment for message `SearchAds360Error` is changed docs: A comment for field `target_spend_micros` in message `.google.ads.searchads360.v0.common.TargetSpend` is changed docs: A comment for field `engine_id` in message `.google.ads.searchads360.v0.resources.AdGroupAd` is changed docs: A comment for field `merchant_id` in message `.google.ads.searchads360.v0.resources.Conversion` is changed docs: A comment for field `visit_id` in message `.google.ads.searchads360.v0.resources.Conversion` is changed docs: A comment for field `target_spend_micros` in message `.google.ads.searchads360.v0.common.TargetSpend` is changed docs: A comment for field `engine_id` in message `.google.ads.searchads360.v0.resources.AdGroupAd` is changed docs: A comment for field `merchant_id` in message `.google.ads.searchads360.v0.resources.Conversion` is changed docs: A comment for field `visit_id` in message `.google.ads.searchads360.v0.resources.Conversion` is changed e1d378cf60 feat: org-level connection bindings feat: gRPC config for get, list, and delete FileStoreDataProfiles feat: add refresh frequency for data profiling docs: small improvements ad5c47728c feat: A new field `version` is added to message `.grafeas.v1.ComplianceOccurrence` feat: A new message `VulnerabilityAttestation` is added feat: A new field `vulnerability_attestation` is added to message `.grafeas.v1.DiscoveryOccurrence` 05e8031295 docs: document that delivery_vehicle.type can be set on CreateDeliveryVehicle 3802bd0543 fix!: remove an API that was mistakenly made public 33fe71e5a2 chore: Update gapic-generator-python to v1.18.4 0fa9ce880b feat: A new field `score` is added to message `.google.cloud.aiplatform.v1.Candidate` feat: A new message `Segment` is added feat: A new message `GroundingChunk` is added feat: A new message `GroundingSupport` is added feat: A new field `grounding_chunks` is added to message `.google.cloud.aiplatform.v1.GroundingMetadata` feat: A new field `grounding_supports` is added to message `.google.cloud.aiplatform.v1.GroundingMetadata` feat: A new enum `Strategy` is added feat: A new field `strategy` is added to message `.google.cloud.aiplatform.v1.Scheduling` feat: A new field `dedicated_endpoint_enabled` is added to message `.google.cloud.aiplatform.v1.Endpoint` feat: A new field `dedicated_endpoint_dns` is added to message `.google.cloud.aiplatform.v1.Endpoint` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1.Endpoint` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1.Endpoint` feat: A new message `NumericFilter` is added feat: A new field `numeric_filters` is added to message `.google.cloud.aiplatform.v1.NearestNeighborQuery` feat: A new field `is_hugging_face_model` is added to message `.google.cloud.aiplatform.v1.GetPublisherModelRequest` feat: A new message `NotebookExecutionJob` is added feat: A new resource_definition `aiplatform.googleapis.com/NotebookExecutionJob` is added feat: A new method `CreateNotebookExecutionJob` is added to service `NotebookService` feat: A new method `GetNotebookExecutionJob` is added to service `NotebookService` feat: A new method `ListNotebookExecutionJobs` is added to service `NotebookService` feat: A new method `DeleteNotebookExecutionJob` is added to service `NotebookService` feat: A new enum `NotebookExecutionJobView` is added feat: A new message `CreateNotebookExecutionJobRequest` is added feat: A new message `CreateNotebookExecutionJobOperationMetadata` is added feat: A new message `GetNotebookExecutionJobRequest` is added feat: A new message `ListNotebookExecutionJobsRequest` is added feat: A new message `ListNotebookExecutionJobsResponse` is added feat: A new message `DeleteNotebookExecutionJobRequest` is added feat: A new field `ray_logs_spec` is added to message `.google.cloud.aiplatform.v1.RaySpec` feat: A new message `RayLogsSpec` is added feat: A new field `system_instruction` is added to message `.google.cloud.aiplatform.v1.CountTokensRequest` feat: A new field `tools` is added to message `.google.cloud.aiplatform.v1.CountTokensRequest` feat: A new field `billable_sum` is added to message `.google.cloud.aiplatform.v1.SupervisedTuningDatasetDistribution` feat: A new field `total_billable_token_count` is added to message `.google.cloud.aiplatform.v1.SupervisedTuningDataStats` feat: A new value `ADAPTER_SIZE_THIRTY_TWO` is added to enum `AdapterSize` docs: A comment for field `name` in message `.google.cloud.aiplatform.v1.Dataset` is changed docs: A comment for field `name` in message `.google.cloud.aiplatform.v1.DatasetVersion` is changed docs: A comment for field `update_mask` in message `.google.cloud.aiplatform.v1.UpdateFeatureOnlineStoreRequest` is changed docs: A comment for field `update_mask` in message `.google.cloud.aiplatform.v1.UpdateFeatureViewRequest` is changed docs: A comment for field `update_mask` in message `.google.cloud.aiplatform.v1.UpdateFeatureGroupRequest` is changed docs: A comment for field `update_mask` in message `.google.cloud.aiplatform.v1.UpdateFeatureRequest` is changed docs: A comment for field `language_code` in message `.google.cloud.aiplatform.v1.GetPublisherModelRequest` is changed docs: A comment for field `model` in message `.google.cloud.aiplatform.v1.CountTokensRequest` is changed docs: A comment for field `instances` in message `.google.cloud.aiplatform.v1.CountTokensRequest` is changed docs: A comment for field `contents` in message `.google.cloud.aiplatform.v1.CountTokensRequest` is changed docs: A comment for message `TrialContext` is changed docs: A comment for field `disable_attribution` in message `.google.cloud.aiplatform.v1.Retrieval` is changed cf16946acf chore: add grpc-java dependencies to WORKSPACE and update gapic-generator-java to 2.43.0 ba245fa19c feat: add model_version in ModerateTextRequest and expose severity score in ClassificationCategory docs: minor update on documentation 677c1ce591 feat: added client library for AreaInsights service 3f4e29a88f chore: Update gapic-generator-python to v1.18.3 24be099a87 feat: AST support for CEL comprehensions which iterate over (key, value) tuples within lists and maps with field `iter_var2` docs: Updates to Comprehension documentation for `Expr`, `iter_var`, `iter_range`, `loop_condition`, and `loop_step` to reflect usage of `iter_var2` 68d815481d feat: add support for different Pod selector labels when doing canaries fix!: make changes to an API that is disabled on the server, but whose client libraries were prematurely published a91d1a37cb feat: Update SearchService docs: keep the API doc up-to-date with recent changes fix!: SearchService 6cabb8b75b feat: A new message `ApiAuth` is added feat: A new field `display_name` is added to message `.google.cloud.aiplatform.v1beta1.CachedContent` feat: A new field `score` is added to message `.google.cloud.aiplatform.v1beta1.Candidate` feat: A new enum `Strategy` is added feat: A new field `strategy` is added to message `.google.cloud.aiplatform.v1beta1.Scheduling` feat: A new field `dedicated_endpoint_enabled` is added to message `.google.cloud.aiplatform.v1beta1.Endpoint` feat: A new field `dedicated_endpoint_dns` is added to message `.google.cloud.aiplatform.v1beta1.Endpoint` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1beta1.Endpoint` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1beta1.Endpoint` feat: A new message `NumericFilter` is added feat: A new field `numeric_filters` is added to message `.google.cloud.aiplatform.v1beta1.NearestNeighborQuery` feat: A new message `SlackSource` is added feat: A new message `JiraSource` is added feat: A new field `is_hugging_face_model` is added to message `.google.cloud.aiplatform.v1beta1.GetPublisherModelRequest` feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1beta1.ModelMonitor` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1beta1.ModelMonitor` feat: A new field `psc_interface_config` is added to message `.google.cloud.aiplatform.v1beta1.PersistentResource` feat: A new field `ray_logs_spec` is added to message `.google.cloud.aiplatform.v1beta1.RaySpec` feat: A new message `RayLogsSpec` is added feat: A new field `satisfies_pzs` is added to message `.google.cloud.aiplatform.v1beta1.PipelineJob` feat: A new field `satisfies_pzi` is added to message `.google.cloud.aiplatform.v1beta1.PipelineJob` feat: A new field `system_instruction` is added to message `.google.cloud.aiplatform.v1beta1.CountTokensRequest` feat: A new field `tools` is added to message `.google.cloud.aiplatform.v1beta1.CountTokensRequest` feat: A new resource_definition `compute.googleapis.com/NetworkAttachment` is added feat: A new message `PscInterfaceConfig` is added feat: A new field `billable_sum` is added to message `.google.cloud.aiplatform.v1beta1.SupervisedTuningDatasetDistribution` feat: A new field `total_billable_token_count` is added to message `.google.cloud.aiplatform.v1beta1.SupervisedTuningDataStats` feat: A new value `ADAPTER_SIZE_THIRTY_TWO` is added to enum `AdapterSize` feat: A new field `slack_source` is added to message `.google.cloud.aiplatform.v1beta1.RagFile` feat: A new field `jira_source` is added to message `.google.cloud.aiplatform.v1beta1.RagFile` feat: A new field `slack_source` is added to message `.google.cloud.aiplatform.v1beta1.ImportRagFilesConfig` feat: A new field `jira_source` is added to message `.google.cloud.aiplatform.v1beta1.ImportRagFilesConfig` docs: A comment for field `name` in message `.google.cloud.aiplatform.v1beta1.Dataset` is changed docs: A comment for field `name` in message `.google.cloud.aiplatform.v1beta1.DatasetVersion` is changed docs: A comment for field `update_mask` in message `.google.cloud.aiplatform.v1beta1.UpdateFeatureOnlineStoreRequest` is changed docs: A comment for field `update_mask` in message `.google.cloud.aiplatform.v1beta1.UpdateFeatureViewRequest` is changed docs: A comment for field `update_mask` in message `.google.cloud.aiplatform.v1beta1.UpdateFeatureGroupRequest` is changed docs: A comment for field `update_mask` in message `.google.cloud.aiplatform.v1beta1.UpdateFeatureRequest` is changed docs: A comment for field `language_code` in message `.google.cloud.aiplatform.v1beta1.GetPublisherModelRequest` is changed docs: A comment for field `language_code` in message `.google.cloud.aiplatform.v1beta1.ListPublisherModelsRequest` is changed docs: A comment for field `model` in message `.google.cloud.aiplatform.v1beta1.CountTokensRequest` is changed docs: A comment for field `instances` in message `.google.cloud.aiplatform.v1beta1.CountTokensRequest` is changed docs: A comment for field `contents` in message `.google.cloud.aiplatform.v1beta1.CountTokensRequest` is changed docs: A comment for message `TrialContext` is changed docs: A comment for field `disable_attribution` in message `.google.cloud.aiplatform.v1beta1.Retrieval` is changed ec69fcc802 chore: update C# generator to v1.4.32 a10ca75ae2 chore: sets google.api.field_behavior to OUTPUT_ONLY on many fields docs: minor updates to reference documentation 43aa65e389 chore: Update gapic-generator-python to v1.18.3 587cbcc004 docs: update values allowed in kms_key 6f0843548b chore(php): update NetworkServices to migration mode NEW_SURFACE_ONLY 6091680383 chore(php): add build for accesscontextmanager type fa4e75bdfa feat: Update CompletionService feat: Update SearchService docs: keep the API doc up-to-date with recent changes cead73336b chore(php): promote AccessContextManager to v1 chore(php): promote ApigeeRegistry to v1 chore(php): promote Batch to v1 chore(php): promote EventarcPublishing to v1 chore(php): promote DatastoreAdmin to v1 chore(php): promote KmsInventory to v1 chore(php): promote Iam to v1 7858db4579 chore: expose new experimental FindNearest distance params to the preview branch docs: minor documentation clarifications on FindNearest DistanceMeasure options 2638123a37 feat: add DataplexTransferStatus enum and field to TagTemplate docs: update field comments for updated IDENTIFIER field behavior 51d7fa890f feat: add Postgres Import/Export config messages e811b5e082 docs: minor updates to reference documentation d44c300196 feat: exposed DataStoreConnectionSignals feat: added support for lock flow feat: added support for multi language settings in flow feat: added support for service directory in tools feat: added support for oauth and service agent auth for webhook. feat: expose store tts option in security settings feat: expose PersonalizationSettings & SpeechSettings in v3 API. docs: clarified wording around enable_stackdriver_logging & enable_interaction_logging docs: clarified wording around start point of test config. docs: clarified wording around audio redaction 556515b4a1 feat: added support for consent based redaction feat: exposed model name in DataStoreConnectionSignals feat: added support for lock flow feat: added support for transit to playbook from page feat: added support for service directory in tools docs: clarified wording around enable_stackdriver_logging & enable_interaction_logging docs: clarified wording around start point of test config. 9effffdf94 feat: add MergeToCell to Mutation APIs 157e3bf69c feat: Add min, max, hll aggregators and more types docs: Corrected various type documentation 5c2a427ae6 chore: regenerate API index 58cd55ff5c feat: add locations metadata proto file docs: update the list of automatically detected encodings docs: update the maximum number of files that may be included in a BatchRecognizeRequest 7613f7dbea docs: formatting, grammar, better comments for MaintenanceWindow and SqlUpdateTrack a1df09bf1b chore: regenerate API index 41e7874edb chore: configure Ruby gapic generation for Vision AI v1 9293133bd7 feat: added support for new custom target type and deploy policy platform logs docs: small Cloud Deploy API documentation updates 1964be3cc2 fix!: update sample query, sample query set patterns feat: A new resource pattern value `projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}/sampleQueries/{sample_query}` added to the resource definition `discoveryengine.googleapis.com/SampleQuery` feat: A new resource pattern value `projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}` added to the resource definition `discoveryengine.googleapis.com/SampleQuerySet` docs: keep the API doc up-to-date with recent changes e0edfcd1cd chore: regenerate API index 4e570dba24 feat: add sample query set APIs feat: add sample query APIs feat: add evaluation APIs b05173cc3d feat: add `GetKeyEvent`, `CreateKeyEvent`, `ListKeyEvents`, `UpdateKeyEvent`, `DeleteKeyEvent` methods to the Admin API v1beta feat: mark `GetConversionEvent`, `CreateConversionEvent`, `ListConversionEvents`, `UpdateConversionEvent`, `DeleteConversionEvent` methods as deprecated in the Admin API v1beta feat: add the `default_conversion_value` field to the `ConversionEvent` resource in the Admin API v1beta feat: add the `include_all_users` and `expand_groups` fields to the `RunAccessReportRequest` resource in the Admin API v1beta feat: add the `gmp_organization` field to the `Account` resource in the Admin API v1beta chore: update go_package to match open source code docs: change comment for methods `DeleteAccount`, `DeleteProperty`, and `RunAccessReport` in service `AnalyticsAdminService` docs: change comment in fields `account` and `property` in message `SearchChangeHistoryEventsRequest` docs: change comment for field `property_type` in message `Property` db2ac7a5af feat: Adding autoscaling settings d6afd944b4 chore: regenerate API index f6352d6625 feat: add Chunk resource in the search response docs: keep the API doc up-to-date with recent changes f26a071390 feat: A new field `ray_operator_config` is added to message `.google.container.v1beta1.AddonsConfig` feat: A new message `RayOperatorConfig` is added feat: A new message `RayClusterLoggingConfig` is added feat: A new message `RayClusterMonitoringConfig` is added docs: A comment for field `subnetwork` in message `.google.container.v1beta1.AdditionalPodNetworkConfig` is changed docs: A comment for field `secondary_pod_range` in message `.google.container.v1beta1.AdditionalPodNetworkConfig` is changed docs: A comment for field `max_pods_per_node` in message `.google.container.v1beta1.AdditionalPodNetworkConfig` is changed 056f6e7e87 feat: support for Ray Clusters docs: trivial updates cb0f6d577d chore: regenerate API index bba2c8b208 docs: improve MethodSettings selector examples afa4805a22 feat: add sample query set APIs feat: add sample query APIs feat: add evaluation APIs 35de75a6ac chore: regenerate API index 72b7238989 docs: Updates documentation with regional resource names for multiple requests docs: Removes references as a "global-only" service f1bfd1dad5 chore: regenerate API index b0beb2ccd4 docs: Update product links b0c32da88f feat: added support for deploy policies feat: added support for configuring a proxy_url to a Kubernetes server docs: small corrections to Cloud Deploy API documentation git-subtree-dir: third_party/googleapis git-subtree-split: ab2ad69473e17b813f5555a44b89691f67b66297 --- WORKSPACE | 89 +- api-index-v1.json | 8471 ++++++++++++----- google/ads/admanager/BUILD.bazel | 36 + google/ads/admanager/v1/BUILD.bazel | 68 +- .../admanager/v1/ad_partner_declaration.proto | 57 - .../ads/admanager/v1/ad_partner_service.proto | 139 - google/ads/admanager/v1/ad_unit_enums.proto | 69 +- .../ads/admanager/v1/ad_unit_messages.proto | 230 + google/ads/admanager/v1/ad_unit_service.proto | 299 +- google/ads/admanager/v1/admanager_error.proto | 4 +- google/ads/admanager/v1/admanager_v1.yaml | 43 +- google/ads/admanager/v1/applied_label.proto | 4 +- .../v1/company_credit_status_enum.proto | 4 +- .../ads/admanager/v1/company_messages.proto | 122 + google/ads/admanager/v1/company_service.proto | 96 +- .../ads/admanager/v1/company_type_enum.proto | 7 +- .../admanager/v1/computed_status_enum.proto | 73 - .../ads/admanager/v1/contact_messages.proto | 49 + google/ads/admanager/v1/contact_service.proto | 142 - .../admanager/v1/creative_placeholder.proto | 62 - .../ads/admanager/v1/creative_service.proto | 176 - .../ads/admanager/v1/custom_field_enums.proto | 4 +- .../admanager/v1/custom_field_messages.proto | 87 + .../admanager/v1/custom_field_service.proto | 74 +- .../ads/admanager/v1/custom_field_value.proto | 62 + .../v1/custom_targeting_key_enums.proto | 4 +- .../v1/custom_targeting_key_messages.proto | 69 + .../v1/custom_targeting_key_service.proto | 46 +- .../v1/custom_targeting_value_enums.proto | 4 +- .../v1/custom_targeting_value_messages.proto | 66 + .../v1/custom_targeting_value_service.proto | 40 +- .../v1/entity_signals_mapping_messages.proto | 64 + .../v1/entity_signals_mapping_service.proto | 252 + .../admanager/v1/environment_type_enum.proto | 4 +- google/ads/admanager/v1/frequency_cap.proto | 40 +- google/ads/admanager/v1/goal.proto | 162 - ...d_unit_size.proto => label_messages.proto} | 32 +- google/ads/admanager/v1/line_item_enums.proto | 241 - .../ads/admanager/v1/line_item_service.proto | 338 - .../ads/admanager/v1/network_messages.proto | 79 + google/ads/admanager/v1/network_service.proto | 70 +- google/ads/admanager/v1/order_enums.proto | 59 + google/ads/admanager/v1/order_messages.proto | 209 + google/ads/admanager/v1/order_service.proto | 202 +- google/ads/admanager/v1/placement_enums.proto | 4 +- .../ads/admanager/v1/placement_messages.proto | 77 + .../ads/admanager/v1/placement_service.proto | 54 +- google/ads/admanager/v1/report_service.proto | 3529 ++++++- google/ads/admanager/v1/role_enums.proto | 41 + google/ads/admanager/v1/role_messages.proto | 59 + google/ads/admanager/v1/role_service.proto | 40 +- google/ads/admanager/v1/size.proto | 42 +- google/ads/admanager/v1/size_type_enum.proto | 62 + .../v1/taxonomy_category_messages.proto | 70 + ....proto => taxonomy_category_service.proto} | 84 +- .../ads/admanager/v1/taxonomy_type_enum.proto | 51 + google/ads/admanager/v1/team_messages.proto | 46 + google/ads/admanager/v1/team_service.proto | 136 - google/ads/admanager/v1/time_unit_enum.proto | 59 + google/ads/admanager/v1/user_messages.proto | 78 + google/ads/admanager/v1/user_service.proto | 126 +- .../ads/googleads/v15/common/ad_asset.proto | 82 - .../v15/enums/content_label_type.proto | 85 - .../v15/errors/recommendation_error.proto | 92 - google/ads/googleads/v15/googleads_gapic.yaml | 26 - .../v15/googleads_grpc_service_config.json | 348 - google/ads/googleads/v15/googleads_v15.yaml | 625 -- .../product_link_invitation_service.proto | 78 - google/ads/googleads/v17/common/bidding.proto | 33 + .../ads/googleads/v17/common/segments.proto | 8 + .../ads/googleads/v17/common/text_label.proto | 2 +- .../googleads/v17/enums/ad_format_type.proto | 85 + .../v17/enums/bidding_strategy_type.proto | 7 + .../enums/change_status_resource_type.proto | 3 + .../googleads/v17/enums/fixed_cpm_goal.proto | 48 + ...fixed_cpm_target_frequency_time_unit.proto | 45 + .../user_list_customer_type_category.proto | 21 + ...atically_created_asset_removal_error.proto | 56 + google/ads/googleads/v17/errors/errors.proto | 11 + .../v17/errors/shareable_preview_error.proto | 46 + .../v17/googleads_grpc_service_config.json | 3 + google/ads/googleads/v17/googleads_v17.yaml | 9 + .../googleads/v17/resources/ad_group.proto | 8 + .../googleads/v17/resources/campaign.proto | 30 + .../v17/resources/change_status.proto | 8 + ...ine_conversion_upload_client_summary.proto | 20 +- ...ion_upload_conversion_action_summary.proto | 96 + .../v17/services/ad_group_ad_service.proto | 53 + .../services/audience_insights_service.proto | 102 + .../custom_conversion_goal_service.proto | 2 +- .../v17/services/google_ads_service.proto | 8 +- .../services/shareable_preview_service.proto | 102 + google/ads/googleads/{v15 => v18}/BUILD.bazel | 76 +- .../googleads/{v15 => v18}/common/BUILD.bazel | 2 +- .../ads/googleads/v18/common/ad_asset.proto | 114 + .../{v15 => v18}/common/ad_type_infos.proto | 96 +- .../{v15 => v18}/common/asset_policy.proto | 36 +- .../{v15 => v18}/common/asset_set_types.proto | 26 +- .../{v15 => v18}/common/asset_types.proto | 84 +- .../{v15 => v18}/common/asset_usage.proto | 18 +- .../common/audience_insights_attribute.proto | 177 + .../{v15 => v18}/common/audiences.proto | 38 +- .../{v15 => v18}/common/bidding.proto | 57 +- .../{v15 => v18}/common/click_location.proto | 14 +- .../{v15 => v18}/common/consent.proto | 20 +- .../{v15 => v18}/common/criteria.proto | 175 +- .../criterion_category_availability.proto | 30 +- .../common/custom_parameter.proto | 14 +- .../common/customizer_value.proto | 18 +- .../googleads/{v15 => v18}/common/dates.proto | 18 +- .../{v15 => v18}/common/extensions.proto | 48 +- .../{v15 => v18}/common/feed_common.proto | 14 +- .../feed_item_set_filter_type_infos.proto | 18 +- .../{v15 => v18}/common/final_app_url.proto | 18 +- .../{v15 => v18}/common/frequency_cap.proto | 26 +- .../common/keyword_plan_common.proto | 36 +- .../{v15 => v18}/common/lifecycle_goals.proto | 14 +- .../{v15 => v18}/common/local_services.proto | 14 +- .../common/matching_function.proto | 22 +- .../{v15 => v18}/common/metric_goal.proto | 22 +- .../{v15 => v18}/common/metrics.proto | 256 +- .../common/offline_user_data.proto | 24 +- .../{v15 => v18}/common/policy.proto | 30 +- .../{v15 => v18}/common/policy_summary.proto | 24 +- .../common/real_time_bidding_setting.proto | 14 +- .../{v15 => v18}/common/segments.proto | 182 +- .../{v15 => v18}/common/simulation.proto | 14 +- .../{v15 => v18}/common/tag_snippet.proto | 22 +- .../common/targeting_setting.proto | 18 +- .../{v15 => v18}/common/text_label.proto | 16 +- .../{v15 => v18}/common/url_collection.proto | 14 +- .../{v15 => v18}/common/user_lists.proto | 58 +- .../googleads/{v15 => v18}/common/value.proto | 14 +- .../googleads/{v15 => v18}/enums/BUILD.bazel | 0 .../enums/access_invitation_status.proto | 14 +- .../{v15 => v18}/enums/access_reason.proto | 14 +- .../{v15 => v18}/enums/access_role.proto | 14 +- .../account_budget_proposal_status.proto | 14 +- .../enums/account_budget_proposal_type.proto | 14 +- .../enums/account_budget_status.proto | 14 +- .../enums/account_link_status.proto | 14 +- .../ad_customizer_placeholder_field.proto | 14 +- .../enums/ad_destination_type.proto | 14 +- .../googleads/v18/enums/ad_format_type.proto | 85 + .../enums/ad_group_ad_primary_status.proto | 59 + .../ad_group_ad_primary_status_reason.proto | 101 + .../enums/ad_group_ad_rotation_mode.proto | 14 +- .../enums/ad_group_ad_status.proto | 14 +- .../ad_group_criterion_approval_status.proto | 14 +- .../ad_group_criterion_primary_status.proto | 57 + ...roup_criterion_primary_status_reason.proto | 116 + .../enums/ad_group_criterion_status.proto | 14 +- .../v18/enums/ad_group_primary_status.proto | 59 + .../ad_group_primary_status_reason.proto | 106 + .../{v15 => v18}/enums/ad_group_status.proto | 14 +- .../{v15 => v18}/enums/ad_group_type.proto | 14 +- .../{v15 => v18}/enums/ad_network_type.proto | 18 +- .../ad_serving_optimization_status.proto | 14 +- .../{v15 => v18}/enums/ad_strength.proto | 14 +- .../{v15 => v18}/enums/ad_type.proto | 29 +- .../enums/advertising_channel_sub_type.proto | 14 +- .../enums/advertising_channel_type.proto | 20 +- ...iate_location_feed_relationship_type.proto | 14 +- ...affiliate_location_placeholder_field.proto | 14 +- .../{v15 => v18}/enums/age_range_type.proto | 14 +- .../android_privacy_interaction_type.proto | 14 +- .../enums/android_privacy_network_type.proto | 14 +- .../{v15 => v18}/enums/app_bidding_goal.proto | 14 +- .../enums/app_campaign_app_store.proto | 14 +- ..._campaign_bidding_strategy_goal_type.proto | 14 +- .../enums/app_payment_model_type.proto | 14 +- .../enums/app_placeholder_field.proto | 14 +- .../{v15 => v18}/enums/app_store.proto | 14 +- .../enums/app_url_operating_system_type.proto | 14 +- .../enums/asset_automation_status.proto | 14 +- .../enums/asset_automation_type.proto | 23 +- .../{v15 => v18}/enums/asset_field_type.proto | 17 +- .../enums/asset_group_primary_status.proto | 14 +- .../asset_group_primary_status_reason.proto | 38 +- .../asset_group_signal_approval_status.proto | 14 +- .../enums/asset_group_status.proto | 14 +- .../enums/asset_link_primary_status.proto | 14 +- .../asset_link_primary_status_reason.proto | 14 +- .../enums/asset_link_status.proto | 14 +- ...set_offline_evaluation_error_reasons.proto | 14 +- .../enums/asset_performance_label.proto | 14 +- .../enums/asset_set_asset_status.proto | 14 +- .../enums/asset_set_link_status.proto | 14 +- .../{v15 => v18}/enums/asset_set_status.proto | 14 +- .../{v15 => v18}/enums/asset_set_type.proto | 18 +- .../{v15 => v18}/enums/asset_source.proto | 14 +- .../{v15 => v18}/enums/asset_type.proto | 20 +- .../enums/async_action_status.proto | 14 +- .../enums/attribution_model.proto | 14 +- .../enums/audience_insights_dimension.proto | 14 +- ...udience_insights_marketing_objective.proto | 48 + .../{v15 => v18}/enums/audience_scope.proto | 14 +- .../{v15 => v18}/enums/audience_status.proto | 14 +- .../{v15 => v18}/enums/batch_job_status.proto | 14 +- .../enums/bid_modifier_source.proto | 14 +- .../{v15 => v18}/enums/bidding_source.proto | 14 +- .../enums/bidding_strategy_status.proto | 14 +- .../bidding_strategy_system_status.proto | 14 +- .../enums/bidding_strategy_type.proto | 21 +- .../enums/billing_setup_status.proto | 14 +- .../brand_request_rejection_reason.proto | 53 + .../enums/brand_safety_suitability.proto | 14 +- .../{v15 => v18}/enums/brand_state.proto | 14 +- .../budget_campaign_association_status.proto | 14 +- .../enums/budget_delivery_method.proto | 14 +- .../{v15 => v18}/enums/budget_period.proto | 14 +- .../{v15 => v18}/enums/budget_status.proto | 14 +- .../{v15 => v18}/enums/budget_type.proto | 14 +- .../call_conversion_reporting_state.proto | 14 +- .../enums/call_placeholder_field.proto | 14 +- .../enums/call_to_action_type.proto | 14 +- .../call_tracking_display_location.proto | 14 +- .../{v15 => v18}/enums/call_type.proto | 14 +- .../enums/callout_placeholder_field.proto | 14 +- .../enums/campaign_criterion_status.proto | 14 +- .../enums/campaign_draft_status.proto | 14 +- .../enums/campaign_experiment_type.proto | 14 +- .../enums/campaign_group_status.proto | 14 +- .../enums/campaign_keyword_match_type.proto | 43 + .../enums/campaign_primary_status.proto | 14 +- .../campaign_primary_status_reason.proto | 14 +- .../enums/campaign_serving_status.proto | 14 +- .../enums/campaign_shared_set_status.proto | 14 +- .../{v15 => v18}/enums/campaign_status.proto | 14 +- .../enums/chain_relationship_type.proto | 14 +- .../enums/change_client_type.proto | 14 +- .../enums/change_event_resource_type.proto | 14 +- .../enums/change_status_operation.proto | 14 +- .../enums/change_status_resource_type.proto | 17 +- .../{v15 => v18}/enums/click_type.proto | 20 +- .../enums/combined_audience_status.proto | 14 +- .../{v15 => v18}/enums/consent_status.proto | 14 +- .../v18/enums/content_label_type.proto | 130 + .../enums/conversion_action_category.proto | 14 +- .../conversion_action_counting_type.proto | 14 +- .../enums/conversion_action_status.proto | 14 +- .../enums/conversion_action_type.proto | 14 +- .../enums/conversion_adjustment_type.proto | 14 +- .../conversion_attribution_event_type.proto | 14 +- .../conversion_custom_variable_status.proto | 14 +- .../enums/conversion_environment_enum.proto | 14 +- .../enums/conversion_lag_bucket.proto | 14 +- .../conversion_or_adjustment_lag_bucket.proto | 14 +- .../enums/conversion_origin.proto | 14 +- .../conversion_tracking_status_enum.proto | 14 +- ...version_value_rule_primary_dimension.proto | 17 +- .../conversion_value_rule_set_status.proto | 14 +- .../enums/conversion_value_rule_status.proto | 14 +- ...prior_engagement_type_and_ltv_bucket.proto | 14 +- ...n_category_channel_availability_mode.proto | 14 +- ...on_category_locale_availability_mode.proto | 14 +- .../criterion_system_serving_status.proto | 14 +- .../{v15 => v18}/enums/criterion_type.proto | 17 +- .../enums/custom_audience_member_type.proto | 14 +- .../enums/custom_audience_status.proto | 14 +- .../enums/custom_audience_type.proto | 14 +- .../enums/custom_conversion_goal_status.proto | 14 +- .../enums/custom_interest_member_type.proto | 14 +- .../enums/custom_interest_status.proto | 14 +- .../enums/custom_interest_type.proto | 14 +- .../enums/custom_placeholder_field.proto | 14 +- ...stomer_acquisition_optimization_mode.proto | 14 +- .../customer_match_upload_key_type.proto | 14 +- ...onversion_eligibility_failure_reason.proto | 14 +- .../{v15 => v18}/enums/customer_status.proto | 14 +- .../enums/customizer_attribute_status.proto | 14 +- .../enums/customizer_attribute_type.proto | 14 +- .../enums/customizer_value_status.proto | 14 +- .../enums/data_driven_model_status.proto | 14 +- .../v18/enums/data_link_status.proto | 58 + .../googleads/v18/enums/data_link_type.proto | 41 + .../{v15 => v18}/enums/day_of_week.proto | 14 +- .../googleads/{v15 => v18}/enums/device.proto | 14 +- .../enums/display_ad_format_setting.proto | 14 +- .../enums/display_upload_product_type.proto | 14 +- .../{v15 => v18}/enums/distance_bucket.proto | 14 +- .../enums/dsa_page_feed_criterion_field.proto | 14 +- .../enums/education_placeholder_field.proto | 14 +- .../enums/experiment_metric.proto | 14 +- .../enums/experiment_metric_direction.proto | 14 +- .../enums/experiment_status.proto | 14 +- .../{v15 => v18}/enums/experiment_type.proto | 14 +- .../enums/extension_setting_device.proto | 14 +- .../{v15 => v18}/enums/extension_type.proto | 14 +- .../enums/external_conversion_source.proto | 14 +- .../enums/feed_attribute_type.proto | 14 +- .../feed_item_quality_approval_status.proto | 14 +- ...feed_item_quality_disapproval_reason.proto | 14 +- .../enums/feed_item_set_status.proto | 14 +- .../feed_item_set_string_filter_type.proto | 14 +- .../{v15 => v18}/enums/feed_item_status.proto | 14 +- .../enums/feed_item_target_device.proto | 14 +- .../enums/feed_item_target_status.proto | 14 +- .../enums/feed_item_target_type.proto | 14 +- .../enums/feed_item_validation_status.proto | 14 +- .../{v15 => v18}/enums/feed_link_status.proto | 14 +- .../enums/feed_mapping_criterion_type.proto | 14 +- .../enums/feed_mapping_status.proto | 14 +- .../{v15 => v18}/enums/feed_origin.proto | 14 +- .../{v15 => v18}/enums/feed_status.proto | 14 +- .../googleads/v18/enums/fixed_cpm_goal.proto | 48 + ...fixed_cpm_target_frequency_time_unit.proto | 45 + .../enums/flight_placeholder_field.proto | 14 +- .../enums/frequency_cap_event_type.proto | 14 +- .../enums/frequency_cap_level.proto | 14 +- .../enums/frequency_cap_time_unit.proto | 14 +- .../{v15 => v18}/enums/gender_type.proto | 14 +- .../enums/geo_target_constant_status.proto | 14 +- .../enums/geo_targeting_restriction.proto | 14 +- .../enums/geo_targeting_type.proto | 14 +- .../enums/goal_config_level.proto | 14 +- .../enums/google_ads_field_category.proto | 14 +- .../enums/google_ads_field_data_type.proto | 14 +- .../enums/google_voice_call_status.proto | 14 +- .../enums/hotel_asset_suggestion_status.proto | 14 +- .../enums/hotel_date_selection_type.proto | 14 +- .../enums/hotel_placeholder_field.proto | 14 +- .../enums/hotel_price_bucket.proto | 14 +- .../{v15 => v18}/enums/hotel_rate_type.proto | 14 +- .../enums/hotel_reconciliation_status.proto | 14 +- .../enums/identity_verification_program.proto | 43 + ...identity_verification_program_status.proto | 52 + .../enums/image_placeholder_field.proto | 14 +- .../enums/income_range_type.proto | 14 +- .../enums/interaction_event_type.proto | 14 +- .../{v15 => v18}/enums/interaction_type.proto | 14 +- .../{v15 => v18}/enums/invoice_type.proto | 14 +- .../enums/job_placeholder_field.proto | 14 +- .../enums/keyword_match_type.proto | 14 +- .../keyword_plan_aggregate_metric_type.proto | 14 +- .../keyword_plan_competition_level.proto | 14 +- .../keyword_plan_concept_group_type.proto | 14 +- .../keyword_plan_forecast_interval.proto | 14 +- .../keyword_plan_keyword_annotation.proto | 14 +- .../enums/keyword_plan_network.proto | 14 +- .../{v15 => v18}/enums/label_status.proto | 14 +- .../enums/lead_form_call_to_action_type.proto | 14 +- .../enums/lead_form_desired_intent.proto | 14 +- .../lead_form_field_user_input_type.proto | 14 +- ...form_post_submit_call_to_action_type.proto | 14 +- .../legacy_app_install_ad_app_store.proto | 14 +- .../enums/linked_account_type.proto | 25 +- .../enums/linked_product_type.proto | 17 +- ..._group_filter_custom_attribute_index.proto | 14 +- .../listing_group_filter_listing_source.proto | 14 +- ..._group_filter_product_category_level.proto | 14 +- ...listing_group_filter_product_channel.proto | 14 +- ...sting_group_filter_product_condition.proto | 14 +- ...ting_group_filter_product_type_level.proto | 14 +- .../listing_group_filter_type_enum.proto | 14 +- .../enums/listing_group_type.proto | 14 +- .../{v15 => v18}/enums/listing_type.proto | 14 +- .../enums/local_placeholder_field.proto | 14 +- ..._registration_check_rejection_reason.proto | 68 + ..._services_business_registration_type.proto | 46 + .../local_services_conversation_type.proto | 20 +- .../local_services_employee_status.proto | 44 + .../enums/local_services_employee_type.proto | 44 + ..._services_insurance_rejection_reason.proto | 14 +- .../local_services_lead_credit_state.proto | 45 + .../enums/local_services_lead_status.proto | 14 +- .../enums/local_services_lead_type.proto | 14 +- ...al_services_license_rejection_reason.proto | 14 +- .../local_services_participant_type.proto | 14 +- ...ervices_verification_artifact_status.proto | 14 +- ..._services_verification_artifact_type.proto | 17 +- .../local_services_verification_status.proto | 14 +- ..._extension_targeting_criterion_field.proto | 14 +- .../enums/location_group_radius_units.proto | 14 +- .../enums/location_ownership_type.proto | 14 +- .../enums/location_placeholder_field.proto | 14 +- .../enums/location_source_type.proto | 14 +- .../enums/location_string_filter_type.proto | 14 +- .../enums/lookalike_expansion_level.proto | 14 +- .../enums/manager_link_status.proto | 14 +- .../matching_function_context_type.proto | 14 +- .../enums/matching_function_operator.proto | 14 +- .../{v15 => v18}/enums/media_type.proto | 14 +- .../enums/message_placeholder_field.proto | 14 +- .../{v15 => v18}/enums/mime_type.proto | 14 +- .../{v15 => v18}/enums/minute_of_hour.proto | 14 +- .../enums/mobile_app_vendor.proto | 14 +- .../enums/mobile_device_type.proto | 14 +- .../{v15 => v18}/enums/month_of_year.proto | 14 +- .../enums/negative_geo_target_type.proto | 14 +- ...ne_conversion_diagnostic_status_enum.proto | 14 +- .../offline_event_upload_client_enum.proto | 14 +- ...offline_user_data_job_failure_reason.proto | 14 +- ...fline_user_data_job_match_rate_range.proto | 14 +- .../enums/offline_user_data_job_status.proto | 14 +- .../enums/offline_user_data_job_type.proto | 14 +- ...erating_system_version_operator_type.proto | 14 +- .../enums/optimization_goal_type.proto | 14 +- .../enums/parental_status_type.proto | 14 +- .../{v15 => v18}/enums/payment_mode.proto | 14 +- .../performance_max_upgrade_status.proto | 14 +- .../{v15 => v18}/enums/placeholder_type.proto | 14 +- .../{v15 => v18}/enums/placement_type.proto | 14 +- .../enums/policy_approval_status.proto | 14 +- .../enums/policy_review_status.proto | 14 +- .../enums/policy_topic_entry_type.proto | 14 +- ...idence_destination_mismatch_url_type.proto | 14 +- ...dence_destination_not_working_device.proto | 14 +- ...stination_not_working_dns_error_type.proto | 14 +- .../enums/positive_geo_target_type.proto | 14 +- .../price_extension_price_qualifier.proto | 14 +- .../enums/price_extension_price_unit.proto | 14 +- .../enums/price_extension_type.proto | 14 +- .../enums/price_placeholder_field.proto | 14 +- .../v18/enums/product_availability.proto | 49 + .../enums/product_category_level.proto | 14 +- .../enums/product_category_state.proto | 14 +- .../{v15 => v18}/enums/product_channel.proto | 14 +- .../enums/product_channel_exclusivity.proto | 14 +- .../enums/product_condition.proto | 14 +- .../product_custom_attribute_index.proto | 14 +- .../v18/enums/product_issue_severity.proto | 46 + .../product_link_invitation_status.proto | 14 +- .../googleads/v18/enums/product_status.proto | 50 + .../enums/product_type_level.proto | 14 +- ...romotion_extension_discount_modifier.proto | 14 +- .../enums/promotion_extension_occasion.proto | 14 +- .../enums/promotion_placeholder_field.proto | 14 +- .../enums/proximity_radius_units.proto | 14 +- .../enums/quality_score_bucket.proto | 14 +- .../enums/reach_plan_age_range.proto | 14 +- .../enums/reach_plan_network.proto | 14 +- .../enums/reach_plan_surface.proto | 14 +- .../enums/real_estate_placeholder_field.proto | 14 +- .../recommendation_subscription_status.proto | 14 +- .../enums/recommendation_type.proto | 39 +- .../enums/resource_change_operation.proto | 14 +- .../enums/resource_limit_type.proto | 21 +- .../enums/response_content_type.proto | 19 +- .../search_engine_results_page_type.proto | 14 +- .../enums/search_term_match_type.proto | 14 +- .../enums/search_term_targeting_status.proto | 14 +- .../enums/seasonality_event_scope.proto | 14 +- .../enums/seasonality_event_status.proto | 14 +- .../enums/served_asset_field_type.proto | 14 +- .../enums/shared_set_status.proto | 14 +- .../{v15 => v18}/enums/shared_set_type.proto | 14 +- ...ucts_to_campaign_recommendation_enum.proto | 14 +- .../simulation_modification_method.proto | 14 +- .../{v15 => v18}/enums/simulation_type.proto | 14 +- .../enums/sitelink_placeholder_field.proto | 14 +- .../enums/sk_ad_network_ad_event_type.proto | 14 +- .../sk_ad_network_attribution_credit.proto | 14 +- ...k_ad_network_coarse_conversion_value.proto | 14 +- .../enums/sk_ad_network_source_type.proto | 14 +- .../enums/sk_ad_network_user_type.proto | 14 +- .../googleads/{v15 => v18}/enums/slot.proto | 14 +- .../smart_campaign_not_eligible_reason.proto | 14 +- .../enums/smart_campaign_status.proto | 14 +- .../enums/spending_limit_type.proto | 14 +- ...structured_snippet_placeholder_field.proto | 14 +- .../enums/summary_row_setting.proto | 14 +- .../enums/system_managed_entity_source.proto | 14 +- ...arget_cpa_opt_in_recommendation_goal.proto | 14 +- .../enums/target_frequency_time_unit.proto | 14 +- .../target_impression_share_location.proto | 14 +- .../enums/targeting_dimension.proto | 14 +- .../{v15 => v18}/enums/time_type.proto | 14 +- .../enums/tracking_code_page_format.proto | 14 +- .../enums/tracking_code_type.proto | 14 +- .../enums/travel_placeholder_field.proto | 14 +- .../enums/user_identifier_source.proto | 14 +- .../enums/user_interest_taxonomy_type.proto | 14 +- .../enums/user_list_access_status.proto | 14 +- .../enums/user_list_closing_reason.proto | 14 +- .../user_list_crm_data_source_type.proto | 14 +- .../user_list_customer_type_category.proto | 88 + .../user_list_date_rule_item_operator.proto | 14 +- .../user_list_flexible_rule_operator.proto | 14 +- .../user_list_logical_rule_operator.proto | 14 +- .../enums/user_list_membership_status.proto | 14 +- .../user_list_number_rule_item_operator.proto | 14 +- .../user_list_prepopulation_status.proto | 14 +- .../enums/user_list_rule_type.proto | 14 +- .../enums/user_list_size_range.proto | 14 +- .../user_list_string_rule_item_operator.proto | 14 +- .../{v15 => v18}/enums/user_list_type.proto | 14 +- .../enums/value_rule_device_type.proto | 14 +- .../value_rule_geo_location_match_type.proto | 14 +- .../enums/value_rule_operation.proto | 14 +- .../value_rule_set_attachment_type.proto | 14 +- .../enums/value_rule_set_dimension.proto | 17 +- .../vanity_pharma_display_url_mode.proto | 14 +- .../enums/vanity_pharma_text.proto | 14 +- .../{v15 => v18}/enums/video_thumbnail.proto | 14 +- .../enums/webpage_condition_operand.proto | 14 +- .../enums/webpage_condition_operator.proto | 14 +- .../googleads/{v15 => v18}/errors/BUILD.bazel | 4 +- .../errors/access_invitation_error.proto | 14 +- .../account_budget_proposal_error.proto | 14 +- .../errors/account_link_error.proto | 14 +- .../errors/ad_customizer_error.proto | 14 +- .../{v15 => v18}/errors/ad_error.proto | 14 +- .../errors/ad_group_ad_error.proto | 14 +- .../errors/ad_group_bid_modifier_error.proto | 14 +- .../ad_group_criterion_customizer_error.proto | 14 +- .../errors/ad_group_criterion_error.proto | 14 +- .../errors/ad_group_customizer_error.proto | 14 +- .../{v15 => v18}/errors/ad_group_error.proto | 20 +- .../errors/ad_group_feed_error.proto | 14 +- .../errors/ad_parameter_error.proto | 14 +- .../errors/ad_sharing_error.proto | 14 +- .../{v15 => v18}/errors/adx_error.proto | 14 +- .../{v15 => v18}/errors/asset_error.proto | 14 +- .../errors/asset_group_asset_error.proto | 14 +- .../errors/asset_group_error.proto | 14 +- ...set_group_listing_group_filter_error.proto | 44 +- .../errors/asset_group_signal_error.proto | 14 +- .../errors/asset_link_error.proto | 22 +- .../errors/asset_set_asset_error.proto | 14 +- .../{v15 => v18}/errors/asset_set_error.proto | 14 +- .../errors/asset_set_link_error.proto | 14 +- .../{v15 => v18}/errors/audience_error.proto | 14 +- .../errors/audience_insights_error.proto | 14 +- .../errors/authentication_error.proto | 18 +- .../errors/authorization_error.proto | 18 +- ...atically_created_asset_removal_error.proto | 56 + .../{v15 => v18}/errors/batch_job_error.proto | 38 +- .../{v15 => v18}/errors/bidding_error.proto | 14 +- .../errors/bidding_strategy_error.proto | 14 +- .../errors/billing_setup_error.proto | 14 +- .../errors/campaign_budget_error.proto | 14 +- .../campaign_conversion_goal_error.proto | 14 +- .../errors/campaign_criterion_error.proto | 21 +- .../errors/campaign_customizer_error.proto | 14 +- .../errors/campaign_draft_error.proto | 14 +- .../{v15 => v18}/errors/campaign_error.proto | 65 +- .../errors/campaign_experiment_error.proto | 14 +- .../errors/campaign_feed_error.proto | 14 +- .../campaign_lifecycle_goal_error.proto | 14 +- .../errors/campaign_shared_set_error.proto | 14 +- .../errors/change_event_error.proto | 14 +- .../errors/change_status_error.proto | 14 +- .../errors/collection_size_error.proto | 14 +- .../{v15 => v18}/errors/context_error.proto | 14 +- .../errors/conversion_action_error.proto | 14 +- .../conversion_adjustment_upload_error.proto | 16 +- .../conversion_custom_variable_error.proto | 14 +- ...onversion_goal_campaign_config_error.proto | 14 +- .../errors/conversion_upload_error.proto | 14 +- .../errors/conversion_value_rule_error.proto | 18 +- .../conversion_value_rule_set_error.proto | 18 +- .../errors/country_code_error.proto | 14 +- .../{v15 => v18}/errors/criterion_error.proto | 14 +- .../errors/currency_code_error.proto | 14 +- .../{v15 => v18}/errors/currency_error.proto | 14 +- .../errors/custom_audience_error.proto | 14 +- .../errors/custom_conversion_goal_error.proto | 14 +- .../errors/custom_interest_error.proto | 14 +- .../errors/customer_client_link_error.proto | 14 +- .../errors/customer_customizer_error.proto | 14 +- .../{v15 => v18}/errors/customer_error.proto | 14 +- .../errors/customer_feed_error.proto | 14 +- .../customer_lifecycle_goal_error.proto | 14 +- .../errors/customer_manager_link_error.proto | 14 +- ...etwork_conversion_value_schema_error.proto | 20 +- .../errors/customer_user_access_error.proto | 14 +- .../errors/customizer_attribute_error.proto | 14 +- .../{v15 => v18}/errors/database_error.proto | 14 +- .../{v15 => v18}/errors/date_error.proto | 14 +- .../errors/date_range_error.proto | 14 +- .../{v15 => v18}/errors/distinct_error.proto | 14 +- .../{v15 => v18}/errors/enum_error.proto | 14 +- .../{v15 => v18}/errors/errors.proto | 359 +- .../errors/experiment_arm_error.proto | 14 +- .../errors/experiment_error.proto | 22 +- .../errors/extension_feed_item_error.proto | 14 +- .../errors/extension_setting_error.proto | 14 +- .../feed_attribute_reference_error.proto | 14 +- .../{v15 => v18}/errors/feed_error.proto | 14 +- .../{v15 => v18}/errors/feed_item_error.proto | 14 +- .../errors/feed_item_set_error.proto | 14 +- .../errors/feed_item_set_link_error.proto | 14 +- .../errors/feed_item_target_error.proto | 14 +- .../errors/feed_item_validation_error.proto | 14 +- .../errors/feed_mapping_error.proto | 14 +- .../{v15 => v18}/errors/field_error.proto | 14 +- .../errors/field_mask_error.proto | 14 +- .../{v15 => v18}/errors/function_error.proto | 14 +- .../errors/function_parsing_error.proto | 14 +- ...geo_target_constant_suggestion_error.proto | 14 +- .../{v15 => v18}/errors/header_error.proto | 14 +- .../{v15 => v18}/errors/id_error.proto | 14 +- .../errors/identity_verification_error.proto | 49 + .../{v15 => v18}/errors/image_error.proto | 14 +- .../{v15 => v18}/errors/internal_error.proto | 14 +- .../{v15 => v18}/errors/invoice_error.proto | 14 +- .../errors/keyword_plan_ad_group_error.proto | 14 +- .../keyword_plan_ad_group_keyword_error.proto | 14 +- .../errors/keyword_plan_campaign_error.proto | 14 +- .../keyword_plan_campaign_keyword_error.proto | 14 +- .../errors/keyword_plan_error.proto | 14 +- .../errors/keyword_plan_idea_error.proto | 14 +- .../{v15 => v18}/errors/label_error.proto | 14 +- .../errors/language_code_error.proto | 14 +- .../errors/list_operation_error.proto | 14 +- .../errors/manager_link_error.proto | 14 +- .../errors/media_bundle_error.proto | 14 +- .../errors/media_file_error.proto | 14 +- .../errors/media_upload_error.proto | 14 +- .../errors/merchant_center_error.proto | 14 +- .../errors/multiplier_error.proto | 14 +- .../{v15 => v18}/errors/mutate_error.proto | 14 +- .../errors/new_resource_creation_error.proto | 14 +- .../errors/not_allowlisted_error.proto | 14 +- .../{v15 => v18}/errors/not_empty_error.proto | 14 +- .../{v15 => v18}/errors/null_error.proto | 14 +- .../errors/offline_user_data_job_error.proto | 19 +- .../operation_access_denied_error.proto | 14 +- .../{v15 => v18}/errors/operator_error.proto | 14 +- .../errors/partial_failure_error.proto | 14 +- .../errors/payments_account_error.proto | 14 +- .../errors/policy_finding_error.proto | 14 +- .../policy_validation_parameter_error.proto | 14 +- .../errors/policy_violation_error.proto | 14 +- .../errors/product_link_error.proto | 20 +- .../product_link_invitation_error.proto | 17 +- .../{v15 => v18}/errors/query_error.proto | 14 +- .../{v15 => v18}/errors/quota_error.proto | 22 +- .../{v15 => v18}/errors/range_error.proto | 14 +- .../errors/reach_plan_error.proto | 14 +- .../v18/errors/recommendation_error.proto | 168 + .../recommendation_subscription_error.proto | 14 +- .../errors/region_code_error.proto | 14 +- .../{v15 => v18}/errors/request_error.proto | 18 +- .../errors/resource_access_denied_error.proto | 14 +- .../resource_count_limit_exceeded_error.proto | 14 +- .../errors/search_term_insight_error.proto | 14 +- .../{v15 => v18}/errors/setting_error.proto | 14 +- .../v18/errors/shareable_preview_error.proto | 46 + .../errors/shared_criterion_error.proto | 14 +- .../errors/shared_set_error.proto | 14 +- .../v18/errors/shopping_product_error.proto | 49 + .../errors/size_limit_error.proto | 14 +- .../errors/smart_campaign_error.proto | 14 +- .../errors/string_format_error.proto | 14 +- .../errors/string_length_error.proto | 14 +- ...third_party_app_analytics_link_error.proto | 14 +- .../{v15 => v18}/errors/time_zone_error.proto | 14 +- .../{v15 => v18}/errors/url_field_error.proto | 14 +- .../{v15 => v18}/errors/user_data_error.proto | 14 +- .../user_list_customer_type_error.proto | 68 + .../{v15 => v18}/errors/user_list_error.proto | 14 +- .../v18/errors/video_campaign_error.proto | 44 + .../youtube_video_registration_error.proto | 14 +- google/ads/googleads/v18/googleads_gapic.yaml | 26 + .../v18/googleads_grpc_service_config.json | 366 + google/ads/googleads/v18/googleads_v18.yaml | 655 ++ .../{v15 => v18}/resources/BUILD.bazel | 6 +- .../accessible_bidding_strategy.proto | 22 +- .../resources/account_budget.proto | 40 +- .../resources/account_budget_proposal.proto | 36 +- .../{v15 => v18}/resources/account_link.proto | 75 +- .../googleads/{v15 => v18}/resources/ad.proto | 106 +- .../{v15 => v18}/resources/ad_group.proto | 81 +- .../{v15 => v18}/resources/ad_group_ad.proto | 72 +- .../ad_group_ad_asset_combination_view.proto | 18 +- .../resources/ad_group_ad_asset_view.proto | 42 +- .../resources/ad_group_ad_label.proto | 14 +- .../resources/ad_group_asset.proto | 38 +- .../resources/ad_group_asset_set.proto | 18 +- .../resources/ad_group_audience_view.proto | 14 +- .../resources/ad_group_bid_modifier.proto | 32 +- .../resources/ad_group_criterion.proto | 120 +- .../ad_group_criterion_customizer.proto | 22 +- .../resources/ad_group_criterion_label.proto | 14 +- .../ad_group_criterion_simulation.proto | 28 +- .../resources/ad_group_customizer.proto | 22 +- .../ad_group_extension_setting.proto | 22 +- .../resources/ad_group_feed.proto | 26 +- .../resources/ad_group_label.proto | 14 +- .../resources/ad_group_simulation.proto | 32 +- .../{v15 => v18}/resources/ad_parameter.proto | 14 +- .../resources/ad_schedule_view.proto | 14 +- .../resources/age_range_view.proto | 14 +- ...d_privacy_shared_key_google_ad_group.proto | 22 +- ...d_privacy_shared_key_google_campaign.proto | 18 +- ...ivacy_shared_key_google_network_type.proto | 22 +- .../{v15 => v18}/resources/asset.proto | 104 +- .../resources/asset_field_type_view.proto | 18 +- .../{v15 => v18}/resources/asset_group.proto | 30 +- .../resources/asset_group_asset.proto | 46 +- .../asset_group_listing_group_filter.proto | 42 +- .../asset_group_product_group_view.proto | 14 +- .../resources/asset_group_signal.proto | 24 +- .../asset_group_top_combination_view.proto | 18 +- .../{v15 => v18}/resources/asset_set.proto | 30 +- .../resources/asset_set_asset.proto | 18 +- .../resources/asset_set_type_view.proto | 18 +- .../{v15 => v18}/resources/audience.proto | 28 +- .../{v15 => v18}/resources/batch_job.proto | 18 +- .../resources/bidding_data_exclusion.proto | 30 +- .../bidding_seasonality_adjustment.proto | 30 +- .../resources/bidding_strategy.proto | 38 +- .../bidding_strategy_simulation.proto | 28 +- .../resources/billing_setup.proto | 24 +- .../{v15 => v18}/resources/call_view.proto | 26 +- .../{v15 => v18}/resources/campaign.proto | 261 +- .../campaign_aggregate_asset_view.proto | 75 + .../resources/campaign_asset.proto | 38 +- .../resources/campaign_asset_set.proto | 18 +- .../resources/campaign_audience_view.proto | 14 +- .../resources/campaign_bid_modifier.proto | 18 +- .../resources/campaign_budget.proto | 30 +- .../resources/campaign_conversion_goal.proto | 22 +- .../resources/campaign_criterion.proto | 91 +- .../resources/campaign_customizer.proto | 22 +- .../resources/campaign_draft.proto | 18 +- .../campaign_extension_setting.proto | 22 +- .../resources/campaign_feed.proto | 26 +- .../resources/campaign_group.proto | 18 +- .../resources/campaign_label.proto | 14 +- .../resources/campaign_lifecycle_goal.proto | 22 +- .../campaign_search_term_insight.proto | 14 +- .../resources/campaign_shared_set.proto | 18 +- .../resources/campaign_simulation.proto | 35 +- .../resources/carrier_constant.proto | 14 +- .../{v15 => v18}/resources/change_event.proto | 66 +- .../resources/change_status.proto | 30 +- .../channel_aggregate_asset_view.proto | 73 + .../{v15 => v18}/resources/click_view.proto | 24 +- .../resources/combined_audience.proto | 18 +- .../resources/content_criterion_view.proto | 50 + .../resources/conversion_action.proto | 52 +- .../conversion_custom_variable.proto | 18 +- .../conversion_goal_campaign_config.proto | 18 +- .../resources/conversion_value_rule.proto | 94 +- .../resources/conversion_value_rule_set.proto | 30 +- .../resources/currency_constant.proto | 14 +- .../resources/custom_audience.proto | 26 +- .../resources/custom_conversion_goal.proto | 18 +- .../resources/custom_interest.proto | 26 +- .../{v15 => v18}/resources/customer.proto | 41 +- .../resources/customer_asset.proto | 38 +- .../resources/customer_asset_set.proto | 18 +- .../resources/customer_client.proto | 18 +- .../resources/customer_client_link.proto | 18 +- .../resources/customer_conversion_goal.proto | 22 +- .../resources/customer_customizer.proto | 22 +- .../customer_extension_setting.proto | 22 +- .../resources/customer_feed.proto | 26 +- .../resources/customer_label.proto | 14 +- .../resources/customer_lifecycle_goal.proto | 47 +- .../resources/customer_manager_link.proto | 18 +- .../customer_negative_criterion.proto | 38 +- .../customer_search_term_insight.proto | 14 +- ...k_ad_network_conversion_value_schema.proto | 72 +- .../resources/customer_user_access.proto | 18 +- .../customer_user_access_invitation.proto | 22 +- .../resources/customizer_attribute.proto | 22 +- .../googleads/v18/resources/data_link.proto | 88 + .../resources/detail_placement_view.proto | 18 +- .../resources/detailed_demographic.proto | 18 +- .../resources/display_keyword_view.proto | 14 +- .../resources/distance_view.proto | 18 +- .../resources/domain_category.proto | 14 +- .../dynamic_search_ads_search_term_view.proto | 14 +- .../expanded_landing_page_view.proto | 14 +- .../{v15 => v18}/resources/experiment.proto | 35 +- .../resources/experiment_arm.proto | 14 +- .../resources/extension_feed_item.proto | 58 +- .../{v15 => v18}/resources/feed.proto | 30 +- .../{v15 => v18}/resources/feed_item.proto | 64 +- .../resources/feed_item_set.proto | 24 +- .../resources/feed_item_set_link.proto | 14 +- .../resources/feed_item_target.proto | 32 +- .../{v15 => v18}/resources/feed_mapping.proto | 116 +- .../resources/feed_placeholder_view.proto | 18 +- .../{v15 => v18}/resources/gender_view.proto | 17 +- .../resources/geo_target_constant.proto | 18 +- .../resources/geographic_view.proto | 18 +- .../resources/google_ads_field.proto | 22 +- .../resources/group_placement_view.proto | 18 +- .../resources/hotel_group_view.proto | 14 +- .../resources/hotel_performance_view.proto | 14 +- .../resources/hotel_reconciliation.proto | 18 +- .../resources/income_range_view.proto | 14 +- .../{v15 => v18}/resources/invoice.proto | 28 +- .../{v15 => v18}/resources/keyword_plan.proto | 22 +- .../resources/keyword_plan_ad_group.proto | 14 +- .../keyword_plan_ad_group_keyword.proto | 18 +- .../resources/keyword_plan_campaign.proto | 18 +- .../keyword_plan_campaign_keyword.proto | 18 +- .../resources/keyword_theme_constant.proto | 14 +- .../{v15 => v18}/resources/keyword_view.proto | 14 +- .../{v15 => v18}/resources/label.proto | 22 +- .../resources/landing_page_view.proto | 14 +- .../resources/language_constant.proto | 14 +- .../resources/lead_form_submission_data.proto | 18 +- .../{v15 => v18}/resources/life_event.proto | 18 +- .../resources/local_services_employee.proto | 158 + .../resources/local_services_lead.proto | 40 +- .../local_services_lead_conversation.proto | 27 +- ...local_services_verification_artifact.proto | 103 +- .../resources/location_view.proto | 20 +- .../resources/managed_placement_view.proto | 14 +- .../{v15 => v18}/resources/media_file.proto | 22 +- .../mobile_app_category_constant.proto | 14 +- .../resources/mobile_device_constant.proto | 18 +- ...ine_conversion_upload_client_summary.proto | 84 +- ...ion_upload_conversion_action_summary.proto | 96 + .../resources/offline_user_data_job.proto | 36 +- .../operating_system_version_constant.proto | 18 +- .../paid_organic_search_term_view.proto | 14 +- .../resources/parental_status_view.proto | 14 +- .../resources/payments_account.proto | 14 +- .../resources/per_store_view.proto | 14 +- .../performance_max_placement_view.proto | 71 + .../resources/product_category_constant.proto | 22 +- .../resources/product_group_view.proto | 14 +- .../{v15 => v18}/resources/product_link.proto | 36 +- .../resources/product_link_invitation.proto | 38 +- .../resources/qualifying_question.proto | 14 +- .../resources/recommendation.proto | 163 +- .../recommendation_subscription.proto | 22 +- .../resources/remarketing_action.proto | 18 +- .../resources/search_term_view.proto | 18 +- .../resources/shared_criterion.proto | 34 +- .../{v15 => v18}/resources/shared_set.proto | 22 +- .../resources/shopping_performance_view.proto | 14 +- .../v18/resources/shopping_product.proto | 303 + .../smart_campaign_search_term_view.proto | 14 +- .../resources/smart_campaign_setting.proto | 14 +- .../third_party_app_analytics_link.proto | 14 +- .../resources/topic_constant.proto | 14 +- .../{v15 => v18}/resources/topic_view.proto | 14 +- .../travel_activity_group_view.proto | 14 +- .../travel_activity_performance_view.proto | 14 +- .../resources/user_interest.proto | 22 +- .../{v15 => v18}/resources/user_list.proto | 58 +- .../resources/user_list_customer_type.proto | 62 + .../resources/user_location_view.proto | 14 +- .../{v15 => v18}/resources/video.proto | 14 +- .../{v15 => v18}/resources/webpage_view.proto | 14 +- .../{v15 => v18}/services/BUILD.bazel | 8 +- .../account_budget_proposal_service.proto | 22 +- .../services/account_link_service.proto | 30 +- .../services/ad_group_ad_label_service.proto | 22 +- .../services/ad_group_ad_service.proto | 87 +- .../services/ad_group_asset_service.proto | 30 +- .../services/ad_group_asset_set_service.proto | 28 +- .../ad_group_bid_modifier_service.proto | 30 +- ...d_group_criterion_customizer_service.proto | 28 +- .../ad_group_criterion_label_service.proto | 22 +- .../services/ad_group_criterion_service.proto | 34 +- .../ad_group_customizer_service.proto | 28 +- .../ad_group_extension_setting_service.proto | 30 +- .../services/ad_group_feed_service.proto | 30 +- .../services/ad_group_label_service.proto | 22 +- .../services/ad_group_service.proto | 30 +- .../services/ad_parameter_service.proto | 30 +- .../{v15 => v18}/services/ad_service.proto | 58 +- .../services/asset_group_asset_service.proto | 24 +- ...t_group_listing_group_filter_service.proto | 30 +- .../services/asset_group_service.proto | 24 +- .../services/asset_group_signal_service.proto | 32 +- .../{v15 => v18}/services/asset_service.proto | 30 +- .../services/asset_set_asset_service.proto | 28 +- .../services/asset_set_service.proto | 30 +- .../services/audience_insights_service.proto | 340 +- .../services/audience_service.proto | 30 +- .../services/batch_job_service.proto | 48 +- .../bidding_data_exclusion_service.proto | 30 +- ...dding_seasonality_adjustment_service.proto | 30 +- .../services/bidding_strategy_service.proto | 30 +- .../services/billing_setup_service.proto | 20 +- .../services/brand_suggestion_service.proto | 24 +- .../services/campaign_asset_service.proto | 30 +- .../services/campaign_asset_set_service.proto | 28 +- .../campaign_bid_modifier_service.proto | 30 +- .../services/campaign_budget_service.proto | 30 +- .../campaign_conversion_goal_service.proto | 22 +- .../services/campaign_criterion_service.proto | 30 +- .../campaign_customizer_service.proto | 28 +- .../services/campaign_draft_service.proto | 42 +- .../campaign_extension_setting_service.proto | 30 +- .../services/campaign_feed_service.proto | 30 +- .../services/campaign_group_service.proto | 30 +- .../services/campaign_label_service.proto | 22 +- .../campaign_lifecycle_goal_service.proto | 39 +- .../services/campaign_service.proto | 30 +- .../campaign_shared_set_service.proto | 28 +- .../content_creator_insights_service.proto | 155 + .../services/conversion_action_service.proto | 32 +- ...conversion_adjustment_upload_service.proto | 30 +- .../conversion_custom_variable_service.proto | 32 +- ...version_goal_campaign_config_service.proto | 28 +- .../services/conversion_upload_service.proto | 42 +- .../conversion_value_rule_service.proto | 32 +- .../conversion_value_rule_set_service.proto | 32 +- .../services/custom_audience_service.proto | 24 +- .../custom_conversion_goal_service.proto | 32 +- .../services/custom_interest_service.proto | 24 +- .../services/customer_asset_service.proto | 30 +- .../services/customer_asset_set_service.proto | 28 +- .../customer_client_link_service.proto | 24 +- .../customer_conversion_goal_service.proto | 22 +- .../customer_customizer_service.proto | 28 +- .../customer_extension_setting_service.proto | 30 +- .../services/customer_feed_service.proto | 30 +- .../services/customer_label_service.proto | 22 +- .../customer_lifecycle_goal_service.proto | 37 +- .../customer_manager_link_service.proto | 26 +- .../customer_negative_criterion_service.proto | 28 +- .../services/customer_service.proto | 44 +- ...work_conversion_value_schema_service.proto | 33 +- ...tomer_user_access_invitation_service.proto | 22 +- .../customer_user_access_service.proto | 22 +- .../customizer_attribute_service.proto | 28 +- .../v18/services/data_link_service.proto | 83 + .../services/experiment_arm_service.proto | 30 +- .../services/experiment_service.proto | 50 +- .../extension_feed_item_service.proto | 30 +- .../services/feed_item_service.proto | 30 +- .../services/feed_item_set_link_service.proto | 22 +- .../services/feed_item_set_service.proto | 24 +- .../services/feed_item_target_service.proto | 28 +- .../services/feed_mapping_service.proto | 28 +- .../{v15 => v18}/services/feed_service.proto | 30 +- .../geo_target_constant_service.proto | 26 +- .../services/google_ads_field_service.proto | 30 +- .../services/google_ads_service.proto | 969 +- .../identity_verification_service.proto | 148 + .../services/invoice_service.proto | 26 +- ...eyword_plan_ad_group_keyword_service.proto | 24 +- .../keyword_plan_ad_group_service.proto | 24 +- ...eyword_plan_campaign_keyword_service.proto | 24 +- .../keyword_plan_campaign_service.proto | 24 +- .../services/keyword_plan_idea_service.proto | 84 +- .../services/keyword_plan_service.proto | 24 +- .../keyword_theme_constant_service.proto | 24 +- .../{v15 => v18}/services/label_service.proto | 30 +- .../local_services_lead_service.proto | 96 + .../offline_user_data_job_service.proto | 42 +- .../services/payments_account_service.proto | 22 +- .../product_link_invitation_service.proto | 145 + .../services/product_link_service.proto | 28 +- .../services/reach_plan_service.proto | 83 +- .../services/recommendation_service.proto | 348 +- .../recommendation_subscription_service.proto | 28 +- .../services/remarketing_action_service.proto | 24 +- .../services/shareable_preview_service.proto | 102 + .../services/shared_criterion_service.proto | 28 +- .../services/shared_set_service.proto | 30 +- .../smart_campaign_setting_service.proto | 42 +- .../smart_campaign_suggest_service.proto | 52 +- ...ird_party_app_analytics_link_service.proto | 20 +- .../travel_asset_suggestion_service.proto | 34 +- .../services/user_data_service.proto | 28 +- .../user_list_customer_type_service.proto | 123 + .../services/user_list_service.proto | 24 +- .../ads/searchads360/v0/common/ad_asset.proto | 34 + .../v0/common/ad_type_infos.proto | 12 +- .../searchads360/v0/common/asset_types.proto | 2 +- .../searchads360/v0/common/asset_usage.proto | 2 +- .../ads/searchads360/v0/common/bidding.proto | 4 +- .../ads/searchads360/v0/common/criteria.proto | 2 +- .../v0/common/custom_parameter.proto | 2 +- .../v0/common/frequency_cap.proto | 2 +- .../ads/searchads360/v0/common/metrics.proto | 35 +- .../v0/common/real_time_bidding_setting.proto | 2 +- .../ads/searchads360/v0/common/segments.proto | 17 +- .../v0/common/targeting_setting.proto | 2 +- .../searchads360/v0/common/text_label.proto | 4 +- google/ads/searchads360/v0/common/value.proto | 2 +- .../v0/enums/account_status.proto | 2 +- .../searchads360/v0/enums/account_type.proto | 2 +- .../v0/enums/ad_group_ad_engine_status.proto | 2 +- .../v0/enums/ad_group_ad_rotation_mode.proto | 2 +- .../v0/enums/ad_group_ad_status.proto | 2 +- .../ad_group_criterion_engine_status.proto | 2 +- .../v0/enums/ad_group_criterion_status.proto | 2 +- .../v0/enums/ad_group_engine_status.proto | 2 +- .../v0/enums/ad_group_status.proto | 2 +- .../searchads360/v0/enums/ad_group_type.proto | 2 +- .../v0/enums/ad_network_type.proto | 2 +- .../ad_serving_optimization_status.proto | 2 +- .../searchads360/v0/enums/ad_strength.proto | 2 +- .../ads/searchads360/v0/enums/ad_type.proto | 5 +- .../enums/advertising_channel_sub_type.proto | 5 +- .../v0/enums/advertising_channel_type.proto | 5 +- .../v0/enums/age_range_type.proto | 2 +- .../v0/enums/asset_engine_status.proto | 2 +- .../v0/enums/asset_field_type.proto | 2 +- .../v0/enums/asset_group_status.proto | 2 +- .../v0/enums/asset_link_status.proto | 2 +- .../v0/enums/asset_set_asset_status.proto | 2 +- .../v0/enums/asset_set_link_status.proto | 2 +- .../searchads360/v0/enums/asset_status.proto | 2 +- .../searchads360/v0/enums/asset_type.proto | 2 +- .../v0/enums/attribution_model.proto | 2 +- .../v0/enums/attribution_type.proto | 2 +- .../v0/enums/bidding_strategy_status.proto | 2 +- .../bidding_strategy_system_status.proto | 2 +- .../v0/enums/bidding_strategy_type.proto | 2 +- .../v0/enums/budget_delivery_method.proto | 2 +- .../searchads360/v0/enums/budget_period.proto | 2 +- .../call_conversion_reporting_state.proto | 2 +- .../v0/enums/call_to_action_type.proto | 2 +- .../v0/enums/campaign_criterion_status.proto | 2 +- .../v0/enums/campaign_serving_status.proto | 2 +- .../v0/enums/campaign_status.proto | 2 +- .../v0/enums/conversion_action_category.proto | 2 +- .../v0/enums/conversion_action_status.proto | 2 +- .../v0/enums/conversion_action_type.proto | 2 +- ...nversion_custom_variable_cardinality.proto | 2 +- .../conversion_custom_variable_family.proto | 2 +- .../conversion_custom_variable_status.proto | 2 +- .../v0/enums/conversion_status.proto | 2 +- .../conversion_tracking_status_enum.proto | 2 +- .../v0/enums/criterion_type.proto | 2 +- .../v0/enums/custom_column_render_type.proto | 61 + .../v0/enums/custom_column_value_type.proto | 5 +- .../v0/enums/customer_status.proto | 2 +- .../v0/enums/data_driven_model_status.proto | 2 +- .../searchads360/v0/enums/day_of_week.proto | 2 +- google/ads/searchads360/v0/enums/device.proto | 2 +- .../enums/floodlight_variable_data_type.proto | 2 +- .../v0/enums/floodlight_variable_type.proto | 2 +- .../searchads360/v0/enums/gender_type.proto | 2 +- .../v0/enums/geo_target_constant_status.proto | 2 +- .../v0/enums/interaction_event_type.proto | 2 +- .../v0/enums/keyword_match_type.proto | 2 +- .../searchads360/v0/enums/label_status.proto | 2 +- ..._group_filter_bidding_category_level.proto | 2 +- ..._group_filter_custom_attribute_index.proto | 2 +- ...listing_group_filter_product_channel.proto | 2 +- ...sting_group_filter_product_condition.proto | 2 +- ...ting_group_filter_product_type_level.proto | 2 +- .../listing_group_filter_type_enum.proto | 2 +- .../enums/listing_group_filter_vertical.proto | 2 +- .../v0/enums/listing_group_type.proto | 2 +- .../enums/location_group_radius_units.proto | 2 +- .../v0/enums/location_ownership_type.proto | 2 +- .../v0/enums/manager_link_status.proto | 2 +- .../ads/searchads360/v0/enums/mime_type.proto | 2 +- .../v0/enums/minute_of_hour.proto | 2 +- .../v0/enums/mobile_app_vendor.proto | 2 +- .../v0/enums/negative_geo_target_type.proto | 2 +- .../v0/enums/optimization_goal_type.proto | 2 +- .../v0/enums/positive_geo_target_type.proto | 2 +- .../product_bidding_category_level.proto | 2 +- .../product_bidding_category_status.proto | 2 +- .../v0/enums/product_channel.proto | 2 +- .../enums/product_channel_exclusivity.proto | 2 +- .../v0/enums/product_condition.proto | 2 +- .../v0/enums/quality_score_bucket.proto | 2 +- .../enums/search_ads360_field_category.proto | 2 +- .../enums/search_ads360_field_data_type.proto | 2 +- .../v0/enums/served_asset_field_type.proto | 2 +- .../v0/enums/summary_row_setting.proto | 2 +- .../target_impression_share_location.proto | 2 +- .../v0/enums/targeting_dimension.proto | 2 +- .../v0/enums/user_list_type.proto | 2 +- .../v0/enums/webpage_condition_operand.proto | 2 +- .../v0/enums/webpage_condition_operator.proto | 2 +- .../v0/errors/authentication_error.proto | 2 +- .../v0/errors/authorization_error.proto | 2 +- .../v0/errors/custom_column_error.proto | 2 +- .../searchads360/v0/errors/date_error.proto | 2 +- .../v0/errors/date_range_error.proto | 2 +- .../v0/errors/distinct_error.proto | 2 +- .../ads/searchads360/v0/errors/errors.proto | 4 +- .../searchads360/v0/errors/header_error.proto | 2 +- .../v0/errors/internal_error.proto | 2 +- .../v0/errors/invalid_parameter_error.proto | 2 +- .../searchads360/v0/errors/query_error.proto | 2 +- .../searchads360/v0/errors/quota_error.proto | 2 +- .../v0/errors/request_error.proto | 2 +- .../v0/errors/size_limit_error.proto | 2 +- .../accessible_bidding_strategy.proto | 2 +- google/ads/searchads360/v0/resources/ad.proto | 2 +- .../searchads360/v0/resources/ad_group.proto | 12 +- .../v0/resources/ad_group_ad.proto | 6 +- .../v0/resources/ad_group_ad_label.proto | 6 +- .../v0/resources/ad_group_asset.proto | 2 +- .../v0/resources/ad_group_asset_set.proto | 2 +- .../v0/resources/ad_group_audience_view.proto | 2 +- .../v0/resources/ad_group_bid_modifier.proto | 2 +- .../v0/resources/ad_group_criterion.proto | 2 +- .../resources/ad_group_criterion_label.proto | 6 +- .../resources/ad_group_effective_label.proto | 73 + .../v0/resources/ad_group_label.proto | 6 +- .../v0/resources/age_range_view.proto | 2 +- .../ads/searchads360/v0/resources/asset.proto | 2 +- .../v0/resources/asset_group.proto | 2 +- .../v0/resources/asset_group_asset.proto | 2 +- .../asset_group_listing_group_filter.proto | 2 +- .../v0/resources/asset_group_signal.proto | 2 +- .../asset_group_top_combination_view.proto | 2 +- .../searchads360/v0/resources/asset_set.proto | 2 +- .../v0/resources/asset_set_asset.proto | 2 +- .../searchads360/v0/resources/audience.proto | 2 +- .../v0/resources/bidding_strategy.proto | 2 +- .../searchads360/v0/resources/campaign.proto | 19 +- .../v0/resources/campaign_asset.proto | 2 +- .../v0/resources/campaign_asset_set.proto | 2 +- .../v0/resources/campaign_audience_view.proto | 2 +- .../v0/resources/campaign_budget.proto | 2 +- .../v0/resources/campaign_criterion.proto | 2 +- .../resources/campaign_effective_label.proto | 73 + .../v0/resources/campaign_label.proto | 6 +- .../v0/resources/cart_data_sales_view.proto | 2 +- .../v0/resources/conversion.proto | 10 +- .../v0/resources/conversion_action.proto | 2 +- .../conversion_custom_variable.proto | 2 +- .../v0/resources/custom_column.proto | 9 +- .../searchads360/v0/resources/customer.proto | 2 +- .../v0/resources/customer_asset.proto | 2 +- .../v0/resources/customer_asset_set.proto | 2 +- .../v0/resources/customer_client.proto | 2 +- .../v0/resources/customer_manager_link.proto | 7 +- .../dynamic_search_ads_search_term_view.proto | 2 +- .../v0/resources/gender_view.proto | 2 +- .../v0/resources/geo_target_constant.proto | 2 +- .../v0/resources/keyword_view.proto | 2 +- .../ads/searchads360/v0/resources/label.proto | 2 +- .../v0/resources/language_constant.proto | 2 +- .../v0/resources/location_view.proto | 2 +- .../product_bidding_category_constant.proto | 2 +- .../v0/resources/product_group_view.proto | 2 +- .../v0/resources/search_ads360_field.proto | 2 +- .../resources/shopping_performance_view.proto | 2 +- .../searchads360/v0/resources/user_list.proto | 2 +- .../ads/searchads360/v0/resources/visit.proto | 2 +- .../v0/resources/webpage_view.proto | 2 +- .../v0/services/custom_column_service.proto | 2 +- .../v0/services/customer_service.proto | 2 +- .../search_ads360_field_service.proto | 2 +- .../v0/services/search_ads360_service.proto | 12 +- .../v1/generative_service.proto | 237 +- .../v1/generativelanguage_v1.yaml | 2 + google/ai/generativelanguage/v1/model.proto | 28 +- .../generativelanguage/v1/model_service.proto | 13 +- google/ai/generativelanguage/v1/safety.proto | 30 +- .../ai/generativelanguage/v1beta/BUILD.bazel | 3 + .../generativelanguage/v1beta/content.proto | 53 +- .../v1beta/generative_service.proto | 424 +- .../v1beta/generativelanguage_v1beta.yaml | 1 + .../ai/generativelanguage/v1beta/model.proto | 19 +- .../v1beta/model_service.proto | 21 +- .../v1beta/prediction_service.proto | 68 + .../ai/generativelanguage/v1beta/safety.proto | 30 +- .../v1beta/tuned_model.proto | 17 +- .../admin/v1alpha/analytics_admin.proto | 407 +- .../admin/v1alpha/analyticsadmin_v1alpha.yaml | 20 + google/analytics/admin/v1alpha/audience.proto | 5 + .../admin/v1alpha/channel_group.proto | 8 + .../admin/v1alpha/event_create_and_edit.proto | 45 + .../analytics/admin/v1alpha/resources.proto | 94 + google/analytics/admin/v1beta/BUILD.bazel | 4 +- .../admin/v1beta/access_report.proto | 2 +- .../admin/v1beta/analytics_admin.proto | 185 +- .../admin/v1beta/analyticsadmin_v1beta.yaml | 10 + google/analytics/admin/v1beta/resources.proto | 106 +- .../v1alpha1 => analytics/cloud}/BUILD.bazel | 150 +- google/analytics/cloud/README.md | 3 + .../cloud/bigquery_export_platform_log.proto | 52 + google/analytics/data/v1alpha/BUILD.bazel | 1 - .../data/v1alpha/analytics_data_api.proto | 64 +- google/analytics/data/v1alpha/data.proto | 26 +- google/analytics/data/v1beta/BUILD.bazel | 14 +- .../data/v1beta/analytics_data_api.proto | 13 + google/analytics/data/v1beta/data.proto | 38 +- google/api/client.proto | 49 +- google/api/context.proto | 6 +- google/api/endpoint.proto | 12 +- google/api/error_reason.proto | 33 + google/api/expr/v1alpha1/syntax.proto | 46 +- google/api/field_info.proto | 39 +- google/api/http.proto | 48 +- google/api/metric.proto | 19 + google/api/policy.proto | 6 +- google/api/resource.proto | 9 +- google/api/servicecontrol/v1/BUILD.bazel | 2 +- google/api/servicemanagement/v1/BUILD.bazel | 2 +- google/api/serviceusage/v1/BUILD.bazel | 2 +- google/appengine/v1/BUILD.bazel | 2 +- .../admin/v2/bigtable_table_admin.proto | 4 +- google/bigtable/admin/v2/instance.proto | 44 + google/bigtable/admin/v2/table.proto | 48 +- google/bigtable/admin/v2/types.proto | 157 +- google/bigtable/v2/data.proto | 25 + google/bigtable/v2/feature_flags.proto | 6 + google/bigtable/v2/types.proto | 8 + google/chat/v1/annotation.proto | 29 + google/chat/v1/chat_grpc_service_config.json | 1 + google/chat/v1/chat_service.proto | 105 +- google/chat/v1/chat_v1.yaml | 5 + google/chat/v1/membership.proto | 71 +- google/chat/v1/message.proto | 27 +- google/chat/v1/space.proto | 420 +- google/chat/v1/space_event.proto | 2 + .../cloud/abuseevent/logging/v1/BUILD.bazel | 4 +- .../abuseevent/logging/v1/abuse_event.proto | 7 +- google/cloud/accessapproval/v1/BUILD.bazel | 2 +- google/cloud/aiplatform/v1/BUILD.bazel | 4 + .../aiplatform/v1/accelerator_type.proto | 5 +- google/cloud/aiplatform/v1/aiplatform_v1.yaml | 31 + .../aiplatform/v1/batch_prediction_job.proto | 6 + google/cloud/aiplatform/v1/content.proto | 218 +- google/cloud/aiplatform/v1/custom_job.proto | 41 + google/cloud/aiplatform/v1/data_item.proto | 6 + google/cloud/aiplatform/v1/dataset.proto | 13 +- .../cloud/aiplatform/v1/dataset_service.proto | 22 + .../cloud/aiplatform/v1/dataset_version.proto | 13 +- .../v1/deployment_resource_pool.proto | 6 + google/cloud/aiplatform/v1/endpoint.proto | 22 + google/cloud/aiplatform/v1/entity_type.proto | 6 + .../aiplatform/v1/evaluation_service.proto | 1193 +++ .../cloud/aiplatform/v1/feature_group.proto | 31 + .../aiplatform/v1/feature_online_store.proto | 6 + .../feature_online_store_admin_service.proto | 18 +- .../v1/feature_online_store_service.proto | 59 + .../v1/feature_registry_service.proto | 3 + google/cloud/aiplatform/v1/feature_view.proto | 33 + .../aiplatform/v1/feature_view_sync.proto | 10 + google/cloud/aiplatform/v1/featurestore.proto | 6 + .../aiplatform/v1/featurestore_service.proto | 3 +- .../aiplatform/v1/genai_tuning_service.proto | 55 + .../v1/hyperparameter_tuning_job.proto | 6 + google/cloud/aiplatform/v1/index.proto | 6 + .../cloud/aiplatform/v1/index_endpoint.proto | 12 + .../aiplatform/v1/llm_utility_service.proto | 16 + .../aiplatform/v1/machine_resources.proto | 12 + .../v1/model_deployment_monitoring_job.proto | 6 + .../aiplatform/v1/model_garden_service.proto | 9 +- google/cloud/aiplatform/v1/nas_job.proto | 6 + .../v1/notebook_execution_job.proto | 164 + .../aiplatform/v1/notebook_service.proto | 175 + google/cloud/aiplatform/v1/openapi.proto | 14 +- .../aiplatform/v1/persistent_resource.proto | 9 + .../aiplatform/v1/prediction_service.proto | 73 +- .../cloud/aiplatform/v1/publisher_model.proto | 3 + .../aiplatform/v1/reservation_affinity.proto | 71 + google/cloud/aiplatform/v1/schedule.proto | 6 + .../aiplatform/v1/service_networking.proto | 24 + google/cloud/aiplatform/v1/study.proto | 1 - google/cloud/aiplatform/v1/tool.proto | 37 +- google/cloud/aiplatform/v1/tuning_job.proto | 40 +- google/cloud/aiplatform/v1beta1/BUILD.bazel | 3 + .../aiplatform/v1beta1/accelerator_type.proto | 5 +- .../v1beta1/aiplatform_v1beta1.yaml | 19 + .../cloud/aiplatform/v1beta1/api_auth.proto | 49 + .../v1beta1/batch_prediction_job.proto | 6 + .../aiplatform/v1beta1/cached_content.proto | 28 + google/cloud/aiplatform/v1beta1/content.proto | 192 +- .../cloud/aiplatform/v1beta1/custom_job.proto | 46 + .../cloud/aiplatform/v1beta1/data_item.proto | 6 + google/cloud/aiplatform/v1beta1/dataset.proto | 13 +- .../aiplatform/v1beta1/dataset_service.proto | 28 + .../aiplatform/v1beta1/dataset_version.proto | 13 +- .../v1beta1/deployment_resource_pool.proto | 6 + .../cloud/aiplatform/v1beta1/endpoint.proto | 22 + .../aiplatform/v1beta1/entity_type.proto | 6 + .../v1beta1/evaluation_service.proto | 88 + .../aiplatform/v1beta1/feature_group.proto | 31 + .../v1beta1/feature_online_store.proto | 6 + .../feature_online_store_admin_service.proto | 18 +- .../feature_online_store_service.proto | 59 + .../v1beta1/feature_registry_service.proto | 3 + .../aiplatform/v1beta1/feature_view.proto | 29 + .../v1beta1/feature_view_sync.proto | 10 + .../aiplatform/v1beta1/featurestore.proto | 6 + .../v1beta1/featurestore_service.proto | 3 +- .../v1beta1/genai_tuning_service.proto | 55 + .../v1beta1/hyperparameter_tuning_job.proto | 6 + google/cloud/aiplatform/v1beta1/index.proto | 6 + .../aiplatform/v1beta1/index_endpoint.proto | 12 + google/cloud/aiplatform/v1beta1/io.proto | 111 + .../v1beta1/llm_utility_service.proto | 8 + .../v1beta1/machine_resources.proto | 12 + .../model_deployment_monitoring_job.proto | 6 + .../v1beta1/model_garden_service.proto | 13 +- .../aiplatform/v1beta1/model_monitor.proto | 6 + google/cloud/aiplatform/v1beta1/nas_job.proto | 6 + .../v1beta1/notebook_execution_job.proto | 6 + google/cloud/aiplatform/v1beta1/openapi.proto | 14 +- .../v1beta1/persistent_resource.proto | 14 + .../aiplatform/v1beta1/pipeline_job.proto | 109 + .../v1beta1/prediction_service.proto | 114 +- .../aiplatform/v1beta1/publisher_model.proto | 3 + .../v1beta1/reservation_affinity.proto | 71 + .../v1beta1/service_networking.proto | 53 + google/cloud/aiplatform/v1beta1/study.proto | 1 - google/cloud/aiplatform/v1beta1/tool.proto | 38 +- .../cloud/aiplatform/v1beta1/tuning_job.proto | 210 +- .../aiplatform/v1beta1/ui_pipeline_spec.proto | 85 + .../aiplatform/v1beta1/vertex_rag_data.proto | 212 + .../v1beta1/vertex_rag_data_service.proto | 39 + .../v1beta1/vertex_rag_service.proto | 19 +- google/cloud/alloydb/v1/BUILD.bazel | 21 +- google/cloud/alloydb/v1/data_model.proto | 62 + google/cloud/alloydb/v1/resources.proto | 251 +- google/cloud/alloydb/v1/service.proto | 482 +- google/cloud/alloydb/v1beta/resources.proto | 56 +- google/cloud/apigateway/v1/BUILD.bazel | 2 +- google/cloud/apigeeconnect/v1/BUILD.bazel | 2 +- google/cloud/apigeeregistry/v1/BUILD.bazel | 2 +- google/cloud/apihub/BUILD.bazel | 36 + google/cloud/apihub/v1/BUILD.bazel | 412 + google/cloud/apihub/v1/apihub_service.proto | 1836 ++++ google/cloud/apihub/v1/apihub_v1.yaml | 136 + .../v1/apihub_v1_grpc_service_config.json | 77 + google/cloud/apihub/v1/common_fields.proto | 1297 +++ .../host_project_registration_service.proto | 207 + google/cloud/apihub/v1/linting_service.proto | 159 + google/cloud/apihub/v1/plugin_service.proto | 148 + .../apihub/v1/provisioning_service.proto | 136 + .../runtime_project_attachment_service.proto | 261 + google/cloud/asset/v1/BUILD.bazel | 2 +- google/cloud/asset/v1/asset_service.proto | 9 +- google/cloud/asset/v1/assets.proto | 5 +- .../asset/v1p1beta1/cloudasset_v1p1beta1.yaml | 2 +- .../asset/v1p2beta1/cloudasset_v1p2beta1.yaml | 2 +- .../asset/v1p5beta1/cloudasset_v1p5beta1.yaml | 2 +- .../asset/v1p7beta1/cloudasset_v1p7beta1.yaml | 2 +- google/cloud/automl/v1/BUILD.bazel | 2 +- google/cloud/backupdr/logging/v1/BUILD.bazel | 18 +- .../cloud/backupdr/logging/v1/bdr_log.proto | 83 + .../cloud/backupdr/logging/v1/reportlog.proto | 59 +- google/cloud/backupdr/v1/BUILD.bazel | 15 + google/cloud/backupdr/v1/backupdr.proto | 285 +- .../v1/backupdr_grpc_service_config.json | 52 + google/cloud/backupdr/v1/backupdr_v1.yaml | 1 + google/cloud/backupdr/v1/backupplan.proto | 438 + .../backupdr/v1/backupplanassociation.proto | 313 + google/cloud/backupdr/v1/backupvault.proto | 1146 +++ google/cloud/backupdr/v1/backupvault_ba.proto | 49 + .../cloud/backupdr/v1/backupvault_gce.proto | 949 ++ google/cloud/batch/v1/BUILD.bazel | 2 +- .../v1/batch_v1_grpc_service_config.json | 8 +- google/cloud/batch/v1/job.proto | 26 +- google/cloud/batch/v1/task.proto | 118 +- google/cloud/batch/v1alpha/batch.proto | 43 + .../batch_v1alpha_grpc_service_config.json | 8 +- google/cloud/batch/v1alpha/job.proto | 29 +- google/cloud/batch/v1alpha/task.proto | 118 +- .../cloud/bigquery/connection/v1/BUILD.bazel | 2 +- .../bigquery/datatransfer/v1/BUILD.bazel | 2 +- .../datatransfer/v1/datatransfer.proto | 40 +- .../bigquery/datatransfer/v1/transfer.proto | 73 + .../cloud/bigquery/reservation/v1/BUILD.bazel | 2 +- google/cloud/bigquery/storage/v1/BUILD.bazel | 2 +- .../cloud/bigquery/storage/v1/storage.proto | 15 + .../bigquery/storage/v1alpha/BUILD.bazel | 394 + .../v1alpha/bigquerystorage_v1alpha.yaml | 42 + ...rystorage_v1alpha_grpc_service_config.json | 42 + .../storage/v1alpha/metastore_partition.proto | 282 + .../bigquery/storage/v1alpha/partition.proto | 140 + google/cloud/bigquery/v2/BUILD.bazel | 2 +- google/cloud/bigquery/v2/dataset.proto | 27 +- .../v2/external_catalog_table_options.proto | 4 +- google/cloud/bigquery/v2/job.proto | 34 +- google/cloud/bigquery/v2/job_config.proto | 2 +- .../bigquery/v2/job_creation_reason.proto | 2 +- google/cloud/bigquery/v2/job_stats.proto | 115 +- google/cloud/bigquery/v2/model.proto | 12 +- .../bigquery/v2/restriction_config.proto | 4 +- google/cloud/bigquery/v2/routine.proto | 11 - google/cloud/bigquery/v2/standard_sql.proto | 7 + google/cloud/bigquery/v2/table.proto | 21 +- google/cloud/bigquery/v2/table_schema.proto | 14 +- google/cloud/billing/budgets/v1/BUILD.bazel | 2 +- google/cloud/billing/v1/BUILD.bazel | 2 +- google/cloud/channel/v1/BUILD.bazel | 2 +- google/cloud/channel/v1/service.proto | 18 +- .../cloudcontrolspartner/v1/customers.proto | 13 +- .../v1/partner_permissions.proto | 3 + .../v1beta/customers.proto | 13 +- .../v1beta/partner_permissions.proto | 3 + google/cloud/clouddms/v1/BUILD.bazel | 2 +- .../commerce/consumer/procurement/BUILD.bazel | 2 +- .../consumer/procurement/v1/BUILD.bazel | 29 +- .../cloudcommerceconsumerprocurement_v1.yaml | 11 +- .../v1/license_management_service.proto | 227 + .../consumer/procurement/v1/order.proto | 24 +- .../procurement/v1/procurement_service.proto | 132 +- .../consumer/procurement/v1alpha1/BUILD.bazel | 31 +- google/cloud/compute/v1/BUILD.bazel | 1 - .../contactcenterinsights/v1/BUILD.bazel | 2 +- .../v1/contact_center_insights.proto | 248 +- .../v1/contactcenterinsights_v1.yaml | 6 + .../contactcenterinsights/v1/resources.proto | 105 +- google/cloud/datacatalog/v1/BUILD.bazel | 2 +- .../datacatalog/v1beta1/datacatalog.proto | 9 +- google/cloud/datacatalog/v1beta1/tags.proto | 34 +- google/cloud/dataproc/v1/BUILD.bazel | 2 +- google/cloud/dataproc/v1/batches.proto | 5 + google/cloud/dataproc/v1/clusters.proto | 155 +- google/cloud/dataproc/v1/jobs.proto | 102 +- .../cloud/dataproc/v1/session_templates.proto | 4 + google/cloud/dataproc/v1/sessions.proto | 14 +- google/cloud/dataproc/v1/shared.proto | 13 +- .../dataproc/v1/workflow_templates.proto | 54 + google/cloud/datastream/v1/BUILD.bazel | 2 +- google/cloud/deploy/v1/BUILD.bazel | 8 + google/cloud/deploy/v1/cloud_deploy.proto | 764 +- .../v1/clouddeploy_grpc_service_config.json | 20 + google/cloud/deploy/v1/clouddeploy_v1.yaml | 3 + ...ustomtargettype_notification_payload.proto | 41 + .../v1/deploypolicy_evaluation_payload.proto | 101 + .../deploypolicy_notification_payload.proto | 42 + google/cloud/deploy/v1/log_enums.proto | 3 + .../dialogflow/cx/v3/advanced_settings.proto | 45 +- google/cloud/dialogflow/cx/v3/agent.proto | 26 +- .../cx/v3/data_store_connection.proto | 182 + google/cloud/dialogflow/cx/v3/flow.proto | 28 + .../dialogflow/cx/v3/security_settings.proto | 9 + google/cloud/dialogflow/cx/v3/session.proto | 21 + google/cloud/dialogflow/cx/v3/test_case.proto | 10 +- google/cloud/dialogflow/cx/v3/webhook.proto | 70 + .../cx/v3beta1/advanced_settings.proto | 9 +- .../cx/v3beta1/data_store_connection.proto | 8 + google/cloud/dialogflow/cx/v3beta1/flow.proto | 4 + google/cloud/dialogflow/cx/v3beta1/page.proto | 7 + .../cloud/dialogflow/cx/v3beta1/session.proto | 3 + .../dialogflow/cx/v3beta1/test_case.proto | 10 +- google/cloud/dialogflow/cx/v3beta1/tool.proto | 20 + google/cloud/dialogflow/v2/BUILD.bazel | 7 + .../cloud/dialogflow/v2/answer_record.proto | 20 + google/cloud/dialogflow/v2/audio_config.proto | 30 + google/cloud/dialogflow/v2/conversation.proto | 155 +- .../dialogflow/v2/conversation_dataset.proto | 8 + .../dialogflow/v2/conversation_model.proto | 8 + .../dialogflow/v2/conversation_profile.proto | 37 +- google/cloud/dialogflow/v2/dialogflow_v2.yaml | 18 + .../cloud/dialogflow/v2/encryption_spec.proto | 118 + google/cloud/dialogflow/v2/generator.proto | 439 + google/cloud/dialogflow/v2/participant.proto | 136 + google/cloud/dialogflow/v2beta1/BUILD.bazel | 7 + .../dialogflow/v2beta1/answer_record.proto | 20 + .../dialogflow/v2beta1/audio_config.proto | 29 + .../dialogflow/v2beta1/conversation.proto | 169 +- .../v2beta1/conversation_profile.proto | 34 +- .../dialogflow_grpc_service_config.json | 39 +- .../v2beta1/dialogflow_v2beta1.yaml | 18 + .../dialogflow/v2beta1/encryption_spec.proto | 118 + .../cloud/dialogflow/v2beta1/generator.proto | 439 + .../dialogflow/v2beta1/participant.proto | 148 +- google/cloud/discoveryengine/BUILD.bazel | 2 +- google/cloud/discoveryengine/v1/BUILD.bazel | 5 + google/cloud/discoveryengine/v1/answer.proto | 74 +- google/cloud/discoveryengine/v1/common.proto | 4 + google/cloud/discoveryengine/v1/control.proto | 19 +- .../discoveryengine/v1/control_service.proto | 12 +- .../v1/conversational_search_service.proto | 92 +- .../v1/custom_tuning_model.proto | 101 + .../cloud/discoveryengine/v1/data_store.proto | 84 + .../v1/data_store_service.proto | 10 + .../v1/discoveryengine_v1.yaml | 19 +- .../cloud/discoveryengine/v1/document.proto | 20 + .../v1/document_processing_config.proto | 14 +- .../discoveryengine/v1/document_service.proto | 133 + google/cloud/discoveryengine/v1/engine.proto | 6 +- .../v1/grounded_generation_service.proto | 343 +- .../discoveryengine/v1/import_config.proto | 20 +- google/cloud/discoveryengine/v1/project.proto | 2 +- .../discoveryengine/v1/purge_config.proto | 117 + .../discoveryengine/v1/rank_service.proto | 2 +- .../v1/recommendation_service.proto | 3 +- .../discoveryengine/v1/search_service.proto | 195 +- .../v1/search_tuning_service.proto | 196 + .../v1/site_search_engine_service.proto | 5 + .../cloud/discoveryengine/v1/user_event.proto | 6 +- .../v1/user_event_service.proto | 21 + .../cloud/discoveryengine/v1alpha/BUILD.bazel | 12 + .../v1alpha/acl_config_service.proto | 2 +- .../discoveryengine/v1alpha/answer.proto | 63 +- .../cloud/discoveryengine/v1alpha/chunk.proto | 2 +- .../discoveryengine/v1alpha/completion.proto | 31 + .../v1alpha/completion_service.proto | 38 + .../discoveryengine/v1alpha/control.proto | 2 +- .../conversational_search_service.proto | 37 +- .../v1alpha/custom_tuning_model.proto | 11 +- .../discoveryengine/v1alpha/data_store.proto | 71 + .../v1alpha/data_store_service.proto | 12 +- .../discoveryengine_grpc_service_config.json | 12 + .../v1alpha/discoveryengine_v1alpha.yaml | 28 + .../discoveryengine/v1alpha/document.proto | 25 +- .../v1alpha/document_processing_config.proto | 8 +- .../v1alpha/document_service.proto | 109 +- .../discoveryengine/v1alpha/evaluation.proto | 232 + .../v1alpha/evaluation_service.proto | 252 + .../v1alpha/grounded_generation_service.proto | 3 +- .../v1alpha/import_config.proto | 207 +- .../v1alpha/purge_config.proto | 59 +- .../v1alpha/sample_query.proto | 86 + .../v1alpha/sample_query_service.proto | 264 + .../v1alpha/sample_query_set.proto | 64 + .../v1alpha/sample_query_set_service.proto | 258 + .../discoveryengine/v1alpha/schema.proto | 5 + .../v1alpha/search_service.proto | 440 +- .../v1alpha/serving_config.proto | 19 +- .../v1alpha/site_search_engine_service.proto | 126 + .../discoveryengine/v1alpha/user_event.proto | 4 + .../v1alpha/user_event_service.proto | 3 + .../cloud/discoveryengine/v1beta/BUILD.bazel | 14 +- .../cloud/discoveryengine/v1beta/answer.proto | 63 +- .../cloud/discoveryengine/v1beta/chunk.proto | 119 + .../cloud/discoveryengine/v1beta/common.proto | 5 - .../discoveryengine/v1beta/completion.proto | 31 + .../v1beta/completion_service.proto | 38 + .../discoveryengine/v1beta/control.proto | 2 +- .../conversational_search_service.proto | 34 +- .../v1beta/custom_tuning_model.proto | 11 +- .../discoveryengine/v1beta/data_store.proto | 23 + .../v1beta/data_store_service.proto | 10 + .../discoveryengine_grpc_service_config.json | 12 + .../v1beta/discoveryengine_v1beta.yaml | 23 + .../discoveryengine/v1beta/document.proto | 22 +- .../v1beta/document_processing_config.proto | 41 +- .../v1beta/document_service.proto | 114 + .../discoveryengine/v1beta/evaluation.proto | 231 + .../v1beta/evaluation_service.proto | 252 + .../v1beta/grounded_generation_service.proto | 3 +- .../v1beta/import_config.proto | 207 +- .../discoveryengine/v1beta/purge_config.proto | 155 + .../discoveryengine/v1beta/sample_query.proto | 86 + .../v1beta/sample_query_service.proto | 264 + .../v1beta/sample_query_set.proto | 64 + .../v1beta/sample_query_set_service.proto | 256 + .../v1beta/search_service.proto | 485 +- .../v1beta/serving_config.proto | 16 +- .../discoveryengine/v1beta/user_event.proto | 4 + .../v1beta/user_event_service.proto | 24 + .../cloud/documentai/documentai_v1beta1.yaml | 29 - google/cloud/documentai/v1/BUILD.bazel | 2 +- google/cloud/documentai/v1/document_io.proto | 3 +- .../v1/document_processor_service.proto | 8 +- google/cloud/documentai/v1/documentai_v1.yaml | 17 + .../v1/documentai_v1_grpc_service_config.json | 15 +- google/cloud/documentai/v1/processor.proto | 51 + google/cloud/documentai/v1beta1/BUILD.bazel | 352 - .../cloud/documentai/v1beta1/document.proto | 449 - .../v1beta1/document_understanding.proto | 302 - .../documentai/v1beta1/documentai_gapic.yaml | 17 - .../documentai_grpc_service_config.json | 22 - .../cloud/documentai/v1beta1/geometry.proto | 57 - google/cloud/documentai/v1beta2/barcode.proto | 69 - .../cloud/documentai/v1beta2/document.proto | 982 -- .../v1beta2/document_understanding.proto | 339 - .../documentai/v1beta2/documentai_gapic.yaml | 16 - .../v1beta2/documentai_v1beta2.yaml | 71 - ...ocumentai_v1beta2_grpc_service_config.json | 26 - .../cloud/documentai/v1beta2/geometry.proto | 55 - google/cloud/documentai/v1beta3/dataset.proto | 12 + .../cloud/documentai/v1beta3/document.proto | 4 +- .../documentai/v1beta3/document_io.proto | 3 +- .../v1beta3/document_processor_service.proto | 12 +- .../documentai/v1beta3/document_schema.proto | 8 + .../documentai/v1beta3/document_service.proto | 5 + .../v1beta3/documentai_v1beta3.yaml | 17 + ...ocumentai_v1beta3_grpc_service_config.json | 15 +- .../cloud/documentai/v1beta3/processor.proto | 63 + google/cloud/edgenetwork/v1/resources.proto | 4 +- .../cloud/essentialcontacts/v1/service.proto | 7 +- google/cloud/eventarc/logging/v1/BUILD.bazel | 217 + google/cloud/eventarc/logging/v1/README.md | 5 + .../logging/v1/enrollment_activity.proto | 62 + .../v1/google_api_source_activity.proto | 66 + .../logging/v1/message_bus_activity.proto | 59 + .../logging/v1/pipeline_activity.proto | 169 + .../cloud/eventarc/publishing/v1/BUILD.bazel | 2 +- google/cloud/eventarc/v1/BUILD.bazel | 2 +- google/cloud/filestore/v1/BUILD.bazel | 2 +- google/cloud/functions/v1/functions.proto | 28 +- google/cloud/functions/v2/BUILD.bazel | 4 +- google/cloud/functions/v2/functions.proto | 138 +- google/cloud/functions/v2alpha/BUILD.bazel | 11 +- .../cloud/functions/v2alpha/functions.proto | 134 +- google/cloud/functions/v2beta/BUILD.bazel | 11 +- google/cloud/functions/v2beta/functions.proto | 134 +- ...anagement_v1alpha_grpc_service_config.json | 1 + .../v1alpha/resources.proto | 158 +- .../v1alpha/service.proto | 141 +- .../cloud/gkeconnect/gateway/v1/BUILD.bazel | 243 +- .../gateway/v1/connectgateway_v1.yaml | 52 +- ...onnectgateway_v1_grpc_service_config.json} | 2 +- .../cloud/gkeconnect/gateway/v1/control.proto | 95 + .../cloud/gkeconnect/gateway/v1/gateway.proto | 36 - .../v1alpha1/connectgateway_v1alpha1.yaml | 12 - .../gkeconnect/gateway/v1alpha1/gateway.proto | 36 - .../gkeconnect/gateway/v1beta1/BUILD.bazel | 68 +- .../v1beta1/connectgateway_v1beta1.yaml | 17 +- ...tgateway_v1beta1_grpc_service_config.json} | 2 +- .../gkeconnect/gateway/v1beta1/control.proto | 95 + .../gkeconnect/gateway/v1beta1/gateway.proto | 75 - google/cloud/gkemulticloud/v1/BUILD.bazel | 1 + .../gkemulticloud/v1/attached_resources.proto | 4 + .../gkemulticloud/v1/attached_service.proto | 3 +- .../gkemulticloud/v1/aws_resources.proto | 6 +- .../gkemulticloud/v1/azure_resources.proto | 2 +- .../gkemulticloud/v1/common_resources.proto | 71 + .../gkemulticloud/v1/gkemulticloud_v1.yaml | 22 +- google/cloud/iap/v1/BUILD.bazel | 2 +- google/cloud/integrations/v1alpha/BUILD.bazel | 9 + .../integrations/v1alpha/log_entries.proto | 22 + .../integrations/v1alpha/task_config.proto | 19 + google/cloud/iot/v1/BUILD.bazel | 2 +- google/cloud/kms/inventory/v1/BUILD.bazel | 2 +- google/cloud/kms/v1/BUILD.bazel | 2 +- google/cloud/kms/v1/autokey.proto | 22 +- google/cloud/kms/v1/autokey_admin.proto | 23 +- google/cloud/kms/v1/ekm_service.proto | 5 +- google/cloud/kms/v1/resources.proto | 2 +- .../cloud/language/v2/language_service.proto | 32 +- google/cloud/language/v2/language_v2.yaml | 8 - google/cloud/managedidentities/v1/BUILD.bazel | 2 +- .../managedkafka/v1/managedkafka_v1.yaml | 5 +- google/cloud/managedkafka/v1/resources.proto | 4 +- google/cloud/memcache/v1/BUILD.bazel | 2 +- google/cloud/netapp/v1/active_directory.proto | 8 +- google/cloud/netapp/v1/backup.proto | 7 +- google/cloud/netapp/v1/backup_policy.proto | 5 +- google/cloud/netapp/v1/backup_vault.proto | 8 +- .../netapp/v1/cloud_netapp_service.proto | 14 + google/cloud/netapp/v1/kms.proto | 7 +- google/cloud/netapp/v1/replication.proto | 14 +- google/cloud/netapp/v1/snapshot.proto | 7 +- google/cloud/netapp/v1/storage_pool.proto | 30 +- google/cloud/netapp/v1/volume.proto | 25 +- .../cloud/networkconnectivity/v1/BUILD.bazel | 2 +- google/cloud/networkmanagement/v1/BUILD.bazel | 2 +- .../v1/connectivity_test.proto | 12 +- .../networkmanagement/v1/reachability.proto | 37 +- google/cloud/networkmanagement/v1/trace.proto | 282 +- .../networkmanagement/v1beta1/BUILD.bazel | 6 + .../v1beta1/connectivity_test.proto | 12 +- .../v1beta1/networkmanagement_v1beta1.yaml | 5 + .../v1beta1/reachability.proto | 37 +- .../networkmanagement/v1beta1/trace.proto | 282 +- .../v1beta1/vpc_flow_logs.proto | 228 + .../v1beta1/vpc_flow_logs_config.proto | 152 + google/cloud/networkservices/v1/BUILD.bazel | 2 +- google/cloud/oracledatabase/BUILD.bazel | 36 + google/cloud/oracledatabase/v1/BUILD.bazel | 415 + .../v1/autonomous_database.proto | 870 ++ .../autonomous_database_character_set.proto | 64 + .../v1/autonomous_db_backup.proto | 179 + .../v1/autonomous_db_version.proto | 55 + google/cloud/oracledatabase/v1/common.proto | 35 + google/cloud/oracledatabase/v1/db_node.proto | 106 + .../cloud/oracledatabase/v1/db_server.proto | 104 + .../oracledatabase/v1/db_system_shape.proto | 79 + .../cloud/oracledatabase/v1/entitlement.proto | 84 + .../oracledatabase/v1/exadata_infra.proto | 279 + .../cloud/oracledatabase/v1/gi_version.proto | 47 + .../oracledatabase/v1/location_metadata.proto | 34 + .../oracledatabase/v1/oracledatabase.proto | 942 ++ .../v1/oracledatabase_gapic.yaml | 63 + .../oracledatabase/v1/oracledatabase_v1.yaml | 102 + ...oracledatabase_v1_grpc_service_config.json | 39 + .../cloud/oracledatabase/v1/vm_cluster.proto | 256 + .../airflow/service/v1/BUILD.bazel | 2 +- .../airflow/service/v1/environments.proto | 87 +- .../service/v1beta1/environments.proto | 3 + google/cloud/orgpolicy/v2/constraint.proto | 6 + google/cloud/osconfig/v1/BUILD.bazel | 2 +- google/cloud/oslogin/v1/BUILD.bazel | 2 +- .../v1beta2 => parallelstore/v1}/BUILD.bazel | 258 +- .../parallelstore/v1/parallelstore.proto | 764 ++ .../parallelstore/v1/parallelstore_v1.yaml | 98 + .../parallelstore_v1_grpc_service_config.json | 29 + google/cloud/parallelstore/v1beta/BUILD.bazel | 30 +- .../parallelstore/v1beta/parallelstore.proto | 234 +- .../cloud/policytroubleshooter/v1/BUILD.bazel | 2 +- .../v1/recaptchaenterprise.proto | 125 +- .../v1/recaptchaenterprise_v1.yaml | 2 +- .../v1beta1/recaptchaenterprise.proto | 24 +- .../v1beta1/recaptchaenterprise_v1beta1.yaml | 2 +- google/cloud/recommendationengine/BUILD.bazel | 2 +- .../recommendationengine/v1beta1/BUILD.bazel | 2 +- google/cloud/recommender/v1/BUILD.bazel | 2 +- google/cloud/redis/v1/BUILD.bazel | 2 +- google/cloud/resourcesettings/v1/BUILD.bazel | 2 +- google/cloud/retail/BUILD.bazel | 2 +- google/cloud/retail/v2/BUILD.bazel | 31 +- google/cloud/retail/v2/common.proto | 2 +- .../cloud/retail/v2/completion_service.proto | 20 +- .../cloud/retail/v2/generative_question.proto | 72 + .../v2/generative_question_service.proto | 172 + google/cloud/retail/v2/product.proto | 11 +- google/cloud/retail/v2/retail_v2.yaml | 5 + google/cloud/retail/v2/search_service.proto | 178 + google/cloud/retail/v2alpha/BUILD.bazel | 5 +- google/cloud/retail/v2alpha/branch.proto | 3 +- .../cloud/retail/v2alpha/branch_service.proto | 4 +- google/cloud/retail/v2alpha/common.proto | 2 +- .../retail/v2alpha/completion_service.proto | 6 +- .../cloud/retail/v2alpha/export_config.proto | 112 + .../retail/v2alpha/generative_question.proto | 72 + .../v2alpha/generative_question_service.proto | 172 + google/cloud/retail/v2alpha/model.proto | 13 + google/cloud/retail/v2alpha/product.proto | 11 +- .../retail/v2alpha/product_service.proto | 14 + google/cloud/retail/v2alpha/project.proto | 6 +- .../cloud/retail/v2alpha/retail_v2alpha.yaml | 5 + .../cloud/retail/v2alpha/search_service.proto | 178 + .../retail/v2alpha/user_event_service.proto | 17 + google/cloud/retail/v2beta/BUILD.bazel | 33 +- google/cloud/retail/v2beta/common.proto | 2 +- .../retail/v2beta/completion_service.proto | 20 +- .../cloud/retail/v2beta/export_config.proto | 111 + .../retail/v2beta/generative_question.proto | 72 + .../v2beta/generative_question_service.proto | 172 + google/cloud/retail/v2beta/product.proto | 11 +- .../cloud/retail/v2beta/product_service.proto | 14 + google/cloud/retail/v2beta/project.proto | 83 + .../cloud/retail/v2beta/project_service.proto | 93 + google/cloud/retail/v2beta/retail_v2beta.yaml | 14 + .../cloud/retail/v2beta/search_service.proto | 178 + .../retail/v2beta/user_event_service.proto | 17 + google/cloud/run/BUILD.bazel | 2 +- google/cloud/run/v2/BUILD.bazel | 4 + google/cloud/run/v2/build.proto | 157 + google/cloud/run/v2/job.proto | 1 + google/cloud/run/v2/revision.proto | 6 + google/cloud/run/v2/revision_template.proto | 9 +- google/cloud/run/v2/run_v2.yaml | 5 + google/cloud/run/v2/service.proto | 21 +- google/cloud/run/v2/vendor_settings.proto | 64 +- google/cloud/scheduler/v1/BUILD.bazel | 2 +- .../cloud/securesourcemanager/v1/BUILD.bazel | 31 +- .../v1/secure_source_manager.proto | 250 +- .../cloud/security/privateca/v1/BUILD.bazel | 2 +- google/cloud/securitycenter/v1/BUILD.bazel | 3 +- google/cloud/securitycenter/v1/finding.proto | 38 + .../securitycenter/v1/mitre_attack.proto | 8 +- .../cloud/securitycenter/v1/mute_config.proto | 31 + .../v1/securitycenter_service.proto | 23 +- .../securitycenter/v1/securitycenter_v1.yaml | 35 + .../securitycenter/v1/vulnerability.proto | 3 + google/cloud/securitycenter/v2/BUILD.bazel | 1 + .../securitycenter/v2/attack_exposure.proto | 2 +- .../cloud/securitycenter/v2/attack_path.proto | 6 +- .../securitycenter/v2/bigquery_export.proto | 6 +- google/cloud/securitycenter/v2/finding.proto | 38 + .../securitycenter/v2/mitre_attack.proto | 10 +- .../cloud/securitycenter/v2/mute_config.proto | 20 +- .../v2/notification_config.proto | 4 +- google/cloud/securitycenter/v2/resource.proto | 10 +- .../v2/resource_value_config.proto | 22 +- .../v2/securitycenter_service.proto | 87 +- .../cloud/securitycenter/v2/simulation.proto | 2 +- .../securitycenter/v2/vulnerability.proto | 3 + google/cloud/servicedirectory/v1/BUILD.bazel | 2 +- google/cloud/shell/v1/BUILD.bazel | 2 +- google/cloud/speech/v2/BUILD.bazel | 15 +- google/cloud/speech/v2/cloud_speech.proto | 12 +- .../cloud/speech/v2/locations_metadata.proto | 80 + google/cloud/speech/v2/speech_v2.yaml | 1 + google/cloud/sql/BUILD.bazel | 36 + google/cloud/sql/v1/BUILD.bazel | 82 +- .../cloud/sql/v1/cloud_sql_backup_runs.proto | 4 + google/cloud/sql/v1/cloud_sql_connect.proto | 16 + google/cloud/sql/v1/cloud_sql_instances.proto | 24 +- google/cloud/sql/v1/cloud_sql_resources.proto | 86 +- google/cloud/talent/v4/BUILD.bazel | 2 +- google/cloud/texttospeech/v1/cloud_tts.proto | 148 +- .../cloud/texttospeech/v1/cloud_tts_lrs.proto | 2 - .../texttospeech/v1/texttospeech_v1.yaml | 6 +- .../texttospeech/v1beta1/cloud_tts.proto | 148 +- .../texttospeech/v1beta1/cloud_tts_lrs.proto | 2 - .../v1beta1/texttospeech_v1beta1.yaml | 6 +- google/cloud/translate/v3/BUILD.bazel | 94 +- google/cloud/translate/v3/adaptive_mt.proto | 70 +- .../translate/v3/automl_translation.proto | 478 + google/cloud/translate/v3/common.proto | 78 + google/cloud/translate/v3/translate_v3.yaml | 14 +- .../translate/v3/translation_service.proto | 414 +- google/cloud/videointelligence/v1/BUILD.bazel | 2 +- google/cloud/visionai/BUILD.bazel | 37 + google/cloud/visionai/v1/BUILD.bazel | 3 +- google/cloud/visionai/v1/visionai_v1.yaml | 23 +- google/cloud/visionai/v1/warehouse.proto | 65 +- google/cloud/vmwareengine/v1/BUILD.bazel | 16 +- .../cloud/vmwareengine/v1/vmwareengine.proto | 6 +- .../v1/vmwareengine_resources.proto | 99 + google/cloud/vpcaccess/v1/BUILD.bazel | 2 +- google/cloud/webrisk/v1/BUILD.bazel | 2 +- google/container/v1/BUILD.bazel | 3 +- google/container/v1/cluster_service.proto | 597 +- google/container/v1alpha1/BUILD.bazel | 2 +- google/container/v1beta1/BUILD.bazel | 140 +- .../container/v1beta1/cluster_service.proto | 252 +- google/datastore/admin/v1/BUILD.bazel | 2 +- google/datastore/v1/datastore.proto | 141 +- .../v1/datastore_grpc_service_config.json | 9 + google/datastore/v1/query.proto | 80 + .../devtools/artifactregistry/v1/BUILD.bazel | 24 +- .../artifactregistry/v1/artifact.proto | 8 +- .../v1/artifactregistry_v1.yaml | 37 + ...tifactregistry_v1_grpc_service_config.json | 12 + .../artifactregistry/v1/attachment.proto | 160 + .../devtools/artifactregistry/v1/file.proto | 79 +- .../artifactregistry/v1/generic.proto | 55 + .../artifactregistry/v1/package.proto | 65 + .../artifactregistry/v1/repository.proto | 175 +- .../devtools/artifactregistry/v1/rule.proto | 157 + .../artifactregistry/v1/service.proto | 132 + .../artifactregistry/v1/settings.proto | 10 + google/devtools/artifactregistry/v1/tag.proto | 28 +- .../artifactregistry/v1/version.proto | 64 +- .../devtools/cloudbuild/v1/cloudbuild.proto | 54 +- .../clouderrorreporting/v1beta1/BUILD.bazel | 157 +- .../v1beta1/clouderrorreporting_v1beta1.yaml | 3 - .../clouderrorreporting/v1beta1/common.proto | 27 +- .../v1beta1/error_group_service.proto | 31 +- .../v1beta1/error_stats_service.proto | 221 +- .../v1beta1/report_errors_service.proto | 24 +- google/devtools/cloudprofiler/v2/BUILD.bazel | 2 +- .../v1/test_environment_discovery.proto | 10 + google/firestore/admin/v1/database.proto | 120 +- google/firestore/admin/v1/field.proto | 2 +- .../firestore/admin/v1/firestore_admin.proto | 27 +- google/firestore/admin/v1/index.proto | 8 +- google/firestore/admin/v1/operation.proto | 12 +- google/firestore/admin/v1/schedule.proto | 4 +- google/firestore/v1/document.proto | 3 +- google/firestore/v1/query.proto | 42 +- google/iam/credentials/v1/BUILD.bazel | 2 +- google/iam/v1/iam_policy.proto | 16 +- google/iam/v2/BUILD.bazel | 2 +- .../accesscontextmanager/type/BUILD.bazel | 9 + .../accesscontextmanager/v1/BUILD.bazel | 2 +- google/maps/areainsights/v1/BUILD.bazel | 381 + .../v1/area_insights_service.proto | 339 + .../v1/areainsights_grpc_service_config.json} | 4 +- .../maps/areainsights/v1/areainsights_v1.yaml | 48 + .../delivery/v1/delivery_api.proto | 3 +- google/maps/places/v1/BUILD.bazel | 10 +- google/maps/places/v1/place.proto | 6 +- google/maps/places/v1/places_service.proto | 74 +- google/maps/places/v1/polyline.proto | 47 + google/maps/places/v1/route_modifiers.proto | 52 + .../maps/places/v1/routing_preference.proto | 57 + google/maps/places/v1/routing_summary.proto | 54 + google/maps/places/v1/travel_mode.proto | 51 + .../v1/route_optimization_service.proto | 320 +- .../v1/compute_custom_routes_request.proto | 94 +- .../v1/compute_custom_routes_response.proto | 15 +- .../v1/compute_route_matrix_request.proto | 38 +- .../routes/v1/compute_routes_request.proto | 76 +- .../routes/v1/compute_routes_response.proto | 3 +- google/maps/routes/v1/custom_route.proto | 10 +- google/maps/routes/v1/fallback_info.proto | 5 +- google/maps/routes/v1/polyline.proto | 7 +- google/maps/routes/v1/route.proto | 195 +- .../maps/routes/v1/route_matrix_element.proto | 1 - google/maps/routes/v1/route_service.proto | 10 +- google/maps/routes/v1/toll_passes.proto | 52 +- .../routes/v1/vehicle_emission_type.proto | 1 - google/maps/routes/v1/waypoint.proto | 11 +- .../maps/routes/v1alpha/route_service.proto | 13 +- .../admin/v1alpha/BUILD.bazel | 14 +- .../v1alpha/marketingplatform_admin.proto | 8 +- .../admin/v1alpha/resources.proto | 8 +- google/privacy/dlp/v2/BUILD.bazel | 2 +- google/privacy/dlp/v2/dlp.proto | 545 +- .../dlp/v2/dlp_grpc_service_config.json | 12 + google/privacy/dlp/v2/storage.proto | 12 +- google/pubsub/v1/pubsub.proto | 199 +- google/pubsub/v1/pubsub_v1.yaml | 3 + .../shopping/css/v1/css_product_common.proto | 61 +- google/shopping/merchant/accounts/BUILD.bazel | 2 +- .../merchant/accounts/v1beta/BUILD.bazel | 28 +- .../accounts/v1beta/accountissue.proto | 3 +- .../merchant/accounts/v1beta/accounts.proto | 37 +- .../v1beta/accounts_grpc_service_config.json | 41 +- .../accounts/v1beta/accountservices.proto} | 17 +- .../accounts/v1beta/autofeedsettings.proto | 106 + .../accounts/v1beta/businessinfo.proto | 6 + .../accounts/v1beta/merchantapi_v1beta.yaml | 30 +- .../accounts/v1beta/shippingsettings.proto | 6 +- .../accounts/v1beta/termsofservice.proto | 12 +- .../v1beta/termsofserviceagreementstate.proto | 3 + .../shopping/merchant/datasources/BUILD.bazel | 2 +- .../merchant/datasources/v1beta/BUILD.bazel | 17 +- .../datasources/v1beta/datasourcetypes.proto | 68 +- .../datasources/v1beta/fileuploads.proto | 154 + .../v1beta/merchantapi_v1beta.yaml | 25 +- google/spanner/admin/database/v1/backup.proto | 52 +- .../admin/database/v1/backup_schedule.proto | 3 + google/spanner/admin/instance/v1/common.proto | 7 + .../instance/v1/spanner_instance_admin.proto | 420 +- google/spanner/v1/commit_response.proto | 9 + google/spanner/v1/result_set.proto | 21 + google/spanner/v1/spanner.proto | 41 +- google/spanner/v1/transaction.proto | 34 + google/spanner/v1/type.proto | 73 +- google/storage/v2/README.md | 23 +- google/storage/v2/storage.proto | 432 +- .../v2/storage_grpc_service_config.json | 6 +- google/storage/v2/storage_v2.yaml | 15 +- google/storagetransfer/v1/BUILD.bazel | 2 +- .../v1/storagetransfer_v1.yaml | 7 - .../storagetransfer/v1/transfer_types.proto | 123 +- grafeas/v1/compliance.proto | 2 + grafeas/v1/discovery.proto | 25 + grafeas/v1/grafeas.proto | 30 + grafeas/v1/swagger/grafeas.swagger.json | 426 +- 1912 files changed, 76739 insertions(+), 22670 deletions(-) create mode 100644 google/ads/admanager/BUILD.bazel delete mode 100644 google/ads/admanager/v1/ad_partner_declaration.proto delete mode 100644 google/ads/admanager/v1/ad_partner_service.proto create mode 100644 google/ads/admanager/v1/ad_unit_messages.proto create mode 100644 google/ads/admanager/v1/company_messages.proto delete mode 100644 google/ads/admanager/v1/computed_status_enum.proto create mode 100644 google/ads/admanager/v1/contact_messages.proto delete mode 100644 google/ads/admanager/v1/contact_service.proto delete mode 100644 google/ads/admanager/v1/creative_placeholder.proto delete mode 100644 google/ads/admanager/v1/creative_service.proto create mode 100644 google/ads/admanager/v1/custom_field_messages.proto create mode 100644 google/ads/admanager/v1/custom_field_value.proto create mode 100644 google/ads/admanager/v1/custom_targeting_key_messages.proto create mode 100644 google/ads/admanager/v1/custom_targeting_value_messages.proto create mode 100644 google/ads/admanager/v1/entity_signals_mapping_messages.proto create mode 100644 google/ads/admanager/v1/entity_signals_mapping_service.proto delete mode 100644 google/ads/admanager/v1/goal.proto rename google/ads/admanager/v1/{ad_unit_size.proto => label_messages.proto} (54%) delete mode 100644 google/ads/admanager/v1/line_item_enums.proto delete mode 100644 google/ads/admanager/v1/line_item_service.proto create mode 100644 google/ads/admanager/v1/network_messages.proto create mode 100644 google/ads/admanager/v1/order_enums.proto create mode 100644 google/ads/admanager/v1/order_messages.proto create mode 100644 google/ads/admanager/v1/placement_messages.proto create mode 100644 google/ads/admanager/v1/role_enums.proto create mode 100644 google/ads/admanager/v1/role_messages.proto create mode 100644 google/ads/admanager/v1/size_type_enum.proto create mode 100644 google/ads/admanager/v1/taxonomy_category_messages.proto rename google/ads/admanager/v1/{label_service.proto => taxonomy_category_service.proto} (59%) create mode 100644 google/ads/admanager/v1/taxonomy_type_enum.proto create mode 100644 google/ads/admanager/v1/team_messages.proto delete mode 100644 google/ads/admanager/v1/team_service.proto create mode 100644 google/ads/admanager/v1/time_unit_enum.proto create mode 100644 google/ads/admanager/v1/user_messages.proto delete mode 100644 google/ads/googleads/v15/common/ad_asset.proto delete mode 100644 google/ads/googleads/v15/enums/content_label_type.proto delete mode 100644 google/ads/googleads/v15/errors/recommendation_error.proto delete mode 100644 google/ads/googleads/v15/googleads_gapic.yaml delete mode 100755 google/ads/googleads/v15/googleads_grpc_service_config.json delete mode 100644 google/ads/googleads/v15/googleads_v15.yaml delete mode 100644 google/ads/googleads/v15/services/product_link_invitation_service.proto create mode 100644 google/ads/googleads/v17/enums/ad_format_type.proto create mode 100644 google/ads/googleads/v17/enums/fixed_cpm_goal.proto create mode 100644 google/ads/googleads/v17/enums/fixed_cpm_target_frequency_time_unit.proto create mode 100644 google/ads/googleads/v17/errors/automatically_created_asset_removal_error.proto create mode 100644 google/ads/googleads/v17/errors/shareable_preview_error.proto create mode 100644 google/ads/googleads/v17/resources/offline_conversion_upload_conversion_action_summary.proto create mode 100644 google/ads/googleads/v17/services/shareable_preview_service.proto rename google/ads/googleads/{v15 => v18}/BUILD.bazel (73%) rename google/ads/googleads/{v15 => v18}/common/BUILD.bazel (98%) create mode 100644 google/ads/googleads/v18/common/ad_asset.proto rename google/ads/googleads/{v15 => v18}/common/ad_type_infos.proto (90%) rename google/ads/googleads/{v15 => v18}/common/asset_policy.proto (70%) rename google/ads/googleads/{v15 => v18}/common/asset_set_types.proto (90%) rename google/ads/googleads/{v15 => v18}/common/asset_types.proto (94%) rename google/ads/googleads/{v15 => v18}/common/asset_usage.proto (68%) create mode 100644 google/ads/googleads/v18/common/audience_insights_attribute.proto rename google/ads/googleads/{v15 => v18}/common/audiences.proto (82%) rename google/ads/googleads/{v15 => v18}/common/bidding.proto (80%) rename google/ads/googleads/{v15 => v18}/common/click_location.proto (80%) rename google/ads/googleads/{v15 => v18}/common/consent.proto (66%) rename google/ads/googleads/{v15 => v18}/common/criteria.proto (80%) rename google/ads/googleads/{v15 => v18}/common/criterion_category_availability.proto (78%) rename google/ads/googleads/{v15 => v18}/common/custom_parameter.proto (76%) rename google/ads/googleads/{v15 => v18}/common/customizer_value.proto (76%) rename google/ads/googleads/{v15 => v18}/common/dates.proto (75%) rename google/ads/googleads/{v15 => v18}/common/extensions.proto (89%) rename google/ads/googleads/{v15 => v18}/common/feed_common.proto (75%) rename google/ads/googleads/{v15 => v18}/common/feed_item_set_filter_type_infos.proto (79%) rename google/ads/googleads/{v15 => v18}/common/final_app_url.proto (75%) rename google/ads/googleads/{v15 => v18}/common/frequency_cap.proto (71%) rename google/ads/googleads/{v15 => v18}/common/keyword_plan_common.proto (82%) rename google/ads/googleads/{v15 => v18}/common/lifecycle_goals.proto (81%) rename google/ads/googleads/{v15 => v18}/common/local_services.proto (75%) rename google/ads/googleads/{v15 => v18}/common/matching_function.proto (87%) rename google/ads/googleads/{v15 => v18}/common/metric_goal.proto (65%) rename google/ads/googleads/{v15 => v18}/common/metrics.proto (81%) rename google/ads/googleads/{v15 => v18}/common/offline_user_data.proto (95%) rename google/ads/googleads/{v15 => v18}/common/policy.proto (91%) rename google/ads/googleads/{v15 => v18}/common/policy_summary.proto (65%) rename google/ads/googleads/{v15 => v18}/common/real_time_bidding_setting.proto (75%) rename google/ads/googleads/{v15 => v18}/common/segments.proto (71%) rename google/ads/googleads/{v15 => v18}/common/simulation.proto (96%) rename google/ads/googleads/{v15 => v18}/common/tag_snippet.proto (70%) rename google/ads/googleads/{v15 => v18}/common/targeting_setting.proto (85%) rename google/ads/googleads/{v15 => v18}/common/text_label.proto (73%) rename google/ads/googleads/{v15 => v18}/common/url_collection.proto (78%) rename google/ads/googleads/{v15 => v18}/common/user_lists.proto (86%) rename google/ads/googleads/{v15 => v18}/common/value.proto (76%) rename google/ads/googleads/{v15 => v18}/enums/BUILD.bazel (100%) rename google/ads/googleads/{v15 => v18}/enums/access_invitation_status.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/access_reason.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/access_role.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/account_budget_proposal_status.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/account_budget_proposal_type.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/account_budget_status.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/account_link_status.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/ad_customizer_placeholder_field.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/ad_destination_type.proto (83%) create mode 100644 google/ads/googleads/v18/enums/ad_format_type.proto create mode 100644 google/ads/googleads/v18/enums/ad_group_ad_primary_status.proto create mode 100644 google/ads/googleads/v18/enums/ad_group_ad_primary_status_reason.proto rename google/ads/googleads/{v15 => v18}/enums/ad_group_ad_rotation_mode.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/ad_group_ad_status.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/ad_group_criterion_approval_status.proto (79%) create mode 100644 google/ads/googleads/v18/enums/ad_group_criterion_primary_status.proto create mode 100644 google/ads/googleads/v18/enums/ad_group_criterion_primary_status_reason.proto rename google/ads/googleads/{v15 => v18}/enums/ad_group_criterion_status.proto (80%) create mode 100644 google/ads/googleads/v18/enums/ad_group_primary_status.proto create mode 100644 google/ads/googleads/v18/enums/ad_group_primary_status_reason.proto rename google/ads/googleads/{v15 => v18}/enums/ad_group_status.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/ad_group_type.proto (88%) rename google/ads/googleads/{v15 => v18}/enums/ad_network_type.proto (72%) rename google/ads/googleads/{v15 => v18}/enums/ad_serving_optimization_status.proto (84%) rename google/ads/googleads/{v15 => v18}/enums/ad_strength.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/ad_type.proto (82%) rename google/ads/googleads/{v15 => v18}/enums/advertising_channel_sub_type.proto (90%) rename google/ads/googleads/{v15 => v18}/enums/advertising_channel_type.proto (82%) rename google/ads/googleads/{v15 => v18}/enums/affiliate_location_feed_relationship_type.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/affiliate_location_placeholder_field.proto (85%) rename google/ads/googleads/{v15 => v18}/enums/age_range_type.proto (82%) rename google/ads/googleads/{v15 => v18}/enums/android_privacy_interaction_type.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/android_privacy_network_type.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/app_bidding_goal.proto (88%) rename google/ads/googleads/{v15 => v18}/enums/app_campaign_app_store.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/app_campaign_bidding_strategy_goal_type.proto (87%) rename google/ads/googleads/{v15 => v18}/enums/app_payment_model_type.proto (77%) rename google/ads/googleads/{v15 => v18}/enums/app_placeholder_field.proto (85%) rename google/ads/googleads/{v15 => v18}/enums/app_store.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/app_url_operating_system_type.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/asset_automation_status.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/asset_automation_type.proto (64%) rename google/ads/googleads/{v15 => v18}/enums/asset_field_type.proto (88%) rename google/ads/googleads/{v15 => v18}/enums/asset_group_primary_status.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/asset_group_primary_status_reason.proto (60%) rename google/ads/googleads/{v15 => v18}/enums/asset_group_signal_approval_status.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/asset_group_status.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/asset_link_primary_status.proto (85%) rename google/ads/googleads/{v15 => v18}/enums/asset_link_primary_status_reason.proto (87%) rename google/ads/googleads/{v15 => v18}/enums/asset_link_status.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/asset_offline_evaluation_error_reasons.proto (86%) rename google/ads/googleads/{v15 => v18}/enums/asset_performance_label.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/asset_set_asset_status.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/asset_set_link_status.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/asset_set_status.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/asset_set_type.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/asset_source.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/asset_type.proto (85%) rename google/ads/googleads/{v15 => v18}/enums/async_action_status.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/attribution_model.proto (87%) rename google/ads/googleads/{v15 => v18}/enums/audience_insights_dimension.proto (84%) create mode 100644 google/ads/googleads/v18/enums/audience_insights_marketing_objective.proto rename google/ads/googleads/{v15 => v18}/enums/audience_scope.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/audience_status.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/batch_job_status.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/bid_modifier_source.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/bidding_source.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/bidding_strategy_status.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/bidding_strategy_system_status.proto (93%) rename google/ads/googleads/{v15 => v18}/enums/bidding_strategy_type.proto (88%) rename google/ads/googleads/{v15 => v18}/enums/billing_setup_status.proto (81%) create mode 100644 google/ads/googleads/v18/enums/brand_request_rejection_reason.proto rename google/ads/googleads/{v15 => v18}/enums/brand_safety_suitability.proto (89%) rename google/ads/googleads/{v15 => v18}/enums/brand_state.proto (85%) rename google/ads/googleads/{v15 => v18}/enums/budget_campaign_association_status.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/budget_delivery_method.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/budget_period.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/budget_status.proto (77%) rename google/ads/googleads/{v15 => v18}/enums/budget_type.proto (86%) rename google/ads/googleads/{v15 => v18}/enums/call_conversion_reporting_state.proto (82%) rename google/ads/googleads/{v15 => v18}/enums/call_placeholder_field.proto (85%) rename google/ads/googleads/{v15 => v18}/enums/call_to_action_type.proto (86%) rename google/ads/googleads/{v15 => v18}/enums/call_tracking_display_location.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/call_type.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/callout_placeholder_field.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/campaign_criterion_status.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/campaign_draft_status.proto (85%) rename google/ads/googleads/{v15 => v18}/enums/campaign_experiment_type.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/campaign_group_status.proto (78%) create mode 100644 google/ads/googleads/v18/enums/campaign_keyword_match_type.proto rename google/ads/googleads/{v15 => v18}/enums/campaign_primary_status.proto (86%) rename google/ads/googleads/{v15 => v18}/enums/campaign_primary_status_reason.proto (93%) rename google/ads/googleads/{v15 => v18}/enums/campaign_serving_status.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/campaign_shared_set_status.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/campaign_status.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/chain_relationship_type.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/change_client_type.proto (88%) rename google/ads/googleads/{v15 => v18}/enums/change_event_resource_type.proto (87%) rename google/ads/googleads/{v15 => v18}/enums/change_status_operation.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/change_status_resource_type.proto (85%) rename google/ads/googleads/{v15 => v18}/enums/click_type.proto (91%) rename google/ads/googleads/{v15 => v18}/enums/combined_audience_status.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/consent_status.proto (76%) create mode 100644 google/ads/googleads/v18/enums/content_label_type.proto rename google/ads/googleads/{v15 => v18}/enums/conversion_action_category.proto (91%) rename google/ads/googleads/{v15 => v18}/enums/conversion_action_counting_type.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/conversion_action_status.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/conversion_action_type.proto (95%) rename google/ads/googleads/{v15 => v18}/enums/conversion_adjustment_type.proto (82%) rename google/ads/googleads/{v15 => v18}/enums/conversion_attribution_event_type.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/conversion_custom_variable_status.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/conversion_environment_enum.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/conversion_lag_bucket.proto (91%) rename google/ads/googleads/{v15 => v18}/enums/conversion_or_adjustment_lag_bucket.proto (95%) rename google/ads/googleads/{v15 => v18}/enums/conversion_origin.proto (84%) rename google/ads/googleads/{v15 => v18}/enums/conversion_tracking_status_enum.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/conversion_value_rule_primary_dimension.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/conversion_value_rule_set_status.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/conversion_value_rule_status.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/converting_user_prior_engagement_type_and_ltv_bucket.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/criterion_category_channel_availability_mode.proto (84%) rename google/ads/googleads/{v15 => v18}/enums/criterion_category_locale_availability_mode.proto (84%) rename google/ads/googleads/{v15 => v18}/enums/criterion_system_serving_status.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/criterion_type.proto (89%) rename google/ads/googleads/{v15 => v18}/enums/custom_audience_member_type.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/custom_audience_status.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/custom_audience_type.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/custom_conversion_goal_status.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/custom_interest_member_type.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/custom_interest_status.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/custom_interest_type.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/custom_placeholder_field.proto (92%) rename google/ads/googleads/{v15 => v18}/enums/customer_acquisition_optimization_mode.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/customer_match_upload_key_type.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/customer_pay_per_conversion_eligibility_failure_reason.proto (85%) rename google/ads/googleads/{v15 => v18}/enums/customer_status.proto (82%) rename google/ads/googleads/{v15 => v18}/enums/customizer_attribute_status.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/customizer_attribute_type.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/customizer_value_status.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/data_driven_model_status.proto (84%) create mode 100644 google/ads/googleads/v18/enums/data_link_status.proto create mode 100644 google/ads/googleads/v18/enums/data_link_type.proto rename google/ads/googleads/{v15 => v18}/enums/day_of_week.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/device.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/display_ad_format_setting.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/display_upload_product_type.proto (91%) rename google/ads/googleads/{v15 => v18}/enums/distance_bucket.proto (90%) rename google/ads/googleads/{v15 => v18}/enums/dsa_page_feed_criterion_field.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/education_placeholder_field.proto (91%) rename google/ads/googleads/{v15 => v18}/enums/experiment_metric.proto (86%) rename google/ads/googleads/{v15 => v18}/enums/experiment_metric_direction.proto (82%) rename google/ads/googleads/{v15 => v18}/enums/experiment_status.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/experiment_type.proto (85%) rename google/ads/googleads/{v15 => v18}/enums/extension_setting_device.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/extension_type.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/external_conversion_source.proto (94%) rename google/ads/googleads/{v15 => v18}/enums/feed_attribute_type.proto (82%) rename google/ads/googleads/{v15 => v18}/enums/feed_item_quality_approval_status.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/feed_item_quality_disapproval_reason.proto (90%) rename google/ads/googleads/{v15 => v18}/enums/feed_item_set_status.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/feed_item_set_string_filter_type.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/feed_item_status.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/feed_item_target_device.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/feed_item_target_status.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/feed_item_target_type.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/feed_item_validation_status.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/feed_link_status.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/feed_mapping_criterion_type.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/feed_mapping_status.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/feed_origin.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/feed_status.proto (77%) create mode 100644 google/ads/googleads/v18/enums/fixed_cpm_goal.proto create mode 100644 google/ads/googleads/v18/enums/fixed_cpm_target_frequency_time_unit.proto rename google/ads/googleads/{v15 => v18}/enums/flight_placeholder_field.proto (91%) rename google/ads/googleads/{v15 => v18}/enums/frequency_cap_event_type.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/frequency_cap_level.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/frequency_cap_time_unit.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/gender_type.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/geo_target_constant_status.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/geo_targeting_restriction.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/geo_targeting_type.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/goal_config_level.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/google_ads_field_category.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/google_ads_field_data_type.proto (89%) rename google/ads/googleads/{v15 => v18}/enums/google_voice_call_status.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/hotel_asset_suggestion_status.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/hotel_date_selection_type.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/hotel_placeholder_field.proto (92%) rename google/ads/googleads/{v15 => v18}/enums/hotel_price_bucket.proto (82%) rename google/ads/googleads/{v15 => v18}/enums/hotel_rate_type.proto (84%) rename google/ads/googleads/{v15 => v18}/enums/hotel_reconciliation_status.proto (85%) create mode 100644 google/ads/googleads/v18/enums/identity_verification_program.proto create mode 100644 google/ads/googleads/v18/enums/identity_verification_program_status.proto rename google/ads/googleads/{v15 => v18}/enums/image_placeholder_field.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/income_range_type.proto (82%) rename google/ads/googleads/{v15 => v18}/enums/interaction_event_type.proto (84%) rename google/ads/googleads/{v15 => v18}/enums/interaction_type.proto (77%) rename google/ads/googleads/{v15 => v18}/enums/invoice_type.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/job_placeholder_field.proto (91%) rename google/ads/googleads/{v15 => v18}/enums/keyword_match_type.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/keyword_plan_aggregate_metric_type.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/keyword_plan_competition_level.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/keyword_plan_concept_group_type.proto (84%) rename google/ads/googleads/{v15 => v18}/enums/keyword_plan_forecast_interval.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/keyword_plan_keyword_annotation.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/keyword_plan_network.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/label_status.proto (77%) rename google/ads/googleads/{v15 => v18}/enums/lead_form_call_to_action_type.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/lead_form_desired_intent.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/lead_form_field_user_input_type.proto (98%) rename google/ads/googleads/{v15 => v18}/enums/lead_form_post_submit_call_to_action_type.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/legacy_app_install_ad_app_store.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/linked_account_type.proto (65%) rename google/ads/googleads/{v15 => v18}/enums/linked_product_type.proto (75%) rename google/ads/googleads/{v15 => v18}/enums/listing_group_filter_custom_attribute_index.proto (82%) rename google/ads/googleads/{v15 => v18}/enums/listing_group_filter_listing_source.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/listing_group_filter_product_category_level.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/listing_group_filter_product_channel.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/listing_group_filter_product_condition.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/listing_group_filter_product_type_level.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/listing_group_filter_type_enum.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/listing_group_type.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/listing_type.proto (77%) rename google/ads/googleads/{v15 => v18}/enums/local_placeholder_field.proto (91%) create mode 100644 google/ads/googleads/v18/enums/local_services_business_registration_check_rejection_reason.proto create mode 100644 google/ads/googleads/v18/enums/local_services_business_registration_type.proto rename google/ads/googleads/{v15 => v18}/enums/local_services_conversation_type.proto (75%) create mode 100644 google/ads/googleads/v18/enums/local_services_employee_status.proto create mode 100644 google/ads/googleads/v18/enums/local_services_employee_type.proto rename google/ads/googleads/{v15 => v18}/enums/local_services_insurance_rejection_reason.proto (88%) create mode 100644 google/ads/googleads/v18/enums/local_services_lead_credit_state.proto rename google/ads/googleads/{v15 => v18}/enums/local_services_lead_status.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/local_services_lead_type.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/local_services_license_rejection_reason.proto (84%) rename google/ads/googleads/{v15 => v18}/enums/local_services_participant_type.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/local_services_verification_artifact_status.proto (82%) rename google/ads/googleads/{v15 => v18}/enums/local_services_verification_artifact_type.proto (76%) rename google/ads/googleads/{v15 => v18}/enums/local_services_verification_status.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/location_extension_targeting_criterion_field.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/location_group_radius_units.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/location_ownership_type.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/location_placeholder_field.proto (84%) rename google/ads/googleads/{v15 => v18}/enums/location_source_type.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/location_string_filter_type.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/lookalike_expansion_level.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/manager_link_status.proto (82%) rename google/ads/googleads/{v15 => v18}/enums/matching_function_context_type.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/matching_function_operator.proto (84%) rename google/ads/googleads/{v15 => v18}/enums/media_type.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/message_placeholder_field.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/mime_type.proto (84%) rename google/ads/googleads/{v15 => v18}/enums/minute_of_hour.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/mobile_app_vendor.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/mobile_device_type.proto (77%) rename google/ads/googleads/{v15 => v18}/enums/month_of_year.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/negative_geo_target_type.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/offline_conversion_diagnostic_status_enum.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/offline_event_upload_client_enum.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/offline_user_data_job_failure_reason.proto (86%) rename google/ads/googleads/{v15 => v18}/enums/offline_user_data_job_match_rate_range.proto (86%) rename google/ads/googleads/{v15 => v18}/enums/offline_user_data_job_status.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/offline_user_data_job_type.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/operating_system_version_operator_type.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/optimization_goal_type.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/parental_status_type.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/payment_mode.proto (85%) rename google/ads/googleads/{v15 => v18}/enums/performance_max_upgrade_status.proto (82%) rename google/ads/googleads/{v15 => v18}/enums/placeholder_type.proto (92%) rename google/ads/googleads/{v15 => v18}/enums/placement_type.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/policy_approval_status.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/policy_review_status.proto (82%) rename google/ads/googleads/{v15 => v18}/enums/policy_topic_entry_type.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/policy_topic_evidence_destination_mismatch_url_type.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/policy_topic_evidence_destination_not_working_device.proto (82%) rename google/ads/googleads/{v15 => v18}/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/positive_geo_target_type.proto (82%) rename google/ads/googleads/{v15 => v18}/enums/price_extension_price_qualifier.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/price_extension_price_unit.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/price_extension_type.proto (84%) rename google/ads/googleads/{v15 => v18}/enums/price_placeholder_field.proto (96%) create mode 100644 google/ads/googleads/v18/enums/product_availability.proto rename google/ads/googleads/{v15 => v18}/enums/product_category_level.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/product_category_state.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/product_channel.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/product_channel_exclusivity.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/product_condition.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/product_custom_attribute_index.proto (81%) create mode 100644 google/ads/googleads/v18/enums/product_issue_severity.proto rename google/ads/googleads/{v15 => v18}/enums/product_link_invitation_status.proto (84%) create mode 100644 google/ads/googleads/v18/enums/product_status.proto rename google/ads/googleads/{v15 => v18}/enums/product_type_level.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/promotion_extension_discount_modifier.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/promotion_extension_occasion.proto (89%) rename google/ads/googleads/{v15 => v18}/enums/promotion_placeholder_field.proto (89%) rename google/ads/googleads/{v15 => v18}/enums/proximity_radius_units.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/quality_score_bucket.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/reach_plan_age_range.proto (89%) rename google/ads/googleads/{v15 => v18}/enums/reach_plan_network.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/reach_plan_surface.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/real_estate_placeholder_field.proto (91%) rename google/ads/googleads/{v15 => v18}/enums/recommendation_subscription_status.proto (82%) rename google/ads/googleads/{v15 => v18}/enums/recommendation_type.proto (87%) rename google/ads/googleads/{v15 => v18}/enums/resource_change_operation.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/resource_limit_type.proto (96%) rename google/ads/googleads/{v15 => v18}/enums/response_content_type.proto (70%) rename google/ads/googleads/{v15 => v18}/enums/search_engine_results_page_type.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/search_term_match_type.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/search_term_targeting_status.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/seasonality_event_scope.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/seasonality_event_status.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/served_asset_field_type.proto (91%) rename google/ads/googleads/{v15 => v18}/enums/shared_set_status.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/shared_set_type.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/shopping_add_products_to_campaign_recommendation_enum.proto (84%) rename google/ads/googleads/{v15 => v18}/enums/simulation_modification_method.proto (84%) rename google/ads/googleads/{v15 => v18}/enums/simulation_type.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/sitelink_placeholder_field.proto (84%) rename google/ads/googleads/{v15 => v18}/enums/sk_ad_network_ad_event_type.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/sk_ad_network_attribution_credit.proto (82%) rename google/ads/googleads/{v15 => v18}/enums/sk_ad_network_coarse_conversion_value.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/sk_ad_network_source_type.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/sk_ad_network_user_type.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/slot.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/smart_campaign_not_eligible_reason.proto (84%) rename google/ads/googleads/{v15 => v18}/enums/smart_campaign_status.proto (82%) rename google/ads/googleads/{v15 => v18}/enums/spending_limit_type.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/structured_snippet_placeholder_field.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/summary_row_setting.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/system_managed_entity_source.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/target_cpa_opt_in_recommendation_goal.proto (82%) rename google/ads/googleads/{v15 => v18}/enums/target_frequency_time_unit.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/target_impression_share_location.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/targeting_dimension.proto (86%) rename google/ads/googleads/{v15 => v18}/enums/time_type.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/tracking_code_page_format.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/tracking_code_type.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/travel_placeholder_field.proto (92%) rename google/ads/googleads/{v15 => v18}/enums/user_identifier_source.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/user_interest_taxonomy_type.proto (82%) rename google/ads/googleads/{v15 => v18}/enums/user_list_access_status.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/user_list_closing_reason.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/user_list_crm_data_source_type.proto (80%) create mode 100644 google/ads/googleads/v18/enums/user_list_customer_type_category.proto rename google/ads/googleads/{v15 => v18}/enums/user_list_date_rule_item_operator.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/user_list_flexible_rule_operator.proto (77%) rename google/ads/googleads/{v15 => v18}/enums/user_list_logical_rule_operator.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/user_list_membership_status.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/user_list_number_rule_item_operator.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/user_list_prepopulation_status.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/user_list_rule_type.proto (77%) rename google/ads/googleads/{v15 => v18}/enums/user_list_size_range.proto (89%) rename google/ads/googleads/{v15 => v18}/enums/user_list_string_rule_item_operator.proto (81%) rename google/ads/googleads/{v15 => v18}/enums/user_list_type.proto (83%) rename google/ads/googleads/{v15 => v18}/enums/value_rule_device_type.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/value_rule_geo_location_match_type.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/value_rule_operation.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/value_rule_set_attachment_type.proto (79%) rename google/ads/googleads/{v15 => v18}/enums/value_rule_set_dimension.proto (78%) rename google/ads/googleads/{v15 => v18}/enums/vanity_pharma_display_url_mode.proto (80%) rename google/ads/googleads/{v15 => v18}/enums/vanity_pharma_text.proto (89%) rename google/ads/googleads/{v15 => v18}/enums/video_thumbnail.proto (82%) rename google/ads/googleads/{v15 => v18}/enums/webpage_condition_operand.proto (82%) rename google/ads/googleads/{v15 => v18}/enums/webpage_condition_operator.proto (80%) rename google/ads/googleads/{v15 => v18}/errors/BUILD.bazel (96%) rename google/ads/googleads/{v15 => v18}/errors/access_invitation_error.proto (85%) rename google/ads/googleads/{v15 => v18}/errors/account_budget_proposal_error.proto (92%) rename google/ads/googleads/{v15 => v18}/errors/account_link_error.proto (78%) rename google/ads/googleads/{v15 => v18}/errors/ad_customizer_error.proto (82%) rename google/ads/googleads/{v15 => v18}/errors/ad_error.proto (98%) rename google/ads/googleads/{v15 => v18}/errors/ad_group_ad_error.proto (86%) rename google/ads/googleads/{v15 => v18}/errors/ad_group_bid_modifier_error.proto (80%) rename google/ads/googleads/{v15 => v18}/errors/ad_group_criterion_customizer_error.proto (79%) rename google/ads/googleads/{v15 => v18}/errors/ad_group_criterion_error.proto (93%) rename google/ads/googleads/{v15 => v18}/errors/ad_group_customizer_error.proto (77%) rename google/ads/googleads/{v15 => v18}/errors/ad_group_error.proto (85%) rename google/ads/googleads/{v15 => v18}/errors/ad_group_feed_error.proto (84%) rename google/ads/googleads/{v15 => v18}/errors/ad_parameter_error.proto (79%) rename google/ads/googleads/{v15 => v18}/errors/ad_sharing_error.proto (80%) rename google/ads/googleads/{v15 => v18}/errors/adx_error.proto (77%) rename google/ads/googleads/{v15 => v18}/errors/asset_error.proto (93%) rename google/ads/googleads/{v15 => v18}/errors/asset_group_asset_error.proto (82%) rename google/ads/googleads/{v15 => v18}/errors/asset_group_error.proto (89%) rename google/ads/googleads/{v15 => v18}/errors/asset_group_listing_group_filter_error.proto (64%) rename google/ads/googleads/{v15 => v18}/errors/asset_group_signal_error.proto (83%) rename google/ads/googleads/{v15 => v18}/errors/asset_link_error.proto (86%) rename google/ads/googleads/{v15 => v18}/errors/asset_set_asset_error.proto (83%) rename google/ads/googleads/{v15 => v18}/errors/asset_set_error.proto (88%) rename google/ads/googleads/{v15 => v18}/errors/asset_set_link_error.proto (84%) rename google/ads/googleads/{v15 => v18}/errors/audience_error.proto (86%) rename google/ads/googleads/{v15 => v18}/errors/audience_insights_error.proto (79%) rename google/ads/googleads/{v15 => v18}/errors/authentication_error.proto (86%) rename google/ads/googleads/{v15 => v18}/errors/authorization_error.proto (85%) create mode 100644 google/ads/googleads/v18/errors/automatically_created_asset_removal_error.proto rename google/ads/googleads/{v15 => v18}/errors/batch_job_error.proto (50%) rename google/ads/googleads/{v15 => v18}/errors/bidding_error.proto (92%) rename google/ads/googleads/{v15 => v18}/errors/bidding_strategy_error.proto (83%) rename google/ads/googleads/{v15 => v18}/errors/billing_setup_error.proto (91%) rename google/ads/googleads/{v15 => v18}/errors/campaign_budget_error.proto (90%) rename google/ads/googleads/{v15 => v18}/errors/campaign_conversion_goal_error.proto (81%) rename google/ads/googleads/{v15 => v18}/errors/campaign_criterion_error.proto (86%) rename google/ads/googleads/{v15 => v18}/errors/campaign_customizer_error.proto (77%) rename google/ads/googleads/{v15 => v18}/errors/campaign_draft_error.proto (87%) rename google/ads/googleads/{v15 => v18}/errors/campaign_error.proto (78%) rename google/ads/googleads/{v15 => v18}/errors/campaign_experiment_error.proto (88%) rename google/ads/googleads/{v15 => v18}/errors/campaign_feed_error.proto (85%) rename google/ads/googleads/{v15 => v18}/errors/campaign_lifecycle_goal_error.proto (93%) rename google/ads/googleads/{v15 => v18}/errors/campaign_shared_set_error.proto (78%) rename google/ads/googleads/{v15 => v18}/errors/change_event_error.proto (83%) rename google/ads/googleads/{v15 => v18}/errors/change_status_error.proto (83%) rename google/ads/googleads/{v15 => v18}/errors/collection_size_error.proto (77%) rename google/ads/googleads/{v15 => v18}/errors/context_error.proto (79%) rename google/ads/googleads/{v15 => v18}/errors/conversion_action_error.proto (88%) rename google/ads/googleads/{v15 => v18}/errors/conversion_adjustment_upload_error.proto (93%) rename google/ads/googleads/{v15 => v18}/errors/conversion_custom_variable_error.proto (81%) rename google/ads/googleads/{v15 => v18}/errors/conversion_goal_campaign_config_error.proto (86%) rename google/ads/googleads/{v15 => v18}/errors/conversion_upload_error.proto (96%) rename google/ads/googleads/{v15 => v18}/errors/conversion_value_rule_error.proto (86%) rename google/ads/googleads/{v15 => v18}/errors/conversion_value_rule_set_error.proto (88%) rename google/ads/googleads/{v15 => v18}/errors/country_code_error.proto (77%) rename google/ads/googleads/{v15 => v18}/errors/criterion_error.proto (98%) rename google/ads/googleads/{v15 => v18}/errors/currency_code_error.proto (77%) rename google/ads/googleads/{v15 => v18}/errors/currency_error.proto (77%) rename google/ads/googleads/{v15 => v18}/errors/custom_audience_error.proto (84%) rename google/ads/googleads/{v15 => v18}/errors/custom_conversion_goal_error.proto (84%) rename google/ads/googleads/{v15 => v18}/errors/custom_interest_error.proto (84%) rename google/ads/googleads/{v15 => v18}/errors/customer_client_link_error.proto (85%) rename google/ads/googleads/{v15 => v18}/errors/customer_customizer_error.proto (77%) rename google/ads/googleads/{v15 => v18}/errors/customer_error.proto (80%) rename google/ads/googleads/{v15 => v18}/errors/customer_feed_error.proto (84%) rename google/ads/googleads/{v15 => v18}/errors/customer_lifecycle_goal_error.proto (89%) rename google/ads/googleads/{v15 => v18}/errors/customer_manager_link_error.proto (86%) rename google/ads/googleads/{v15 => v18}/errors/customer_sk_ad_network_conversion_value_schema_error.proto (75%) rename google/ads/googleads/{v15 => v18}/errors/customer_user_access_error.proto (83%) rename google/ads/googleads/{v15 => v18}/errors/customizer_attribute_error.proto (79%) rename google/ads/googleads/{v15 => v18}/errors/database_error.proto (81%) rename google/ads/googleads/{v15 => v18}/errors/date_error.proto (85%) rename google/ads/googleads/{v15 => v18}/errors/date_range_error.proto (81%) rename google/ads/googleads/{v15 => v18}/errors/distinct_error.proto (77%) rename google/ads/googleads/{v15 => v18}/errors/enum_error.proto (76%) rename google/ads/googleads/{v15 => v18}/errors/errors.proto (68%) rename google/ads/googleads/{v15 => v18}/errors/experiment_arm_error.proto (89%) rename google/ads/googleads/{v15 => v18}/errors/experiment_error.proto (85%) rename google/ads/googleads/{v15 => v18}/errors/extension_feed_item_error.proto (94%) rename google/ads/googleads/{v15 => v18}/errors/extension_setting_error.proto (96%) rename google/ads/googleads/{v15 => v18}/errors/feed_attribute_reference_error.proto (81%) rename google/ads/googleads/{v15 => v18}/errors/feed_error.proto (90%) rename google/ads/googleads/{v15 => v18}/errors/feed_item_error.proto (85%) rename google/ads/googleads/{v15 => v18}/errors/feed_item_set_error.proto (86%) rename google/ads/googleads/{v15 => v18}/errors/feed_item_set_link_error.proto (80%) rename google/ads/googleads/{v15 => v18}/errors/feed_item_target_error.proto (85%) rename google/ads/googleads/{v15 => v18}/errors/feed_item_validation_error.proto (97%) rename google/ads/googleads/{v15 => v18}/errors/feed_mapping_error.proto (90%) rename google/ads/googleads/{v15 => v18}/errors/field_error.proto (83%) rename google/ads/googleads/{v15 => v18}/errors/field_mask_error.proto (82%) rename google/ads/googleads/{v15 => v18}/errors/function_error.proto (87%) rename google/ads/googleads/{v15 => v18}/errors/function_parsing_error.proto (85%) rename google/ads/googleads/{v15 => v18}/errors/geo_target_constant_suggestion_error.proto (82%) rename google/ads/googleads/{v15 => v18}/errors/header_error.proto (78%) rename google/ads/googleads/{v15 => v18}/errors/id_error.proto (76%) create mode 100644 google/ads/googleads/v18/errors/identity_verification_error.proto rename google/ads/googleads/{v15 => v18}/errors/image_error.proto (92%) rename google/ads/googleads/{v15 => v18}/errors/internal_error.proto (81%) rename google/ads/googleads/{v15 => v18}/errors/invoice_error.proto (82%) rename google/ads/googleads/{v15 => v18}/errors/keyword_plan_ad_group_error.proto (81%) rename google/ads/googleads/{v15 => v18}/errors/keyword_plan_ad_group_keyword_error.proto (86%) rename google/ads/googleads/{v15 => v18}/errors/keyword_plan_campaign_error.proto (85%) rename google/ads/googleads/{v15 => v18}/errors/keyword_plan_campaign_keyword_error.proto (79%) rename google/ads/googleads/{v15 => v18}/errors/keyword_plan_error.proto (88%) rename google/ads/googleads/{v15 => v18}/errors/keyword_plan_idea_error.proto (79%) rename google/ads/googleads/{v15 => v18}/errors/label_error.proto (85%) rename google/ads/googleads/{v15 => v18}/errors/language_code_error.proto (78%) rename google/ads/googleads/{v15 => v18}/errors/list_operation_error.proto (79%) rename google/ads/googleads/{v15 => v18}/errors/manager_link_error.proto (89%) rename google/ads/googleads/{v15 => v18}/errors/media_bundle_error.proto (89%) rename google/ads/googleads/{v15 => v18}/errors/media_file_error.proto (90%) rename google/ads/googleads/{v15 => v18}/errors/media_upload_error.proto (93%) rename google/ads/googleads/{v15 => v18}/errors/merchant_center_error.proto (80%) rename google/ads/googleads/{v15 => v18}/errors/multiplier_error.proto (87%) rename google/ads/googleads/{v15 => v18}/errors/mutate_error.proto (85%) rename google/ads/googleads/{v15 => v18}/errors/new_resource_creation_error.proto (81%) rename google/ads/googleads/{v15 => v18}/errors/not_allowlisted_error.proto (78%) rename google/ads/googleads/{v15 => v18}/errors/not_empty_error.proto (76%) rename google/ads/googleads/{v15 => v18}/errors/null_error.proto (77%) rename google/ads/googleads/{v15 => v18}/errors/offline_user_data_job_error.proto (91%) rename google/ads/googleads/{v15 => v18}/errors/operation_access_denied_error.proto (87%) rename google/ads/googleads/{v15 => v18}/errors/operator_error.proto (77%) rename google/ads/googleads/{v15 => v18}/errors/partial_failure_error.proto (78%) rename google/ads/googleads/{v15 => v18}/errors/payments_account_error.proto (78%) rename google/ads/googleads/{v15 => v18}/errors/policy_finding_error.proto (79%) rename google/ads/googleads/{v15 => v18}/errors/policy_validation_parameter_error.proto (82%) rename google/ads/googleads/{v15 => v18}/errors/policy_violation_error.proto (78%) rename google/ads/googleads/{v15 => v18}/errors/product_link_error.proto (71%) rename google/ads/googleads/{v15 => v18}/errors/product_link_invitation_error.proto (77%) rename google/ads/googleads/{v15 => v18}/errors/query_error.proto (95%) rename google/ads/googleads/{v15 => v18}/errors/quota_error.proto (66%) rename google/ads/googleads/{v15 => v18}/errors/range_error.proto (76%) rename google/ads/googleads/{v15 => v18}/errors/reach_plan_error.proto (80%) create mode 100644 google/ads/googleads/v18/errors/recommendation_error.proto rename google/ads/googleads/{v15 => v18}/errors/recommendation_subscription_error.proto (77%) rename google/ads/googleads/{v15 => v18}/errors/region_code_error.proto (77%) rename google/ads/googleads/{v15 => v18}/errors/request_error.proto (88%) rename google/ads/googleads/{v15 => v18}/errors/resource_access_denied_error.proto (78%) rename google/ads/googleads/{v15 => v18}/errors/resource_count_limit_exceeded_error.proto (91%) rename google/ads/googleads/{v15 => v18}/errors/search_term_insight_error.proto (84%) rename google/ads/googleads/{v15 => v18}/errors/setting_error.proto (90%) create mode 100644 google/ads/googleads/v18/errors/shareable_preview_error.proto rename google/ads/googleads/{v15 => v18}/errors/shared_criterion_error.proto (78%) rename google/ads/googleads/{v15 => v18}/errors/shared_set_error.proto (80%) create mode 100644 google/ads/googleads/v18/errors/shopping_product_error.proto rename google/ads/googleads/{v15 => v18}/errors/size_limit_error.proto (81%) rename google/ads/googleads/{v15 => v18}/errors/smart_campaign_error.proto (84%) rename google/ads/googleads/{v15 => v18}/errors/string_format_error.proto (79%) rename google/ads/googleads/{v15 => v18}/errors/string_length_error.proto (79%) rename google/ads/googleads/{v15 => v18}/errors/third_party_app_analytics_link_error.proto (82%) rename google/ads/googleads/{v15 => v18}/errors/time_zone_error.proto (77%) rename google/ads/googleads/{v15 => v18}/errors/url_field_error.proto (95%) rename google/ads/googleads/{v15 => v18}/errors/user_data_error.proto (81%) create mode 100644 google/ads/googleads/v18/errors/user_list_customer_type_error.proto rename google/ads/googleads/{v15 => v18}/errors/user_list_error.proto (93%) create mode 100644 google/ads/googleads/v18/errors/video_campaign_error.proto rename google/ads/googleads/{v15 => v18}/errors/youtube_video_registration_error.proto (80%) create mode 100644 google/ads/googleads/v18/googleads_gapic.yaml create mode 100755 google/ads/googleads/v18/googleads_grpc_service_config.json create mode 100644 google/ads/googleads/v18/googleads_v18.yaml rename google/ads/googleads/{v15 => v18}/resources/BUILD.bazel (94%) rename google/ads/googleads/{v15 => v18}/resources/accessible_bidding_strategy.proto (92%) rename google/ads/googleads/{v15 => v18}/resources/account_budget.proto (90%) rename google/ads/googleads/{v15 => v18}/resources/account_budget_proposal.proto (86%) rename google/ads/googleads/{v15 => v18}/resources/account_link.proto (57%) rename google/ads/googleads/{v15 => v18}/resources/ad.proto (65%) rename google/ads/googleads/{v15 => v18}/resources/ad_group.proto (73%) rename google/ads/googleads/{v15 => v18}/resources/ad_group_ad.proto (54%) rename google/ads/googleads/{v15 => v18}/resources/ad_group_ad_asset_combination_view.proto (84%) rename google/ads/googleads/{v15 => v18}/resources/ad_group_ad_asset_view.proto (76%) rename google/ads/googleads/{v15 => v18}/resources/ad_group_ad_label.proto (84%) rename google/ads/googleads/{v15 => v18}/resources/ad_group_asset.proto (75%) rename google/ads/googleads/{v15 => v18}/resources/ad_group_asset_set.proto (81%) rename google/ads/googleads/{v15 => v18}/resources/ad_group_audience_view.proto (82%) rename google/ads/googleads/{v15 => v18}/resources/ad_group_bid_modifier.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/ad_group_criterion.proto (74%) rename google/ads/googleads/{v15 => v18}/resources/ad_group_criterion_customizer.proto (81%) rename google/ads/googleads/{v15 => v18}/resources/ad_group_criterion_label.proto (85%) rename google/ads/googleads/{v15 => v18}/resources/ad_group_criterion_simulation.proto (81%) rename google/ads/googleads/{v15 => v18}/resources/ad_group_customizer.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/ad_group_extension_setting.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/ad_group_feed.proto (75%) rename google/ads/googleads/{v15 => v18}/resources/ad_group_label.proto (84%) rename google/ads/googleads/{v15 => v18}/resources/ad_group_simulation.proto (78%) rename google/ads/googleads/{v15 => v18}/resources/ad_parameter.proto (89%) rename google/ads/googleads/{v15 => v18}/resources/ad_schedule_view.proto (81%) rename google/ads/googleads/{v15 => v18}/resources/age_range_view.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/android_privacy_shared_key_google_ad_group.proto (83%) rename google/ads/googleads/{v15 => v18}/resources/android_privacy_shared_key_google_campaign.proto (85%) rename google/ads/googleads/{v15 => v18}/resources/android_privacy_shared_key_google_network_type.proto (83%) rename google/ads/googleads/{v15 => v18}/resources/asset.proto (64%) rename google/ads/googleads/{v15 => v18}/resources/asset_field_type_view.proto (78%) rename google/ads/googleads/{v15 => v18}/resources/asset_group.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/asset_group_asset.proto (72%) rename google/ads/googleads/{v15 => v18}/resources/asset_group_listing_group_filter.proto (85%) rename google/ads/googleads/{v15 => v18}/resources/asset_group_product_group_view.proto (85%) rename google/ads/googleads/{v15 => v18}/resources/asset_group_signal.proto (82%) rename google/ads/googleads/{v15 => v18}/resources/asset_group_top_combination_view.proto (81%) rename google/ads/googleads/{v15 => v18}/resources/asset_set.proto (82%) rename google/ads/googleads/{v15 => v18}/resources/asset_set_asset.proto (81%) rename google/ads/googleads/{v15 => v18}/resources/asset_set_type_view.proto (78%) rename google/ads/googleads/{v15 => v18}/resources/audience.proto (79%) rename google/ads/googleads/{v15 => v18}/resources/batch_job.proto (89%) rename google/ads/googleads/{v15 => v18}/resources/bidding_data_exclusion.proto (81%) rename google/ads/googleads/{v15 => v18}/resources/bidding_seasonality_adjustment.proto (82%) rename google/ads/googleads/{v15 => v18}/resources/bidding_strategy.proto (82%) rename google/ads/googleads/{v15 => v18}/resources/bidding_strategy_simulation.proto (78%) rename google/ads/googleads/{v15 => v18}/resources/billing_setup.proto (89%) rename google/ads/googleads/{v15 => v18}/resources/call_view.proto (78%) rename google/ads/googleads/{v15 => v18}/resources/campaign.proto (73%) create mode 100644 google/ads/googleads/v18/resources/campaign_aggregate_asset_view.proto rename google/ads/googleads/{v15 => v18}/resources/campaign_asset.proto (74%) rename google/ads/googleads/{v15 => v18}/resources/campaign_asset_set.proto (82%) rename google/ads/googleads/{v15 => v18}/resources/campaign_audience_view.proto (83%) rename google/ads/googleads/{v15 => v18}/resources/campaign_bid_modifier.proto (83%) rename google/ads/googleads/{v15 => v18}/resources/campaign_budget.proto (88%) rename google/ads/googleads/{v15 => v18}/resources/campaign_conversion_goal.proto (77%) rename google/ads/googleads/{v15 => v18}/resources/campaign_criterion.proto (66%) rename google/ads/googleads/{v15 => v18}/resources/campaign_customizer.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/campaign_draft.proto (86%) rename google/ads/googleads/{v15 => v18}/resources/campaign_extension_setting.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/campaign_feed.proto (76%) rename google/ads/googleads/{v15 => v18}/resources/campaign_group.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/campaign_label.proto (84%) rename google/ads/googleads/{v15 => v18}/resources/campaign_lifecycle_goal.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/campaign_search_term_insight.proto (85%) rename google/ads/googleads/{v15 => v18}/resources/campaign_shared_set.proto (84%) rename google/ads/googleads/{v15 => v18}/resources/campaign_simulation.proto (79%) rename google/ads/googleads/{v15 => v18}/resources/carrier_constant.proto (84%) rename google/ads/googleads/{v15 => v18}/resources/change_event.proto (79%) rename google/ads/googleads/{v15 => v18}/resources/change_status.proto (88%) create mode 100644 google/ads/googleads/v18/resources/channel_aggregate_asset_view.proto rename google/ads/googleads/{v15 => v18}/resources/click_view.proto (84%) rename google/ads/googleads/{v15 => v18}/resources/combined_audience.proto (81%) create mode 100644 google/ads/googleads/v18/resources/content_criterion_view.proto rename google/ads/googleads/{v15 => v18}/resources/conversion_action.proto (84%) rename google/ads/googleads/{v15 => v18}/resources/conversion_custom_variable.proto (86%) rename google/ads/googleads/{v15 => v18}/resources/conversion_goal_campaign_config.proto (81%) rename google/ads/googleads/{v15 => v18}/resources/conversion_value_rule.proto (60%) rename google/ads/googleads/{v15 => v18}/resources/conversion_value_rule_set.proto (81%) rename google/ads/googleads/{v15 => v18}/resources/currency_constant.proto (85%) rename google/ads/googleads/{v15 => v18}/resources/custom_audience.proto (82%) rename google/ads/googleads/{v15 => v18}/resources/custom_conversion_goal.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/custom_interest.proto (79%) rename google/ads/googleads/{v15 => v18}/resources/customer.proto (89%) rename google/ads/googleads/{v15 => v18}/resources/customer_asset.proto (73%) rename google/ads/googleads/{v15 => v18}/resources/customer_asset_set.proto (81%) rename google/ads/googleads/{v15 => v18}/resources/customer_client.proto (88%) rename google/ads/googleads/{v15 => v18}/resources/customer_client_link.proto (81%) rename google/ads/googleads/{v15 => v18}/resources/customer_conversion_goal.proto (76%) rename google/ads/googleads/{v15 => v18}/resources/customer_customizer.proto (78%) rename google/ads/googleads/{v15 => v18}/resources/customer_extension_setting.proto (77%) rename google/ads/googleads/{v15 => v18}/resources/customer_feed.proto (73%) rename google/ads/googleads/{v15 => v18}/resources/customer_label.proto (86%) rename google/ads/googleads/{v15 => v18}/resources/customer_lifecycle_goal.proto (51%) rename google/ads/googleads/{v15 => v18}/resources/customer_manager_link.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/customer_negative_criterion.proto (69%) rename google/ads/googleads/{v15 => v18}/resources/customer_search_term_insight.proto (84%) rename google/ads/googleads/{v15 => v18}/resources/customer_sk_ad_network_conversion_value_schema.proto (68%) rename google/ads/googleads/{v15 => v18}/resources/customer_user_access.proto (82%) rename google/ads/googleads/{v15 => v18}/resources/customer_user_access_invitation.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/customizer_attribute.proto (80%) create mode 100644 google/ads/googleads/v18/resources/data_link.proto rename google/ads/googleads/{v15 => v18}/resources/detail_placement_view.proto (84%) rename google/ads/googleads/{v15 => v18}/resources/detailed_demographic.proto (83%) rename google/ads/googleads/{v15 => v18}/resources/display_keyword_view.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/distance_view.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/domain_category.proto (91%) rename google/ads/googleads/{v15 => v18}/resources/dynamic_search_ads_search_term_view.proto (89%) rename google/ads/googleads/{v15 => v18}/resources/expanded_landing_page_view.proto (83%) rename google/ads/googleads/{v15 => v18}/resources/experiment.proto (75%) rename google/ads/googleads/{v15 => v18}/resources/experiment_arm.proto (88%) rename google/ads/googleads/{v15 => v18}/resources/extension_feed_item.proto (71%) rename google/ads/googleads/{v15 => v18}/resources/feed.proto (88%) rename google/ads/googleads/{v15 => v18}/resources/feed_item.proto (82%) rename google/ads/googleads/{v15 => v18}/resources/feed_item_set.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/feed_item_set_link.proto (84%) rename google/ads/googleads/{v15 => v18}/resources/feed_item_target.proto (78%) rename google/ads/googleads/{v15 => v18}/resources/feed_mapping.proto (67%) rename google/ads/googleads/{v15 => v18}/resources/feed_placeholder_view.proto (77%) rename google/ads/googleads/{v15 => v18}/resources/gender_view.proto (71%) rename google/ads/googleads/{v15 => v18}/resources/geo_target_constant.proto (85%) rename google/ads/googleads/{v15 => v18}/resources/geographic_view.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/google_ads_field.proto (87%) rename google/ads/googleads/{v15 => v18}/resources/group_placement_view.proto (82%) rename google/ads/googleads/{v15 => v18}/resources/hotel_group_view.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/hotel_performance_view.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/hotel_reconciliation.proto (90%) rename google/ads/googleads/{v15 => v18}/resources/income_range_view.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/invoice.proto (95%) rename google/ads/googleads/{v15 => v18}/resources/keyword_plan.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/keyword_plan_ad_group.proto (86%) rename google/ads/googleads/{v15 => v18}/resources/keyword_plan_ad_group_keyword.proto (83%) rename google/ads/googleads/{v15 => v18}/resources/keyword_plan_campaign.proto (86%) rename google/ads/googleads/{v15 => v18}/resources/keyword_plan_campaign_keyword.proto (82%) rename google/ads/googleads/{v15 => v18}/resources/keyword_theme_constant.proto (86%) rename google/ads/googleads/{v15 => v18}/resources/keyword_view.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/label.proto (74%) rename google/ads/googleads/{v15 => v18}/resources/landing_page_view.proto (82%) rename google/ads/googleads/{v15 => v18}/resources/language_constant.proto (84%) rename google/ads/googleads/{v15 => v18}/resources/lead_form_submission_data.proto (89%) rename google/ads/googleads/{v15 => v18}/resources/life_event.proto (82%) create mode 100644 google/ads/googleads/v18/resources/local_services_employee.proto rename google/ads/googleads/{v15 => v18}/resources/local_services_lead.proto (76%) rename google/ads/googleads/{v15 => v18}/resources/local_services_lead_conversation.proto (82%) rename google/ads/googleads/{v15 => v18}/resources/local_services_verification_artifact.proto (56%) rename google/ads/googleads/{v15 => v18}/resources/location_view.proto (71%) rename google/ads/googleads/{v15 => v18}/resources/managed_placement_view.proto (81%) rename google/ads/googleads/{v15 => v18}/resources/media_file.proto (89%) rename google/ads/googleads/{v15 => v18}/resources/mobile_app_category_constant.proto (83%) rename google/ads/googleads/{v15 => v18}/resources/mobile_device_constant.proto (81%) rename google/ads/googleads/{v15 => v18}/resources/offline_conversion_upload_client_summary.proto (68%) create mode 100644 google/ads/googleads/v18/resources/offline_conversion_upload_conversion_action_summary.proto rename google/ads/googleads/{v15 => v18}/resources/offline_user_data_job.proto (76%) rename google/ads/googleads/{v15 => v18}/resources/operating_system_version_constant.proto (83%) rename google/ads/googleads/{v15 => v18}/resources/paid_organic_search_term_view.proto (83%) rename google/ads/googleads/{v15 => v18}/resources/parental_status_view.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/payments_account.proto (88%) rename google/ads/googleads/{v15 => v18}/resources/per_store_view.proto (82%) create mode 100644 google/ads/googleads/v18/resources/performance_max_placement_view.proto rename google/ads/googleads/{v15 => v18}/resources/product_category_constant.proto (83%) rename google/ads/googleads/{v15 => v18}/resources/product_group_view.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/product_link.proto (74%) rename google/ads/googleads/{v15 => v18}/resources/product_link_invitation.proto (72%) rename google/ads/googleads/{v15 => v18}/resources/qualifying_question.proto (83%) rename google/ads/googleads/{v15 => v18}/resources/recommendation.proto (85%) rename google/ads/googleads/{v15 => v18}/resources/recommendation_subscription.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/remarketing_action.proto (81%) rename google/ads/googleads/{v15 => v18}/resources/search_term_view.proto (81%) rename google/ads/googleads/{v15 => v18}/resources/shared_criterion.proto (73%) rename google/ads/googleads/{v15 => v18}/resources/shared_set.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/shopping_performance_view.proto (83%) create mode 100644 google/ads/googleads/v18/resources/shopping_product.proto rename google/ads/googleads/{v15 => v18}/resources/smart_campaign_search_term_view.proto (84%) rename google/ads/googleads/{v15 => v18}/resources/smart_campaign_setting.proto (91%) rename google/ads/googleads/{v15 => v18}/resources/third_party_app_analytics_link.proto (84%) rename google/ads/googleads/{v15 => v18}/resources/topic_constant.proto (86%) rename google/ads/googleads/{v15 => v18}/resources/topic_view.proto (79%) rename google/ads/googleads/{v15 => v18}/resources/travel_activity_group_view.proto (81%) rename google/ads/googleads/{v15 => v18}/resources/travel_activity_performance_view.proto (81%) rename google/ads/googleads/{v15 => v18}/resources/user_interest.proto (80%) rename google/ads/googleads/{v15 => v18}/resources/user_list.proto (77%) create mode 100644 google/ads/googleads/v18/resources/user_list_customer_type.proto rename google/ads/googleads/{v15 => v18}/resources/user_location_view.proto (85%) rename google/ads/googleads/{v15 => v18}/resources/video.proto (83%) rename google/ads/googleads/{v15 => v18}/resources/webpage_view.proto (80%) rename google/ads/googleads/{v15 => v18}/services/BUILD.bazel (94%) rename google/ads/googleads/{v15 => v18}/services/account_budget_proposal_service.proto (88%) rename google/ads/googleads/{v15 => v18}/services/account_link_service.proto (86%) rename google/ads/googleads/{v15 => v18}/services/ad_group_ad_label_service.proto (86%) rename google/ads/googleads/{v15 => v18}/services/ad_group_ad_service.proto (65%) rename google/ads/googleads/{v15 => v18}/services/ad_group_asset_service.proto (84%) rename google/ads/googleads/{v15 => v18}/services/ad_group_asset_set_service.proto (83%) rename google/ads/googleads/{v15 => v18}/services/ad_group_bid_modifier_service.proto (85%) rename google/ads/googleads/{v15 => v18}/services/ad_group_criterion_customizer_service.proto (84%) rename google/ads/googleads/{v15 => v18}/services/ad_group_criterion_label_service.proto (87%) rename google/ads/googleads/{v15 => v18}/services/ad_group_criterion_service.proto (85%) rename google/ads/googleads/{v15 => v18}/services/ad_group_customizer_service.proto (83%) rename google/ads/googleads/{v15 => v18}/services/ad_group_extension_setting_service.proto (86%) rename google/ads/googleads/{v15 => v18}/services/ad_group_feed_service.proto (85%) rename google/ads/googleads/{v15 => v18}/services/ad_group_label_service.proto (86%) rename google/ads/googleads/{v15 => v18}/services/ad_group_service.proto (85%) rename google/ads/googleads/{v15 => v18}/services/ad_parameter_service.proto (84%) rename google/ads/googleads/{v15 => v18}/services/ad_service.proto (74%) rename google/ads/googleads/{v15 => v18}/services/asset_group_asset_service.proto (85%) rename google/ads/googleads/{v15 => v18}/services/asset_group_listing_group_filter_service.proto (84%) rename google/ads/googleads/{v15 => v18}/services/asset_group_service.proto (84%) rename google/ads/googleads/{v15 => v18}/services/asset_group_signal_service.proto (83%) rename google/ads/googleads/{v15 => v18}/services/asset_service.proto (85%) rename google/ads/googleads/{v15 => v18}/services/asset_set_asset_service.proto (83%) rename google/ads/googleads/{v15 => v18}/services/asset_set_service.proto (82%) rename google/ads/googleads/{v15 => v18}/services/audience_insights_service.proto (63%) rename google/ads/googleads/{v15 => v18}/services/audience_service.proto (81%) rename google/ads/googleads/{v15 => v18}/services/batch_job_service.proto (86%) rename google/ads/googleads/{v15 => v18}/services/bidding_data_exclusion_service.proto (83%) rename google/ads/googleads/{v15 => v18}/services/bidding_seasonality_adjustment_service.proto (84%) rename google/ads/googleads/{v15 => v18}/services/bidding_strategy_service.proto (85%) rename google/ads/googleads/{v15 => v18}/services/billing_setup_service.proto (87%) rename google/ads/googleads/{v15 => v18}/services/brand_suggestion_service.proto (80%) rename google/ads/googleads/{v15 => v18}/services/campaign_asset_service.proto (84%) rename google/ads/googleads/{v15 => v18}/services/campaign_asset_set_service.proto (83%) rename google/ads/googleads/{v15 => v18}/services/campaign_bid_modifier_service.proto (85%) rename google/ads/googleads/{v15 => v18}/services/campaign_budget_service.proto (84%) rename google/ads/googleads/{v15 => v18}/services/campaign_conversion_goal_service.proto (83%) rename google/ads/googleads/{v15 => v18}/services/campaign_criterion_service.proto (85%) rename google/ads/googleads/{v15 => v18}/services/campaign_customizer_service.proto (84%) rename google/ads/googleads/{v15 => v18}/services/campaign_draft_service.proto (86%) rename google/ads/googleads/{v15 => v18}/services/campaign_extension_setting_service.proto (86%) rename google/ads/googleads/{v15 => v18}/services/campaign_feed_service.proto (85%) rename google/ads/googleads/{v15 => v18}/services/campaign_group_service.proto (83%) rename google/ads/googleads/{v15 => v18}/services/campaign_label_service.proto (86%) rename google/ads/googleads/{v15 => v18}/services/campaign_lifecycle_goal_service.proto (71%) rename google/ads/googleads/{v15 => v18}/services/campaign_service.proto (85%) rename google/ads/googleads/{v15 => v18}/services/campaign_shared_set_service.proto (85%) create mode 100644 google/ads/googleads/v18/services/content_creator_insights_service.proto rename google/ads/googleads/{v15 => v18}/services/conversion_action_service.proto (84%) rename google/ads/googleads/{v15 => v18}/services/conversion_adjustment_upload_service.proto (91%) rename google/ads/googleads/{v15 => v18}/services/conversion_custom_variable_service.proto (83%) rename google/ads/googleads/{v15 => v18}/services/conversion_goal_campaign_config_service.proto (82%) rename google/ads/googleads/{v15 => v18}/services/conversion_upload_service.proto (92%) rename google/ads/googleads/{v15 => v18}/services/conversion_value_rule_service.proto (83%) rename google/ads/googleads/{v15 => v18}/services/conversion_value_rule_set_service.proto (83%) rename google/ads/googleads/{v15 => v18}/services/custom_audience_service.proto (84%) rename google/ads/googleads/{v15 => v18}/services/custom_conversion_goal_service.proto (80%) rename google/ads/googleads/{v15 => v18}/services/custom_interest_service.proto (83%) rename google/ads/googleads/{v15 => v18}/services/customer_asset_service.proto (84%) rename google/ads/googleads/{v15 => v18}/services/customer_asset_set_service.proto (83%) rename google/ads/googleads/{v15 => v18}/services/customer_client_link_service.proto (83%) rename google/ads/googleads/{v15 => v18}/services/customer_conversion_goal_service.proto (83%) rename google/ads/googleads/{v15 => v18}/services/customer_customizer_service.proto (84%) rename google/ads/googleads/{v15 => v18}/services/customer_extension_setting_service.proto (86%) rename google/ads/googleads/{v15 => v18}/services/customer_feed_service.proto (84%) rename google/ads/googleads/{v15 => v18}/services/customer_label_service.proto (86%) rename google/ads/googleads/{v15 => v18}/services/customer_lifecycle_goal_service.proto (72%) rename google/ads/googleads/{v15 => v18}/services/customer_manager_link_service.proto (88%) rename google/ads/googleads/{v15 => v18}/services/customer_negative_criterion_service.proto (85%) rename google/ads/googleads/{v15 => v18}/services/customer_service.proto (82%) rename google/ads/googleads/{v15 => v18}/services/customer_sk_ad_network_conversion_value_schema_service.proto (75%) rename google/ads/googleads/{v15 => v18}/services/customer_user_access_invitation_service.proto (84%) rename google/ads/googleads/{v15 => v18}/services/customer_user_access_service.proto (84%) rename google/ads/googleads/{v15 => v18}/services/customizer_attribute_service.proto (84%) create mode 100644 google/ads/googleads/v18/services/data_link_service.proto rename google/ads/googleads/{v15 => v18}/services/experiment_arm_service.proto (83%) rename google/ads/googleads/{v15 => v18}/services/experiment_service.proto (89%) rename google/ads/googleads/{v15 => v18}/services/extension_feed_item_service.proto (85%) rename google/ads/googleads/{v15 => v18}/services/feed_item_service.proto (84%) rename google/ads/googleads/{v15 => v18}/services/feed_item_set_link_service.proto (86%) rename google/ads/googleads/{v15 => v18}/services/feed_item_set_service.proto (86%) rename google/ads/googleads/{v15 => v18}/services/feed_item_target_service.proto (85%) rename google/ads/googleads/{v15 => v18}/services/feed_mapping_service.proto (85%) rename google/ads/googleads/{v15 => v18}/services/feed_service.proto (84%) rename google/ads/googleads/{v15 => v18}/services/geo_target_constant_service.proto (83%) rename google/ads/googleads/{v15 => v18}/services/google_ads_field_service.proto (81%) rename google/ads/googleads/{v15 => v18}/services/google_ads_service.proto (59%) create mode 100644 google/ads/googleads/v18/services/identity_verification_service.proto rename google/ads/googleads/{v15 => v18}/services/invoice_service.proto (78%) rename google/ads/googleads/{v15 => v18}/services/keyword_plan_ad_group_keyword_service.proto (88%) rename google/ads/googleads/{v15 => v18}/services/keyword_plan_ad_group_service.proto (87%) rename google/ads/googleads/{v15 => v18}/services/keyword_plan_campaign_keyword_service.proto (88%) rename google/ads/googleads/{v15 => v18}/services/keyword_plan_campaign_service.proto (87%) rename google/ads/googleads/{v15 => v18}/services/keyword_plan_idea_service.proto (87%) rename google/ads/googleads/{v15 => v18}/services/keyword_plan_service.proto (86%) rename google/ads/googleads/{v15 => v18}/services/keyword_theme_constant_service.proto (79%) rename google/ads/googleads/{v15 => v18}/services/label_service.proto (84%) create mode 100644 google/ads/googleads/v18/services/local_services_lead_service.proto rename google/ads/googleads/{v15 => v18}/services/offline_user_data_job_service.proto (85%) rename google/ads/googleads/{v15 => v18}/services/payments_account_service.proto (78%) create mode 100644 google/ads/googleads/v18/services/product_link_invitation_service.proto rename google/ads/googleads/{v15 => v18}/services/product_link_service.proto (83%) rename google/ads/googleads/{v15 => v18}/services/reach_plan_service.proto (90%) rename google/ads/googleads/{v15 => v18}/services/recommendation_service.proto (52%) rename google/ads/googleads/{v15 => v18}/services/recommendation_subscription_service.proto (86%) rename google/ads/googleads/{v15 => v18}/services/remarketing_action_service.proto (85%) create mode 100644 google/ads/googleads/v18/services/shareable_preview_service.proto rename google/ads/googleads/{v15 => v18}/services/shared_criterion_service.proto (85%) rename google/ads/googleads/{v15 => v18}/services/shared_set_service.proto (84%) rename google/ads/googleads/{v15 => v18}/services/smart_campaign_setting_service.proto (85%) rename google/ads/googleads/{v15 => v18}/services/smart_campaign_suggest_service.proto (84%) rename google/ads/googleads/{v15 => v18}/services/third_party_app_analytics_link_service.proto (80%) rename google/ads/googleads/{v15 => v18}/services/travel_asset_suggestion_service.proto (78%) rename google/ads/googleads/{v15 => v18}/services/user_data_service.proto (81%) create mode 100644 google/ads/googleads/v18/services/user_list_customer_type_service.proto rename google/ads/googleads/{v15 => v18}/services/user_list_service.proto (86%) create mode 100644 google/ads/searchads360/v0/common/ad_asset.proto create mode 100644 google/ads/searchads360/v0/enums/custom_column_render_type.proto create mode 100644 google/ads/searchads360/v0/resources/ad_group_effective_label.proto create mode 100644 google/ads/searchads360/v0/resources/campaign_effective_label.proto create mode 100644 google/ai/generativelanguage/v1beta/prediction_service.proto rename google/{cloud/gkeconnect/gateway/v1alpha1 => analytics/cloud}/BUILD.bazel (50%) create mode 100644 google/analytics/cloud/README.md create mode 100644 google/analytics/cloud/bigquery_export_platform_log.proto create mode 100644 google/cloud/aiplatform/v1/evaluation_service.proto create mode 100644 google/cloud/aiplatform/v1/notebook_execution_job.proto create mode 100644 google/cloud/aiplatform/v1/reservation_affinity.proto create mode 100644 google/cloud/aiplatform/v1beta1/api_auth.proto create mode 100644 google/cloud/aiplatform/v1beta1/reservation_affinity.proto create mode 100644 google/cloud/aiplatform/v1beta1/ui_pipeline_spec.proto create mode 100644 google/cloud/alloydb/v1/data_model.proto create mode 100644 google/cloud/apihub/BUILD.bazel create mode 100644 google/cloud/apihub/v1/BUILD.bazel create mode 100644 google/cloud/apihub/v1/apihub_service.proto create mode 100644 google/cloud/apihub/v1/apihub_v1.yaml create mode 100644 google/cloud/apihub/v1/apihub_v1_grpc_service_config.json create mode 100644 google/cloud/apihub/v1/common_fields.proto create mode 100644 google/cloud/apihub/v1/host_project_registration_service.proto create mode 100644 google/cloud/apihub/v1/linting_service.proto create mode 100644 google/cloud/apihub/v1/plugin_service.proto create mode 100644 google/cloud/apihub/v1/provisioning_service.proto create mode 100644 google/cloud/apihub/v1/runtime_project_attachment_service.proto create mode 100644 google/cloud/backupdr/logging/v1/bdr_log.proto create mode 100644 google/cloud/backupdr/v1/backupplan.proto create mode 100644 google/cloud/backupdr/v1/backupplanassociation.proto create mode 100644 google/cloud/backupdr/v1/backupvault.proto create mode 100644 google/cloud/backupdr/v1/backupvault_ba.proto create mode 100644 google/cloud/backupdr/v1/backupvault_gce.proto create mode 100644 google/cloud/bigquery/storage/v1alpha/BUILD.bazel create mode 100644 google/cloud/bigquery/storage/v1alpha/bigquerystorage_v1alpha.yaml create mode 100644 google/cloud/bigquery/storage/v1alpha/bigquerystorage_v1alpha_grpc_service_config.json create mode 100644 google/cloud/bigquery/storage/v1alpha/metastore_partition.proto create mode 100644 google/cloud/bigquery/storage/v1alpha/partition.proto create mode 100644 google/cloud/commerce/consumer/procurement/v1/license_management_service.proto create mode 100644 google/cloud/deploy/v1/customtargettype_notification_payload.proto create mode 100644 google/cloud/deploy/v1/deploypolicy_evaluation_payload.proto create mode 100644 google/cloud/deploy/v1/deploypolicy_notification_payload.proto create mode 100644 google/cloud/dialogflow/v2/encryption_spec.proto create mode 100644 google/cloud/dialogflow/v2/generator.proto create mode 100644 google/cloud/dialogflow/v2beta1/encryption_spec.proto create mode 100644 google/cloud/dialogflow/v2beta1/generator.proto create mode 100644 google/cloud/discoveryengine/v1/custom_tuning_model.proto create mode 100644 google/cloud/discoveryengine/v1/search_tuning_service.proto create mode 100644 google/cloud/discoveryengine/v1alpha/evaluation.proto create mode 100644 google/cloud/discoveryengine/v1alpha/evaluation_service.proto create mode 100644 google/cloud/discoveryengine/v1alpha/sample_query.proto create mode 100644 google/cloud/discoveryengine/v1alpha/sample_query_service.proto create mode 100644 google/cloud/discoveryengine/v1alpha/sample_query_set.proto create mode 100644 google/cloud/discoveryengine/v1alpha/sample_query_set_service.proto create mode 100644 google/cloud/discoveryengine/v1beta/chunk.proto create mode 100644 google/cloud/discoveryengine/v1beta/evaluation.proto create mode 100644 google/cloud/discoveryengine/v1beta/evaluation_service.proto create mode 100644 google/cloud/discoveryengine/v1beta/sample_query.proto create mode 100644 google/cloud/discoveryengine/v1beta/sample_query_service.proto create mode 100644 google/cloud/discoveryengine/v1beta/sample_query_set.proto create mode 100644 google/cloud/discoveryengine/v1beta/sample_query_set_service.proto delete mode 100644 google/cloud/documentai/documentai_v1beta1.yaml delete mode 100644 google/cloud/documentai/v1beta1/BUILD.bazel delete mode 100644 google/cloud/documentai/v1beta1/document.proto delete mode 100644 google/cloud/documentai/v1beta1/document_understanding.proto delete mode 100644 google/cloud/documentai/v1beta1/documentai_gapic.yaml delete mode 100755 google/cloud/documentai/v1beta1/documentai_grpc_service_config.json delete mode 100644 google/cloud/documentai/v1beta1/geometry.proto delete mode 100644 google/cloud/documentai/v1beta2/barcode.proto delete mode 100644 google/cloud/documentai/v1beta2/document.proto delete mode 100644 google/cloud/documentai/v1beta2/document_understanding.proto delete mode 100644 google/cloud/documentai/v1beta2/documentai_gapic.yaml delete mode 100644 google/cloud/documentai/v1beta2/documentai_v1beta2.yaml delete mode 100644 google/cloud/documentai/v1beta2/documentai_v1beta2_grpc_service_config.json delete mode 100644 google/cloud/documentai/v1beta2/geometry.proto create mode 100644 google/cloud/eventarc/logging/v1/BUILD.bazel create mode 100644 google/cloud/eventarc/logging/v1/README.md create mode 100644 google/cloud/eventarc/logging/v1/enrollment_activity.proto create mode 100644 google/cloud/eventarc/logging/v1/google_api_source_activity.proto create mode 100644 google/cloud/eventarc/logging/v1/message_bus_activity.proto create mode 100644 google/cloud/eventarc/logging/v1/pipeline_activity.proto rename google/cloud/gkeconnect/gateway/{v1beta1/connectgw_grpc_service_config.json => v1/connectgateway_v1_grpc_service_config.json} (70%) create mode 100644 google/cloud/gkeconnect/gateway/v1/control.proto delete mode 100644 google/cloud/gkeconnect/gateway/v1/gateway.proto delete mode 100644 google/cloud/gkeconnect/gateway/v1alpha1/connectgateway_v1alpha1.yaml delete mode 100644 google/cloud/gkeconnect/gateway/v1alpha1/gateway.proto rename google/cloud/gkeconnect/gateway/{v1/connectgw_grpc_service_config.json => v1beta1/connectgateway_v1beta1_grpc_service_config.json} (70%) create mode 100644 google/cloud/gkeconnect/gateway/v1beta1/control.proto delete mode 100644 google/cloud/gkeconnect/gateway/v1beta1/gateway.proto create mode 100644 google/cloud/networkmanagement/v1beta1/vpc_flow_logs.proto create mode 100644 google/cloud/networkmanagement/v1beta1/vpc_flow_logs_config.proto create mode 100644 google/cloud/oracledatabase/BUILD.bazel create mode 100644 google/cloud/oracledatabase/v1/BUILD.bazel create mode 100644 google/cloud/oracledatabase/v1/autonomous_database.proto create mode 100644 google/cloud/oracledatabase/v1/autonomous_database_character_set.proto create mode 100644 google/cloud/oracledatabase/v1/autonomous_db_backup.proto create mode 100644 google/cloud/oracledatabase/v1/autonomous_db_version.proto create mode 100644 google/cloud/oracledatabase/v1/common.proto create mode 100644 google/cloud/oracledatabase/v1/db_node.proto create mode 100644 google/cloud/oracledatabase/v1/db_server.proto create mode 100644 google/cloud/oracledatabase/v1/db_system_shape.proto create mode 100644 google/cloud/oracledatabase/v1/entitlement.proto create mode 100644 google/cloud/oracledatabase/v1/exadata_infra.proto create mode 100644 google/cloud/oracledatabase/v1/gi_version.proto create mode 100644 google/cloud/oracledatabase/v1/location_metadata.proto create mode 100644 google/cloud/oracledatabase/v1/oracledatabase.proto create mode 100644 google/cloud/oracledatabase/v1/oracledatabase_gapic.yaml create mode 100644 google/cloud/oracledatabase/v1/oracledatabase_v1.yaml create mode 100644 google/cloud/oracledatabase/v1/oracledatabase_v1_grpc_service_config.json create mode 100644 google/cloud/oracledatabase/v1/vm_cluster.proto rename google/cloud/{documentai/v1beta2 => parallelstore/v1}/BUILD.bazel (54%) create mode 100644 google/cloud/parallelstore/v1/parallelstore.proto create mode 100644 google/cloud/parallelstore/v1/parallelstore_v1.yaml create mode 100644 google/cloud/parallelstore/v1/parallelstore_v1_grpc_service_config.json create mode 100644 google/cloud/retail/v2/generative_question.proto create mode 100644 google/cloud/retail/v2/generative_question_service.proto create mode 100644 google/cloud/retail/v2alpha/generative_question.proto create mode 100644 google/cloud/retail/v2alpha/generative_question_service.proto create mode 100644 google/cloud/retail/v2beta/generative_question.proto create mode 100644 google/cloud/retail/v2beta/generative_question_service.proto create mode 100644 google/cloud/retail/v2beta/project.proto create mode 100644 google/cloud/retail/v2beta/project_service.proto create mode 100644 google/cloud/run/v2/build.proto create mode 100644 google/cloud/speech/v2/locations_metadata.proto create mode 100644 google/cloud/sql/BUILD.bazel create mode 100644 google/cloud/translate/v3/automl_translation.proto create mode 100644 google/cloud/visionai/BUILD.bazel create mode 100644 google/devtools/artifactregistry/v1/artifactregistry_v1_grpc_service_config.json create mode 100644 google/devtools/artifactregistry/v1/attachment.proto create mode 100644 google/devtools/artifactregistry/v1/generic.proto create mode 100644 google/devtools/artifactregistry/v1/rule.proto create mode 100644 google/maps/areainsights/v1/BUILD.bazel create mode 100644 google/maps/areainsights/v1/area_insights_service.proto rename google/{cloud/gkeconnect/gateway/v1alpha1/connectgw_grpc_service_config.json => maps/areainsights/v1/areainsights_grpc_service_config.json} (67%) create mode 100644 google/maps/areainsights/v1/areainsights_v1.yaml create mode 100644 google/maps/places/v1/polyline.proto create mode 100644 google/maps/places/v1/route_modifiers.proto create mode 100644 google/maps/places/v1/routing_preference.proto create mode 100644 google/maps/places/v1/routing_summary.proto create mode 100644 google/maps/places/v1/travel_mode.proto rename google/{cloud/visionai/v1/prediction.proto => shopping/merchant/accounts/v1beta/accountservices.proto} (60%) create mode 100644 google/shopping/merchant/accounts/v1beta/autofeedsettings.proto create mode 100644 google/shopping/merchant/datasources/v1beta/fileuploads.proto diff --git a/WORKSPACE b/WORKSPACE index b1c7283f5..95347d731 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -164,7 +164,8 @@ load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps") grpc_deps() -load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps", "PROTOBUF_MAVEN_ARTIFACTS") +load("@com_google_protobuf//:protobuf_deps.bzl", "PROTOBUF_MAVEN_ARTIFACTS", "protobuf_deps") + # This is actually already done within grpc_deps but calling this for Bazel convention. protobuf_deps() @@ -208,14 +209,13 @@ rules_proto_toolchains() # version of rules_gapic. _rules_gapic_version = "1.0.0" - http_archive( name = "rules_gapic", strip_prefix = "rules_gapic-%s" % _rules_gapic_version, urls = ["https://github.com/googleapis/rules_gapic/archive/v%s.tar.gz" % _rules_gapic_version], ) -_gapic_generator_go_version = "0.44.0" +_gapic_generator_go_version = "0.47.0" http_archive( name = "com_googleapis_gapic_generator_go", @@ -255,27 +255,7 @@ rules_gapic_repositories() 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/", - ], -) - -_gapic_generator_java_version = "2.42.0" - -maven_install( - artifacts = [ - "com.google.api:gapic-generator-java:" + _gapic_generator_java_version, - ], - #Update this False for local development - fail_on_missing_checksum = True, - repositories = [ - "m2Local", - "https://repo.maven.apache.org/maven2/", - ] -) +_gapic_generator_java_version = "2.45.0" http_archive( name = "gapic_generator_java", @@ -301,10 +281,33 @@ load("@com_google_api_gax_java//:repositories.bzl", "com_google_api_gax_java_rep com_google_api_gax_java_repositories() -load("@io_grpc_grpc_java//:repositories.bzl", "grpc_java_repositories") +load("@io_grpc_grpc_java//:repositories.bzl", "IO_GRPC_GRPC_JAVA_ARTIFACTS", "IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS", "grpc_java_repositories") grpc_java_repositories() +load("@envoy_api//bazel:repositories.bzl", "api_dependencies") + +api_dependencies() + +maven_install( + artifacts = [ + "com.google.api:gapic-generator-java:" + _gapic_generator_java_version, + ] + PROTOBUF_MAVEN_ARTIFACTS + + IO_GRPC_GRPC_JAVA_ARTIFACTS, + #Update this False for local development + fail_on_missing_checksum = True, + generate_compat_repositories = True, + override_targets = IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS, + repositories = [ + "m2Local", + "https://repo.maven.apache.org/maven2/", + ], +) + +load("@maven//:compat.bzl", "compat_repositories") + +compat_repositories() + ############################################################################## # Python ############################################################################## @@ -312,10 +315,13 @@ load("@rules_gapic//python:py_gapic_repositories.bzl", "py_gapic_repositories") py_gapic_repositories() -_gapic_generator_python_version = "1.18.2" +_gapic_generator_python_version = "1.20.0" + +_gapic_generator_python_sha256 = "4904e95d34bdb984ee8dd10cbe322f907de2f82487058256839359a503146870" http_archive( name = "gapic_generator_python", + sha256 = _gapic_generator_python_sha256, strip_prefix = "gapic-generator-python-%s" % _gapic_generator_python_version, urls = ["https://github.com/googleapis/gapic-generator-python/archive/v%s.zip" % _gapic_generator_python_version], ) @@ -325,7 +331,6 @@ load( "gapic_generator_python", "gapic_generator_register_toolchains", ) - load("@rules_python//python:repositories.bzl", "py_repositories") py_repositories() @@ -361,32 +366,39 @@ http_archive( urls = ["https://github.com/googleapis/gapic-generator-typescript/archive/v%s.tar.gz" % _gapic_generator_typescript_version], ) -load("@gapic_generator_typescript//:repositories.bzl", "gapic_generator_typescript_repositories", "NODE_VERSION") +load("@gapic_generator_typescript//:repositories.bzl", "NODE_VERSION", "gapic_generator_typescript_repositories") + gapic_generator_typescript_repositories() load("@aspect_rules_js//js:repositories.bzl", "rules_js_dependencies") + rules_js_dependencies() load("@aspect_rules_ts//ts:repositories.bzl", "rules_ts_dependencies") + rules_ts_dependencies( ts_version_from = "@gapic_generator_typescript//:package.json", ) load("@rules_nodejs//nodejs:repositories.bzl", "nodejs_register_toolchains") + nodejs_register_toolchains( - name = "nodejs", - node_version = NODE_VERSION, + name = "nodejs", + node_version = NODE_VERSION, ) load("@aspect_rules_js//npm:npm_import.bzl", "npm_translate_lock", "pnpm_repository") + npm_translate_lock( - name = "npm", - pnpm_lock = "@gapic_generator_typescript//:pnpm-lock.yaml", - data = ["@gapic_generator_typescript//:package.json"], + name = "npm", + data = ["@gapic_generator_typescript//:package.json"], + pnpm_lock = "@gapic_generator_typescript//:pnpm-lock.yaml", ) load("@npm//:repositories.bzl", "npm_repositories") + npm_repositories() + pnpm_repository(name = "pnpm") ############################################################################## @@ -394,7 +406,7 @@ pnpm_repository(name = "pnpm") ############################################################################## # PHP micro-generator -_gapic_generator_php_version = "1.16.0" +_gapic_generator_php_version = "1.16.1" http_archive( name = "gapic_generator_php", @@ -427,8 +439,9 @@ http_archive( urls = ["https://github.com/googleapis/gax-dotnet/archive/refs/tags/%s.tar.gz" % _gax_dotnet_version], ) -_gapic_generator_csharp_version = "1.4.30" -_gapic_generator_csharp_sha256 = "e2e40510fc59277a40c6d7df519a5bdd368f9f0035c2de5adf45265fea7539d7" +_gapic_generator_csharp_version = "1.4.32" + +_gapic_generator_csharp_sha256 = "b29078c87d6c0e15ba34ece8365ec5fda90c66e9c7f5ab51fa14a067f3685012" http_archive( name = "gapic_generator_csharp", @@ -445,9 +458,9 @@ gapic_generator_csharp_repositories() # Ruby ############################################################################## -_gapic_generator_ruby_version = "v0.33.0" +_gapic_generator_ruby_version = "v0.37.0" -_gapic_generator_ruby_sha256 = "a0a8f3816a9bf3fde60f696c21faebc233155bc0e2212e871b5b535f03f1ae3e" +_gapic_generator_ruby_sha256 = "86bb0b0b80269818376dbe13385cbb16577c1fe0d9a2e572fc87f73261a2e4f5" http_archive( name = "gapic_generator_ruby", diff --git a/api-index-v1.json b/api-index-v1.json index 2ca408523..ecc29262f 100644 --- a/api-index-v1.json +++ b/api-index-v1.json @@ -229,77 +229,54 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Ads.AdManager.V1": 35 + "Google.Ads.AdManager.V1": 46 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager": 35 + "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager": 46 } }, "java_multiple_files": { "valueCounts": { - "true": 35 + "true": 46 } }, "java_package": { "valueCounts": { - "com.google.ads.admanager.v1": 35 - } - }, - "objc_class_prefix": { - "valueCounts": { - "": 1, - "GAA": 34 + "com.google.ads.admanager.v1": 46 } }, "php_namespace": { "valueCounts": { - "Google\\Ads\\AdManager\\V1": 35 + "Google\\Ads\\AdManager\\V1": 46 } } }, "services": [ { - "shortName": "AdPartnerService", - "fullName": "google.ads.admanager.v1.AdPartnerService", + "shortName": "AdUnitService", + "fullName": "google.ads.admanager.v1.AdUnitService", "methods": [ { - "shortName": "GetAdPartner", - "fullName": "google.ads.admanager.v1.AdPartnerService.GetAdPartner", + "shortName": "GetAdUnit", + "fullName": "google.ads.admanager.v1.AdUnitService.GetAdUnit", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=networks/*/adPartners/*}" + "path": "/v1/{name=networks/*/adUnits/*}" } ] }, { - "shortName": "ListAdPartners", - "fullName": "google.ads.admanager.v1.AdPartnerService.ListAdPartners", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1/{parent=networks/*}/adPartners" - } - ] - } - ] - }, - { - "shortName": "AdUnitService", - "fullName": "google.ads.admanager.v1.AdUnitService", - "methods": [ - { - "shortName": "GetAdUnit", - "fullName": "google.ads.admanager.v1.AdUnitService.GetAdUnit", + "shortName": "ListAdUnitSizes", + "fullName": "google.ads.admanager.v1.AdUnitService.ListAdUnitSizes", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=networks/*/adUnits/*}" + "path": "/v1/{parent=networks/*}/adUnitSizes" } ] }, @@ -344,62 +321,6 @@ } ] }, - { - "shortName": "ContactService", - "fullName": "google.ads.admanager.v1.ContactService", - "methods": [ - { - "shortName": "GetContact", - "fullName": "google.ads.admanager.v1.ContactService.GetContact", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1/{name=networks/*/contacts/*}" - } - ] - }, - { - "shortName": "ListContacts", - "fullName": "google.ads.admanager.v1.ContactService.ListContacts", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1/{parent=networks/*}/contacts" - } - ] - } - ] - }, - { - "shortName": "CreativeService", - "fullName": "google.ads.admanager.v1.CreativeService", - "methods": [ - { - "shortName": "GetCreative", - "fullName": "google.ads.admanager.v1.CreativeService.GetCreative", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1/{name=networks/*/creatives/*}" - } - ] - }, - { - "shortName": "ListCreatives", - "fullName": "google.ads.admanager.v1.CreativeService.ListCreatives", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1/{parent=networks/*}/creatives" - } - ] - } - ] - }, { "shortName": "CustomFieldService", "fullName": "google.ads.admanager.v1.CustomFieldService", @@ -485,56 +406,72 @@ ] }, { - "shortName": "LabelService", - "fullName": "google.ads.admanager.v1.LabelService", + "shortName": "EntitySignalsMappingService", + "fullName": "google.ads.admanager.v1.EntitySignalsMappingService", "methods": [ { - "shortName": "GetLabel", - "fullName": "google.ads.admanager.v1.LabelService.GetLabel", + "shortName": "BatchCreateEntitySignalsMappings", + "fullName": "google.ads.admanager.v1.EntitySignalsMappingService.BatchCreateEntitySignalsMappings", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{name=networks/*/labels/*}" + "httpMethod": "POST", + "path": "/v1/{parent=networks/*}/entitySignalsMappings:batchCreate" } ] }, { - "shortName": "ListLabels", - "fullName": "google.ads.admanager.v1.LabelService.ListLabels", + "shortName": "BatchUpdateEntitySignalsMappings", + "fullName": "google.ads.admanager.v1.EntitySignalsMappingService.BatchUpdateEntitySignalsMappings", "mode": "UNARY", "bindings": [ { - "httpMethod": "GET", - "path": "/v1/{parent=networks/*}/labels" + "httpMethod": "POST", + "path": "/v1/{parent=networks/*}/entitySignalsMappings:batchUpdate" } ] - } - ] - }, - { - "shortName": "LineItemService", - "fullName": "google.ads.admanager.v1.LineItemService", - "methods": [ + }, + { + "shortName": "CreateEntitySignalsMapping", + "fullName": "google.ads.admanager.v1.EntitySignalsMappingService.CreateEntitySignalsMapping", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=networks/*}/entitySignalsMappings" + } + ] + }, { - "shortName": "GetLineItem", - "fullName": "google.ads.admanager.v1.LineItemService.GetLineItem", + "shortName": "GetEntitySignalsMapping", + "fullName": "google.ads.admanager.v1.EntitySignalsMappingService.GetEntitySignalsMapping", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=networks/*/orders/*/lineItems/*}" + "path": "/v1/{name=networks/*/entitySignalsMappings/*}" } ] }, { - "shortName": "ListLineItems", - "fullName": "google.ads.admanager.v1.LineItemService.ListLineItems", + "shortName": "ListEntitySignalsMappings", + "fullName": "google.ads.admanager.v1.EntitySignalsMappingService.ListEntitySignalsMappings", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=networks/*/orders/*}/lineItems" + "path": "/v1/{parent=networks/*}/entitySignalsMappings" + } + ] + }, + { + "shortName": "UpdateEntitySignalsMapping", + "fullName": "google.ads.admanager.v1.EntitySignalsMappingService.UpdateEntitySignalsMapping", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{entity_signals_mapping.name=networks/*/entitySignalsMappings/*}" } ] } @@ -554,6 +491,17 @@ "path": "/v1/{name=networks/*}" } ] + }, + { + "shortName": "ListNetworks", + "fullName": "google.ads.admanager.v1.NetworkService.ListNetworks", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/networks" + } + ] } ] }, @@ -618,13 +566,68 @@ "fullName": "google.ads.admanager.v1.ReportService", "methods": [ { - "shortName": "ExportSavedReport", - "fullName": "google.ads.admanager.v1.ReportService.ExportSavedReport", + "shortName": "CreateReport", + "fullName": "google.ads.admanager.v1.ReportService.CreateReport", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=networks/*}/reports" + } + ] + }, + { + "shortName": "FetchReportResultRows", + "fullName": "google.ads.admanager.v1.ReportService.FetchReportResultRows", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=networks/*/reports/*/results/*}:fetchRows" + } + ] + }, + { + "shortName": "GetReport", + "fullName": "google.ads.admanager.v1.ReportService.GetReport", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=networks/*/reports/*}" + } + ] + }, + { + "shortName": "ListReports", + "fullName": "google.ads.admanager.v1.ReportService.ListReports", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=networks/*}/reports" + } + ] + }, + { + "shortName": "RunReport", + "fullName": "google.ads.admanager.v1.ReportService.RunReport", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v1/{report=networks/*/reports/*}:exportSavedReport" + "path": "/v1/{name=networks/*/reports/*}:run" + } + ] + }, + { + "shortName": "UpdateReport", + "fullName": "google.ads.admanager.v1.ReportService.UpdateReport", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{report.name=networks/*/reports/*}" } ] } @@ -659,28 +662,28 @@ ] }, { - "shortName": "TeamService", - "fullName": "google.ads.admanager.v1.TeamService", + "shortName": "TaxonomyCategoryService", + "fullName": "google.ads.admanager.v1.TaxonomyCategoryService", "methods": [ { - "shortName": "GetTeam", - "fullName": "google.ads.admanager.v1.TeamService.GetTeam", + "shortName": "GetTaxonomyCategory", + "fullName": "google.ads.admanager.v1.TaxonomyCategoryService.GetTaxonomyCategory", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{name=networks/*/teams/*}" + "path": "/v1/{name=networks/*/taxonomyCategories/*}" } ] }, { - "shortName": "ListTeams", - "fullName": "google.ads.admanager.v1.TeamService.ListTeams", + "shortName": "ListTaxonomyCategories", + "fullName": "google.ads.admanager.v1.TaxonomyCategoryService.ListTaxonomyCategories", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1/{parent=networks/*}/teams" + "path": "/v1/{parent=networks/*}/taxonomyCategories" } ] } @@ -700,58 +703,43 @@ "path": "/v1/{name=networks/*/users/*}" } ] - }, - { - "shortName": "ListUsers", - "fullName": "google.ads.admanager.v1.UserService.ListUsers", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v1/{parent=networks/*}/users" - } - ] } ] } ], "configFile": "admanager_v1.yaml", "serviceConfigApiNames": [ - "google.ads.admanager.v1.AdPartnerService", "google.ads.admanager.v1.AdUnitService", "google.ads.admanager.v1.CompanyService", - "google.ads.admanager.v1.ContactService", - "google.ads.admanager.v1.CreativeService", "google.ads.admanager.v1.CustomFieldService", "google.ads.admanager.v1.CustomTargetingKeyService", "google.ads.admanager.v1.CustomTargetingValueService", - "google.ads.admanager.v1.LabelService", - "google.ads.admanager.v1.LineItemService", + "google.ads.admanager.v1.EntitySignalsMappingService", "google.ads.admanager.v1.NetworkService", "google.ads.admanager.v1.OrderService", "google.ads.admanager.v1.PlacementService", "google.ads.admanager.v1.ReportService", "google.ads.admanager.v1.RoleService", - "google.ads.admanager.v1.TeamService", + "google.ads.admanager.v1.TaxonomyCategoryService", "google.ads.admanager.v1.UserService", "google.longrunning.Operations" ], "nameInServiceConfig": "admanager.googleapis.com" }, { - "id": "google.ads.googleads.v15", - "directory": "google/ads/googleads/v15", - "version": "v15", - "majorVersion": "v15", + "id": "google.ads.googleads.v16", + "directory": "google/ads/googleads/v16", + "version": "v16", + "majorVersion": "v16", "hostName": "googleads.googleapis.com", "title": "Google Ads API", "description": "Manage your Google Ads accounts, campaigns, and reports with this API.", "importDirectories": [ - "google/ads/googleads/v15/common", - "google/ads/googleads/v15/enums", - "google/ads/googleads/v15/errors", - "google/ads/googleads/v15/resources", - "google/ads/googleads/v15/services", + "google/ads/googleads/v16/common", + "google/ads/googleads/v16/enums", + "google/ads/googleads/v16/errors", + "google/ads/googleads/v16/resources", + "google/ads/googleads/v16/services", "google/api", "google/longrunning", "google/protobuf", @@ -760,73 +748,73 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Ads.GoogleAds.V15.Common": 38, - "Google.Ads.GoogleAds.V15.Enums": 338, - "Google.Ads.GoogleAds.V15.Errors": 151, - "Google.Ads.GoogleAds.V15.Resources": 176, - "Google.Ads.GoogleAds.V15.Services": 110 + "Google.Ads.GoogleAds.V16.Common": 38, + "Google.Ads.GoogleAds.V16.Enums": 350, + "Google.Ads.GoogleAds.V16.Errors": 153, + "Google.Ads.GoogleAds.V16.Resources": 177, + "Google.Ads.GoogleAds.V16.Services": 111 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common": 38, - "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums": 338, - "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors": 151, - "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources": 176, - "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services": 110 + "google.golang.org/genproto/googleapis/ads/googleads/v16/common;common": 38, + "google.golang.org/genproto/googleapis/ads/googleads/v16/enums;enums": 350, + "google.golang.org/genproto/googleapis/ads/googleads/v16/errors;errors": 153, + "google.golang.org/genproto/googleapis/ads/googleads/v16/resources;resources": 177, + "google.golang.org/genproto/googleapis/ads/googleads/v16/services;services": 111 } }, "java_multiple_files": { "valueCounts": { - "true": 813 + "true": 829 } }, "java_package": { "valueCounts": { - "com.google.ads.googleads.v15.common": 38, - "com.google.ads.googleads.v15.enums": 338, - "com.google.ads.googleads.v15.errors": 151, - "com.google.ads.googleads.v15.resources": 176, - "com.google.ads.googleads.v15.services": 110 + "com.google.ads.googleads.v16.common": 38, + "com.google.ads.googleads.v16.enums": 350, + "com.google.ads.googleads.v16.errors": 153, + "com.google.ads.googleads.v16.resources": 177, + "com.google.ads.googleads.v16.services": 111 } }, "objc_class_prefix": { "valueCounts": { - "GAA": 813 + "GAA": 829 } }, "php_namespace": { "valueCounts": { - "Google\\Ads\\GoogleAds\\V15\\Common": 38, - "Google\\Ads\\GoogleAds\\V15\\Enums": 338, - "Google\\Ads\\GoogleAds\\V15\\Errors": 151, - "Google\\Ads\\GoogleAds\\V15\\Resources": 176, - "Google\\Ads\\GoogleAds\\V15\\Services": 110 + "Google\\Ads\\GoogleAds\\V16\\Common": 38, + "Google\\Ads\\GoogleAds\\V16\\Enums": 350, + "Google\\Ads\\GoogleAds\\V16\\Errors": 153, + "Google\\Ads\\GoogleAds\\V16\\Resources": 177, + "Google\\Ads\\GoogleAds\\V16\\Services": 111 } }, "ruby_package": { "valueCounts": { - "Google::Ads::GoogleAds::V15::Common": 38, - "Google::Ads::GoogleAds::V15::Enums": 338, - "Google::Ads::GoogleAds::V15::Errors": 151, - "Google::Ads::GoogleAds::V15::Resources": 176, - "Google::Ads::GoogleAds::V15::Services": 110 + "Google::Ads::GoogleAds::V16::Common": 38, + "Google::Ads::GoogleAds::V16::Enums": 350, + "Google::Ads::GoogleAds::V16::Errors": 153, + "Google::Ads::GoogleAds::V16::Resources": 177, + "Google::Ads::GoogleAds::V16::Services": 111 } } }, "services": [ { "shortName": "AccountBudgetProposalService", - "fullName": "google.ads.googleads.v15.services.AccountBudgetProposalService", + "fullName": "google.ads.googleads.v16.services.AccountBudgetProposalService", "methods": [ { "shortName": "MutateAccountBudgetProposal", - "fullName": "google.ads.googleads.v15.services.AccountBudgetProposalService.MutateAccountBudgetProposal", + "fullName": "google.ads.googleads.v16.services.AccountBudgetProposalService.MutateAccountBudgetProposal", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/accountBudgetProposals:mutate" + "path": "/v16/customers/{customer_id=*}/accountBudgetProposals:mutate" } ] } @@ -834,27 +822,27 @@ }, { "shortName": "AccountLinkService", - "fullName": "google.ads.googleads.v15.services.AccountLinkService", + "fullName": "google.ads.googleads.v16.services.AccountLinkService", "methods": [ { "shortName": "CreateAccountLink", - "fullName": "google.ads.googleads.v15.services.AccountLinkService.CreateAccountLink", + "fullName": "google.ads.googleads.v16.services.AccountLinkService.CreateAccountLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/accountLinks:create" + "path": "/v16/customers/{customer_id=*}/accountLinks:create" } ] }, { "shortName": "MutateAccountLink", - "fullName": "google.ads.googleads.v15.services.AccountLinkService.MutateAccountLink", + "fullName": "google.ads.googleads.v16.services.AccountLinkService.MutateAccountLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/accountLinks:mutate" + "path": "/v16/customers/{customer_id=*}/accountLinks:mutate" } ] } @@ -862,16 +850,16 @@ }, { "shortName": "AdGroupAdLabelService", - "fullName": "google.ads.googleads.v15.services.AdGroupAdLabelService", + "fullName": "google.ads.googleads.v16.services.AdGroupAdLabelService", "methods": [ { "shortName": "MutateAdGroupAdLabels", - "fullName": "google.ads.googleads.v15.services.AdGroupAdLabelService.MutateAdGroupAdLabels", + "fullName": "google.ads.googleads.v16.services.AdGroupAdLabelService.MutateAdGroupAdLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adGroupAdLabels:mutate" + "path": "/v16/customers/{customer_id=*}/adGroupAdLabels:mutate" } ] } @@ -879,16 +867,16 @@ }, { "shortName": "AdGroupAdService", - "fullName": "google.ads.googleads.v15.services.AdGroupAdService", + "fullName": "google.ads.googleads.v16.services.AdGroupAdService", "methods": [ { "shortName": "MutateAdGroupAds", - "fullName": "google.ads.googleads.v15.services.AdGroupAdService.MutateAdGroupAds", + "fullName": "google.ads.googleads.v16.services.AdGroupAdService.MutateAdGroupAds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adGroupAds:mutate" + "path": "/v16/customers/{customer_id=*}/adGroupAds:mutate" } ] } @@ -896,16 +884,16 @@ }, { "shortName": "AdGroupAssetService", - "fullName": "google.ads.googleads.v15.services.AdGroupAssetService", + "fullName": "google.ads.googleads.v16.services.AdGroupAssetService", "methods": [ { "shortName": "MutateAdGroupAssets", - "fullName": "google.ads.googleads.v15.services.AdGroupAssetService.MutateAdGroupAssets", + "fullName": "google.ads.googleads.v16.services.AdGroupAssetService.MutateAdGroupAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adGroupAssets:mutate" + "path": "/v16/customers/{customer_id=*}/adGroupAssets:mutate" } ] } @@ -913,16 +901,16 @@ }, { "shortName": "AdGroupAssetSetService", - "fullName": "google.ads.googleads.v15.services.AdGroupAssetSetService", + "fullName": "google.ads.googleads.v16.services.AdGroupAssetSetService", "methods": [ { "shortName": "MutateAdGroupAssetSets", - "fullName": "google.ads.googleads.v15.services.AdGroupAssetSetService.MutateAdGroupAssetSets", + "fullName": "google.ads.googleads.v16.services.AdGroupAssetSetService.MutateAdGroupAssetSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adGroupAssetSets:mutate" + "path": "/v16/customers/{customer_id=*}/adGroupAssetSets:mutate" } ] } @@ -930,16 +918,16 @@ }, { "shortName": "AdGroupBidModifierService", - "fullName": "google.ads.googleads.v15.services.AdGroupBidModifierService", + "fullName": "google.ads.googleads.v16.services.AdGroupBidModifierService", "methods": [ { "shortName": "MutateAdGroupBidModifiers", - "fullName": "google.ads.googleads.v15.services.AdGroupBidModifierService.MutateAdGroupBidModifiers", + "fullName": "google.ads.googleads.v16.services.AdGroupBidModifierService.MutateAdGroupBidModifiers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adGroupBidModifiers:mutate" + "path": "/v16/customers/{customer_id=*}/adGroupBidModifiers:mutate" } ] } @@ -947,16 +935,16 @@ }, { "shortName": "AdGroupCriterionCustomizerService", - "fullName": "google.ads.googleads.v15.services.AdGroupCriterionCustomizerService", + "fullName": "google.ads.googleads.v16.services.AdGroupCriterionCustomizerService", "methods": [ { "shortName": "MutateAdGroupCriterionCustomizers", - "fullName": "google.ads.googleads.v15.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers", + "fullName": "google.ads.googleads.v16.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/AdGroupCriterionCustomizers:mutate" + "path": "/v16/customers/{customer_id=*}/AdGroupCriterionCustomizers:mutate" } ] } @@ -964,16 +952,16 @@ }, { "shortName": "AdGroupCriterionLabelService", - "fullName": "google.ads.googleads.v15.services.AdGroupCriterionLabelService", + "fullName": "google.ads.googleads.v16.services.AdGroupCriterionLabelService", "methods": [ { "shortName": "MutateAdGroupCriterionLabels", - "fullName": "google.ads.googleads.v15.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels", + "fullName": "google.ads.googleads.v16.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adGroupCriterionLabels:mutate" + "path": "/v16/customers/{customer_id=*}/adGroupCriterionLabels:mutate" } ] } @@ -981,16 +969,16 @@ }, { "shortName": "AdGroupCriterionService", - "fullName": "google.ads.googleads.v15.services.AdGroupCriterionService", + "fullName": "google.ads.googleads.v16.services.AdGroupCriterionService", "methods": [ { "shortName": "MutateAdGroupCriteria", - "fullName": "google.ads.googleads.v15.services.AdGroupCriterionService.MutateAdGroupCriteria", + "fullName": "google.ads.googleads.v16.services.AdGroupCriterionService.MutateAdGroupCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adGroupCriteria:mutate" + "path": "/v16/customers/{customer_id=*}/adGroupCriteria:mutate" } ] } @@ -998,16 +986,16 @@ }, { "shortName": "AdGroupCustomizerService", - "fullName": "google.ads.googleads.v15.services.AdGroupCustomizerService", + "fullName": "google.ads.googleads.v16.services.AdGroupCustomizerService", "methods": [ { "shortName": "MutateAdGroupCustomizers", - "fullName": "google.ads.googleads.v15.services.AdGroupCustomizerService.MutateAdGroupCustomizers", + "fullName": "google.ads.googleads.v16.services.AdGroupCustomizerService.MutateAdGroupCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adGroupCustomizers:mutate" + "path": "/v16/customers/{customer_id=*}/adGroupCustomizers:mutate" } ] } @@ -1015,16 +1003,16 @@ }, { "shortName": "AdGroupExtensionSettingService", - "fullName": "google.ads.googleads.v15.services.AdGroupExtensionSettingService", + "fullName": "google.ads.googleads.v16.services.AdGroupExtensionSettingService", "methods": [ { "shortName": "MutateAdGroupExtensionSettings", - "fullName": "google.ads.googleads.v15.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings", + "fullName": "google.ads.googleads.v16.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adGroupExtensionSettings:mutate" + "path": "/v16/customers/{customer_id=*}/adGroupExtensionSettings:mutate" } ] } @@ -1032,16 +1020,16 @@ }, { "shortName": "AdGroupFeedService", - "fullName": "google.ads.googleads.v15.services.AdGroupFeedService", + "fullName": "google.ads.googleads.v16.services.AdGroupFeedService", "methods": [ { "shortName": "MutateAdGroupFeeds", - "fullName": "google.ads.googleads.v15.services.AdGroupFeedService.MutateAdGroupFeeds", + "fullName": "google.ads.googleads.v16.services.AdGroupFeedService.MutateAdGroupFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adGroupFeeds:mutate" + "path": "/v16/customers/{customer_id=*}/adGroupFeeds:mutate" } ] } @@ -1049,16 +1037,16 @@ }, { "shortName": "AdGroupLabelService", - "fullName": "google.ads.googleads.v15.services.AdGroupLabelService", + "fullName": "google.ads.googleads.v16.services.AdGroupLabelService", "methods": [ { "shortName": "MutateAdGroupLabels", - "fullName": "google.ads.googleads.v15.services.AdGroupLabelService.MutateAdGroupLabels", + "fullName": "google.ads.googleads.v16.services.AdGroupLabelService.MutateAdGroupLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adGroupLabels:mutate" + "path": "/v16/customers/{customer_id=*}/adGroupLabels:mutate" } ] } @@ -1066,16 +1054,16 @@ }, { "shortName": "AdGroupService", - "fullName": "google.ads.googleads.v15.services.AdGroupService", + "fullName": "google.ads.googleads.v16.services.AdGroupService", "methods": [ { "shortName": "MutateAdGroups", - "fullName": "google.ads.googleads.v15.services.AdGroupService.MutateAdGroups", + "fullName": "google.ads.googleads.v16.services.AdGroupService.MutateAdGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adGroups:mutate" + "path": "/v16/customers/{customer_id=*}/adGroups:mutate" } ] } @@ -1083,16 +1071,16 @@ }, { "shortName": "AdParameterService", - "fullName": "google.ads.googleads.v15.services.AdParameterService", + "fullName": "google.ads.googleads.v16.services.AdParameterService", "methods": [ { "shortName": "MutateAdParameters", - "fullName": "google.ads.googleads.v15.services.AdParameterService.MutateAdParameters", + "fullName": "google.ads.googleads.v16.services.AdParameterService.MutateAdParameters", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/adParameters:mutate" + "path": "/v16/customers/{customer_id=*}/adParameters:mutate" } ] } @@ -1100,27 +1088,27 @@ }, { "shortName": "AdService", - "fullName": "google.ads.googleads.v15.services.AdService", + "fullName": "google.ads.googleads.v16.services.AdService", "methods": [ { "shortName": "GetAd", - "fullName": "google.ads.googleads.v15.services.AdService.GetAd", + "fullName": "google.ads.googleads.v16.services.AdService.GetAd", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v15/{resource_name=customers/*/ads/*}" + "path": "/v16/{resource_name=customers/*/ads/*}" } ] }, { "shortName": "MutateAds", - "fullName": "google.ads.googleads.v15.services.AdService.MutateAds", + "fullName": "google.ads.googleads.v16.services.AdService.MutateAds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/ads:mutate" + "path": "/v16/customers/{customer_id=*}/ads:mutate" } ] } @@ -1128,16 +1116,16 @@ }, { "shortName": "AssetGroupAssetService", - "fullName": "google.ads.googleads.v15.services.AssetGroupAssetService", + "fullName": "google.ads.googleads.v16.services.AssetGroupAssetService", "methods": [ { "shortName": "MutateAssetGroupAssets", - "fullName": "google.ads.googleads.v15.services.AssetGroupAssetService.MutateAssetGroupAssets", + "fullName": "google.ads.googleads.v16.services.AssetGroupAssetService.MutateAssetGroupAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/assetGroupAssets:mutate" + "path": "/v16/customers/{customer_id=*}/assetGroupAssets:mutate" } ] } @@ -1145,16 +1133,16 @@ }, { "shortName": "AssetGroupListingGroupFilterService", - "fullName": "google.ads.googleads.v15.services.AssetGroupListingGroupFilterService", + "fullName": "google.ads.googleads.v16.services.AssetGroupListingGroupFilterService", "methods": [ { "shortName": "MutateAssetGroupListingGroupFilters", - "fullName": "google.ads.googleads.v15.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters", + "fullName": "google.ads.googleads.v16.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/assetGroupListingGroupFilters:mutate" + "path": "/v16/customers/{customer_id=*}/assetGroupListingGroupFilters:mutate" } ] } @@ -1162,16 +1150,16 @@ }, { "shortName": "AssetGroupService", - "fullName": "google.ads.googleads.v15.services.AssetGroupService", + "fullName": "google.ads.googleads.v16.services.AssetGroupService", "methods": [ { "shortName": "MutateAssetGroups", - "fullName": "google.ads.googleads.v15.services.AssetGroupService.MutateAssetGroups", + "fullName": "google.ads.googleads.v16.services.AssetGroupService.MutateAssetGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/assetGroups:mutate" + "path": "/v16/customers/{customer_id=*}/assetGroups:mutate" } ] } @@ -1179,16 +1167,16 @@ }, { "shortName": "AssetGroupSignalService", - "fullName": "google.ads.googleads.v15.services.AssetGroupSignalService", + "fullName": "google.ads.googleads.v16.services.AssetGroupSignalService", "methods": [ { "shortName": "MutateAssetGroupSignals", - "fullName": "google.ads.googleads.v15.services.AssetGroupSignalService.MutateAssetGroupSignals", + "fullName": "google.ads.googleads.v16.services.AssetGroupSignalService.MutateAssetGroupSignals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/assetGroupSignals:mutate" + "path": "/v16/customers/{customer_id=*}/assetGroupSignals:mutate" } ] } @@ -1196,16 +1184,16 @@ }, { "shortName": "AssetService", - "fullName": "google.ads.googleads.v15.services.AssetService", + "fullName": "google.ads.googleads.v16.services.AssetService", "methods": [ { "shortName": "MutateAssets", - "fullName": "google.ads.googleads.v15.services.AssetService.MutateAssets", + "fullName": "google.ads.googleads.v16.services.AssetService.MutateAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/assets:mutate" + "path": "/v16/customers/{customer_id=*}/assets:mutate" } ] } @@ -1213,16 +1201,16 @@ }, { "shortName": "AssetSetAssetService", - "fullName": "google.ads.googleads.v15.services.AssetSetAssetService", + "fullName": "google.ads.googleads.v16.services.AssetSetAssetService", "methods": [ { "shortName": "MutateAssetSetAssets", - "fullName": "google.ads.googleads.v15.services.AssetSetAssetService.MutateAssetSetAssets", + "fullName": "google.ads.googleads.v16.services.AssetSetAssetService.MutateAssetSetAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/assetSetAssets:mutate" + "path": "/v16/customers/{customer_id=*}/assetSetAssets:mutate" } ] } @@ -1230,16 +1218,16 @@ }, { "shortName": "AssetSetService", - "fullName": "google.ads.googleads.v15.services.AssetSetService", + "fullName": "google.ads.googleads.v16.services.AssetSetService", "methods": [ { "shortName": "MutateAssetSets", - "fullName": "google.ads.googleads.v15.services.AssetSetService.MutateAssetSets", + "fullName": "google.ads.googleads.v16.services.AssetSetService.MutateAssetSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/assetSets:mutate" + "path": "/v16/customers/{customer_id=*}/assetSets:mutate" } ] } @@ -1247,60 +1235,60 @@ }, { "shortName": "AudienceInsightsService", - "fullName": "google.ads.googleads.v15.services.AudienceInsightsService", + "fullName": "google.ads.googleads.v16.services.AudienceInsightsService", "methods": [ { "shortName": "GenerateAudienceCompositionInsights", - "fullName": "google.ads.googleads.v15.services.AudienceInsightsService.GenerateAudienceCompositionInsights", + "fullName": "google.ads.googleads.v16.services.AudienceInsightsService.GenerateAudienceCompositionInsights", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:generateAudienceCompositionInsights" + "path": "/v16/customers/{customer_id=*}:generateAudienceCompositionInsights" } ] }, { "shortName": "GenerateInsightsFinderReport", - "fullName": "google.ads.googleads.v15.services.AudienceInsightsService.GenerateInsightsFinderReport", + "fullName": "google.ads.googleads.v16.services.AudienceInsightsService.GenerateInsightsFinderReport", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:generateInsightsFinderReport" + "path": "/v16/customers/{customer_id=*}:generateInsightsFinderReport" } ] }, { "shortName": "GenerateSuggestedTargetingInsights", - "fullName": "google.ads.googleads.v15.services.AudienceInsightsService.GenerateSuggestedTargetingInsights", + "fullName": "google.ads.googleads.v16.services.AudienceInsightsService.GenerateSuggestedTargetingInsights", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:generateSuggestedTargetingInsights" + "path": "/v16/customers/{customer_id=*}:generateSuggestedTargetingInsights" } ] }, { "shortName": "ListAudienceInsightsAttributes", - "fullName": "google.ads.googleads.v15.services.AudienceInsightsService.ListAudienceInsightsAttributes", + "fullName": "google.ads.googleads.v16.services.AudienceInsightsService.ListAudienceInsightsAttributes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:searchAudienceInsightsAttributes" + "path": "/v16/customers/{customer_id=*}:searchAudienceInsightsAttributes" } ] }, { "shortName": "ListInsightsEligibleDates", - "fullName": "google.ads.googleads.v15.services.AudienceInsightsService.ListInsightsEligibleDates", + "fullName": "google.ads.googleads.v16.services.AudienceInsightsService.ListInsightsEligibleDates", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/audienceInsights:listInsightsEligibleDates" + "path": "/v16/audienceInsights:listInsightsEligibleDates" } ] } @@ -1308,16 +1296,16 @@ }, { "shortName": "AudienceService", - "fullName": "google.ads.googleads.v15.services.AudienceService", + "fullName": "google.ads.googleads.v16.services.AudienceService", "methods": [ { "shortName": "MutateAudiences", - "fullName": "google.ads.googleads.v15.services.AudienceService.MutateAudiences", + "fullName": "google.ads.googleads.v16.services.AudienceService.MutateAudiences", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/audiences:mutate" + "path": "/v16/customers/{customer_id=*}/audiences:mutate" } ] } @@ -1325,49 +1313,49 @@ }, { "shortName": "BatchJobService", - "fullName": "google.ads.googleads.v15.services.BatchJobService", + "fullName": "google.ads.googleads.v16.services.BatchJobService", "methods": [ { "shortName": "AddBatchJobOperations", - "fullName": "google.ads.googleads.v15.services.BatchJobService.AddBatchJobOperations", + "fullName": "google.ads.googleads.v16.services.BatchJobService.AddBatchJobOperations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/{resource_name=customers/*/batchJobs/*}:addOperations" + "path": "/v16/{resource_name=customers/*/batchJobs/*}:addOperations" } ] }, { "shortName": "ListBatchJobResults", - "fullName": "google.ads.googleads.v15.services.BatchJobService.ListBatchJobResults", + "fullName": "google.ads.googleads.v16.services.BatchJobService.ListBatchJobResults", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v15/{resource_name=customers/*/batchJobs/*}:listResults" + "path": "/v16/{resource_name=customers/*/batchJobs/*}:listResults" } ] }, { "shortName": "MutateBatchJob", - "fullName": "google.ads.googleads.v15.services.BatchJobService.MutateBatchJob", + "fullName": "google.ads.googleads.v16.services.BatchJobService.MutateBatchJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/batchJobs:mutate" + "path": "/v16/customers/{customer_id=*}/batchJobs:mutate" } ] }, { "shortName": "RunBatchJob", - "fullName": "google.ads.googleads.v15.services.BatchJobService.RunBatchJob", + "fullName": "google.ads.googleads.v16.services.BatchJobService.RunBatchJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/{resource_name=customers/*/batchJobs/*}:run" + "path": "/v16/{resource_name=customers/*/batchJobs/*}:run" } ] } @@ -1375,16 +1363,16 @@ }, { "shortName": "BiddingDataExclusionService", - "fullName": "google.ads.googleads.v15.services.BiddingDataExclusionService", + "fullName": "google.ads.googleads.v16.services.BiddingDataExclusionService", "methods": [ { "shortName": "MutateBiddingDataExclusions", - "fullName": "google.ads.googleads.v15.services.BiddingDataExclusionService.MutateBiddingDataExclusions", + "fullName": "google.ads.googleads.v16.services.BiddingDataExclusionService.MutateBiddingDataExclusions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/biddingDataExclusions:mutate" + "path": "/v16/customers/{customer_id=*}/biddingDataExclusions:mutate" } ] } @@ -1392,16 +1380,16 @@ }, { "shortName": "BiddingSeasonalityAdjustmentService", - "fullName": "google.ads.googleads.v15.services.BiddingSeasonalityAdjustmentService", + "fullName": "google.ads.googleads.v16.services.BiddingSeasonalityAdjustmentService", "methods": [ { "shortName": "MutateBiddingSeasonalityAdjustments", - "fullName": "google.ads.googleads.v15.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments", + "fullName": "google.ads.googleads.v16.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/biddingSeasonalityAdjustments:mutate" + "path": "/v16/customers/{customer_id=*}/biddingSeasonalityAdjustments:mutate" } ] } @@ -1409,16 +1397,16 @@ }, { "shortName": "BiddingStrategyService", - "fullName": "google.ads.googleads.v15.services.BiddingStrategyService", + "fullName": "google.ads.googleads.v16.services.BiddingStrategyService", "methods": [ { "shortName": "MutateBiddingStrategies", - "fullName": "google.ads.googleads.v15.services.BiddingStrategyService.MutateBiddingStrategies", + "fullName": "google.ads.googleads.v16.services.BiddingStrategyService.MutateBiddingStrategies", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/biddingStrategies:mutate" + "path": "/v16/customers/{customer_id=*}/biddingStrategies:mutate" } ] } @@ -1426,16 +1414,16 @@ }, { "shortName": "BillingSetupService", - "fullName": "google.ads.googleads.v15.services.BillingSetupService", + "fullName": "google.ads.googleads.v16.services.BillingSetupService", "methods": [ { "shortName": "MutateBillingSetup", - "fullName": "google.ads.googleads.v15.services.BillingSetupService.MutateBillingSetup", + "fullName": "google.ads.googleads.v16.services.BillingSetupService.MutateBillingSetup", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/billingSetups:mutate" + "path": "/v16/customers/{customer_id=*}/billingSetups:mutate" } ] } @@ -1443,16 +1431,16 @@ }, { "shortName": "BrandSuggestionService", - "fullName": "google.ads.googleads.v15.services.BrandSuggestionService", + "fullName": "google.ads.googleads.v16.services.BrandSuggestionService", "methods": [ { "shortName": "SuggestBrands", - "fullName": "google.ads.googleads.v15.services.BrandSuggestionService.SuggestBrands", + "fullName": "google.ads.googleads.v16.services.BrandSuggestionService.SuggestBrands", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:suggestBrands" + "path": "/v16/customers/{customer_id=*}:suggestBrands" } ] } @@ -1460,16 +1448,16 @@ }, { "shortName": "CampaignAssetService", - "fullName": "google.ads.googleads.v15.services.CampaignAssetService", + "fullName": "google.ads.googleads.v16.services.CampaignAssetService", "methods": [ { "shortName": "MutateCampaignAssets", - "fullName": "google.ads.googleads.v15.services.CampaignAssetService.MutateCampaignAssets", + "fullName": "google.ads.googleads.v16.services.CampaignAssetService.MutateCampaignAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignAssets:mutate" + "path": "/v16/customers/{customer_id=*}/campaignAssets:mutate" } ] } @@ -1477,16 +1465,16 @@ }, { "shortName": "CampaignAssetSetService", - "fullName": "google.ads.googleads.v15.services.CampaignAssetSetService", + "fullName": "google.ads.googleads.v16.services.CampaignAssetSetService", "methods": [ { "shortName": "MutateCampaignAssetSets", - "fullName": "google.ads.googleads.v15.services.CampaignAssetSetService.MutateCampaignAssetSets", + "fullName": "google.ads.googleads.v16.services.CampaignAssetSetService.MutateCampaignAssetSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignAssetSets:mutate" + "path": "/v16/customers/{customer_id=*}/campaignAssetSets:mutate" } ] } @@ -1494,16 +1482,16 @@ }, { "shortName": "CampaignBidModifierService", - "fullName": "google.ads.googleads.v15.services.CampaignBidModifierService", + "fullName": "google.ads.googleads.v16.services.CampaignBidModifierService", "methods": [ { "shortName": "MutateCampaignBidModifiers", - "fullName": "google.ads.googleads.v15.services.CampaignBidModifierService.MutateCampaignBidModifiers", + "fullName": "google.ads.googleads.v16.services.CampaignBidModifierService.MutateCampaignBidModifiers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignBidModifiers:mutate" + "path": "/v16/customers/{customer_id=*}/campaignBidModifiers:mutate" } ] } @@ -1511,16 +1499,16 @@ }, { "shortName": "CampaignBudgetService", - "fullName": "google.ads.googleads.v15.services.CampaignBudgetService", + "fullName": "google.ads.googleads.v16.services.CampaignBudgetService", "methods": [ { "shortName": "MutateCampaignBudgets", - "fullName": "google.ads.googleads.v15.services.CampaignBudgetService.MutateCampaignBudgets", + "fullName": "google.ads.googleads.v16.services.CampaignBudgetService.MutateCampaignBudgets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignBudgets:mutate" + "path": "/v16/customers/{customer_id=*}/campaignBudgets:mutate" } ] } @@ -1528,16 +1516,16 @@ }, { "shortName": "CampaignConversionGoalService", - "fullName": "google.ads.googleads.v15.services.CampaignConversionGoalService", + "fullName": "google.ads.googleads.v16.services.CampaignConversionGoalService", "methods": [ { "shortName": "MutateCampaignConversionGoals", - "fullName": "google.ads.googleads.v15.services.CampaignConversionGoalService.MutateCampaignConversionGoals", + "fullName": "google.ads.googleads.v16.services.CampaignConversionGoalService.MutateCampaignConversionGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignConversionGoals:mutate" + "path": "/v16/customers/{customer_id=*}/campaignConversionGoals:mutate" } ] } @@ -1545,16 +1533,16 @@ }, { "shortName": "CampaignCriterionService", - "fullName": "google.ads.googleads.v15.services.CampaignCriterionService", + "fullName": "google.ads.googleads.v16.services.CampaignCriterionService", "methods": [ { "shortName": "MutateCampaignCriteria", - "fullName": "google.ads.googleads.v15.services.CampaignCriterionService.MutateCampaignCriteria", + "fullName": "google.ads.googleads.v16.services.CampaignCriterionService.MutateCampaignCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignCriteria:mutate" + "path": "/v16/customers/{customer_id=*}/campaignCriteria:mutate" } ] } @@ -1562,16 +1550,16 @@ }, { "shortName": "CampaignCustomizerService", - "fullName": "google.ads.googleads.v15.services.CampaignCustomizerService", + "fullName": "google.ads.googleads.v16.services.CampaignCustomizerService", "methods": [ { "shortName": "MutateCampaignCustomizers", - "fullName": "google.ads.googleads.v15.services.CampaignCustomizerService.MutateCampaignCustomizers", + "fullName": "google.ads.googleads.v16.services.CampaignCustomizerService.MutateCampaignCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignCustomizers:mutate" + "path": "/v16/customers/{customer_id=*}/campaignCustomizers:mutate" } ] } @@ -1579,38 +1567,38 @@ }, { "shortName": "CampaignDraftService", - "fullName": "google.ads.googleads.v15.services.CampaignDraftService", + "fullName": "google.ads.googleads.v16.services.CampaignDraftService", "methods": [ { "shortName": "ListCampaignDraftAsyncErrors", - "fullName": "google.ads.googleads.v15.services.CampaignDraftService.ListCampaignDraftAsyncErrors", + "fullName": "google.ads.googleads.v16.services.CampaignDraftService.ListCampaignDraftAsyncErrors", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v15/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" + "path": "/v16/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" } ] }, { "shortName": "MutateCampaignDrafts", - "fullName": "google.ads.googleads.v15.services.CampaignDraftService.MutateCampaignDrafts", + "fullName": "google.ads.googleads.v16.services.CampaignDraftService.MutateCampaignDrafts", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignDrafts:mutate" + "path": "/v16/customers/{customer_id=*}/campaignDrafts:mutate" } ] }, { "shortName": "PromoteCampaignDraft", - "fullName": "google.ads.googleads.v15.services.CampaignDraftService.PromoteCampaignDraft", + "fullName": "google.ads.googleads.v16.services.CampaignDraftService.PromoteCampaignDraft", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/{campaign_draft=customers/*/campaignDrafts/*}:promote" + "path": "/v16/{campaign_draft=customers/*/campaignDrafts/*}:promote" } ] } @@ -1618,16 +1606,16 @@ }, { "shortName": "CampaignExtensionSettingService", - "fullName": "google.ads.googleads.v15.services.CampaignExtensionSettingService", + "fullName": "google.ads.googleads.v16.services.CampaignExtensionSettingService", "methods": [ { "shortName": "MutateCampaignExtensionSettings", - "fullName": "google.ads.googleads.v15.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings", + "fullName": "google.ads.googleads.v16.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignExtensionSettings:mutate" + "path": "/v16/customers/{customer_id=*}/campaignExtensionSettings:mutate" } ] } @@ -1635,16 +1623,16 @@ }, { "shortName": "CampaignFeedService", - "fullName": "google.ads.googleads.v15.services.CampaignFeedService", + "fullName": "google.ads.googleads.v16.services.CampaignFeedService", "methods": [ { "shortName": "MutateCampaignFeeds", - "fullName": "google.ads.googleads.v15.services.CampaignFeedService.MutateCampaignFeeds", + "fullName": "google.ads.googleads.v16.services.CampaignFeedService.MutateCampaignFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignFeeds:mutate" + "path": "/v16/customers/{customer_id=*}/campaignFeeds:mutate" } ] } @@ -1652,16 +1640,16 @@ }, { "shortName": "CampaignGroupService", - "fullName": "google.ads.googleads.v15.services.CampaignGroupService", + "fullName": "google.ads.googleads.v16.services.CampaignGroupService", "methods": [ { "shortName": "MutateCampaignGroups", - "fullName": "google.ads.googleads.v15.services.CampaignGroupService.MutateCampaignGroups", + "fullName": "google.ads.googleads.v16.services.CampaignGroupService.MutateCampaignGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignGroups:mutate" + "path": "/v16/customers/{customer_id=*}/campaignGroups:mutate" } ] } @@ -1669,33 +1657,33 @@ }, { "shortName": "CampaignLabelService", - "fullName": "google.ads.googleads.v15.services.CampaignLabelService", + "fullName": "google.ads.googleads.v16.services.CampaignLabelService", "methods": [ { "shortName": "MutateCampaignLabels", - "fullName": "google.ads.googleads.v15.services.CampaignLabelService.MutateCampaignLabels", + "fullName": "google.ads.googleads.v16.services.CampaignLabelService.MutateCampaignLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignLabels:mutate" + "path": "/v16/customers/{customer_id=*}/campaignLabels:mutate" } ] } ] }, { - "shortName": "CampaignLifecycleService", - "fullName": "google.ads.googleads.v15.services.CampaignLifecycleService", + "shortName": "CampaignLifecycleGoalService", + "fullName": "google.ads.googleads.v16.services.CampaignLifecycleGoalService", "methods": [ { "shortName": "ConfigureCampaignLifecycleGoals", - "fullName": "google.ads.googleads.v15.services.CampaignLifecycleService.ConfigureCampaignLifecycleGoals", + "fullName": "google.ads.googleads.v16.services.CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignLifecycleGoal:configureCampaignLifecycleGoals" + "path": "/v16/customers/{customer_id=*}/campaignLifecycleGoal:configureCampaignLifecycleGoals" } ] } @@ -1703,16 +1691,16 @@ }, { "shortName": "CampaignService", - "fullName": "google.ads.googleads.v15.services.CampaignService", + "fullName": "google.ads.googleads.v16.services.CampaignService", "methods": [ { "shortName": "MutateCampaigns", - "fullName": "google.ads.googleads.v15.services.CampaignService.MutateCampaigns", + "fullName": "google.ads.googleads.v16.services.CampaignService.MutateCampaigns", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaigns:mutate" + "path": "/v16/customers/{customer_id=*}/campaigns:mutate" } ] } @@ -1720,16 +1708,16 @@ }, { "shortName": "CampaignSharedSetService", - "fullName": "google.ads.googleads.v15.services.CampaignSharedSetService", + "fullName": "google.ads.googleads.v16.services.CampaignSharedSetService", "methods": [ { "shortName": "MutateCampaignSharedSets", - "fullName": "google.ads.googleads.v15.services.CampaignSharedSetService.MutateCampaignSharedSets", + "fullName": "google.ads.googleads.v16.services.CampaignSharedSetService.MutateCampaignSharedSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/campaignSharedSets:mutate" + "path": "/v16/customers/{customer_id=*}/campaignSharedSets:mutate" } ] } @@ -1737,16 +1725,16 @@ }, { "shortName": "ConversionActionService", - "fullName": "google.ads.googleads.v15.services.ConversionActionService", + "fullName": "google.ads.googleads.v16.services.ConversionActionService", "methods": [ { "shortName": "MutateConversionActions", - "fullName": "google.ads.googleads.v15.services.ConversionActionService.MutateConversionActions", + "fullName": "google.ads.googleads.v16.services.ConversionActionService.MutateConversionActions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/conversionActions:mutate" + "path": "/v16/customers/{customer_id=*}/conversionActions:mutate" } ] } @@ -1754,16 +1742,16 @@ }, { "shortName": "ConversionAdjustmentUploadService", - "fullName": "google.ads.googleads.v15.services.ConversionAdjustmentUploadService", + "fullName": "google.ads.googleads.v16.services.ConversionAdjustmentUploadService", "methods": [ { "shortName": "UploadConversionAdjustments", - "fullName": "google.ads.googleads.v15.services.ConversionAdjustmentUploadService.UploadConversionAdjustments", + "fullName": "google.ads.googleads.v16.services.ConversionAdjustmentUploadService.UploadConversionAdjustments", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:uploadConversionAdjustments" + "path": "/v16/customers/{customer_id=*}:uploadConversionAdjustments" } ] } @@ -1771,16 +1759,16 @@ }, { "shortName": "ConversionCustomVariableService", - "fullName": "google.ads.googleads.v15.services.ConversionCustomVariableService", + "fullName": "google.ads.googleads.v16.services.ConversionCustomVariableService", "methods": [ { "shortName": "MutateConversionCustomVariables", - "fullName": "google.ads.googleads.v15.services.ConversionCustomVariableService.MutateConversionCustomVariables", + "fullName": "google.ads.googleads.v16.services.ConversionCustomVariableService.MutateConversionCustomVariables", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/conversionCustomVariables:mutate" + "path": "/v16/customers/{customer_id=*}/conversionCustomVariables:mutate" } ] } @@ -1788,16 +1776,16 @@ }, { "shortName": "ConversionGoalCampaignConfigService", - "fullName": "google.ads.googleads.v15.services.ConversionGoalCampaignConfigService", + "fullName": "google.ads.googleads.v16.services.ConversionGoalCampaignConfigService", "methods": [ { "shortName": "MutateConversionGoalCampaignConfigs", - "fullName": "google.ads.googleads.v15.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs", + "fullName": "google.ads.googleads.v16.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/conversionGoalCampaignConfigs:mutate" + "path": "/v16/customers/{customer_id=*}/conversionGoalCampaignConfigs:mutate" } ] } @@ -1805,27 +1793,27 @@ }, { "shortName": "ConversionUploadService", - "fullName": "google.ads.googleads.v15.services.ConversionUploadService", + "fullName": "google.ads.googleads.v16.services.ConversionUploadService", "methods": [ { "shortName": "UploadCallConversions", - "fullName": "google.ads.googleads.v15.services.ConversionUploadService.UploadCallConversions", + "fullName": "google.ads.googleads.v16.services.ConversionUploadService.UploadCallConversions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:uploadCallConversions" + "path": "/v16/customers/{customer_id=*}:uploadCallConversions" } ] }, { "shortName": "UploadClickConversions", - "fullName": "google.ads.googleads.v15.services.ConversionUploadService.UploadClickConversions", + "fullName": "google.ads.googleads.v16.services.ConversionUploadService.UploadClickConversions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:uploadClickConversions" + "path": "/v16/customers/{customer_id=*}:uploadClickConversions" } ] } @@ -1833,16 +1821,16 @@ }, { "shortName": "ConversionValueRuleService", - "fullName": "google.ads.googleads.v15.services.ConversionValueRuleService", + "fullName": "google.ads.googleads.v16.services.ConversionValueRuleService", "methods": [ { "shortName": "MutateConversionValueRules", - "fullName": "google.ads.googleads.v15.services.ConversionValueRuleService.MutateConversionValueRules", + "fullName": "google.ads.googleads.v16.services.ConversionValueRuleService.MutateConversionValueRules", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/conversionValueRules:mutate" + "path": "/v16/customers/{customer_id=*}/conversionValueRules:mutate" } ] } @@ -1850,16 +1838,16 @@ }, { "shortName": "ConversionValueRuleSetService", - "fullName": "google.ads.googleads.v15.services.ConversionValueRuleSetService", + "fullName": "google.ads.googleads.v16.services.ConversionValueRuleSetService", "methods": [ { "shortName": "MutateConversionValueRuleSets", - "fullName": "google.ads.googleads.v15.services.ConversionValueRuleSetService.MutateConversionValueRuleSets", + "fullName": "google.ads.googleads.v16.services.ConversionValueRuleSetService.MutateConversionValueRuleSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/conversionValueRuleSets:mutate" + "path": "/v16/customers/{customer_id=*}/conversionValueRuleSets:mutate" } ] } @@ -1867,16 +1855,16 @@ }, { "shortName": "CustomAudienceService", - "fullName": "google.ads.googleads.v15.services.CustomAudienceService", + "fullName": "google.ads.googleads.v16.services.CustomAudienceService", "methods": [ { "shortName": "MutateCustomAudiences", - "fullName": "google.ads.googleads.v15.services.CustomAudienceService.MutateCustomAudiences", + "fullName": "google.ads.googleads.v16.services.CustomAudienceService.MutateCustomAudiences", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customAudiences:mutate" + "path": "/v16/customers/{customer_id=*}/customAudiences:mutate" } ] } @@ -1884,16 +1872,16 @@ }, { "shortName": "CustomConversionGoalService", - "fullName": "google.ads.googleads.v15.services.CustomConversionGoalService", + "fullName": "google.ads.googleads.v16.services.CustomConversionGoalService", "methods": [ { "shortName": "MutateCustomConversionGoals", - "fullName": "google.ads.googleads.v15.services.CustomConversionGoalService.MutateCustomConversionGoals", + "fullName": "google.ads.googleads.v16.services.CustomConversionGoalService.MutateCustomConversionGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customConversionGoals:mutate" + "path": "/v16/customers/{customer_id=*}/customConversionGoals:mutate" } ] } @@ -1901,16 +1889,16 @@ }, { "shortName": "CustomInterestService", - "fullName": "google.ads.googleads.v15.services.CustomInterestService", + "fullName": "google.ads.googleads.v16.services.CustomInterestService", "methods": [ { "shortName": "MutateCustomInterests", - "fullName": "google.ads.googleads.v15.services.CustomInterestService.MutateCustomInterests", + "fullName": "google.ads.googleads.v16.services.CustomInterestService.MutateCustomInterests", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customInterests:mutate" + "path": "/v16/customers/{customer_id=*}/customInterests:mutate" } ] } @@ -1918,16 +1906,16 @@ }, { "shortName": "CustomerAssetService", - "fullName": "google.ads.googleads.v15.services.CustomerAssetService", + "fullName": "google.ads.googleads.v16.services.CustomerAssetService", "methods": [ { "shortName": "MutateCustomerAssets", - "fullName": "google.ads.googleads.v15.services.CustomerAssetService.MutateCustomerAssets", + "fullName": "google.ads.googleads.v16.services.CustomerAssetService.MutateCustomerAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerAssets:mutate" + "path": "/v16/customers/{customer_id=*}/customerAssets:mutate" } ] } @@ -1935,16 +1923,16 @@ }, { "shortName": "CustomerAssetSetService", - "fullName": "google.ads.googleads.v15.services.CustomerAssetSetService", + "fullName": "google.ads.googleads.v16.services.CustomerAssetSetService", "methods": [ { "shortName": "MutateCustomerAssetSets", - "fullName": "google.ads.googleads.v15.services.CustomerAssetSetService.MutateCustomerAssetSets", + "fullName": "google.ads.googleads.v16.services.CustomerAssetSetService.MutateCustomerAssetSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerAssetSets:mutate" + "path": "/v16/customers/{customer_id=*}/customerAssetSets:mutate" } ] } @@ -1952,16 +1940,16 @@ }, { "shortName": "CustomerClientLinkService", - "fullName": "google.ads.googleads.v15.services.CustomerClientLinkService", + "fullName": "google.ads.googleads.v16.services.CustomerClientLinkService", "methods": [ { "shortName": "MutateCustomerClientLink", - "fullName": "google.ads.googleads.v15.services.CustomerClientLinkService.MutateCustomerClientLink", + "fullName": "google.ads.googleads.v16.services.CustomerClientLinkService.MutateCustomerClientLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerClientLinks:mutate" + "path": "/v16/customers/{customer_id=*}/customerClientLinks:mutate" } ] } @@ -1969,16 +1957,16 @@ }, { "shortName": "CustomerConversionGoalService", - "fullName": "google.ads.googleads.v15.services.CustomerConversionGoalService", + "fullName": "google.ads.googleads.v16.services.CustomerConversionGoalService", "methods": [ { "shortName": "MutateCustomerConversionGoals", - "fullName": "google.ads.googleads.v15.services.CustomerConversionGoalService.MutateCustomerConversionGoals", + "fullName": "google.ads.googleads.v16.services.CustomerConversionGoalService.MutateCustomerConversionGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerConversionGoals:mutate" + "path": "/v16/customers/{customer_id=*}/customerConversionGoals:mutate" } ] } @@ -1986,16 +1974,16 @@ }, { "shortName": "CustomerCustomizerService", - "fullName": "google.ads.googleads.v15.services.CustomerCustomizerService", + "fullName": "google.ads.googleads.v16.services.CustomerCustomizerService", "methods": [ { "shortName": "MutateCustomerCustomizers", - "fullName": "google.ads.googleads.v15.services.CustomerCustomizerService.MutateCustomerCustomizers", + "fullName": "google.ads.googleads.v16.services.CustomerCustomizerService.MutateCustomerCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/CustomerCustomizers:mutate" + "path": "/v16/customers/{customer_id=*}/CustomerCustomizers:mutate" } ] } @@ -2003,16 +1991,16 @@ }, { "shortName": "CustomerExtensionSettingService", - "fullName": "google.ads.googleads.v15.services.CustomerExtensionSettingService", + "fullName": "google.ads.googleads.v16.services.CustomerExtensionSettingService", "methods": [ { "shortName": "MutateCustomerExtensionSettings", - "fullName": "google.ads.googleads.v15.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings", + "fullName": "google.ads.googleads.v16.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerExtensionSettings:mutate" + "path": "/v16/customers/{customer_id=*}/customerExtensionSettings:mutate" } ] } @@ -2020,16 +2008,16 @@ }, { "shortName": "CustomerFeedService", - "fullName": "google.ads.googleads.v15.services.CustomerFeedService", + "fullName": "google.ads.googleads.v16.services.CustomerFeedService", "methods": [ { "shortName": "MutateCustomerFeeds", - "fullName": "google.ads.googleads.v15.services.CustomerFeedService.MutateCustomerFeeds", + "fullName": "google.ads.googleads.v16.services.CustomerFeedService.MutateCustomerFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerFeeds:mutate" + "path": "/v16/customers/{customer_id=*}/customerFeeds:mutate" } ] } @@ -2037,33 +2025,33 @@ }, { "shortName": "CustomerLabelService", - "fullName": "google.ads.googleads.v15.services.CustomerLabelService", + "fullName": "google.ads.googleads.v16.services.CustomerLabelService", "methods": [ { "shortName": "MutateCustomerLabels", - "fullName": "google.ads.googleads.v15.services.CustomerLabelService.MutateCustomerLabels", + "fullName": "google.ads.googleads.v16.services.CustomerLabelService.MutateCustomerLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerLabels:mutate" + "path": "/v16/customers/{customer_id=*}/customerLabels:mutate" } ] } ] }, { - "shortName": "CustomerLifecycleService", - "fullName": "google.ads.googleads.v15.services.CustomerLifecycleService", + "shortName": "CustomerLifecycleGoalService", + "fullName": "google.ads.googleads.v16.services.CustomerLifecycleGoalService", "methods": [ { "shortName": "ConfigureCustomerLifecycleGoals", - "fullName": "google.ads.googleads.v15.services.CustomerLifecycleService.ConfigureCustomerLifecycleGoals", + "fullName": "google.ads.googleads.v16.services.CustomerLifecycleGoalService.ConfigureCustomerLifecycleGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerLifecycleGoal:configureCustomerLifecycleGoals" + "path": "/v16/customers/{customer_id=*}/customerLifecycleGoal:configureCustomerLifecycleGoals" } ] } @@ -2071,27 +2059,27 @@ }, { "shortName": "CustomerManagerLinkService", - "fullName": "google.ads.googleads.v15.services.CustomerManagerLinkService", + "fullName": "google.ads.googleads.v16.services.CustomerManagerLinkService", "methods": [ { "shortName": "MoveManagerLink", - "fullName": "google.ads.googleads.v15.services.CustomerManagerLinkService.MoveManagerLink", + "fullName": "google.ads.googleads.v16.services.CustomerManagerLinkService.MoveManagerLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" + "path": "/v16/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" } ] }, { "shortName": "MutateCustomerManagerLink", - "fullName": "google.ads.googleads.v15.services.CustomerManagerLinkService.MutateCustomerManagerLink", + "fullName": "google.ads.googleads.v16.services.CustomerManagerLinkService.MutateCustomerManagerLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerManagerLinks:mutate" + "path": "/v16/customers/{customer_id=*}/customerManagerLinks:mutate" } ] } @@ -2099,16 +2087,16 @@ }, { "shortName": "CustomerNegativeCriterionService", - "fullName": "google.ads.googleads.v15.services.CustomerNegativeCriterionService", + "fullName": "google.ads.googleads.v16.services.CustomerNegativeCriterionService", "methods": [ { "shortName": "MutateCustomerNegativeCriteria", - "fullName": "google.ads.googleads.v15.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria", + "fullName": "google.ads.googleads.v16.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerNegativeCriteria:mutate" + "path": "/v16/customers/{customer_id=*}/customerNegativeCriteria:mutate" } ] } @@ -2116,38 +2104,38 @@ }, { "shortName": "CustomerService", - "fullName": "google.ads.googleads.v15.services.CustomerService", + "fullName": "google.ads.googleads.v16.services.CustomerService", "methods": [ { "shortName": "CreateCustomerClient", - "fullName": "google.ads.googleads.v15.services.CustomerService.CreateCustomerClient", + "fullName": "google.ads.googleads.v16.services.CustomerService.CreateCustomerClient", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:createCustomerClient" + "path": "/v16/customers/{customer_id=*}:createCustomerClient" } ] }, { "shortName": "ListAccessibleCustomers", - "fullName": "google.ads.googleads.v15.services.CustomerService.ListAccessibleCustomers", + "fullName": "google.ads.googleads.v16.services.CustomerService.ListAccessibleCustomers", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v15/customers:listAccessibleCustomers" + "path": "/v16/customers:listAccessibleCustomers" } ] }, { "shortName": "MutateCustomer", - "fullName": "google.ads.googleads.v15.services.CustomerService.MutateCustomer", + "fullName": "google.ads.googleads.v16.services.CustomerService.MutateCustomer", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:mutate" + "path": "/v16/customers/{customer_id=*}:mutate" } ] } @@ -2155,16 +2143,16 @@ }, { "shortName": "CustomerSkAdNetworkConversionValueSchemaService", - "fullName": "google.ads.googleads.v15.services.CustomerSkAdNetworkConversionValueSchemaService", + "fullName": "google.ads.googleads.v16.services.CustomerSkAdNetworkConversionValueSchemaService", "methods": [ { "shortName": "MutateCustomerSkAdNetworkConversionValueSchema", - "fullName": "google.ads.googleads.v15.services.CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema", + "fullName": "google.ads.googleads.v16.services.CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerSkAdNetworkConversionValueSchemas:mutate" + "path": "/v16/customers/{customer_id=*}/customerSkAdNetworkConversionValueSchemas:mutate" } ] } @@ -2172,16 +2160,16 @@ }, { "shortName": "CustomerUserAccessInvitationService", - "fullName": "google.ads.googleads.v15.services.CustomerUserAccessInvitationService", + "fullName": "google.ads.googleads.v16.services.CustomerUserAccessInvitationService", "methods": [ { "shortName": "MutateCustomerUserAccessInvitation", - "fullName": "google.ads.googleads.v15.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation", + "fullName": "google.ads.googleads.v16.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerUserAccessInvitations:mutate" + "path": "/v16/customers/{customer_id=*}/customerUserAccessInvitations:mutate" } ] } @@ -2189,16 +2177,16 @@ }, { "shortName": "CustomerUserAccessService", - "fullName": "google.ads.googleads.v15.services.CustomerUserAccessService", + "fullName": "google.ads.googleads.v16.services.CustomerUserAccessService", "methods": [ { "shortName": "MutateCustomerUserAccess", - "fullName": "google.ads.googleads.v15.services.CustomerUserAccessService.MutateCustomerUserAccess", + "fullName": "google.ads.googleads.v16.services.CustomerUserAccessService.MutateCustomerUserAccess", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customerUserAccesses:mutate" + "path": "/v16/customers/{customer_id=*}/customerUserAccesses:mutate" } ] } @@ -2206,16 +2194,16 @@ }, { "shortName": "CustomizerAttributeService", - "fullName": "google.ads.googleads.v15.services.CustomizerAttributeService", + "fullName": "google.ads.googleads.v16.services.CustomizerAttributeService", "methods": [ { "shortName": "MutateCustomizerAttributes", - "fullName": "google.ads.googleads.v15.services.CustomizerAttributeService.MutateCustomizerAttributes", + "fullName": "google.ads.googleads.v16.services.CustomizerAttributeService.MutateCustomizerAttributes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/customizerAttributes:mutate" + "path": "/v16/customers/{customer_id=*}/customizerAttributes:mutate" } ] } @@ -2223,16 +2211,16 @@ }, { "shortName": "ExperimentArmService", - "fullName": "google.ads.googleads.v15.services.ExperimentArmService", + "fullName": "google.ads.googleads.v16.services.ExperimentArmService", "methods": [ { "shortName": "MutateExperimentArms", - "fullName": "google.ads.googleads.v15.services.ExperimentArmService.MutateExperimentArms", + "fullName": "google.ads.googleads.v16.services.ExperimentArmService.MutateExperimentArms", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/experimentArms:mutate" + "path": "/v16/customers/{customer_id=*}/experimentArms:mutate" } ] } @@ -2240,71 +2228,71 @@ }, { "shortName": "ExperimentService", - "fullName": "google.ads.googleads.v15.services.ExperimentService", + "fullName": "google.ads.googleads.v16.services.ExperimentService", "methods": [ { "shortName": "EndExperiment", - "fullName": "google.ads.googleads.v15.services.ExperimentService.EndExperiment", + "fullName": "google.ads.googleads.v16.services.ExperimentService.EndExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/{experiment=customers/*/experiments/*}:endExperiment" + "path": "/v16/{experiment=customers/*/experiments/*}:endExperiment" } ] }, { "shortName": "GraduateExperiment", - "fullName": "google.ads.googleads.v15.services.ExperimentService.GraduateExperiment", + "fullName": "google.ads.googleads.v16.services.ExperimentService.GraduateExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/{experiment=customers/*/experiments/*}:graduateExperiment" + "path": "/v16/{experiment=customers/*/experiments/*}:graduateExperiment" } ] }, { "shortName": "ListExperimentAsyncErrors", - "fullName": "google.ads.googleads.v15.services.ExperimentService.ListExperimentAsyncErrors", + "fullName": "google.ads.googleads.v16.services.ExperimentService.ListExperimentAsyncErrors", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v15/{resource_name=customers/*/experiments/*}:listExperimentAsyncErrors" + "path": "/v16/{resource_name=customers/*/experiments/*}:listExperimentAsyncErrors" } ] }, { "shortName": "MutateExperiments", - "fullName": "google.ads.googleads.v15.services.ExperimentService.MutateExperiments", + "fullName": "google.ads.googleads.v16.services.ExperimentService.MutateExperiments", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/experiments:mutate" + "path": "/v16/customers/{customer_id=*}/experiments:mutate" } ] }, { "shortName": "PromoteExperiment", - "fullName": "google.ads.googleads.v15.services.ExperimentService.PromoteExperiment", + "fullName": "google.ads.googleads.v16.services.ExperimentService.PromoteExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/{resource_name=customers/*/experiments/*}:promoteExperiment" + "path": "/v16/{resource_name=customers/*/experiments/*}:promoteExperiment" } ] }, { "shortName": "ScheduleExperiment", - "fullName": "google.ads.googleads.v15.services.ExperimentService.ScheduleExperiment", + "fullName": "google.ads.googleads.v16.services.ExperimentService.ScheduleExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/{resource_name=customers/*/experiments/*}:scheduleExperiment" + "path": "/v16/{resource_name=customers/*/experiments/*}:scheduleExperiment" } ] } @@ -2312,16 +2300,16 @@ }, { "shortName": "ExtensionFeedItemService", - "fullName": "google.ads.googleads.v15.services.ExtensionFeedItemService", + "fullName": "google.ads.googleads.v16.services.ExtensionFeedItemService", "methods": [ { "shortName": "MutateExtensionFeedItems", - "fullName": "google.ads.googleads.v15.services.ExtensionFeedItemService.MutateExtensionFeedItems", + "fullName": "google.ads.googleads.v16.services.ExtensionFeedItemService.MutateExtensionFeedItems", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/extensionFeedItems:mutate" + "path": "/v16/customers/{customer_id=*}/extensionFeedItems:mutate" } ] } @@ -2329,16 +2317,16 @@ }, { "shortName": "FeedItemService", - "fullName": "google.ads.googleads.v15.services.FeedItemService", + "fullName": "google.ads.googleads.v16.services.FeedItemService", "methods": [ { "shortName": "MutateFeedItems", - "fullName": "google.ads.googleads.v15.services.FeedItemService.MutateFeedItems", + "fullName": "google.ads.googleads.v16.services.FeedItemService.MutateFeedItems", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/feedItems:mutate" + "path": "/v16/customers/{customer_id=*}/feedItems:mutate" } ] } @@ -2346,16 +2334,16 @@ }, { "shortName": "FeedItemSetLinkService", - "fullName": "google.ads.googleads.v15.services.FeedItemSetLinkService", + "fullName": "google.ads.googleads.v16.services.FeedItemSetLinkService", "methods": [ { "shortName": "MutateFeedItemSetLinks", - "fullName": "google.ads.googleads.v15.services.FeedItemSetLinkService.MutateFeedItemSetLinks", + "fullName": "google.ads.googleads.v16.services.FeedItemSetLinkService.MutateFeedItemSetLinks", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/feedItemSetLinks:mutate" + "path": "/v16/customers/{customer_id=*}/feedItemSetLinks:mutate" } ] } @@ -2363,16 +2351,16 @@ }, { "shortName": "FeedItemSetService", - "fullName": "google.ads.googleads.v15.services.FeedItemSetService", + "fullName": "google.ads.googleads.v16.services.FeedItemSetService", "methods": [ { "shortName": "MutateFeedItemSets", - "fullName": "google.ads.googleads.v15.services.FeedItemSetService.MutateFeedItemSets", + "fullName": "google.ads.googleads.v16.services.FeedItemSetService.MutateFeedItemSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/feedItemSets:mutate" + "path": "/v16/customers/{customer_id=*}/feedItemSets:mutate" } ] } @@ -2380,16 +2368,16 @@ }, { "shortName": "FeedItemTargetService", - "fullName": "google.ads.googleads.v15.services.FeedItemTargetService", + "fullName": "google.ads.googleads.v16.services.FeedItemTargetService", "methods": [ { "shortName": "MutateFeedItemTargets", - "fullName": "google.ads.googleads.v15.services.FeedItemTargetService.MutateFeedItemTargets", + "fullName": "google.ads.googleads.v16.services.FeedItemTargetService.MutateFeedItemTargets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/feedItemTargets:mutate" + "path": "/v16/customers/{customer_id=*}/feedItemTargets:mutate" } ] } @@ -2397,16 +2385,16 @@ }, { "shortName": "FeedMappingService", - "fullName": "google.ads.googleads.v15.services.FeedMappingService", + "fullName": "google.ads.googleads.v16.services.FeedMappingService", "methods": [ { "shortName": "MutateFeedMappings", - "fullName": "google.ads.googleads.v15.services.FeedMappingService.MutateFeedMappings", + "fullName": "google.ads.googleads.v16.services.FeedMappingService.MutateFeedMappings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/feedMappings:mutate" + "path": "/v16/customers/{customer_id=*}/feedMappings:mutate" } ] } @@ -2414,16 +2402,16 @@ }, { "shortName": "FeedService", - "fullName": "google.ads.googleads.v15.services.FeedService", + "fullName": "google.ads.googleads.v16.services.FeedService", "methods": [ { "shortName": "MutateFeeds", - "fullName": "google.ads.googleads.v15.services.FeedService.MutateFeeds", + "fullName": "google.ads.googleads.v16.services.FeedService.MutateFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/feeds:mutate" + "path": "/v16/customers/{customer_id=*}/feeds:mutate" } ] } @@ -2431,16 +2419,16 @@ }, { "shortName": "GeoTargetConstantService", - "fullName": "google.ads.googleads.v15.services.GeoTargetConstantService", + "fullName": "google.ads.googleads.v16.services.GeoTargetConstantService", "methods": [ { "shortName": "SuggestGeoTargetConstants", - "fullName": "google.ads.googleads.v15.services.GeoTargetConstantService.SuggestGeoTargetConstants", + "fullName": "google.ads.googleads.v16.services.GeoTargetConstantService.SuggestGeoTargetConstants", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/geoTargetConstants:suggest" + "path": "/v16/geoTargetConstants:suggest" } ] } @@ -2448,27 +2436,27 @@ }, { "shortName": "GoogleAdsFieldService", - "fullName": "google.ads.googleads.v15.services.GoogleAdsFieldService", + "fullName": "google.ads.googleads.v16.services.GoogleAdsFieldService", "methods": [ { "shortName": "GetGoogleAdsField", - "fullName": "google.ads.googleads.v15.services.GoogleAdsFieldService.GetGoogleAdsField", + "fullName": "google.ads.googleads.v16.services.GoogleAdsFieldService.GetGoogleAdsField", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v15/{resource_name=googleAdsFields/*}" + "path": "/v16/{resource_name=googleAdsFields/*}" } ] }, { "shortName": "SearchGoogleAdsFields", - "fullName": "google.ads.googleads.v15.services.GoogleAdsFieldService.SearchGoogleAdsFields", + "fullName": "google.ads.googleads.v16.services.GoogleAdsFieldService.SearchGoogleAdsFields", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/googleAdsFields:search" + "path": "/v16/googleAdsFields:search" } ] } @@ -2476,72 +2464,100 @@ }, { "shortName": "GoogleAdsService", - "fullName": "google.ads.googleads.v15.services.GoogleAdsService", + "fullName": "google.ads.googleads.v16.services.GoogleAdsService", "methods": [ { "shortName": "Mutate", - "fullName": "google.ads.googleads.v15.services.GoogleAdsService.Mutate", + "fullName": "google.ads.googleads.v16.services.GoogleAdsService.Mutate", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/googleAds:mutate" + "path": "/v16/customers/{customer_id=*}/googleAds:mutate" } ] }, { "shortName": "Search", - "fullName": "google.ads.googleads.v15.services.GoogleAdsService.Search", + "fullName": "google.ads.googleads.v16.services.GoogleAdsService.Search", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/googleAds:search" + "path": "/v16/customers/{customer_id=*}/googleAds:search" } ] }, { "shortName": "SearchStream", - "fullName": "google.ads.googleads.v15.services.GoogleAdsService.SearchStream", + "fullName": "google.ads.googleads.v16.services.GoogleAdsService.SearchStream", "mode": "SERVER_STREAMING", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/googleAds:searchStream" + "path": "/v16/customers/{customer_id=*}/googleAds:searchStream" } ] } ] }, { - "shortName": "InvoiceService", - "fullName": "google.ads.googleads.v15.services.InvoiceService", + "shortName": "IdentityVerificationService", + "fullName": "google.ads.googleads.v16.services.IdentityVerificationService", "methods": [ { - "shortName": "ListInvoices", - "fullName": "google.ads.googleads.v15.services.InvoiceService.ListInvoices", + "shortName": "GetIdentityVerification", + "fullName": "google.ads.googleads.v16.services.IdentityVerificationService.GetIdentityVerification", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v15/customers/{customer_id=*}/invoices" + "path": "/v16/customers/{customer_id=*}/getIdentityVerification" } ] - } - ] - }, - { - "shortName": "KeywordPlanAdGroupKeywordService", - "fullName": "google.ads.googleads.v15.services.KeywordPlanAdGroupKeywordService", - "methods": [ + }, + { + "shortName": "StartIdentityVerification", + "fullName": "google.ads.googleads.v16.services.IdentityVerificationService.StartIdentityVerification", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v16/customers/{customer_id=*}:startIdentityVerification" + } + ] + } + ] + }, + { + "shortName": "InvoiceService", + "fullName": "google.ads.googleads.v16.services.InvoiceService", + "methods": [ + { + "shortName": "ListInvoices", + "fullName": "google.ads.googleads.v16.services.InvoiceService.ListInvoices", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v16/customers/{customer_id=*}/invoices" + } + ] + } + ] + }, + { + "shortName": "KeywordPlanAdGroupKeywordService", + "fullName": "google.ads.googleads.v16.services.KeywordPlanAdGroupKeywordService", + "methods": [ { "shortName": "MutateKeywordPlanAdGroupKeywords", - "fullName": "google.ads.googleads.v15.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords", + "fullName": "google.ads.googleads.v16.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" + "path": "/v16/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" } ] } @@ -2549,16 +2565,16 @@ }, { "shortName": "KeywordPlanAdGroupService", - "fullName": "google.ads.googleads.v15.services.KeywordPlanAdGroupService", + "fullName": "google.ads.googleads.v16.services.KeywordPlanAdGroupService", "methods": [ { "shortName": "MutateKeywordPlanAdGroups", - "fullName": "google.ads.googleads.v15.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups", + "fullName": "google.ads.googleads.v16.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/keywordPlanAdGroups:mutate" + "path": "/v16/customers/{customer_id=*}/keywordPlanAdGroups:mutate" } ] } @@ -2566,16 +2582,16 @@ }, { "shortName": "KeywordPlanCampaignKeywordService", - "fullName": "google.ads.googleads.v15.services.KeywordPlanCampaignKeywordService", + "fullName": "google.ads.googleads.v16.services.KeywordPlanCampaignKeywordService", "methods": [ { "shortName": "MutateKeywordPlanCampaignKeywords", - "fullName": "google.ads.googleads.v15.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords", + "fullName": "google.ads.googleads.v16.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" + "path": "/v16/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" } ] } @@ -2583,16 +2599,16 @@ }, { "shortName": "KeywordPlanCampaignService", - "fullName": "google.ads.googleads.v15.services.KeywordPlanCampaignService", + "fullName": "google.ads.googleads.v16.services.KeywordPlanCampaignService", "methods": [ { "shortName": "MutateKeywordPlanCampaigns", - "fullName": "google.ads.googleads.v15.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns", + "fullName": "google.ads.googleads.v16.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/keywordPlanCampaigns:mutate" + "path": "/v16/customers/{customer_id=*}/keywordPlanCampaigns:mutate" } ] } @@ -2600,49 +2616,49 @@ }, { "shortName": "KeywordPlanIdeaService", - "fullName": "google.ads.googleads.v15.services.KeywordPlanIdeaService", + "fullName": "google.ads.googleads.v16.services.KeywordPlanIdeaService", "methods": [ { "shortName": "GenerateAdGroupThemes", - "fullName": "google.ads.googleads.v15.services.KeywordPlanIdeaService.GenerateAdGroupThemes", + "fullName": "google.ads.googleads.v16.services.KeywordPlanIdeaService.GenerateAdGroupThemes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:generateAdGroupThemes" + "path": "/v16/customers/{customer_id=*}:generateAdGroupThemes" } ] }, { "shortName": "GenerateKeywordForecastMetrics", - "fullName": "google.ads.googleads.v15.services.KeywordPlanIdeaService.GenerateKeywordForecastMetrics", + "fullName": "google.ads.googleads.v16.services.KeywordPlanIdeaService.GenerateKeywordForecastMetrics", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:generateKeywordForecastMetrics" + "path": "/v16/customers/{customer_id=*}:generateKeywordForecastMetrics" } ] }, { "shortName": "GenerateKeywordHistoricalMetrics", - "fullName": "google.ads.googleads.v15.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics", + "fullName": "google.ads.googleads.v16.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:generateKeywordHistoricalMetrics" + "path": "/v16/customers/{customer_id=*}:generateKeywordHistoricalMetrics" } ] }, { "shortName": "GenerateKeywordIdeas", - "fullName": "google.ads.googleads.v15.services.KeywordPlanIdeaService.GenerateKeywordIdeas", + "fullName": "google.ads.googleads.v16.services.KeywordPlanIdeaService.GenerateKeywordIdeas", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:generateKeywordIdeas" + "path": "/v16/customers/{customer_id=*}:generateKeywordIdeas" } ] } @@ -2650,16 +2666,16 @@ }, { "shortName": "KeywordPlanService", - "fullName": "google.ads.googleads.v15.services.KeywordPlanService", + "fullName": "google.ads.googleads.v16.services.KeywordPlanService", "methods": [ { "shortName": "MutateKeywordPlans", - "fullName": "google.ads.googleads.v15.services.KeywordPlanService.MutateKeywordPlans", + "fullName": "google.ads.googleads.v16.services.KeywordPlanService.MutateKeywordPlans", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/keywordPlans:mutate" + "path": "/v16/customers/{customer_id=*}/keywordPlans:mutate" } ] } @@ -2667,16 +2683,16 @@ }, { "shortName": "KeywordThemeConstantService", - "fullName": "google.ads.googleads.v15.services.KeywordThemeConstantService", + "fullName": "google.ads.googleads.v16.services.KeywordThemeConstantService", "methods": [ { "shortName": "SuggestKeywordThemeConstants", - "fullName": "google.ads.googleads.v15.services.KeywordThemeConstantService.SuggestKeywordThemeConstants", + "fullName": "google.ads.googleads.v16.services.KeywordThemeConstantService.SuggestKeywordThemeConstants", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/keywordThemeConstants:suggest" + "path": "/v16/keywordThemeConstants:suggest" } ] } @@ -2684,16 +2700,16 @@ }, { "shortName": "LabelService", - "fullName": "google.ads.googleads.v15.services.LabelService", + "fullName": "google.ads.googleads.v16.services.LabelService", "methods": [ { "shortName": "MutateLabels", - "fullName": "google.ads.googleads.v15.services.LabelService.MutateLabels", + "fullName": "google.ads.googleads.v16.services.LabelService.MutateLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/labels:mutate" + "path": "/v16/customers/{customer_id=*}/labels:mutate" } ] } @@ -2701,38 +2717,38 @@ }, { "shortName": "OfflineUserDataJobService", - "fullName": "google.ads.googleads.v15.services.OfflineUserDataJobService", + "fullName": "google.ads.googleads.v16.services.OfflineUserDataJobService", "methods": [ { "shortName": "AddOfflineUserDataJobOperations", - "fullName": "google.ads.googleads.v15.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations", + "fullName": "google.ads.googleads.v16.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" + "path": "/v16/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" } ] }, { "shortName": "CreateOfflineUserDataJob", - "fullName": "google.ads.googleads.v15.services.OfflineUserDataJobService.CreateOfflineUserDataJob", + "fullName": "google.ads.googleads.v16.services.OfflineUserDataJobService.CreateOfflineUserDataJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/offlineUserDataJobs:create" + "path": "/v16/customers/{customer_id=*}/offlineUserDataJobs:create" } ] }, { "shortName": "RunOfflineUserDataJob", - "fullName": "google.ads.googleads.v15.services.OfflineUserDataJobService.RunOfflineUserDataJob", + "fullName": "google.ads.googleads.v16.services.OfflineUserDataJobService.RunOfflineUserDataJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/{resource_name=customers/*/offlineUserDataJobs/*}:run" + "path": "/v16/{resource_name=customers/*/offlineUserDataJobs/*}:run" } ] } @@ -2740,16 +2756,16 @@ }, { "shortName": "PaymentsAccountService", - "fullName": "google.ads.googleads.v15.services.PaymentsAccountService", + "fullName": "google.ads.googleads.v16.services.PaymentsAccountService", "methods": [ { "shortName": "ListPaymentsAccounts", - "fullName": "google.ads.googleads.v15.services.PaymentsAccountService.ListPaymentsAccounts", + "fullName": "google.ads.googleads.v16.services.PaymentsAccountService.ListPaymentsAccounts", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v15/customers/{customer_id=*}/paymentsAccounts" + "path": "/v16/customers/{customer_id=*}/paymentsAccounts" } ] } @@ -2757,16 +2773,38 @@ }, { "shortName": "ProductLinkInvitationService", - "fullName": "google.ads.googleads.v15.services.ProductLinkInvitationService", + "fullName": "google.ads.googleads.v16.services.ProductLinkInvitationService", "methods": [ + { + "shortName": "CreateProductLinkInvitation", + "fullName": "google.ads.googleads.v16.services.ProductLinkInvitationService.CreateProductLinkInvitation", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v16/customers/{customer_id=*}/productLinkInvitations:create" + } + ] + }, + { + "shortName": "RemoveProductLinkInvitation", + "fullName": "google.ads.googleads.v16.services.ProductLinkInvitationService.RemoveProductLinkInvitation", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v16/customers/{customer_id=*}/productLinkInvitations:remove" + } + ] + }, { "shortName": "UpdateProductLinkInvitation", - "fullName": "google.ads.googleads.v15.services.ProductLinkInvitationService.UpdateProductLinkInvitation", + "fullName": "google.ads.googleads.v16.services.ProductLinkInvitationService.UpdateProductLinkInvitation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/productLinkInvitations:update" + "path": "/v16/customers/{customer_id=*}/productLinkInvitations:update" } ] } @@ -2774,27 +2812,27 @@ }, { "shortName": "ProductLinkService", - "fullName": "google.ads.googleads.v15.services.ProductLinkService", + "fullName": "google.ads.googleads.v16.services.ProductLinkService", "methods": [ { "shortName": "CreateProductLink", - "fullName": "google.ads.googleads.v15.services.ProductLinkService.CreateProductLink", + "fullName": "google.ads.googleads.v16.services.ProductLinkService.CreateProductLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/productLinks:create" + "path": "/v16/customers/{customer_id=*}/productLinks:create" } ] }, { "shortName": "RemoveProductLink", - "fullName": "google.ads.googleads.v15.services.ProductLinkService.RemoveProductLink", + "fullName": "google.ads.googleads.v16.services.ProductLinkService.RemoveProductLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/productLinks:remove" + "path": "/v16/customers/{customer_id=*}/productLinks:remove" } ] } @@ -2802,38 +2840,38 @@ }, { "shortName": "ReachPlanService", - "fullName": "google.ads.googleads.v15.services.ReachPlanService", + "fullName": "google.ads.googleads.v16.services.ReachPlanService", "methods": [ { "shortName": "GenerateReachForecast", - "fullName": "google.ads.googleads.v15.services.ReachPlanService.GenerateReachForecast", + "fullName": "google.ads.googleads.v16.services.ReachPlanService.GenerateReachForecast", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:generateReachForecast" + "path": "/v16/customers/{customer_id=*}:generateReachForecast" } ] }, { "shortName": "ListPlannableLocations", - "fullName": "google.ads.googleads.v15.services.ReachPlanService.ListPlannableLocations", + "fullName": "google.ads.googleads.v16.services.ReachPlanService.ListPlannableLocations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15:listPlannableLocations" + "path": "/v16:listPlannableLocations" } ] }, { "shortName": "ListPlannableProducts", - "fullName": "google.ads.googleads.v15.services.ReachPlanService.ListPlannableProducts", + "fullName": "google.ads.googleads.v16.services.ReachPlanService.ListPlannableProducts", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15:listPlannableProducts" + "path": "/v16:listPlannableProducts" } ] } @@ -2841,27 +2879,38 @@ }, { "shortName": "RecommendationService", - "fullName": "google.ads.googleads.v15.services.RecommendationService", + "fullName": "google.ads.googleads.v16.services.RecommendationService", "methods": [ { "shortName": "ApplyRecommendation", - "fullName": "google.ads.googleads.v15.services.RecommendationService.ApplyRecommendation", + "fullName": "google.ads.googleads.v16.services.RecommendationService.ApplyRecommendation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/recommendations:apply" + "path": "/v16/customers/{customer_id=*}/recommendations:apply" } ] }, { "shortName": "DismissRecommendation", - "fullName": "google.ads.googleads.v15.services.RecommendationService.DismissRecommendation", + "fullName": "google.ads.googleads.v16.services.RecommendationService.DismissRecommendation", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v16/customers/{customer_id=*}/recommendations:dismiss" + } + ] + }, + { + "shortName": "GenerateRecommendations", + "fullName": "google.ads.googleads.v16.services.RecommendationService.GenerateRecommendations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/recommendations:dismiss" + "path": "/v16/customers/{customer_id=*}/recommendations:generate" } ] } @@ -2869,16 +2918,16 @@ }, { "shortName": "RecommendationSubscriptionService", - "fullName": "google.ads.googleads.v15.services.RecommendationSubscriptionService", + "fullName": "google.ads.googleads.v16.services.RecommendationSubscriptionService", "methods": [ { "shortName": "MutateRecommendationSubscription", - "fullName": "google.ads.googleads.v15.services.RecommendationSubscriptionService.MutateRecommendationSubscription", + "fullName": "google.ads.googleads.v16.services.RecommendationSubscriptionService.MutateRecommendationSubscription", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/recommendationSubscriptions:mutateRecommendationSubscription" + "path": "/v16/customers/{customer_id=*}/recommendationSubscriptions:mutateRecommendationSubscription" } ] } @@ -2886,16 +2935,16 @@ }, { "shortName": "RemarketingActionService", - "fullName": "google.ads.googleads.v15.services.RemarketingActionService", + "fullName": "google.ads.googleads.v16.services.RemarketingActionService", "methods": [ { "shortName": "MutateRemarketingActions", - "fullName": "google.ads.googleads.v15.services.RemarketingActionService.MutateRemarketingActions", + "fullName": "google.ads.googleads.v16.services.RemarketingActionService.MutateRemarketingActions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/remarketingActions:mutate" + "path": "/v16/customers/{customer_id=*}/remarketingActions:mutate" } ] } @@ -2903,16 +2952,16 @@ }, { "shortName": "SharedCriterionService", - "fullName": "google.ads.googleads.v15.services.SharedCriterionService", + "fullName": "google.ads.googleads.v16.services.SharedCriterionService", "methods": [ { "shortName": "MutateSharedCriteria", - "fullName": "google.ads.googleads.v15.services.SharedCriterionService.MutateSharedCriteria", + "fullName": "google.ads.googleads.v16.services.SharedCriterionService.MutateSharedCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/sharedCriteria:mutate" + "path": "/v16/customers/{customer_id=*}/sharedCriteria:mutate" } ] } @@ -2920,16 +2969,16 @@ }, { "shortName": "SharedSetService", - "fullName": "google.ads.googleads.v15.services.SharedSetService", + "fullName": "google.ads.googleads.v16.services.SharedSetService", "methods": [ { "shortName": "MutateSharedSets", - "fullName": "google.ads.googleads.v15.services.SharedSetService.MutateSharedSets", + "fullName": "google.ads.googleads.v16.services.SharedSetService.MutateSharedSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/sharedSets:mutate" + "path": "/v16/customers/{customer_id=*}/sharedSets:mutate" } ] } @@ -2937,27 +2986,27 @@ }, { "shortName": "SmartCampaignSettingService", - "fullName": "google.ads.googleads.v15.services.SmartCampaignSettingService", + "fullName": "google.ads.googleads.v16.services.SmartCampaignSettingService", "methods": [ { "shortName": "GetSmartCampaignStatus", - "fullName": "google.ads.googleads.v15.services.SmartCampaignSettingService.GetSmartCampaignStatus", + "fullName": "google.ads.googleads.v16.services.SmartCampaignSettingService.GetSmartCampaignStatus", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v15/{resource_name=customers/*/smartCampaignSettings/*}:getSmartCampaignStatus" + "path": "/v16/{resource_name=customers/*/smartCampaignSettings/*}:getSmartCampaignStatus" } ] }, { "shortName": "MutateSmartCampaignSettings", - "fullName": "google.ads.googleads.v15.services.SmartCampaignSettingService.MutateSmartCampaignSettings", + "fullName": "google.ads.googleads.v16.services.SmartCampaignSettingService.MutateSmartCampaignSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/smartCampaignSettings:mutate" + "path": "/v16/customers/{customer_id=*}/smartCampaignSettings:mutate" } ] } @@ -2965,38 +3014,38 @@ }, { "shortName": "SmartCampaignSuggestService", - "fullName": "google.ads.googleads.v15.services.SmartCampaignSuggestService", + "fullName": "google.ads.googleads.v16.services.SmartCampaignSuggestService", "methods": [ { "shortName": "SuggestKeywordThemes", - "fullName": "google.ads.googleads.v15.services.SmartCampaignSuggestService.SuggestKeywordThemes", + "fullName": "google.ads.googleads.v16.services.SmartCampaignSuggestService.SuggestKeywordThemes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:suggestKeywordThemes" + "path": "/v16/customers/{customer_id=*}:suggestKeywordThemes" } ] }, { "shortName": "SuggestSmartCampaignAd", - "fullName": "google.ads.googleads.v15.services.SmartCampaignSuggestService.SuggestSmartCampaignAd", + "fullName": "google.ads.googleads.v16.services.SmartCampaignSuggestService.SuggestSmartCampaignAd", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:suggestSmartCampaignAd" + "path": "/v16/customers/{customer_id=*}:suggestSmartCampaignAd" } ] }, { "shortName": "SuggestSmartCampaignBudgetOptions", - "fullName": "google.ads.googleads.v15.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions", + "fullName": "google.ads.googleads.v16.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:suggestSmartCampaignBudgetOptions" + "path": "/v16/customers/{customer_id=*}:suggestSmartCampaignBudgetOptions" } ] } @@ -3004,16 +3053,16 @@ }, { "shortName": "ThirdPartyAppAnalyticsLinkService", - "fullName": "google.ads.googleads.v15.services.ThirdPartyAppAnalyticsLinkService", + "fullName": "google.ads.googleads.v16.services.ThirdPartyAppAnalyticsLinkService", "methods": [ { "shortName": "RegenerateShareableLinkId", - "fullName": "google.ads.googleads.v15.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId", + "fullName": "google.ads.googleads.v16.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" + "path": "/v16/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" } ] } @@ -3021,16 +3070,16 @@ }, { "shortName": "TravelAssetSuggestionService", - "fullName": "google.ads.googleads.v15.services.TravelAssetSuggestionService", + "fullName": "google.ads.googleads.v16.services.TravelAssetSuggestionService", "methods": [ { "shortName": "SuggestTravelAssets", - "fullName": "google.ads.googleads.v15.services.TravelAssetSuggestionService.SuggestTravelAssets", + "fullName": "google.ads.googleads.v16.services.TravelAssetSuggestionService.SuggestTravelAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:suggestTravelAssets" + "path": "/v16/customers/{customer_id=*}:suggestTravelAssets" } ] } @@ -3038,16 +3087,16 @@ }, { "shortName": "UserDataService", - "fullName": "google.ads.googleads.v15.services.UserDataService", + "fullName": "google.ads.googleads.v16.services.UserDataService", "methods": [ { "shortName": "UploadUserData", - "fullName": "google.ads.googleads.v15.services.UserDataService.UploadUserData", + "fullName": "google.ads.googleads.v16.services.UserDataService.UploadUserData", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}:uploadUserData" + "path": "/v16/customers/{customer_id=*}:uploadUserData" } ] } @@ -3055,151 +3104,152 @@ }, { "shortName": "UserListService", - "fullName": "google.ads.googleads.v15.services.UserListService", + "fullName": "google.ads.googleads.v16.services.UserListService", "methods": [ { "shortName": "MutateUserLists", - "fullName": "google.ads.googleads.v15.services.UserListService.MutateUserLists", + "fullName": "google.ads.googleads.v16.services.UserListService.MutateUserLists", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v15/customers/{customer_id=*}/userLists:mutate" + "path": "/v16/customers/{customer_id=*}/userLists:mutate" } ] } ] } ], - "configFile": "googleads_v15.yaml", + "configFile": "googleads_v16.yaml", "serviceConfigApiNames": [ - "google.ads.googleads.v15.services.AccountBudgetProposalService", - "google.ads.googleads.v15.services.AccountLinkService", - "google.ads.googleads.v15.services.AdGroupAdLabelService", - "google.ads.googleads.v15.services.AdGroupAdService", - "google.ads.googleads.v15.services.AdGroupAssetService", - "google.ads.googleads.v15.services.AdGroupAssetSetService", - "google.ads.googleads.v15.services.AdGroupBidModifierService", - "google.ads.googleads.v15.services.AdGroupCriterionCustomizerService", - "google.ads.googleads.v15.services.AdGroupCriterionLabelService", - "google.ads.googleads.v15.services.AdGroupCriterionService", - "google.ads.googleads.v15.services.AdGroupCustomizerService", - "google.ads.googleads.v15.services.AdGroupExtensionSettingService", - "google.ads.googleads.v15.services.AdGroupFeedService", - "google.ads.googleads.v15.services.AdGroupLabelService", - "google.ads.googleads.v15.services.AdGroupService", - "google.ads.googleads.v15.services.AdParameterService", - "google.ads.googleads.v15.services.AdService", - "google.ads.googleads.v15.services.AssetGroupAssetService", - "google.ads.googleads.v15.services.AssetGroupListingGroupFilterService", - "google.ads.googleads.v15.services.AssetGroupService", - "google.ads.googleads.v15.services.AssetGroupSignalService", - "google.ads.googleads.v15.services.AssetService", - "google.ads.googleads.v15.services.AssetSetAssetService", - "google.ads.googleads.v15.services.AssetSetService", - "google.ads.googleads.v15.services.AudienceInsightsService", - "google.ads.googleads.v15.services.AudienceService", - "google.ads.googleads.v15.services.BatchJobService", - "google.ads.googleads.v15.services.BiddingDataExclusionService", - "google.ads.googleads.v15.services.BiddingSeasonalityAdjustmentService", - "google.ads.googleads.v15.services.BiddingStrategyService", - "google.ads.googleads.v15.services.BillingSetupService", - "google.ads.googleads.v15.services.BrandSuggestionService", - "google.ads.googleads.v15.services.CampaignAssetService", - "google.ads.googleads.v15.services.CampaignAssetSetService", - "google.ads.googleads.v15.services.CampaignBidModifierService", - "google.ads.googleads.v15.services.CampaignBudgetService", - "google.ads.googleads.v15.services.CampaignConversionGoalService", - "google.ads.googleads.v15.services.CampaignCriterionService", - "google.ads.googleads.v15.services.CampaignCustomizerService", - "google.ads.googleads.v15.services.CampaignDraftService", - "google.ads.googleads.v15.services.CampaignExtensionSettingService", - "google.ads.googleads.v15.services.CampaignFeedService", - "google.ads.googleads.v15.services.CampaignGroupService", - "google.ads.googleads.v15.services.CampaignLabelService", - "google.ads.googleads.v15.services.CampaignLifecycleService", - "google.ads.googleads.v15.services.CampaignService", - "google.ads.googleads.v15.services.CampaignSharedSetService", - "google.ads.googleads.v15.services.ConversionActionService", - "google.ads.googleads.v15.services.ConversionAdjustmentUploadService", - "google.ads.googleads.v15.services.ConversionCustomVariableService", - "google.ads.googleads.v15.services.ConversionGoalCampaignConfigService", - "google.ads.googleads.v15.services.ConversionUploadService", - "google.ads.googleads.v15.services.ConversionValueRuleService", - "google.ads.googleads.v15.services.ConversionValueRuleSetService", - "google.ads.googleads.v15.services.CustomAudienceService", - "google.ads.googleads.v15.services.CustomConversionGoalService", - "google.ads.googleads.v15.services.CustomInterestService", - "google.ads.googleads.v15.services.CustomerAssetService", - "google.ads.googleads.v15.services.CustomerAssetSetService", - "google.ads.googleads.v15.services.CustomerClientLinkService", - "google.ads.googleads.v15.services.CustomerConversionGoalService", - "google.ads.googleads.v15.services.CustomerCustomizerService", - "google.ads.googleads.v15.services.CustomerExtensionSettingService", - "google.ads.googleads.v15.services.CustomerFeedService", - "google.ads.googleads.v15.services.CustomerLabelService", - "google.ads.googleads.v15.services.CustomerLifecycleService", - "google.ads.googleads.v15.services.CustomerManagerLinkService", - "google.ads.googleads.v15.services.CustomerNegativeCriterionService", - "google.ads.googleads.v15.services.CustomerService", - "google.ads.googleads.v15.services.CustomerSkAdNetworkConversionValueSchemaService", - "google.ads.googleads.v15.services.CustomerUserAccessInvitationService", - "google.ads.googleads.v15.services.CustomerUserAccessService", - "google.ads.googleads.v15.services.CustomizerAttributeService", - "google.ads.googleads.v15.services.ExperimentArmService", - "google.ads.googleads.v15.services.ExperimentService", - "google.ads.googleads.v15.services.ExtensionFeedItemService", - "google.ads.googleads.v15.services.FeedItemService", - "google.ads.googleads.v15.services.FeedItemSetLinkService", - "google.ads.googleads.v15.services.FeedItemSetService", - "google.ads.googleads.v15.services.FeedItemTargetService", - "google.ads.googleads.v15.services.FeedMappingService", - "google.ads.googleads.v15.services.FeedService", - "google.ads.googleads.v15.services.GeoTargetConstantService", - "google.ads.googleads.v15.services.GoogleAdsFieldService", - "google.ads.googleads.v15.services.GoogleAdsService", - "google.ads.googleads.v15.services.InvoiceService", - "google.ads.googleads.v15.services.KeywordPlanAdGroupKeywordService", - "google.ads.googleads.v15.services.KeywordPlanAdGroupService", - "google.ads.googleads.v15.services.KeywordPlanCampaignKeywordService", - "google.ads.googleads.v15.services.KeywordPlanCampaignService", - "google.ads.googleads.v15.services.KeywordPlanIdeaService", - "google.ads.googleads.v15.services.KeywordPlanService", - "google.ads.googleads.v15.services.KeywordThemeConstantService", - "google.ads.googleads.v15.services.LabelService", - "google.ads.googleads.v15.services.OfflineUserDataJobService", - "google.ads.googleads.v15.services.PaymentsAccountService", - "google.ads.googleads.v15.services.ProductLinkInvitationService", - "google.ads.googleads.v15.services.ProductLinkService", - "google.ads.googleads.v15.services.ReachPlanService", - "google.ads.googleads.v15.services.RecommendationService", - "google.ads.googleads.v15.services.RecommendationSubscriptionService", - "google.ads.googleads.v15.services.RemarketingActionService", - "google.ads.googleads.v15.services.SharedCriterionService", - "google.ads.googleads.v15.services.SharedSetService", - "google.ads.googleads.v15.services.SmartCampaignSettingService", - "google.ads.googleads.v15.services.SmartCampaignSuggestService", - "google.ads.googleads.v15.services.ThirdPartyAppAnalyticsLinkService", - "google.ads.googleads.v15.services.TravelAssetSuggestionService", - "google.ads.googleads.v15.services.UserDataService", - "google.ads.googleads.v15.services.UserListService" + "google.ads.googleads.v16.services.AccountBudgetProposalService", + "google.ads.googleads.v16.services.AccountLinkService", + "google.ads.googleads.v16.services.AdGroupAdLabelService", + "google.ads.googleads.v16.services.AdGroupAdService", + "google.ads.googleads.v16.services.AdGroupAssetService", + "google.ads.googleads.v16.services.AdGroupAssetSetService", + "google.ads.googleads.v16.services.AdGroupBidModifierService", + "google.ads.googleads.v16.services.AdGroupCriterionCustomizerService", + "google.ads.googleads.v16.services.AdGroupCriterionLabelService", + "google.ads.googleads.v16.services.AdGroupCriterionService", + "google.ads.googleads.v16.services.AdGroupCustomizerService", + "google.ads.googleads.v16.services.AdGroupExtensionSettingService", + "google.ads.googleads.v16.services.AdGroupFeedService", + "google.ads.googleads.v16.services.AdGroupLabelService", + "google.ads.googleads.v16.services.AdGroupService", + "google.ads.googleads.v16.services.AdParameterService", + "google.ads.googleads.v16.services.AdService", + "google.ads.googleads.v16.services.AssetGroupAssetService", + "google.ads.googleads.v16.services.AssetGroupListingGroupFilterService", + "google.ads.googleads.v16.services.AssetGroupService", + "google.ads.googleads.v16.services.AssetGroupSignalService", + "google.ads.googleads.v16.services.AssetService", + "google.ads.googleads.v16.services.AssetSetAssetService", + "google.ads.googleads.v16.services.AssetSetService", + "google.ads.googleads.v16.services.AudienceInsightsService", + "google.ads.googleads.v16.services.AudienceService", + "google.ads.googleads.v16.services.BatchJobService", + "google.ads.googleads.v16.services.BiddingDataExclusionService", + "google.ads.googleads.v16.services.BiddingSeasonalityAdjustmentService", + "google.ads.googleads.v16.services.BiddingStrategyService", + "google.ads.googleads.v16.services.BillingSetupService", + "google.ads.googleads.v16.services.BrandSuggestionService", + "google.ads.googleads.v16.services.CampaignAssetService", + "google.ads.googleads.v16.services.CampaignAssetSetService", + "google.ads.googleads.v16.services.CampaignBidModifierService", + "google.ads.googleads.v16.services.CampaignBudgetService", + "google.ads.googleads.v16.services.CampaignConversionGoalService", + "google.ads.googleads.v16.services.CampaignCriterionService", + "google.ads.googleads.v16.services.CampaignCustomizerService", + "google.ads.googleads.v16.services.CampaignDraftService", + "google.ads.googleads.v16.services.CampaignExtensionSettingService", + "google.ads.googleads.v16.services.CampaignFeedService", + "google.ads.googleads.v16.services.CampaignGroupService", + "google.ads.googleads.v16.services.CampaignLabelService", + "google.ads.googleads.v16.services.CampaignLifecycleGoalService", + "google.ads.googleads.v16.services.CampaignService", + "google.ads.googleads.v16.services.CampaignSharedSetService", + "google.ads.googleads.v16.services.ConversionActionService", + "google.ads.googleads.v16.services.ConversionAdjustmentUploadService", + "google.ads.googleads.v16.services.ConversionCustomVariableService", + "google.ads.googleads.v16.services.ConversionGoalCampaignConfigService", + "google.ads.googleads.v16.services.ConversionUploadService", + "google.ads.googleads.v16.services.ConversionValueRuleService", + "google.ads.googleads.v16.services.ConversionValueRuleSetService", + "google.ads.googleads.v16.services.CustomAudienceService", + "google.ads.googleads.v16.services.CustomConversionGoalService", + "google.ads.googleads.v16.services.CustomInterestService", + "google.ads.googleads.v16.services.CustomerAssetService", + "google.ads.googleads.v16.services.CustomerAssetSetService", + "google.ads.googleads.v16.services.CustomerClientLinkService", + "google.ads.googleads.v16.services.CustomerConversionGoalService", + "google.ads.googleads.v16.services.CustomerCustomizerService", + "google.ads.googleads.v16.services.CustomerExtensionSettingService", + "google.ads.googleads.v16.services.CustomerFeedService", + "google.ads.googleads.v16.services.CustomerLabelService", + "google.ads.googleads.v16.services.CustomerLifecycleGoalService", + "google.ads.googleads.v16.services.CustomerManagerLinkService", + "google.ads.googleads.v16.services.CustomerNegativeCriterionService", + "google.ads.googleads.v16.services.CustomerService", + "google.ads.googleads.v16.services.CustomerSkAdNetworkConversionValueSchemaService", + "google.ads.googleads.v16.services.CustomerUserAccessInvitationService", + "google.ads.googleads.v16.services.CustomerUserAccessService", + "google.ads.googleads.v16.services.CustomizerAttributeService", + "google.ads.googleads.v16.services.ExperimentArmService", + "google.ads.googleads.v16.services.ExperimentService", + "google.ads.googleads.v16.services.ExtensionFeedItemService", + "google.ads.googleads.v16.services.FeedItemService", + "google.ads.googleads.v16.services.FeedItemSetLinkService", + "google.ads.googleads.v16.services.FeedItemSetService", + "google.ads.googleads.v16.services.FeedItemTargetService", + "google.ads.googleads.v16.services.FeedMappingService", + "google.ads.googleads.v16.services.FeedService", + "google.ads.googleads.v16.services.GeoTargetConstantService", + "google.ads.googleads.v16.services.GoogleAdsFieldService", + "google.ads.googleads.v16.services.GoogleAdsService", + "google.ads.googleads.v16.services.IdentityVerificationService", + "google.ads.googleads.v16.services.InvoiceService", + "google.ads.googleads.v16.services.KeywordPlanAdGroupKeywordService", + "google.ads.googleads.v16.services.KeywordPlanAdGroupService", + "google.ads.googleads.v16.services.KeywordPlanCampaignKeywordService", + "google.ads.googleads.v16.services.KeywordPlanCampaignService", + "google.ads.googleads.v16.services.KeywordPlanIdeaService", + "google.ads.googleads.v16.services.KeywordPlanService", + "google.ads.googleads.v16.services.KeywordThemeConstantService", + "google.ads.googleads.v16.services.LabelService", + "google.ads.googleads.v16.services.OfflineUserDataJobService", + "google.ads.googleads.v16.services.PaymentsAccountService", + "google.ads.googleads.v16.services.ProductLinkInvitationService", + "google.ads.googleads.v16.services.ProductLinkService", + "google.ads.googleads.v16.services.ReachPlanService", + "google.ads.googleads.v16.services.RecommendationService", + "google.ads.googleads.v16.services.RecommendationSubscriptionService", + "google.ads.googleads.v16.services.RemarketingActionService", + "google.ads.googleads.v16.services.SharedCriterionService", + "google.ads.googleads.v16.services.SharedSetService", + "google.ads.googleads.v16.services.SmartCampaignSettingService", + "google.ads.googleads.v16.services.SmartCampaignSuggestService", + "google.ads.googleads.v16.services.ThirdPartyAppAnalyticsLinkService", + "google.ads.googleads.v16.services.TravelAssetSuggestionService", + "google.ads.googleads.v16.services.UserDataService", + "google.ads.googleads.v16.services.UserListService" ], "nameInServiceConfig": "googleads.googleapis.com" }, { - "id": "google.ads.googleads.v16", - "directory": "google/ads/googleads/v16", - "version": "v16", - "majorVersion": "v16", + "id": "google.ads.googleads.v17", + "directory": "google/ads/googleads/v17", + "version": "v17", + "majorVersion": "v17", "hostName": "googleads.googleapis.com", "title": "Google Ads API", "description": "Manage your Google Ads accounts, campaigns, and reports with this API.", "importDirectories": [ - "google/ads/googleads/v16/common", - "google/ads/googleads/v16/enums", - "google/ads/googleads/v16/errors", - "google/ads/googleads/v16/resources", - "google/ads/googleads/v16/services", + "google/ads/googleads/v17/common", + "google/ads/googleads/v17/enums", + "google/ads/googleads/v17/errors", + "google/ads/googleads/v17/resources", + "google/ads/googleads/v17/services", "google/api", "google/longrunning", "google/protobuf", @@ -3208,73 +3258,73 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Ads.GoogleAds.V16.Common": 38, - "Google.Ads.GoogleAds.V16.Enums": 350, - "Google.Ads.GoogleAds.V16.Errors": 153, - "Google.Ads.GoogleAds.V16.Resources": 177, - "Google.Ads.GoogleAds.V16.Services": 111 + "Google.Ads.GoogleAds.V17.Common": 38, + "Google.Ads.GoogleAds.V17.Enums": 360, + "Google.Ads.GoogleAds.V17.Errors": 157, + "Google.Ads.GoogleAds.V17.Resources": 182, + "Google.Ads.GoogleAds.V17.Services": 114 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/ads/googleads/v16/common;common": 38, - "google.golang.org/genproto/googleapis/ads/googleads/v16/enums;enums": 350, - "google.golang.org/genproto/googleapis/ads/googleads/v16/errors;errors": 153, - "google.golang.org/genproto/googleapis/ads/googleads/v16/resources;resources": 177, - "google.golang.org/genproto/googleapis/ads/googleads/v16/services;services": 111 + "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common": 38, + "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums": 360, + "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors": 157, + "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources": 182, + "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services": 114 } }, "java_multiple_files": { "valueCounts": { - "true": 829 + "true": 851 } }, "java_package": { "valueCounts": { - "com.google.ads.googleads.v16.common": 38, - "com.google.ads.googleads.v16.enums": 350, - "com.google.ads.googleads.v16.errors": 153, - "com.google.ads.googleads.v16.resources": 177, - "com.google.ads.googleads.v16.services": 111 + "com.google.ads.googleads.v17.common": 38, + "com.google.ads.googleads.v17.enums": 360, + "com.google.ads.googleads.v17.errors": 157, + "com.google.ads.googleads.v17.resources": 182, + "com.google.ads.googleads.v17.services": 114 } }, "objc_class_prefix": { "valueCounts": { - "GAA": 829 + "GAA": 851 } }, "php_namespace": { "valueCounts": { - "Google\\Ads\\GoogleAds\\V16\\Common": 38, - "Google\\Ads\\GoogleAds\\V16\\Enums": 350, - "Google\\Ads\\GoogleAds\\V16\\Errors": 153, - "Google\\Ads\\GoogleAds\\V16\\Resources": 177, - "Google\\Ads\\GoogleAds\\V16\\Services": 111 + "Google\\Ads\\GoogleAds\\V17\\Common": 38, + "Google\\Ads\\GoogleAds\\V17\\Enums": 360, + "Google\\Ads\\GoogleAds\\V17\\Errors": 157, + "Google\\Ads\\GoogleAds\\V17\\Resources": 182, + "Google\\Ads\\GoogleAds\\V17\\Services": 114 } }, "ruby_package": { "valueCounts": { - "Google::Ads::GoogleAds::V16::Common": 38, - "Google::Ads::GoogleAds::V16::Enums": 350, - "Google::Ads::GoogleAds::V16::Errors": 153, - "Google::Ads::GoogleAds::V16::Resources": 177, - "Google::Ads::GoogleAds::V16::Services": 111 + "Google::Ads::GoogleAds::V17::Common": 38, + "Google::Ads::GoogleAds::V17::Enums": 360, + "Google::Ads::GoogleAds::V17::Errors": 157, + "Google::Ads::GoogleAds::V17::Resources": 182, + "Google::Ads::GoogleAds::V17::Services": 114 } } }, "services": [ { "shortName": "AccountBudgetProposalService", - "fullName": "google.ads.googleads.v16.services.AccountBudgetProposalService", + "fullName": "google.ads.googleads.v17.services.AccountBudgetProposalService", "methods": [ { "shortName": "MutateAccountBudgetProposal", - "fullName": "google.ads.googleads.v16.services.AccountBudgetProposalService.MutateAccountBudgetProposal", + "fullName": "google.ads.googleads.v17.services.AccountBudgetProposalService.MutateAccountBudgetProposal", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/accountBudgetProposals:mutate" + "path": "/v17/customers/{customer_id=*}/accountBudgetProposals:mutate" } ] } @@ -3282,27 +3332,27 @@ }, { "shortName": "AccountLinkService", - "fullName": "google.ads.googleads.v16.services.AccountLinkService", + "fullName": "google.ads.googleads.v17.services.AccountLinkService", "methods": [ { "shortName": "CreateAccountLink", - "fullName": "google.ads.googleads.v16.services.AccountLinkService.CreateAccountLink", + "fullName": "google.ads.googleads.v17.services.AccountLinkService.CreateAccountLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/accountLinks:create" + "path": "/v17/customers/{customer_id=*}/accountLinks:create" } ] }, { "shortName": "MutateAccountLink", - "fullName": "google.ads.googleads.v16.services.AccountLinkService.MutateAccountLink", + "fullName": "google.ads.googleads.v17.services.AccountLinkService.MutateAccountLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/accountLinks:mutate" + "path": "/v17/customers/{customer_id=*}/accountLinks:mutate" } ] } @@ -3310,16 +3360,16 @@ }, { "shortName": "AdGroupAdLabelService", - "fullName": "google.ads.googleads.v16.services.AdGroupAdLabelService", + "fullName": "google.ads.googleads.v17.services.AdGroupAdLabelService", "methods": [ { "shortName": "MutateAdGroupAdLabels", - "fullName": "google.ads.googleads.v16.services.AdGroupAdLabelService.MutateAdGroupAdLabels", + "fullName": "google.ads.googleads.v17.services.AdGroupAdLabelService.MutateAdGroupAdLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adGroupAdLabels:mutate" + "path": "/v17/customers/{customer_id=*}/adGroupAdLabels:mutate" } ] } @@ -3327,16 +3377,27 @@ }, { "shortName": "AdGroupAdService", - "fullName": "google.ads.googleads.v16.services.AdGroupAdService", + "fullName": "google.ads.googleads.v17.services.AdGroupAdService", "methods": [ { "shortName": "MutateAdGroupAds", - "fullName": "google.ads.googleads.v16.services.AdGroupAdService.MutateAdGroupAds", + "fullName": "google.ads.googleads.v17.services.AdGroupAdService.MutateAdGroupAds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adGroupAds:mutate" + "path": "/v17/customers/{customer_id=*}/adGroupAds:mutate" + } + ] + }, + { + "shortName": "RemoveAutomaticallyCreatedAssets", + "fullName": "google.ads.googleads.v17.services.AdGroupAdService.RemoveAutomaticallyCreatedAssets", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v17/{ad_group_ad=customers/*/adGroupAds/*}:removeAutomaticallyCreatedAssets" } ] } @@ -3344,16 +3405,16 @@ }, { "shortName": "AdGroupAssetService", - "fullName": "google.ads.googleads.v16.services.AdGroupAssetService", + "fullName": "google.ads.googleads.v17.services.AdGroupAssetService", "methods": [ { "shortName": "MutateAdGroupAssets", - "fullName": "google.ads.googleads.v16.services.AdGroupAssetService.MutateAdGroupAssets", + "fullName": "google.ads.googleads.v17.services.AdGroupAssetService.MutateAdGroupAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adGroupAssets:mutate" + "path": "/v17/customers/{customer_id=*}/adGroupAssets:mutate" } ] } @@ -3361,16 +3422,16 @@ }, { "shortName": "AdGroupAssetSetService", - "fullName": "google.ads.googleads.v16.services.AdGroupAssetSetService", + "fullName": "google.ads.googleads.v17.services.AdGroupAssetSetService", "methods": [ { "shortName": "MutateAdGroupAssetSets", - "fullName": "google.ads.googleads.v16.services.AdGroupAssetSetService.MutateAdGroupAssetSets", + "fullName": "google.ads.googleads.v17.services.AdGroupAssetSetService.MutateAdGroupAssetSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adGroupAssetSets:mutate" + "path": "/v17/customers/{customer_id=*}/adGroupAssetSets:mutate" } ] } @@ -3378,16 +3439,16 @@ }, { "shortName": "AdGroupBidModifierService", - "fullName": "google.ads.googleads.v16.services.AdGroupBidModifierService", + "fullName": "google.ads.googleads.v17.services.AdGroupBidModifierService", "methods": [ { "shortName": "MutateAdGroupBidModifiers", - "fullName": "google.ads.googleads.v16.services.AdGroupBidModifierService.MutateAdGroupBidModifiers", + "fullName": "google.ads.googleads.v17.services.AdGroupBidModifierService.MutateAdGroupBidModifiers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adGroupBidModifiers:mutate" + "path": "/v17/customers/{customer_id=*}/adGroupBidModifiers:mutate" } ] } @@ -3395,16 +3456,16 @@ }, { "shortName": "AdGroupCriterionCustomizerService", - "fullName": "google.ads.googleads.v16.services.AdGroupCriterionCustomizerService", + "fullName": "google.ads.googleads.v17.services.AdGroupCriterionCustomizerService", "methods": [ { "shortName": "MutateAdGroupCriterionCustomizers", - "fullName": "google.ads.googleads.v16.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers", + "fullName": "google.ads.googleads.v17.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/AdGroupCriterionCustomizers:mutate" + "path": "/v17/customers/{customer_id=*}/AdGroupCriterionCustomizers:mutate" } ] } @@ -3412,16 +3473,16 @@ }, { "shortName": "AdGroupCriterionLabelService", - "fullName": "google.ads.googleads.v16.services.AdGroupCriterionLabelService", + "fullName": "google.ads.googleads.v17.services.AdGroupCriterionLabelService", "methods": [ { "shortName": "MutateAdGroupCriterionLabels", - "fullName": "google.ads.googleads.v16.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels", + "fullName": "google.ads.googleads.v17.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adGroupCriterionLabels:mutate" + "path": "/v17/customers/{customer_id=*}/adGroupCriterionLabels:mutate" } ] } @@ -3429,16 +3490,16 @@ }, { "shortName": "AdGroupCriterionService", - "fullName": "google.ads.googleads.v16.services.AdGroupCriterionService", + "fullName": "google.ads.googleads.v17.services.AdGroupCriterionService", "methods": [ { "shortName": "MutateAdGroupCriteria", - "fullName": "google.ads.googleads.v16.services.AdGroupCriterionService.MutateAdGroupCriteria", + "fullName": "google.ads.googleads.v17.services.AdGroupCriterionService.MutateAdGroupCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adGroupCriteria:mutate" + "path": "/v17/customers/{customer_id=*}/adGroupCriteria:mutate" } ] } @@ -3446,16 +3507,16 @@ }, { "shortName": "AdGroupCustomizerService", - "fullName": "google.ads.googleads.v16.services.AdGroupCustomizerService", + "fullName": "google.ads.googleads.v17.services.AdGroupCustomizerService", "methods": [ { "shortName": "MutateAdGroupCustomizers", - "fullName": "google.ads.googleads.v16.services.AdGroupCustomizerService.MutateAdGroupCustomizers", + "fullName": "google.ads.googleads.v17.services.AdGroupCustomizerService.MutateAdGroupCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adGroupCustomizers:mutate" + "path": "/v17/customers/{customer_id=*}/adGroupCustomizers:mutate" } ] } @@ -3463,16 +3524,16 @@ }, { "shortName": "AdGroupExtensionSettingService", - "fullName": "google.ads.googleads.v16.services.AdGroupExtensionSettingService", + "fullName": "google.ads.googleads.v17.services.AdGroupExtensionSettingService", "methods": [ { "shortName": "MutateAdGroupExtensionSettings", - "fullName": "google.ads.googleads.v16.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings", + "fullName": "google.ads.googleads.v17.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adGroupExtensionSettings:mutate" + "path": "/v17/customers/{customer_id=*}/adGroupExtensionSettings:mutate" } ] } @@ -3480,16 +3541,16 @@ }, { "shortName": "AdGroupFeedService", - "fullName": "google.ads.googleads.v16.services.AdGroupFeedService", + "fullName": "google.ads.googleads.v17.services.AdGroupFeedService", "methods": [ { "shortName": "MutateAdGroupFeeds", - "fullName": "google.ads.googleads.v16.services.AdGroupFeedService.MutateAdGroupFeeds", + "fullName": "google.ads.googleads.v17.services.AdGroupFeedService.MutateAdGroupFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adGroupFeeds:mutate" + "path": "/v17/customers/{customer_id=*}/adGroupFeeds:mutate" } ] } @@ -3497,16 +3558,16 @@ }, { "shortName": "AdGroupLabelService", - "fullName": "google.ads.googleads.v16.services.AdGroupLabelService", + "fullName": "google.ads.googleads.v17.services.AdGroupLabelService", "methods": [ { "shortName": "MutateAdGroupLabels", - "fullName": "google.ads.googleads.v16.services.AdGroupLabelService.MutateAdGroupLabels", + "fullName": "google.ads.googleads.v17.services.AdGroupLabelService.MutateAdGroupLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adGroupLabels:mutate" + "path": "/v17/customers/{customer_id=*}/adGroupLabels:mutate" } ] } @@ -3514,16 +3575,16 @@ }, { "shortName": "AdGroupService", - "fullName": "google.ads.googleads.v16.services.AdGroupService", + "fullName": "google.ads.googleads.v17.services.AdGroupService", "methods": [ { "shortName": "MutateAdGroups", - "fullName": "google.ads.googleads.v16.services.AdGroupService.MutateAdGroups", + "fullName": "google.ads.googleads.v17.services.AdGroupService.MutateAdGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adGroups:mutate" + "path": "/v17/customers/{customer_id=*}/adGroups:mutate" } ] } @@ -3531,16 +3592,16 @@ }, { "shortName": "AdParameterService", - "fullName": "google.ads.googleads.v16.services.AdParameterService", + "fullName": "google.ads.googleads.v17.services.AdParameterService", "methods": [ { "shortName": "MutateAdParameters", - "fullName": "google.ads.googleads.v16.services.AdParameterService.MutateAdParameters", + "fullName": "google.ads.googleads.v17.services.AdParameterService.MutateAdParameters", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/adParameters:mutate" + "path": "/v17/customers/{customer_id=*}/adParameters:mutate" } ] } @@ -3548,27 +3609,16 @@ }, { "shortName": "AdService", - "fullName": "google.ads.googleads.v16.services.AdService", + "fullName": "google.ads.googleads.v17.services.AdService", "methods": [ - { - "shortName": "GetAd", - "fullName": "google.ads.googleads.v16.services.AdService.GetAd", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "GET", - "path": "/v16/{resource_name=customers/*/ads/*}" - } - ] - }, { "shortName": "MutateAds", - "fullName": "google.ads.googleads.v16.services.AdService.MutateAds", + "fullName": "google.ads.googleads.v17.services.AdService.MutateAds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/ads:mutate" + "path": "/v17/customers/{customer_id=*}/ads:mutate" } ] } @@ -3576,16 +3626,16 @@ }, { "shortName": "AssetGroupAssetService", - "fullName": "google.ads.googleads.v16.services.AssetGroupAssetService", + "fullName": "google.ads.googleads.v17.services.AssetGroupAssetService", "methods": [ { "shortName": "MutateAssetGroupAssets", - "fullName": "google.ads.googleads.v16.services.AssetGroupAssetService.MutateAssetGroupAssets", + "fullName": "google.ads.googleads.v17.services.AssetGroupAssetService.MutateAssetGroupAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/assetGroupAssets:mutate" + "path": "/v17/customers/{customer_id=*}/assetGroupAssets:mutate" } ] } @@ -3593,16 +3643,16 @@ }, { "shortName": "AssetGroupListingGroupFilterService", - "fullName": "google.ads.googleads.v16.services.AssetGroupListingGroupFilterService", + "fullName": "google.ads.googleads.v17.services.AssetGroupListingGroupFilterService", "methods": [ { "shortName": "MutateAssetGroupListingGroupFilters", - "fullName": "google.ads.googleads.v16.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters", + "fullName": "google.ads.googleads.v17.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/assetGroupListingGroupFilters:mutate" + "path": "/v17/customers/{customer_id=*}/assetGroupListingGroupFilters:mutate" } ] } @@ -3610,16 +3660,16 @@ }, { "shortName": "AssetGroupService", - "fullName": "google.ads.googleads.v16.services.AssetGroupService", + "fullName": "google.ads.googleads.v17.services.AssetGroupService", "methods": [ { "shortName": "MutateAssetGroups", - "fullName": "google.ads.googleads.v16.services.AssetGroupService.MutateAssetGroups", + "fullName": "google.ads.googleads.v17.services.AssetGroupService.MutateAssetGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/assetGroups:mutate" + "path": "/v17/customers/{customer_id=*}/assetGroups:mutate" } ] } @@ -3627,16 +3677,16 @@ }, { "shortName": "AssetGroupSignalService", - "fullName": "google.ads.googleads.v16.services.AssetGroupSignalService", + "fullName": "google.ads.googleads.v17.services.AssetGroupSignalService", "methods": [ { "shortName": "MutateAssetGroupSignals", - "fullName": "google.ads.googleads.v16.services.AssetGroupSignalService.MutateAssetGroupSignals", + "fullName": "google.ads.googleads.v17.services.AssetGroupSignalService.MutateAssetGroupSignals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/assetGroupSignals:mutate" + "path": "/v17/customers/{customer_id=*}/assetGroupSignals:mutate" } ] } @@ -3644,16 +3694,16 @@ }, { "shortName": "AssetService", - "fullName": "google.ads.googleads.v16.services.AssetService", + "fullName": "google.ads.googleads.v17.services.AssetService", "methods": [ { "shortName": "MutateAssets", - "fullName": "google.ads.googleads.v16.services.AssetService.MutateAssets", + "fullName": "google.ads.googleads.v17.services.AssetService.MutateAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/assets:mutate" + "path": "/v17/customers/{customer_id=*}/assets:mutate" } ] } @@ -3661,16 +3711,16 @@ }, { "shortName": "AssetSetAssetService", - "fullName": "google.ads.googleads.v16.services.AssetSetAssetService", + "fullName": "google.ads.googleads.v17.services.AssetSetAssetService", "methods": [ { "shortName": "MutateAssetSetAssets", - "fullName": "google.ads.googleads.v16.services.AssetSetAssetService.MutateAssetSetAssets", + "fullName": "google.ads.googleads.v17.services.AssetSetAssetService.MutateAssetSetAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/assetSetAssets:mutate" + "path": "/v17/customers/{customer_id=*}/assetSetAssets:mutate" } ] } @@ -3678,16 +3728,16 @@ }, { "shortName": "AssetSetService", - "fullName": "google.ads.googleads.v16.services.AssetSetService", + "fullName": "google.ads.googleads.v17.services.AssetSetService", "methods": [ { "shortName": "MutateAssetSets", - "fullName": "google.ads.googleads.v16.services.AssetSetService.MutateAssetSets", + "fullName": "google.ads.googleads.v17.services.AssetSetService.MutateAssetSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/assetSets:mutate" + "path": "/v17/customers/{customer_id=*}/assetSets:mutate" } ] } @@ -3695,60 +3745,71 @@ }, { "shortName": "AudienceInsightsService", - "fullName": "google.ads.googleads.v16.services.AudienceInsightsService", + "fullName": "google.ads.googleads.v17.services.AudienceInsightsService", "methods": [ { "shortName": "GenerateAudienceCompositionInsights", - "fullName": "google.ads.googleads.v16.services.AudienceInsightsService.GenerateAudienceCompositionInsights", + "fullName": "google.ads.googleads.v17.services.AudienceInsightsService.GenerateAudienceCompositionInsights", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:generateAudienceCompositionInsights" + "path": "/v17/customers/{customer_id=*}:generateAudienceCompositionInsights" } ] }, { - "shortName": "GenerateInsightsFinderReport", - "fullName": "google.ads.googleads.v16.services.AudienceInsightsService.GenerateInsightsFinderReport", + "shortName": "GenerateAudienceOverlapInsights", + "fullName": "google.ads.googleads.v17.services.AudienceInsightsService.GenerateAudienceOverlapInsights", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:generateInsightsFinderReport" + "path": "/v17/customers/{customer_id=*}:generateAudienceOverlapInsights" } ] }, { - "shortName": "GenerateSuggestedTargetingInsights", - "fullName": "google.ads.googleads.v16.services.AudienceInsightsService.GenerateSuggestedTargetingInsights", + "shortName": "GenerateInsightsFinderReport", + "fullName": "google.ads.googleads.v17.services.AudienceInsightsService.GenerateInsightsFinderReport", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:generateSuggestedTargetingInsights" + "path": "/v17/customers/{customer_id=*}:generateInsightsFinderReport" } ] }, { - "shortName": "ListAudienceInsightsAttributes", - "fullName": "google.ads.googleads.v16.services.AudienceInsightsService.ListAudienceInsightsAttributes", + "shortName": "GenerateSuggestedTargetingInsights", + "fullName": "google.ads.googleads.v17.services.AudienceInsightsService.GenerateSuggestedTargetingInsights", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:searchAudienceInsightsAttributes" + "path": "/v17/customers/{customer_id=*}:generateSuggestedTargetingInsights" + } + ] + }, + { + "shortName": "ListAudienceInsightsAttributes", + "fullName": "google.ads.googleads.v17.services.AudienceInsightsService.ListAudienceInsightsAttributes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v17/customers/{customer_id=*}:searchAudienceInsightsAttributes" } ] }, { "shortName": "ListInsightsEligibleDates", - "fullName": "google.ads.googleads.v16.services.AudienceInsightsService.ListInsightsEligibleDates", + "fullName": "google.ads.googleads.v17.services.AudienceInsightsService.ListInsightsEligibleDates", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/audienceInsights:listInsightsEligibleDates" + "path": "/v17/audienceInsights:listInsightsEligibleDates" } ] } @@ -3756,16 +3817,16 @@ }, { "shortName": "AudienceService", - "fullName": "google.ads.googleads.v16.services.AudienceService", + "fullName": "google.ads.googleads.v17.services.AudienceService", "methods": [ { "shortName": "MutateAudiences", - "fullName": "google.ads.googleads.v16.services.AudienceService.MutateAudiences", + "fullName": "google.ads.googleads.v17.services.AudienceService.MutateAudiences", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/audiences:mutate" + "path": "/v17/customers/{customer_id=*}/audiences:mutate" } ] } @@ -3773,49 +3834,49 @@ }, { "shortName": "BatchJobService", - "fullName": "google.ads.googleads.v16.services.BatchJobService", + "fullName": "google.ads.googleads.v17.services.BatchJobService", "methods": [ { "shortName": "AddBatchJobOperations", - "fullName": "google.ads.googleads.v16.services.BatchJobService.AddBatchJobOperations", + "fullName": "google.ads.googleads.v17.services.BatchJobService.AddBatchJobOperations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/{resource_name=customers/*/batchJobs/*}:addOperations" + "path": "/v17/{resource_name=customers/*/batchJobs/*}:addOperations" } ] }, { "shortName": "ListBatchJobResults", - "fullName": "google.ads.googleads.v16.services.BatchJobService.ListBatchJobResults", + "fullName": "google.ads.googleads.v17.services.BatchJobService.ListBatchJobResults", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v16/{resource_name=customers/*/batchJobs/*}:listResults" + "path": "/v17/{resource_name=customers/*/batchJobs/*}:listResults" } ] }, { "shortName": "MutateBatchJob", - "fullName": "google.ads.googleads.v16.services.BatchJobService.MutateBatchJob", + "fullName": "google.ads.googleads.v17.services.BatchJobService.MutateBatchJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/batchJobs:mutate" + "path": "/v17/customers/{customer_id=*}/batchJobs:mutate" } ] }, { "shortName": "RunBatchJob", - "fullName": "google.ads.googleads.v16.services.BatchJobService.RunBatchJob", + "fullName": "google.ads.googleads.v17.services.BatchJobService.RunBatchJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/{resource_name=customers/*/batchJobs/*}:run" + "path": "/v17/{resource_name=customers/*/batchJobs/*}:run" } ] } @@ -3823,16 +3884,16 @@ }, { "shortName": "BiddingDataExclusionService", - "fullName": "google.ads.googleads.v16.services.BiddingDataExclusionService", + "fullName": "google.ads.googleads.v17.services.BiddingDataExclusionService", "methods": [ { "shortName": "MutateBiddingDataExclusions", - "fullName": "google.ads.googleads.v16.services.BiddingDataExclusionService.MutateBiddingDataExclusions", + "fullName": "google.ads.googleads.v17.services.BiddingDataExclusionService.MutateBiddingDataExclusions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/biddingDataExclusions:mutate" + "path": "/v17/customers/{customer_id=*}/biddingDataExclusions:mutate" } ] } @@ -3840,16 +3901,16 @@ }, { "shortName": "BiddingSeasonalityAdjustmentService", - "fullName": "google.ads.googleads.v16.services.BiddingSeasonalityAdjustmentService", + "fullName": "google.ads.googleads.v17.services.BiddingSeasonalityAdjustmentService", "methods": [ { "shortName": "MutateBiddingSeasonalityAdjustments", - "fullName": "google.ads.googleads.v16.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments", + "fullName": "google.ads.googleads.v17.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/biddingSeasonalityAdjustments:mutate" + "path": "/v17/customers/{customer_id=*}/biddingSeasonalityAdjustments:mutate" } ] } @@ -3857,16 +3918,16 @@ }, { "shortName": "BiddingStrategyService", - "fullName": "google.ads.googleads.v16.services.BiddingStrategyService", + "fullName": "google.ads.googleads.v17.services.BiddingStrategyService", "methods": [ { "shortName": "MutateBiddingStrategies", - "fullName": "google.ads.googleads.v16.services.BiddingStrategyService.MutateBiddingStrategies", + "fullName": "google.ads.googleads.v17.services.BiddingStrategyService.MutateBiddingStrategies", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/biddingStrategies:mutate" + "path": "/v17/customers/{customer_id=*}/biddingStrategies:mutate" } ] } @@ -3874,16 +3935,16 @@ }, { "shortName": "BillingSetupService", - "fullName": "google.ads.googleads.v16.services.BillingSetupService", + "fullName": "google.ads.googleads.v17.services.BillingSetupService", "methods": [ { "shortName": "MutateBillingSetup", - "fullName": "google.ads.googleads.v16.services.BillingSetupService.MutateBillingSetup", + "fullName": "google.ads.googleads.v17.services.BillingSetupService.MutateBillingSetup", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/billingSetups:mutate" + "path": "/v17/customers/{customer_id=*}/billingSetups:mutate" } ] } @@ -3891,16 +3952,16 @@ }, { "shortName": "BrandSuggestionService", - "fullName": "google.ads.googleads.v16.services.BrandSuggestionService", + "fullName": "google.ads.googleads.v17.services.BrandSuggestionService", "methods": [ { "shortName": "SuggestBrands", - "fullName": "google.ads.googleads.v16.services.BrandSuggestionService.SuggestBrands", + "fullName": "google.ads.googleads.v17.services.BrandSuggestionService.SuggestBrands", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:suggestBrands" + "path": "/v17/customers/{customer_id=*}:suggestBrands" } ] } @@ -3908,16 +3969,16 @@ }, { "shortName": "CampaignAssetService", - "fullName": "google.ads.googleads.v16.services.CampaignAssetService", + "fullName": "google.ads.googleads.v17.services.CampaignAssetService", "methods": [ { "shortName": "MutateCampaignAssets", - "fullName": "google.ads.googleads.v16.services.CampaignAssetService.MutateCampaignAssets", + "fullName": "google.ads.googleads.v17.services.CampaignAssetService.MutateCampaignAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignAssets:mutate" + "path": "/v17/customers/{customer_id=*}/campaignAssets:mutate" } ] } @@ -3925,16 +3986,16 @@ }, { "shortName": "CampaignAssetSetService", - "fullName": "google.ads.googleads.v16.services.CampaignAssetSetService", + "fullName": "google.ads.googleads.v17.services.CampaignAssetSetService", "methods": [ { "shortName": "MutateCampaignAssetSets", - "fullName": "google.ads.googleads.v16.services.CampaignAssetSetService.MutateCampaignAssetSets", + "fullName": "google.ads.googleads.v17.services.CampaignAssetSetService.MutateCampaignAssetSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignAssetSets:mutate" + "path": "/v17/customers/{customer_id=*}/campaignAssetSets:mutate" } ] } @@ -3942,16 +4003,16 @@ }, { "shortName": "CampaignBidModifierService", - "fullName": "google.ads.googleads.v16.services.CampaignBidModifierService", + "fullName": "google.ads.googleads.v17.services.CampaignBidModifierService", "methods": [ { "shortName": "MutateCampaignBidModifiers", - "fullName": "google.ads.googleads.v16.services.CampaignBidModifierService.MutateCampaignBidModifiers", + "fullName": "google.ads.googleads.v17.services.CampaignBidModifierService.MutateCampaignBidModifiers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignBidModifiers:mutate" + "path": "/v17/customers/{customer_id=*}/campaignBidModifiers:mutate" } ] } @@ -3959,16 +4020,16 @@ }, { "shortName": "CampaignBudgetService", - "fullName": "google.ads.googleads.v16.services.CampaignBudgetService", + "fullName": "google.ads.googleads.v17.services.CampaignBudgetService", "methods": [ { "shortName": "MutateCampaignBudgets", - "fullName": "google.ads.googleads.v16.services.CampaignBudgetService.MutateCampaignBudgets", + "fullName": "google.ads.googleads.v17.services.CampaignBudgetService.MutateCampaignBudgets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignBudgets:mutate" + "path": "/v17/customers/{customer_id=*}/campaignBudgets:mutate" } ] } @@ -3976,16 +4037,16 @@ }, { "shortName": "CampaignConversionGoalService", - "fullName": "google.ads.googleads.v16.services.CampaignConversionGoalService", + "fullName": "google.ads.googleads.v17.services.CampaignConversionGoalService", "methods": [ { "shortName": "MutateCampaignConversionGoals", - "fullName": "google.ads.googleads.v16.services.CampaignConversionGoalService.MutateCampaignConversionGoals", + "fullName": "google.ads.googleads.v17.services.CampaignConversionGoalService.MutateCampaignConversionGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignConversionGoals:mutate" + "path": "/v17/customers/{customer_id=*}/campaignConversionGoals:mutate" } ] } @@ -3993,16 +4054,16 @@ }, { "shortName": "CampaignCriterionService", - "fullName": "google.ads.googleads.v16.services.CampaignCriterionService", + "fullName": "google.ads.googleads.v17.services.CampaignCriterionService", "methods": [ { "shortName": "MutateCampaignCriteria", - "fullName": "google.ads.googleads.v16.services.CampaignCriterionService.MutateCampaignCriteria", + "fullName": "google.ads.googleads.v17.services.CampaignCriterionService.MutateCampaignCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignCriteria:mutate" + "path": "/v17/customers/{customer_id=*}/campaignCriteria:mutate" } ] } @@ -4010,16 +4071,16 @@ }, { "shortName": "CampaignCustomizerService", - "fullName": "google.ads.googleads.v16.services.CampaignCustomizerService", + "fullName": "google.ads.googleads.v17.services.CampaignCustomizerService", "methods": [ { "shortName": "MutateCampaignCustomizers", - "fullName": "google.ads.googleads.v16.services.CampaignCustomizerService.MutateCampaignCustomizers", + "fullName": "google.ads.googleads.v17.services.CampaignCustomizerService.MutateCampaignCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignCustomizers:mutate" + "path": "/v17/customers/{customer_id=*}/campaignCustomizers:mutate" } ] } @@ -4027,38 +4088,38 @@ }, { "shortName": "CampaignDraftService", - "fullName": "google.ads.googleads.v16.services.CampaignDraftService", + "fullName": "google.ads.googleads.v17.services.CampaignDraftService", "methods": [ { "shortName": "ListCampaignDraftAsyncErrors", - "fullName": "google.ads.googleads.v16.services.CampaignDraftService.ListCampaignDraftAsyncErrors", + "fullName": "google.ads.googleads.v17.services.CampaignDraftService.ListCampaignDraftAsyncErrors", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v16/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" + "path": "/v17/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" } ] }, { "shortName": "MutateCampaignDrafts", - "fullName": "google.ads.googleads.v16.services.CampaignDraftService.MutateCampaignDrafts", + "fullName": "google.ads.googleads.v17.services.CampaignDraftService.MutateCampaignDrafts", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignDrafts:mutate" + "path": "/v17/customers/{customer_id=*}/campaignDrafts:mutate" } ] }, { "shortName": "PromoteCampaignDraft", - "fullName": "google.ads.googleads.v16.services.CampaignDraftService.PromoteCampaignDraft", + "fullName": "google.ads.googleads.v17.services.CampaignDraftService.PromoteCampaignDraft", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/{campaign_draft=customers/*/campaignDrafts/*}:promote" + "path": "/v17/{campaign_draft=customers/*/campaignDrafts/*}:promote" } ] } @@ -4066,16 +4127,16 @@ }, { "shortName": "CampaignExtensionSettingService", - "fullName": "google.ads.googleads.v16.services.CampaignExtensionSettingService", + "fullName": "google.ads.googleads.v17.services.CampaignExtensionSettingService", "methods": [ { "shortName": "MutateCampaignExtensionSettings", - "fullName": "google.ads.googleads.v16.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings", + "fullName": "google.ads.googleads.v17.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignExtensionSettings:mutate" + "path": "/v17/customers/{customer_id=*}/campaignExtensionSettings:mutate" } ] } @@ -4083,16 +4144,16 @@ }, { "shortName": "CampaignFeedService", - "fullName": "google.ads.googleads.v16.services.CampaignFeedService", + "fullName": "google.ads.googleads.v17.services.CampaignFeedService", "methods": [ { "shortName": "MutateCampaignFeeds", - "fullName": "google.ads.googleads.v16.services.CampaignFeedService.MutateCampaignFeeds", + "fullName": "google.ads.googleads.v17.services.CampaignFeedService.MutateCampaignFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignFeeds:mutate" + "path": "/v17/customers/{customer_id=*}/campaignFeeds:mutate" } ] } @@ -4100,16 +4161,16 @@ }, { "shortName": "CampaignGroupService", - "fullName": "google.ads.googleads.v16.services.CampaignGroupService", + "fullName": "google.ads.googleads.v17.services.CampaignGroupService", "methods": [ { "shortName": "MutateCampaignGroups", - "fullName": "google.ads.googleads.v16.services.CampaignGroupService.MutateCampaignGroups", + "fullName": "google.ads.googleads.v17.services.CampaignGroupService.MutateCampaignGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignGroups:mutate" + "path": "/v17/customers/{customer_id=*}/campaignGroups:mutate" } ] } @@ -4117,16 +4178,16 @@ }, { "shortName": "CampaignLabelService", - "fullName": "google.ads.googleads.v16.services.CampaignLabelService", + "fullName": "google.ads.googleads.v17.services.CampaignLabelService", "methods": [ { "shortName": "MutateCampaignLabels", - "fullName": "google.ads.googleads.v16.services.CampaignLabelService.MutateCampaignLabels", + "fullName": "google.ads.googleads.v17.services.CampaignLabelService.MutateCampaignLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignLabels:mutate" + "path": "/v17/customers/{customer_id=*}/campaignLabels:mutate" } ] } @@ -4134,16 +4195,16 @@ }, { "shortName": "CampaignLifecycleGoalService", - "fullName": "google.ads.googleads.v16.services.CampaignLifecycleGoalService", + "fullName": "google.ads.googleads.v17.services.CampaignLifecycleGoalService", "methods": [ { "shortName": "ConfigureCampaignLifecycleGoals", - "fullName": "google.ads.googleads.v16.services.CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals", + "fullName": "google.ads.googleads.v17.services.CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignLifecycleGoal:configureCampaignLifecycleGoals" + "path": "/v17/customers/{customer_id=*}/campaignLifecycleGoal:configureCampaignLifecycleGoals" } ] } @@ -4151,16 +4212,16 @@ }, { "shortName": "CampaignService", - "fullName": "google.ads.googleads.v16.services.CampaignService", + "fullName": "google.ads.googleads.v17.services.CampaignService", "methods": [ { "shortName": "MutateCampaigns", - "fullName": "google.ads.googleads.v16.services.CampaignService.MutateCampaigns", + "fullName": "google.ads.googleads.v17.services.CampaignService.MutateCampaigns", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaigns:mutate" + "path": "/v17/customers/{customer_id=*}/campaigns:mutate" } ] } @@ -4168,16 +4229,16 @@ }, { "shortName": "CampaignSharedSetService", - "fullName": "google.ads.googleads.v16.services.CampaignSharedSetService", + "fullName": "google.ads.googleads.v17.services.CampaignSharedSetService", "methods": [ { "shortName": "MutateCampaignSharedSets", - "fullName": "google.ads.googleads.v16.services.CampaignSharedSetService.MutateCampaignSharedSets", + "fullName": "google.ads.googleads.v17.services.CampaignSharedSetService.MutateCampaignSharedSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/campaignSharedSets:mutate" + "path": "/v17/customers/{customer_id=*}/campaignSharedSets:mutate" } ] } @@ -4185,16 +4246,16 @@ }, { "shortName": "ConversionActionService", - "fullName": "google.ads.googleads.v16.services.ConversionActionService", + "fullName": "google.ads.googleads.v17.services.ConversionActionService", "methods": [ { "shortName": "MutateConversionActions", - "fullName": "google.ads.googleads.v16.services.ConversionActionService.MutateConversionActions", + "fullName": "google.ads.googleads.v17.services.ConversionActionService.MutateConversionActions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/conversionActions:mutate" + "path": "/v17/customers/{customer_id=*}/conversionActions:mutate" } ] } @@ -4202,16 +4263,16 @@ }, { "shortName": "ConversionAdjustmentUploadService", - "fullName": "google.ads.googleads.v16.services.ConversionAdjustmentUploadService", + "fullName": "google.ads.googleads.v17.services.ConversionAdjustmentUploadService", "methods": [ { "shortName": "UploadConversionAdjustments", - "fullName": "google.ads.googleads.v16.services.ConversionAdjustmentUploadService.UploadConversionAdjustments", + "fullName": "google.ads.googleads.v17.services.ConversionAdjustmentUploadService.UploadConversionAdjustments", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:uploadConversionAdjustments" + "path": "/v17/customers/{customer_id=*}:uploadConversionAdjustments" } ] } @@ -4219,16 +4280,16 @@ }, { "shortName": "ConversionCustomVariableService", - "fullName": "google.ads.googleads.v16.services.ConversionCustomVariableService", + "fullName": "google.ads.googleads.v17.services.ConversionCustomVariableService", "methods": [ { "shortName": "MutateConversionCustomVariables", - "fullName": "google.ads.googleads.v16.services.ConversionCustomVariableService.MutateConversionCustomVariables", + "fullName": "google.ads.googleads.v17.services.ConversionCustomVariableService.MutateConversionCustomVariables", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/conversionCustomVariables:mutate" + "path": "/v17/customers/{customer_id=*}/conversionCustomVariables:mutate" } ] } @@ -4236,16 +4297,16 @@ }, { "shortName": "ConversionGoalCampaignConfigService", - "fullName": "google.ads.googleads.v16.services.ConversionGoalCampaignConfigService", + "fullName": "google.ads.googleads.v17.services.ConversionGoalCampaignConfigService", "methods": [ { "shortName": "MutateConversionGoalCampaignConfigs", - "fullName": "google.ads.googleads.v16.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs", + "fullName": "google.ads.googleads.v17.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/conversionGoalCampaignConfigs:mutate" + "path": "/v17/customers/{customer_id=*}/conversionGoalCampaignConfigs:mutate" } ] } @@ -4253,27 +4314,27 @@ }, { "shortName": "ConversionUploadService", - "fullName": "google.ads.googleads.v16.services.ConversionUploadService", + "fullName": "google.ads.googleads.v17.services.ConversionUploadService", "methods": [ { "shortName": "UploadCallConversions", - "fullName": "google.ads.googleads.v16.services.ConversionUploadService.UploadCallConversions", + "fullName": "google.ads.googleads.v17.services.ConversionUploadService.UploadCallConversions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:uploadCallConversions" + "path": "/v17/customers/{customer_id=*}:uploadCallConversions" } ] }, { "shortName": "UploadClickConversions", - "fullName": "google.ads.googleads.v16.services.ConversionUploadService.UploadClickConversions", + "fullName": "google.ads.googleads.v17.services.ConversionUploadService.UploadClickConversions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:uploadClickConversions" + "path": "/v17/customers/{customer_id=*}:uploadClickConversions" } ] } @@ -4281,16 +4342,16 @@ }, { "shortName": "ConversionValueRuleService", - "fullName": "google.ads.googleads.v16.services.ConversionValueRuleService", + "fullName": "google.ads.googleads.v17.services.ConversionValueRuleService", "methods": [ { "shortName": "MutateConversionValueRules", - "fullName": "google.ads.googleads.v16.services.ConversionValueRuleService.MutateConversionValueRules", + "fullName": "google.ads.googleads.v17.services.ConversionValueRuleService.MutateConversionValueRules", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/conversionValueRules:mutate" + "path": "/v17/customers/{customer_id=*}/conversionValueRules:mutate" } ] } @@ -4298,16 +4359,16 @@ }, { "shortName": "ConversionValueRuleSetService", - "fullName": "google.ads.googleads.v16.services.ConversionValueRuleSetService", + "fullName": "google.ads.googleads.v17.services.ConversionValueRuleSetService", "methods": [ { "shortName": "MutateConversionValueRuleSets", - "fullName": "google.ads.googleads.v16.services.ConversionValueRuleSetService.MutateConversionValueRuleSets", + "fullName": "google.ads.googleads.v17.services.ConversionValueRuleSetService.MutateConversionValueRuleSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/conversionValueRuleSets:mutate" + "path": "/v17/customers/{customer_id=*}/conversionValueRuleSets:mutate" } ] } @@ -4315,16 +4376,16 @@ }, { "shortName": "CustomAudienceService", - "fullName": "google.ads.googleads.v16.services.CustomAudienceService", + "fullName": "google.ads.googleads.v17.services.CustomAudienceService", "methods": [ { "shortName": "MutateCustomAudiences", - "fullName": "google.ads.googleads.v16.services.CustomAudienceService.MutateCustomAudiences", + "fullName": "google.ads.googleads.v17.services.CustomAudienceService.MutateCustomAudiences", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customAudiences:mutate" + "path": "/v17/customers/{customer_id=*}/customAudiences:mutate" } ] } @@ -4332,16 +4393,16 @@ }, { "shortName": "CustomConversionGoalService", - "fullName": "google.ads.googleads.v16.services.CustomConversionGoalService", + "fullName": "google.ads.googleads.v17.services.CustomConversionGoalService", "methods": [ { "shortName": "MutateCustomConversionGoals", - "fullName": "google.ads.googleads.v16.services.CustomConversionGoalService.MutateCustomConversionGoals", + "fullName": "google.ads.googleads.v17.services.CustomConversionGoalService.MutateCustomConversionGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customConversionGoals:mutate" + "path": "/v17/customers/{customer_id=*}/customConversionGoals:mutate" } ] } @@ -4349,16 +4410,16 @@ }, { "shortName": "CustomInterestService", - "fullName": "google.ads.googleads.v16.services.CustomInterestService", + "fullName": "google.ads.googleads.v17.services.CustomInterestService", "methods": [ { "shortName": "MutateCustomInterests", - "fullName": "google.ads.googleads.v16.services.CustomInterestService.MutateCustomInterests", + "fullName": "google.ads.googleads.v17.services.CustomInterestService.MutateCustomInterests", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customInterests:mutate" + "path": "/v17/customers/{customer_id=*}/customInterests:mutate" } ] } @@ -4366,16 +4427,16 @@ }, { "shortName": "CustomerAssetService", - "fullName": "google.ads.googleads.v16.services.CustomerAssetService", + "fullName": "google.ads.googleads.v17.services.CustomerAssetService", "methods": [ { "shortName": "MutateCustomerAssets", - "fullName": "google.ads.googleads.v16.services.CustomerAssetService.MutateCustomerAssets", + "fullName": "google.ads.googleads.v17.services.CustomerAssetService.MutateCustomerAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerAssets:mutate" + "path": "/v17/customers/{customer_id=*}/customerAssets:mutate" } ] } @@ -4383,16 +4444,16 @@ }, { "shortName": "CustomerAssetSetService", - "fullName": "google.ads.googleads.v16.services.CustomerAssetSetService", + "fullName": "google.ads.googleads.v17.services.CustomerAssetSetService", "methods": [ { "shortName": "MutateCustomerAssetSets", - "fullName": "google.ads.googleads.v16.services.CustomerAssetSetService.MutateCustomerAssetSets", + "fullName": "google.ads.googleads.v17.services.CustomerAssetSetService.MutateCustomerAssetSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerAssetSets:mutate" + "path": "/v17/customers/{customer_id=*}/customerAssetSets:mutate" } ] } @@ -4400,16 +4461,16 @@ }, { "shortName": "CustomerClientLinkService", - "fullName": "google.ads.googleads.v16.services.CustomerClientLinkService", + "fullName": "google.ads.googleads.v17.services.CustomerClientLinkService", "methods": [ { "shortName": "MutateCustomerClientLink", - "fullName": "google.ads.googleads.v16.services.CustomerClientLinkService.MutateCustomerClientLink", + "fullName": "google.ads.googleads.v17.services.CustomerClientLinkService.MutateCustomerClientLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerClientLinks:mutate" + "path": "/v17/customers/{customer_id=*}/customerClientLinks:mutate" } ] } @@ -4417,16 +4478,16 @@ }, { "shortName": "CustomerConversionGoalService", - "fullName": "google.ads.googleads.v16.services.CustomerConversionGoalService", + "fullName": "google.ads.googleads.v17.services.CustomerConversionGoalService", "methods": [ { "shortName": "MutateCustomerConversionGoals", - "fullName": "google.ads.googleads.v16.services.CustomerConversionGoalService.MutateCustomerConversionGoals", + "fullName": "google.ads.googleads.v17.services.CustomerConversionGoalService.MutateCustomerConversionGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerConversionGoals:mutate" + "path": "/v17/customers/{customer_id=*}/customerConversionGoals:mutate" } ] } @@ -4434,16 +4495,16 @@ }, { "shortName": "CustomerCustomizerService", - "fullName": "google.ads.googleads.v16.services.CustomerCustomizerService", + "fullName": "google.ads.googleads.v17.services.CustomerCustomizerService", "methods": [ { "shortName": "MutateCustomerCustomizers", - "fullName": "google.ads.googleads.v16.services.CustomerCustomizerService.MutateCustomerCustomizers", + "fullName": "google.ads.googleads.v17.services.CustomerCustomizerService.MutateCustomerCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/CustomerCustomizers:mutate" + "path": "/v17/customers/{customer_id=*}/CustomerCustomizers:mutate" } ] } @@ -4451,16 +4512,16 @@ }, { "shortName": "CustomerExtensionSettingService", - "fullName": "google.ads.googleads.v16.services.CustomerExtensionSettingService", + "fullName": "google.ads.googleads.v17.services.CustomerExtensionSettingService", "methods": [ { "shortName": "MutateCustomerExtensionSettings", - "fullName": "google.ads.googleads.v16.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings", + "fullName": "google.ads.googleads.v17.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerExtensionSettings:mutate" + "path": "/v17/customers/{customer_id=*}/customerExtensionSettings:mutate" } ] } @@ -4468,16 +4529,16 @@ }, { "shortName": "CustomerFeedService", - "fullName": "google.ads.googleads.v16.services.CustomerFeedService", + "fullName": "google.ads.googleads.v17.services.CustomerFeedService", "methods": [ { "shortName": "MutateCustomerFeeds", - "fullName": "google.ads.googleads.v16.services.CustomerFeedService.MutateCustomerFeeds", + "fullName": "google.ads.googleads.v17.services.CustomerFeedService.MutateCustomerFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerFeeds:mutate" + "path": "/v17/customers/{customer_id=*}/customerFeeds:mutate" } ] } @@ -4485,16 +4546,16 @@ }, { "shortName": "CustomerLabelService", - "fullName": "google.ads.googleads.v16.services.CustomerLabelService", + "fullName": "google.ads.googleads.v17.services.CustomerLabelService", "methods": [ { "shortName": "MutateCustomerLabels", - "fullName": "google.ads.googleads.v16.services.CustomerLabelService.MutateCustomerLabels", + "fullName": "google.ads.googleads.v17.services.CustomerLabelService.MutateCustomerLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerLabels:mutate" + "path": "/v17/customers/{customer_id=*}/customerLabels:mutate" } ] } @@ -4502,16 +4563,16 @@ }, { "shortName": "CustomerLifecycleGoalService", - "fullName": "google.ads.googleads.v16.services.CustomerLifecycleGoalService", + "fullName": "google.ads.googleads.v17.services.CustomerLifecycleGoalService", "methods": [ { "shortName": "ConfigureCustomerLifecycleGoals", - "fullName": "google.ads.googleads.v16.services.CustomerLifecycleGoalService.ConfigureCustomerLifecycleGoals", + "fullName": "google.ads.googleads.v17.services.CustomerLifecycleGoalService.ConfigureCustomerLifecycleGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerLifecycleGoal:configureCustomerLifecycleGoals" + "path": "/v17/customers/{customer_id=*}/customerLifecycleGoal:configureCustomerLifecycleGoals" } ] } @@ -4519,27 +4580,27 @@ }, { "shortName": "CustomerManagerLinkService", - "fullName": "google.ads.googleads.v16.services.CustomerManagerLinkService", + "fullName": "google.ads.googleads.v17.services.CustomerManagerLinkService", "methods": [ { "shortName": "MoveManagerLink", - "fullName": "google.ads.googleads.v16.services.CustomerManagerLinkService.MoveManagerLink", + "fullName": "google.ads.googleads.v17.services.CustomerManagerLinkService.MoveManagerLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" + "path": "/v17/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" } ] }, { "shortName": "MutateCustomerManagerLink", - "fullName": "google.ads.googleads.v16.services.CustomerManagerLinkService.MutateCustomerManagerLink", + "fullName": "google.ads.googleads.v17.services.CustomerManagerLinkService.MutateCustomerManagerLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerManagerLinks:mutate" + "path": "/v17/customers/{customer_id=*}/customerManagerLinks:mutate" } ] } @@ -4547,16 +4608,16 @@ }, { "shortName": "CustomerNegativeCriterionService", - "fullName": "google.ads.googleads.v16.services.CustomerNegativeCriterionService", + "fullName": "google.ads.googleads.v17.services.CustomerNegativeCriterionService", "methods": [ { "shortName": "MutateCustomerNegativeCriteria", - "fullName": "google.ads.googleads.v16.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria", + "fullName": "google.ads.googleads.v17.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerNegativeCriteria:mutate" + "path": "/v17/customers/{customer_id=*}/customerNegativeCriteria:mutate" } ] } @@ -4564,38 +4625,38 @@ }, { "shortName": "CustomerService", - "fullName": "google.ads.googleads.v16.services.CustomerService", + "fullName": "google.ads.googleads.v17.services.CustomerService", "methods": [ { "shortName": "CreateCustomerClient", - "fullName": "google.ads.googleads.v16.services.CustomerService.CreateCustomerClient", + "fullName": "google.ads.googleads.v17.services.CustomerService.CreateCustomerClient", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:createCustomerClient" + "path": "/v17/customers/{customer_id=*}:createCustomerClient" } ] }, { "shortName": "ListAccessibleCustomers", - "fullName": "google.ads.googleads.v16.services.CustomerService.ListAccessibleCustomers", + "fullName": "google.ads.googleads.v17.services.CustomerService.ListAccessibleCustomers", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v16/customers:listAccessibleCustomers" + "path": "/v17/customers:listAccessibleCustomers" } ] }, { "shortName": "MutateCustomer", - "fullName": "google.ads.googleads.v16.services.CustomerService.MutateCustomer", + "fullName": "google.ads.googleads.v17.services.CustomerService.MutateCustomer", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:mutate" + "path": "/v17/customers/{customer_id=*}:mutate" } ] } @@ -4603,16 +4664,16 @@ }, { "shortName": "CustomerSkAdNetworkConversionValueSchemaService", - "fullName": "google.ads.googleads.v16.services.CustomerSkAdNetworkConversionValueSchemaService", + "fullName": "google.ads.googleads.v17.services.CustomerSkAdNetworkConversionValueSchemaService", "methods": [ { "shortName": "MutateCustomerSkAdNetworkConversionValueSchema", - "fullName": "google.ads.googleads.v16.services.CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema", + "fullName": "google.ads.googleads.v17.services.CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerSkAdNetworkConversionValueSchemas:mutate" + "path": "/v17/customers/{customer_id=*}/customerSkAdNetworkConversionValueSchemas:mutate" } ] } @@ -4620,16 +4681,16 @@ }, { "shortName": "CustomerUserAccessInvitationService", - "fullName": "google.ads.googleads.v16.services.CustomerUserAccessInvitationService", + "fullName": "google.ads.googleads.v17.services.CustomerUserAccessInvitationService", "methods": [ { "shortName": "MutateCustomerUserAccessInvitation", - "fullName": "google.ads.googleads.v16.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation", + "fullName": "google.ads.googleads.v17.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerUserAccessInvitations:mutate" + "path": "/v17/customers/{customer_id=*}/customerUserAccessInvitations:mutate" } ] } @@ -4637,16 +4698,16 @@ }, { "shortName": "CustomerUserAccessService", - "fullName": "google.ads.googleads.v16.services.CustomerUserAccessService", + "fullName": "google.ads.googleads.v17.services.CustomerUserAccessService", "methods": [ { "shortName": "MutateCustomerUserAccess", - "fullName": "google.ads.googleads.v16.services.CustomerUserAccessService.MutateCustomerUserAccess", + "fullName": "google.ads.googleads.v17.services.CustomerUserAccessService.MutateCustomerUserAccess", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customerUserAccesses:mutate" + "path": "/v17/customers/{customer_id=*}/customerUserAccesses:mutate" } ] } @@ -4654,16 +4715,16 @@ }, { "shortName": "CustomizerAttributeService", - "fullName": "google.ads.googleads.v16.services.CustomizerAttributeService", + "fullName": "google.ads.googleads.v17.services.CustomizerAttributeService", "methods": [ { "shortName": "MutateCustomizerAttributes", - "fullName": "google.ads.googleads.v16.services.CustomizerAttributeService.MutateCustomizerAttributes", + "fullName": "google.ads.googleads.v17.services.CustomizerAttributeService.MutateCustomizerAttributes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/customizerAttributes:mutate" + "path": "/v17/customers/{customer_id=*}/customizerAttributes:mutate" } ] } @@ -4671,16 +4732,16 @@ }, { "shortName": "ExperimentArmService", - "fullName": "google.ads.googleads.v16.services.ExperimentArmService", + "fullName": "google.ads.googleads.v17.services.ExperimentArmService", "methods": [ { "shortName": "MutateExperimentArms", - "fullName": "google.ads.googleads.v16.services.ExperimentArmService.MutateExperimentArms", + "fullName": "google.ads.googleads.v17.services.ExperimentArmService.MutateExperimentArms", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/experimentArms:mutate" + "path": "/v17/customers/{customer_id=*}/experimentArms:mutate" } ] } @@ -4688,71 +4749,71 @@ }, { "shortName": "ExperimentService", - "fullName": "google.ads.googleads.v16.services.ExperimentService", + "fullName": "google.ads.googleads.v17.services.ExperimentService", "methods": [ { "shortName": "EndExperiment", - "fullName": "google.ads.googleads.v16.services.ExperimentService.EndExperiment", + "fullName": "google.ads.googleads.v17.services.ExperimentService.EndExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/{experiment=customers/*/experiments/*}:endExperiment" + "path": "/v17/{experiment=customers/*/experiments/*}:endExperiment" } ] }, { "shortName": "GraduateExperiment", - "fullName": "google.ads.googleads.v16.services.ExperimentService.GraduateExperiment", + "fullName": "google.ads.googleads.v17.services.ExperimentService.GraduateExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/{experiment=customers/*/experiments/*}:graduateExperiment" + "path": "/v17/{experiment=customers/*/experiments/*}:graduateExperiment" } ] }, { "shortName": "ListExperimentAsyncErrors", - "fullName": "google.ads.googleads.v16.services.ExperimentService.ListExperimentAsyncErrors", + "fullName": "google.ads.googleads.v17.services.ExperimentService.ListExperimentAsyncErrors", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v16/{resource_name=customers/*/experiments/*}:listExperimentAsyncErrors" + "path": "/v17/{resource_name=customers/*/experiments/*}:listExperimentAsyncErrors" } ] }, { "shortName": "MutateExperiments", - "fullName": "google.ads.googleads.v16.services.ExperimentService.MutateExperiments", + "fullName": "google.ads.googleads.v17.services.ExperimentService.MutateExperiments", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/experiments:mutate" + "path": "/v17/customers/{customer_id=*}/experiments:mutate" } ] }, { "shortName": "PromoteExperiment", - "fullName": "google.ads.googleads.v16.services.ExperimentService.PromoteExperiment", + "fullName": "google.ads.googleads.v17.services.ExperimentService.PromoteExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/{resource_name=customers/*/experiments/*}:promoteExperiment" + "path": "/v17/{resource_name=customers/*/experiments/*}:promoteExperiment" } ] }, { "shortName": "ScheduleExperiment", - "fullName": "google.ads.googleads.v16.services.ExperimentService.ScheduleExperiment", + "fullName": "google.ads.googleads.v17.services.ExperimentService.ScheduleExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/{resource_name=customers/*/experiments/*}:scheduleExperiment" + "path": "/v17/{resource_name=customers/*/experiments/*}:scheduleExperiment" } ] } @@ -4760,16 +4821,16 @@ }, { "shortName": "ExtensionFeedItemService", - "fullName": "google.ads.googleads.v16.services.ExtensionFeedItemService", + "fullName": "google.ads.googleads.v17.services.ExtensionFeedItemService", "methods": [ { "shortName": "MutateExtensionFeedItems", - "fullName": "google.ads.googleads.v16.services.ExtensionFeedItemService.MutateExtensionFeedItems", + "fullName": "google.ads.googleads.v17.services.ExtensionFeedItemService.MutateExtensionFeedItems", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/extensionFeedItems:mutate" + "path": "/v17/customers/{customer_id=*}/extensionFeedItems:mutate" } ] } @@ -4777,16 +4838,16 @@ }, { "shortName": "FeedItemService", - "fullName": "google.ads.googleads.v16.services.FeedItemService", + "fullName": "google.ads.googleads.v17.services.FeedItemService", "methods": [ { "shortName": "MutateFeedItems", - "fullName": "google.ads.googleads.v16.services.FeedItemService.MutateFeedItems", + "fullName": "google.ads.googleads.v17.services.FeedItemService.MutateFeedItems", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/feedItems:mutate" + "path": "/v17/customers/{customer_id=*}/feedItems:mutate" } ] } @@ -4794,16 +4855,16 @@ }, { "shortName": "FeedItemSetLinkService", - "fullName": "google.ads.googleads.v16.services.FeedItemSetLinkService", + "fullName": "google.ads.googleads.v17.services.FeedItemSetLinkService", "methods": [ { "shortName": "MutateFeedItemSetLinks", - "fullName": "google.ads.googleads.v16.services.FeedItemSetLinkService.MutateFeedItemSetLinks", + "fullName": "google.ads.googleads.v17.services.FeedItemSetLinkService.MutateFeedItemSetLinks", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/feedItemSetLinks:mutate" + "path": "/v17/customers/{customer_id=*}/feedItemSetLinks:mutate" } ] } @@ -4811,16 +4872,16 @@ }, { "shortName": "FeedItemSetService", - "fullName": "google.ads.googleads.v16.services.FeedItemSetService", + "fullName": "google.ads.googleads.v17.services.FeedItemSetService", "methods": [ { "shortName": "MutateFeedItemSets", - "fullName": "google.ads.googleads.v16.services.FeedItemSetService.MutateFeedItemSets", + "fullName": "google.ads.googleads.v17.services.FeedItemSetService.MutateFeedItemSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/feedItemSets:mutate" + "path": "/v17/customers/{customer_id=*}/feedItemSets:mutate" } ] } @@ -4828,16 +4889,16 @@ }, { "shortName": "FeedItemTargetService", - "fullName": "google.ads.googleads.v16.services.FeedItemTargetService", + "fullName": "google.ads.googleads.v17.services.FeedItemTargetService", "methods": [ { "shortName": "MutateFeedItemTargets", - "fullName": "google.ads.googleads.v16.services.FeedItemTargetService.MutateFeedItemTargets", + "fullName": "google.ads.googleads.v17.services.FeedItemTargetService.MutateFeedItemTargets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/feedItemTargets:mutate" + "path": "/v17/customers/{customer_id=*}/feedItemTargets:mutate" } ] } @@ -4845,16 +4906,16 @@ }, { "shortName": "FeedMappingService", - "fullName": "google.ads.googleads.v16.services.FeedMappingService", + "fullName": "google.ads.googleads.v17.services.FeedMappingService", "methods": [ { "shortName": "MutateFeedMappings", - "fullName": "google.ads.googleads.v16.services.FeedMappingService.MutateFeedMappings", + "fullName": "google.ads.googleads.v17.services.FeedMappingService.MutateFeedMappings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/feedMappings:mutate" + "path": "/v17/customers/{customer_id=*}/feedMappings:mutate" } ] } @@ -4862,16 +4923,16 @@ }, { "shortName": "FeedService", - "fullName": "google.ads.googleads.v16.services.FeedService", + "fullName": "google.ads.googleads.v17.services.FeedService", "methods": [ { "shortName": "MutateFeeds", - "fullName": "google.ads.googleads.v16.services.FeedService.MutateFeeds", + "fullName": "google.ads.googleads.v17.services.FeedService.MutateFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/feeds:mutate" + "path": "/v17/customers/{customer_id=*}/feeds:mutate" } ] } @@ -4879,16 +4940,16 @@ }, { "shortName": "GeoTargetConstantService", - "fullName": "google.ads.googleads.v16.services.GeoTargetConstantService", + "fullName": "google.ads.googleads.v17.services.GeoTargetConstantService", "methods": [ { "shortName": "SuggestGeoTargetConstants", - "fullName": "google.ads.googleads.v16.services.GeoTargetConstantService.SuggestGeoTargetConstants", + "fullName": "google.ads.googleads.v17.services.GeoTargetConstantService.SuggestGeoTargetConstants", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/geoTargetConstants:suggest" + "path": "/v17/geoTargetConstants:suggest" } ] } @@ -4896,27 +4957,27 @@ }, { "shortName": "GoogleAdsFieldService", - "fullName": "google.ads.googleads.v16.services.GoogleAdsFieldService", + "fullName": "google.ads.googleads.v17.services.GoogleAdsFieldService", "methods": [ { "shortName": "GetGoogleAdsField", - "fullName": "google.ads.googleads.v16.services.GoogleAdsFieldService.GetGoogleAdsField", + "fullName": "google.ads.googleads.v17.services.GoogleAdsFieldService.GetGoogleAdsField", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v16/{resource_name=googleAdsFields/*}" + "path": "/v17/{resource_name=googleAdsFields/*}" } ] }, { "shortName": "SearchGoogleAdsFields", - "fullName": "google.ads.googleads.v16.services.GoogleAdsFieldService.SearchGoogleAdsFields", + "fullName": "google.ads.googleads.v17.services.GoogleAdsFieldService.SearchGoogleAdsFields", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/googleAdsFields:search" + "path": "/v17/googleAdsFields:search" } ] } @@ -4924,38 +4985,38 @@ }, { "shortName": "GoogleAdsService", - "fullName": "google.ads.googleads.v16.services.GoogleAdsService", + "fullName": "google.ads.googleads.v17.services.GoogleAdsService", "methods": [ { "shortName": "Mutate", - "fullName": "google.ads.googleads.v16.services.GoogleAdsService.Mutate", + "fullName": "google.ads.googleads.v17.services.GoogleAdsService.Mutate", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/googleAds:mutate" + "path": "/v17/customers/{customer_id=*}/googleAds:mutate" } ] }, { "shortName": "Search", - "fullName": "google.ads.googleads.v16.services.GoogleAdsService.Search", + "fullName": "google.ads.googleads.v17.services.GoogleAdsService.Search", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/googleAds:search" + "path": "/v17/customers/{customer_id=*}/googleAds:search" } ] }, { "shortName": "SearchStream", - "fullName": "google.ads.googleads.v16.services.GoogleAdsService.SearchStream", + "fullName": "google.ads.googleads.v17.services.GoogleAdsService.SearchStream", "mode": "SERVER_STREAMING", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/googleAds:searchStream" + "path": "/v17/customers/{customer_id=*}/googleAds:searchStream" } ] } @@ -4963,27 +5024,27 @@ }, { "shortName": "IdentityVerificationService", - "fullName": "google.ads.googleads.v16.services.IdentityVerificationService", + "fullName": "google.ads.googleads.v17.services.IdentityVerificationService", "methods": [ { "shortName": "GetIdentityVerification", - "fullName": "google.ads.googleads.v16.services.IdentityVerificationService.GetIdentityVerification", + "fullName": "google.ads.googleads.v17.services.IdentityVerificationService.GetIdentityVerification", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v16/customers/{customer_id=*}/getIdentityVerification" + "path": "/v17/customers/{customer_id=*}/getIdentityVerification" } ] }, { "shortName": "StartIdentityVerification", - "fullName": "google.ads.googleads.v16.services.IdentityVerificationService.StartIdentityVerification", + "fullName": "google.ads.googleads.v17.services.IdentityVerificationService.StartIdentityVerification", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:startIdentityVerification" + "path": "/v17/customers/{customer_id=*}:startIdentityVerification" } ] } @@ -4991,16 +5052,16 @@ }, { "shortName": "InvoiceService", - "fullName": "google.ads.googleads.v16.services.InvoiceService", + "fullName": "google.ads.googleads.v17.services.InvoiceService", "methods": [ { "shortName": "ListInvoices", - "fullName": "google.ads.googleads.v16.services.InvoiceService.ListInvoices", + "fullName": "google.ads.googleads.v17.services.InvoiceService.ListInvoices", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v16/customers/{customer_id=*}/invoices" + "path": "/v17/customers/{customer_id=*}/invoices" } ] } @@ -5008,16 +5069,16 @@ }, { "shortName": "KeywordPlanAdGroupKeywordService", - "fullName": "google.ads.googleads.v16.services.KeywordPlanAdGroupKeywordService", + "fullName": "google.ads.googleads.v17.services.KeywordPlanAdGroupKeywordService", "methods": [ { "shortName": "MutateKeywordPlanAdGroupKeywords", - "fullName": "google.ads.googleads.v16.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords", + "fullName": "google.ads.googleads.v17.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" + "path": "/v17/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" } ] } @@ -5025,16 +5086,16 @@ }, { "shortName": "KeywordPlanAdGroupService", - "fullName": "google.ads.googleads.v16.services.KeywordPlanAdGroupService", + "fullName": "google.ads.googleads.v17.services.KeywordPlanAdGroupService", "methods": [ { "shortName": "MutateKeywordPlanAdGroups", - "fullName": "google.ads.googleads.v16.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups", + "fullName": "google.ads.googleads.v17.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/keywordPlanAdGroups:mutate" + "path": "/v17/customers/{customer_id=*}/keywordPlanAdGroups:mutate" } ] } @@ -5042,16 +5103,16 @@ }, { "shortName": "KeywordPlanCampaignKeywordService", - "fullName": "google.ads.googleads.v16.services.KeywordPlanCampaignKeywordService", + "fullName": "google.ads.googleads.v17.services.KeywordPlanCampaignKeywordService", "methods": [ { "shortName": "MutateKeywordPlanCampaignKeywords", - "fullName": "google.ads.googleads.v16.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords", + "fullName": "google.ads.googleads.v17.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" + "path": "/v17/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" } ] } @@ -5059,16 +5120,16 @@ }, { "shortName": "KeywordPlanCampaignService", - "fullName": "google.ads.googleads.v16.services.KeywordPlanCampaignService", + "fullName": "google.ads.googleads.v17.services.KeywordPlanCampaignService", "methods": [ { "shortName": "MutateKeywordPlanCampaigns", - "fullName": "google.ads.googleads.v16.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns", + "fullName": "google.ads.googleads.v17.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/keywordPlanCampaigns:mutate" + "path": "/v17/customers/{customer_id=*}/keywordPlanCampaigns:mutate" } ] } @@ -5076,49 +5137,49 @@ }, { "shortName": "KeywordPlanIdeaService", - "fullName": "google.ads.googleads.v16.services.KeywordPlanIdeaService", + "fullName": "google.ads.googleads.v17.services.KeywordPlanIdeaService", "methods": [ { "shortName": "GenerateAdGroupThemes", - "fullName": "google.ads.googleads.v16.services.KeywordPlanIdeaService.GenerateAdGroupThemes", + "fullName": "google.ads.googleads.v17.services.KeywordPlanIdeaService.GenerateAdGroupThemes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:generateAdGroupThemes" + "path": "/v17/customers/{customer_id=*}:generateAdGroupThemes" } ] }, { "shortName": "GenerateKeywordForecastMetrics", - "fullName": "google.ads.googleads.v16.services.KeywordPlanIdeaService.GenerateKeywordForecastMetrics", + "fullName": "google.ads.googleads.v17.services.KeywordPlanIdeaService.GenerateKeywordForecastMetrics", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:generateKeywordForecastMetrics" + "path": "/v17/customers/{customer_id=*}:generateKeywordForecastMetrics" } ] }, { "shortName": "GenerateKeywordHistoricalMetrics", - "fullName": "google.ads.googleads.v16.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics", + "fullName": "google.ads.googleads.v17.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:generateKeywordHistoricalMetrics" + "path": "/v17/customers/{customer_id=*}:generateKeywordHistoricalMetrics" } ] }, { "shortName": "GenerateKeywordIdeas", - "fullName": "google.ads.googleads.v16.services.KeywordPlanIdeaService.GenerateKeywordIdeas", + "fullName": "google.ads.googleads.v17.services.KeywordPlanIdeaService.GenerateKeywordIdeas", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:generateKeywordIdeas" + "path": "/v17/customers/{customer_id=*}:generateKeywordIdeas" } ] } @@ -5126,16 +5187,16 @@ }, { "shortName": "KeywordPlanService", - "fullName": "google.ads.googleads.v16.services.KeywordPlanService", + "fullName": "google.ads.googleads.v17.services.KeywordPlanService", "methods": [ { "shortName": "MutateKeywordPlans", - "fullName": "google.ads.googleads.v16.services.KeywordPlanService.MutateKeywordPlans", + "fullName": "google.ads.googleads.v17.services.KeywordPlanService.MutateKeywordPlans", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/keywordPlans:mutate" + "path": "/v17/customers/{customer_id=*}/keywordPlans:mutate" } ] } @@ -5143,16 +5204,16 @@ }, { "shortName": "KeywordThemeConstantService", - "fullName": "google.ads.googleads.v16.services.KeywordThemeConstantService", + "fullName": "google.ads.googleads.v17.services.KeywordThemeConstantService", "methods": [ { "shortName": "SuggestKeywordThemeConstants", - "fullName": "google.ads.googleads.v16.services.KeywordThemeConstantService.SuggestKeywordThemeConstants", + "fullName": "google.ads.googleads.v17.services.KeywordThemeConstantService.SuggestKeywordThemeConstants", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/keywordThemeConstants:suggest" + "path": "/v17/keywordThemeConstants:suggest" } ] } @@ -5160,16 +5221,33 @@ }, { "shortName": "LabelService", - "fullName": "google.ads.googleads.v16.services.LabelService", + "fullName": "google.ads.googleads.v17.services.LabelService", "methods": [ { "shortName": "MutateLabels", - "fullName": "google.ads.googleads.v16.services.LabelService.MutateLabels", + "fullName": "google.ads.googleads.v17.services.LabelService.MutateLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/labels:mutate" + "path": "/v17/customers/{customer_id=*}/labels:mutate" + } + ] + } + ] + }, + { + "shortName": "LocalServicesLeadService", + "fullName": "google.ads.googleads.v17.services.LocalServicesLeadService", + "methods": [ + { + "shortName": "AppendLeadConversation", + "fullName": "google.ads.googleads.v17.services.LocalServicesLeadService.AppendLeadConversation", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v17/customers/{customer_id=*}/localServices:appendLeadConversation" } ] } @@ -5177,38 +5255,38 @@ }, { "shortName": "OfflineUserDataJobService", - "fullName": "google.ads.googleads.v16.services.OfflineUserDataJobService", + "fullName": "google.ads.googleads.v17.services.OfflineUserDataJobService", "methods": [ { "shortName": "AddOfflineUserDataJobOperations", - "fullName": "google.ads.googleads.v16.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations", + "fullName": "google.ads.googleads.v17.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" + "path": "/v17/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" } ] }, { "shortName": "CreateOfflineUserDataJob", - "fullName": "google.ads.googleads.v16.services.OfflineUserDataJobService.CreateOfflineUserDataJob", + "fullName": "google.ads.googleads.v17.services.OfflineUserDataJobService.CreateOfflineUserDataJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/offlineUserDataJobs:create" + "path": "/v17/customers/{customer_id=*}/offlineUserDataJobs:create" } ] }, { "shortName": "RunOfflineUserDataJob", - "fullName": "google.ads.googleads.v16.services.OfflineUserDataJobService.RunOfflineUserDataJob", + "fullName": "google.ads.googleads.v17.services.OfflineUserDataJobService.RunOfflineUserDataJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/{resource_name=customers/*/offlineUserDataJobs/*}:run" + "path": "/v17/{resource_name=customers/*/offlineUserDataJobs/*}:run" } ] } @@ -5216,16 +5294,16 @@ }, { "shortName": "PaymentsAccountService", - "fullName": "google.ads.googleads.v16.services.PaymentsAccountService", + "fullName": "google.ads.googleads.v17.services.PaymentsAccountService", "methods": [ { "shortName": "ListPaymentsAccounts", - "fullName": "google.ads.googleads.v16.services.PaymentsAccountService.ListPaymentsAccounts", + "fullName": "google.ads.googleads.v17.services.PaymentsAccountService.ListPaymentsAccounts", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v16/customers/{customer_id=*}/paymentsAccounts" + "path": "/v17/customers/{customer_id=*}/paymentsAccounts" } ] } @@ -5233,38 +5311,38 @@ }, { "shortName": "ProductLinkInvitationService", - "fullName": "google.ads.googleads.v16.services.ProductLinkInvitationService", + "fullName": "google.ads.googleads.v17.services.ProductLinkInvitationService", "methods": [ { "shortName": "CreateProductLinkInvitation", - "fullName": "google.ads.googleads.v16.services.ProductLinkInvitationService.CreateProductLinkInvitation", + "fullName": "google.ads.googleads.v17.services.ProductLinkInvitationService.CreateProductLinkInvitation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/productLinkInvitations:create" + "path": "/v17/customers/{customer_id=*}/productLinkInvitations:create" } ] }, { "shortName": "RemoveProductLinkInvitation", - "fullName": "google.ads.googleads.v16.services.ProductLinkInvitationService.RemoveProductLinkInvitation", + "fullName": "google.ads.googleads.v17.services.ProductLinkInvitationService.RemoveProductLinkInvitation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/productLinkInvitations:remove" + "path": "/v17/customers/{customer_id=*}/productLinkInvitations:remove" } ] }, { "shortName": "UpdateProductLinkInvitation", - "fullName": "google.ads.googleads.v16.services.ProductLinkInvitationService.UpdateProductLinkInvitation", + "fullName": "google.ads.googleads.v17.services.ProductLinkInvitationService.UpdateProductLinkInvitation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/productLinkInvitations:update" + "path": "/v17/customers/{customer_id=*}/productLinkInvitations:update" } ] } @@ -5272,27 +5350,27 @@ }, { "shortName": "ProductLinkService", - "fullName": "google.ads.googleads.v16.services.ProductLinkService", + "fullName": "google.ads.googleads.v17.services.ProductLinkService", "methods": [ { "shortName": "CreateProductLink", - "fullName": "google.ads.googleads.v16.services.ProductLinkService.CreateProductLink", + "fullName": "google.ads.googleads.v17.services.ProductLinkService.CreateProductLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/productLinks:create" + "path": "/v17/customers/{customer_id=*}/productLinks:create" } ] }, { "shortName": "RemoveProductLink", - "fullName": "google.ads.googleads.v16.services.ProductLinkService.RemoveProductLink", + "fullName": "google.ads.googleads.v17.services.ProductLinkService.RemoveProductLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/productLinks:remove" + "path": "/v17/customers/{customer_id=*}/productLinks:remove" } ] } @@ -5300,38 +5378,38 @@ }, { "shortName": "ReachPlanService", - "fullName": "google.ads.googleads.v16.services.ReachPlanService", + "fullName": "google.ads.googleads.v17.services.ReachPlanService", "methods": [ { "shortName": "GenerateReachForecast", - "fullName": "google.ads.googleads.v16.services.ReachPlanService.GenerateReachForecast", + "fullName": "google.ads.googleads.v17.services.ReachPlanService.GenerateReachForecast", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:generateReachForecast" + "path": "/v17/customers/{customer_id=*}:generateReachForecast" } ] }, { "shortName": "ListPlannableLocations", - "fullName": "google.ads.googleads.v16.services.ReachPlanService.ListPlannableLocations", + "fullName": "google.ads.googleads.v17.services.ReachPlanService.ListPlannableLocations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16:listPlannableLocations" + "path": "/v17:listPlannableLocations" } ] }, { "shortName": "ListPlannableProducts", - "fullName": "google.ads.googleads.v16.services.ReachPlanService.ListPlannableProducts", + "fullName": "google.ads.googleads.v17.services.ReachPlanService.ListPlannableProducts", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16:listPlannableProducts" + "path": "/v17:listPlannableProducts" } ] } @@ -5339,38 +5417,38 @@ }, { "shortName": "RecommendationService", - "fullName": "google.ads.googleads.v16.services.RecommendationService", + "fullName": "google.ads.googleads.v17.services.RecommendationService", "methods": [ { "shortName": "ApplyRecommendation", - "fullName": "google.ads.googleads.v16.services.RecommendationService.ApplyRecommendation", + "fullName": "google.ads.googleads.v17.services.RecommendationService.ApplyRecommendation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/recommendations:apply" + "path": "/v17/customers/{customer_id=*}/recommendations:apply" } ] }, { "shortName": "DismissRecommendation", - "fullName": "google.ads.googleads.v16.services.RecommendationService.DismissRecommendation", + "fullName": "google.ads.googleads.v17.services.RecommendationService.DismissRecommendation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/recommendations:dismiss" + "path": "/v17/customers/{customer_id=*}/recommendations:dismiss" } ] }, { "shortName": "GenerateRecommendations", - "fullName": "google.ads.googleads.v16.services.RecommendationService.GenerateRecommendations", + "fullName": "google.ads.googleads.v17.services.RecommendationService.GenerateRecommendations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/recommendations:generate" + "path": "/v17/customers/{customer_id=*}/recommendations:generate" } ] } @@ -5378,16 +5456,16 @@ }, { "shortName": "RecommendationSubscriptionService", - "fullName": "google.ads.googleads.v16.services.RecommendationSubscriptionService", + "fullName": "google.ads.googleads.v17.services.RecommendationSubscriptionService", "methods": [ { "shortName": "MutateRecommendationSubscription", - "fullName": "google.ads.googleads.v16.services.RecommendationSubscriptionService.MutateRecommendationSubscription", + "fullName": "google.ads.googleads.v17.services.RecommendationSubscriptionService.MutateRecommendationSubscription", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/recommendationSubscriptions:mutateRecommendationSubscription" + "path": "/v17/customers/{customer_id=*}/recommendationSubscriptions:mutateRecommendationSubscription" } ] } @@ -5395,16 +5473,33 @@ }, { "shortName": "RemarketingActionService", - "fullName": "google.ads.googleads.v16.services.RemarketingActionService", + "fullName": "google.ads.googleads.v17.services.RemarketingActionService", "methods": [ { "shortName": "MutateRemarketingActions", - "fullName": "google.ads.googleads.v16.services.RemarketingActionService.MutateRemarketingActions", + "fullName": "google.ads.googleads.v17.services.RemarketingActionService.MutateRemarketingActions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/remarketingActions:mutate" + "path": "/v17/customers/{customer_id=*}/remarketingActions:mutate" + } + ] + } + ] + }, + { + "shortName": "ShareablePreviewService", + "fullName": "google.ads.googleads.v17.services.ShareablePreviewService", + "methods": [ + { + "shortName": "GenerateShareablePreviews", + "fullName": "google.ads.googleads.v17.services.ShareablePreviewService.GenerateShareablePreviews", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v17/customers/{customer_id=*}:generateShareablePreviews" } ] } @@ -5412,16 +5507,16 @@ }, { "shortName": "SharedCriterionService", - "fullName": "google.ads.googleads.v16.services.SharedCriterionService", + "fullName": "google.ads.googleads.v17.services.SharedCriterionService", "methods": [ { "shortName": "MutateSharedCriteria", - "fullName": "google.ads.googleads.v16.services.SharedCriterionService.MutateSharedCriteria", + "fullName": "google.ads.googleads.v17.services.SharedCriterionService.MutateSharedCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/sharedCriteria:mutate" + "path": "/v17/customers/{customer_id=*}/sharedCriteria:mutate" } ] } @@ -5429,16 +5524,16 @@ }, { "shortName": "SharedSetService", - "fullName": "google.ads.googleads.v16.services.SharedSetService", + "fullName": "google.ads.googleads.v17.services.SharedSetService", "methods": [ { "shortName": "MutateSharedSets", - "fullName": "google.ads.googleads.v16.services.SharedSetService.MutateSharedSets", + "fullName": "google.ads.googleads.v17.services.SharedSetService.MutateSharedSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/sharedSets:mutate" + "path": "/v17/customers/{customer_id=*}/sharedSets:mutate" } ] } @@ -5446,27 +5541,27 @@ }, { "shortName": "SmartCampaignSettingService", - "fullName": "google.ads.googleads.v16.services.SmartCampaignSettingService", + "fullName": "google.ads.googleads.v17.services.SmartCampaignSettingService", "methods": [ { "shortName": "GetSmartCampaignStatus", - "fullName": "google.ads.googleads.v16.services.SmartCampaignSettingService.GetSmartCampaignStatus", + "fullName": "google.ads.googleads.v17.services.SmartCampaignSettingService.GetSmartCampaignStatus", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v16/{resource_name=customers/*/smartCampaignSettings/*}:getSmartCampaignStatus" + "path": "/v17/{resource_name=customers/*/smartCampaignSettings/*}:getSmartCampaignStatus" } ] }, { "shortName": "MutateSmartCampaignSettings", - "fullName": "google.ads.googleads.v16.services.SmartCampaignSettingService.MutateSmartCampaignSettings", + "fullName": "google.ads.googleads.v17.services.SmartCampaignSettingService.MutateSmartCampaignSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/smartCampaignSettings:mutate" + "path": "/v17/customers/{customer_id=*}/smartCampaignSettings:mutate" } ] } @@ -5474,38 +5569,38 @@ }, { "shortName": "SmartCampaignSuggestService", - "fullName": "google.ads.googleads.v16.services.SmartCampaignSuggestService", + "fullName": "google.ads.googleads.v17.services.SmartCampaignSuggestService", "methods": [ { "shortName": "SuggestKeywordThemes", - "fullName": "google.ads.googleads.v16.services.SmartCampaignSuggestService.SuggestKeywordThemes", + "fullName": "google.ads.googleads.v17.services.SmartCampaignSuggestService.SuggestKeywordThemes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:suggestKeywordThemes" + "path": "/v17/customers/{customer_id=*}:suggestKeywordThemes" } ] }, { "shortName": "SuggestSmartCampaignAd", - "fullName": "google.ads.googleads.v16.services.SmartCampaignSuggestService.SuggestSmartCampaignAd", + "fullName": "google.ads.googleads.v17.services.SmartCampaignSuggestService.SuggestSmartCampaignAd", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:suggestSmartCampaignAd" + "path": "/v17/customers/{customer_id=*}:suggestSmartCampaignAd" } ] }, { "shortName": "SuggestSmartCampaignBudgetOptions", - "fullName": "google.ads.googleads.v16.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions", + "fullName": "google.ads.googleads.v17.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:suggestSmartCampaignBudgetOptions" + "path": "/v17/customers/{customer_id=*}:suggestSmartCampaignBudgetOptions" } ] } @@ -5513,16 +5608,16 @@ }, { "shortName": "ThirdPartyAppAnalyticsLinkService", - "fullName": "google.ads.googleads.v16.services.ThirdPartyAppAnalyticsLinkService", + "fullName": "google.ads.googleads.v17.services.ThirdPartyAppAnalyticsLinkService", "methods": [ { "shortName": "RegenerateShareableLinkId", - "fullName": "google.ads.googleads.v16.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId", + "fullName": "google.ads.googleads.v17.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" + "path": "/v17/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" } ] } @@ -5530,16 +5625,16 @@ }, { "shortName": "TravelAssetSuggestionService", - "fullName": "google.ads.googleads.v16.services.TravelAssetSuggestionService", + "fullName": "google.ads.googleads.v17.services.TravelAssetSuggestionService", "methods": [ { "shortName": "SuggestTravelAssets", - "fullName": "google.ads.googleads.v16.services.TravelAssetSuggestionService.SuggestTravelAssets", + "fullName": "google.ads.googleads.v17.services.TravelAssetSuggestionService.SuggestTravelAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:suggestTravelAssets" + "path": "/v17/customers/{customer_id=*}:suggestTravelAssets" } ] } @@ -5547,16 +5642,33 @@ }, { "shortName": "UserDataService", - "fullName": "google.ads.googleads.v16.services.UserDataService", + "fullName": "google.ads.googleads.v17.services.UserDataService", "methods": [ { "shortName": "UploadUserData", - "fullName": "google.ads.googleads.v16.services.UserDataService.UploadUserData", + "fullName": "google.ads.googleads.v17.services.UserDataService.UploadUserData", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}:uploadUserData" + "path": "/v17/customers/{customer_id=*}:uploadUserData" + } + ] + } + ] + }, + { + "shortName": "UserListCustomerTypeService", + "fullName": "google.ads.googleads.v17.services.UserListCustomerTypeService", + "methods": [ + { + "shortName": "MutateUserListCustomerTypes", + "fullName": "google.ads.googleads.v17.services.UserListCustomerTypeService.MutateUserListCustomerTypes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v17/customers/{customer_id=*}/userListCustomerTypes:mutate" } ] } @@ -5564,152 +5676,155 @@ }, { "shortName": "UserListService", - "fullName": "google.ads.googleads.v16.services.UserListService", + "fullName": "google.ads.googleads.v17.services.UserListService", "methods": [ { "shortName": "MutateUserLists", - "fullName": "google.ads.googleads.v16.services.UserListService.MutateUserLists", + "fullName": "google.ads.googleads.v17.services.UserListService.MutateUserLists", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v16/customers/{customer_id=*}/userLists:mutate" + "path": "/v17/customers/{customer_id=*}/userLists:mutate" } ] } ] } ], - "configFile": "googleads_v16.yaml", + "configFile": "googleads_v17.yaml", "serviceConfigApiNames": [ - "google.ads.googleads.v16.services.AccountBudgetProposalService", - "google.ads.googleads.v16.services.AccountLinkService", - "google.ads.googleads.v16.services.AdGroupAdLabelService", - "google.ads.googleads.v16.services.AdGroupAdService", - "google.ads.googleads.v16.services.AdGroupAssetService", - "google.ads.googleads.v16.services.AdGroupAssetSetService", - "google.ads.googleads.v16.services.AdGroupBidModifierService", - "google.ads.googleads.v16.services.AdGroupCriterionCustomizerService", - "google.ads.googleads.v16.services.AdGroupCriterionLabelService", - "google.ads.googleads.v16.services.AdGroupCriterionService", - "google.ads.googleads.v16.services.AdGroupCustomizerService", - "google.ads.googleads.v16.services.AdGroupExtensionSettingService", - "google.ads.googleads.v16.services.AdGroupFeedService", - "google.ads.googleads.v16.services.AdGroupLabelService", - "google.ads.googleads.v16.services.AdGroupService", - "google.ads.googleads.v16.services.AdParameterService", - "google.ads.googleads.v16.services.AdService", - "google.ads.googleads.v16.services.AssetGroupAssetService", - "google.ads.googleads.v16.services.AssetGroupListingGroupFilterService", - "google.ads.googleads.v16.services.AssetGroupService", - "google.ads.googleads.v16.services.AssetGroupSignalService", - "google.ads.googleads.v16.services.AssetService", - "google.ads.googleads.v16.services.AssetSetAssetService", - "google.ads.googleads.v16.services.AssetSetService", - "google.ads.googleads.v16.services.AudienceInsightsService", - "google.ads.googleads.v16.services.AudienceService", - "google.ads.googleads.v16.services.BatchJobService", - "google.ads.googleads.v16.services.BiddingDataExclusionService", - "google.ads.googleads.v16.services.BiddingSeasonalityAdjustmentService", - "google.ads.googleads.v16.services.BiddingStrategyService", - "google.ads.googleads.v16.services.BillingSetupService", - "google.ads.googleads.v16.services.BrandSuggestionService", - "google.ads.googleads.v16.services.CampaignAssetService", - "google.ads.googleads.v16.services.CampaignAssetSetService", - "google.ads.googleads.v16.services.CampaignBidModifierService", - "google.ads.googleads.v16.services.CampaignBudgetService", - "google.ads.googleads.v16.services.CampaignConversionGoalService", - "google.ads.googleads.v16.services.CampaignCriterionService", - "google.ads.googleads.v16.services.CampaignCustomizerService", - "google.ads.googleads.v16.services.CampaignDraftService", - "google.ads.googleads.v16.services.CampaignExtensionSettingService", - "google.ads.googleads.v16.services.CampaignFeedService", - "google.ads.googleads.v16.services.CampaignGroupService", - "google.ads.googleads.v16.services.CampaignLabelService", - "google.ads.googleads.v16.services.CampaignLifecycleGoalService", - "google.ads.googleads.v16.services.CampaignService", - "google.ads.googleads.v16.services.CampaignSharedSetService", - "google.ads.googleads.v16.services.ConversionActionService", - "google.ads.googleads.v16.services.ConversionAdjustmentUploadService", - "google.ads.googleads.v16.services.ConversionCustomVariableService", - "google.ads.googleads.v16.services.ConversionGoalCampaignConfigService", - "google.ads.googleads.v16.services.ConversionUploadService", - "google.ads.googleads.v16.services.ConversionValueRuleService", - "google.ads.googleads.v16.services.ConversionValueRuleSetService", - "google.ads.googleads.v16.services.CustomAudienceService", - "google.ads.googleads.v16.services.CustomConversionGoalService", - "google.ads.googleads.v16.services.CustomInterestService", - "google.ads.googleads.v16.services.CustomerAssetService", - "google.ads.googleads.v16.services.CustomerAssetSetService", - "google.ads.googleads.v16.services.CustomerClientLinkService", - "google.ads.googleads.v16.services.CustomerConversionGoalService", - "google.ads.googleads.v16.services.CustomerCustomizerService", - "google.ads.googleads.v16.services.CustomerExtensionSettingService", - "google.ads.googleads.v16.services.CustomerFeedService", - "google.ads.googleads.v16.services.CustomerLabelService", - "google.ads.googleads.v16.services.CustomerLifecycleGoalService", - "google.ads.googleads.v16.services.CustomerManagerLinkService", - "google.ads.googleads.v16.services.CustomerNegativeCriterionService", - "google.ads.googleads.v16.services.CustomerService", - "google.ads.googleads.v16.services.CustomerSkAdNetworkConversionValueSchemaService", - "google.ads.googleads.v16.services.CustomerUserAccessInvitationService", - "google.ads.googleads.v16.services.CustomerUserAccessService", - "google.ads.googleads.v16.services.CustomizerAttributeService", - "google.ads.googleads.v16.services.ExperimentArmService", - "google.ads.googleads.v16.services.ExperimentService", - "google.ads.googleads.v16.services.ExtensionFeedItemService", - "google.ads.googleads.v16.services.FeedItemService", - "google.ads.googleads.v16.services.FeedItemSetLinkService", - "google.ads.googleads.v16.services.FeedItemSetService", - "google.ads.googleads.v16.services.FeedItemTargetService", - "google.ads.googleads.v16.services.FeedMappingService", - "google.ads.googleads.v16.services.FeedService", - "google.ads.googleads.v16.services.GeoTargetConstantService", - "google.ads.googleads.v16.services.GoogleAdsFieldService", - "google.ads.googleads.v16.services.GoogleAdsService", - "google.ads.googleads.v16.services.IdentityVerificationService", - "google.ads.googleads.v16.services.InvoiceService", - "google.ads.googleads.v16.services.KeywordPlanAdGroupKeywordService", - "google.ads.googleads.v16.services.KeywordPlanAdGroupService", - "google.ads.googleads.v16.services.KeywordPlanCampaignKeywordService", - "google.ads.googleads.v16.services.KeywordPlanCampaignService", - "google.ads.googleads.v16.services.KeywordPlanIdeaService", - "google.ads.googleads.v16.services.KeywordPlanService", - "google.ads.googleads.v16.services.KeywordThemeConstantService", - "google.ads.googleads.v16.services.LabelService", - "google.ads.googleads.v16.services.OfflineUserDataJobService", - "google.ads.googleads.v16.services.PaymentsAccountService", - "google.ads.googleads.v16.services.ProductLinkInvitationService", - "google.ads.googleads.v16.services.ProductLinkService", - "google.ads.googleads.v16.services.ReachPlanService", - "google.ads.googleads.v16.services.RecommendationService", - "google.ads.googleads.v16.services.RecommendationSubscriptionService", - "google.ads.googleads.v16.services.RemarketingActionService", - "google.ads.googleads.v16.services.SharedCriterionService", - "google.ads.googleads.v16.services.SharedSetService", - "google.ads.googleads.v16.services.SmartCampaignSettingService", - "google.ads.googleads.v16.services.SmartCampaignSuggestService", - "google.ads.googleads.v16.services.ThirdPartyAppAnalyticsLinkService", - "google.ads.googleads.v16.services.TravelAssetSuggestionService", - "google.ads.googleads.v16.services.UserDataService", - "google.ads.googleads.v16.services.UserListService" + "google.ads.googleads.v17.services.AccountBudgetProposalService", + "google.ads.googleads.v17.services.AccountLinkService", + "google.ads.googleads.v17.services.AdGroupAdLabelService", + "google.ads.googleads.v17.services.AdGroupAdService", + "google.ads.googleads.v17.services.AdGroupAssetService", + "google.ads.googleads.v17.services.AdGroupAssetSetService", + "google.ads.googleads.v17.services.AdGroupBidModifierService", + "google.ads.googleads.v17.services.AdGroupCriterionCustomizerService", + "google.ads.googleads.v17.services.AdGroupCriterionLabelService", + "google.ads.googleads.v17.services.AdGroupCriterionService", + "google.ads.googleads.v17.services.AdGroupCustomizerService", + "google.ads.googleads.v17.services.AdGroupExtensionSettingService", + "google.ads.googleads.v17.services.AdGroupFeedService", + "google.ads.googleads.v17.services.AdGroupLabelService", + "google.ads.googleads.v17.services.AdGroupService", + "google.ads.googleads.v17.services.AdParameterService", + "google.ads.googleads.v17.services.AdService", + "google.ads.googleads.v17.services.AssetGroupAssetService", + "google.ads.googleads.v17.services.AssetGroupListingGroupFilterService", + "google.ads.googleads.v17.services.AssetGroupService", + "google.ads.googleads.v17.services.AssetGroupSignalService", + "google.ads.googleads.v17.services.AssetService", + "google.ads.googleads.v17.services.AssetSetAssetService", + "google.ads.googleads.v17.services.AssetSetService", + "google.ads.googleads.v17.services.AudienceInsightsService", + "google.ads.googleads.v17.services.AudienceService", + "google.ads.googleads.v17.services.BatchJobService", + "google.ads.googleads.v17.services.BiddingDataExclusionService", + "google.ads.googleads.v17.services.BiddingSeasonalityAdjustmentService", + "google.ads.googleads.v17.services.BiddingStrategyService", + "google.ads.googleads.v17.services.BillingSetupService", + "google.ads.googleads.v17.services.BrandSuggestionService", + "google.ads.googleads.v17.services.CampaignAssetService", + "google.ads.googleads.v17.services.CampaignAssetSetService", + "google.ads.googleads.v17.services.CampaignBidModifierService", + "google.ads.googleads.v17.services.CampaignBudgetService", + "google.ads.googleads.v17.services.CampaignConversionGoalService", + "google.ads.googleads.v17.services.CampaignCriterionService", + "google.ads.googleads.v17.services.CampaignCustomizerService", + "google.ads.googleads.v17.services.CampaignDraftService", + "google.ads.googleads.v17.services.CampaignExtensionSettingService", + "google.ads.googleads.v17.services.CampaignFeedService", + "google.ads.googleads.v17.services.CampaignGroupService", + "google.ads.googleads.v17.services.CampaignLabelService", + "google.ads.googleads.v17.services.CampaignLifecycleGoalService", + "google.ads.googleads.v17.services.CampaignService", + "google.ads.googleads.v17.services.CampaignSharedSetService", + "google.ads.googleads.v17.services.ConversionActionService", + "google.ads.googleads.v17.services.ConversionAdjustmentUploadService", + "google.ads.googleads.v17.services.ConversionCustomVariableService", + "google.ads.googleads.v17.services.ConversionGoalCampaignConfigService", + "google.ads.googleads.v17.services.ConversionUploadService", + "google.ads.googleads.v17.services.ConversionValueRuleService", + "google.ads.googleads.v17.services.ConversionValueRuleSetService", + "google.ads.googleads.v17.services.CustomAudienceService", + "google.ads.googleads.v17.services.CustomConversionGoalService", + "google.ads.googleads.v17.services.CustomInterestService", + "google.ads.googleads.v17.services.CustomerAssetService", + "google.ads.googleads.v17.services.CustomerAssetSetService", + "google.ads.googleads.v17.services.CustomerClientLinkService", + "google.ads.googleads.v17.services.CustomerConversionGoalService", + "google.ads.googleads.v17.services.CustomerCustomizerService", + "google.ads.googleads.v17.services.CustomerExtensionSettingService", + "google.ads.googleads.v17.services.CustomerFeedService", + "google.ads.googleads.v17.services.CustomerLabelService", + "google.ads.googleads.v17.services.CustomerLifecycleGoalService", + "google.ads.googleads.v17.services.CustomerManagerLinkService", + "google.ads.googleads.v17.services.CustomerNegativeCriterionService", + "google.ads.googleads.v17.services.CustomerService", + "google.ads.googleads.v17.services.CustomerSkAdNetworkConversionValueSchemaService", + "google.ads.googleads.v17.services.CustomerUserAccessInvitationService", + "google.ads.googleads.v17.services.CustomerUserAccessService", + "google.ads.googleads.v17.services.CustomizerAttributeService", + "google.ads.googleads.v17.services.ExperimentArmService", + "google.ads.googleads.v17.services.ExperimentService", + "google.ads.googleads.v17.services.ExtensionFeedItemService", + "google.ads.googleads.v17.services.FeedItemService", + "google.ads.googleads.v17.services.FeedItemSetLinkService", + "google.ads.googleads.v17.services.FeedItemSetService", + "google.ads.googleads.v17.services.FeedItemTargetService", + "google.ads.googleads.v17.services.FeedMappingService", + "google.ads.googleads.v17.services.FeedService", + "google.ads.googleads.v17.services.GeoTargetConstantService", + "google.ads.googleads.v17.services.GoogleAdsFieldService", + "google.ads.googleads.v17.services.GoogleAdsService", + "google.ads.googleads.v17.services.IdentityVerificationService", + "google.ads.googleads.v17.services.InvoiceService", + "google.ads.googleads.v17.services.KeywordPlanAdGroupKeywordService", + "google.ads.googleads.v17.services.KeywordPlanAdGroupService", + "google.ads.googleads.v17.services.KeywordPlanCampaignKeywordService", + "google.ads.googleads.v17.services.KeywordPlanCampaignService", + "google.ads.googleads.v17.services.KeywordPlanIdeaService", + "google.ads.googleads.v17.services.KeywordPlanService", + "google.ads.googleads.v17.services.KeywordThemeConstantService", + "google.ads.googleads.v17.services.LabelService", + "google.ads.googleads.v17.services.LocalServicesLeadService", + "google.ads.googleads.v17.services.OfflineUserDataJobService", + "google.ads.googleads.v17.services.PaymentsAccountService", + "google.ads.googleads.v17.services.ProductLinkInvitationService", + "google.ads.googleads.v17.services.ProductLinkService", + "google.ads.googleads.v17.services.ReachPlanService", + "google.ads.googleads.v17.services.RecommendationService", + "google.ads.googleads.v17.services.RecommendationSubscriptionService", + "google.ads.googleads.v17.services.RemarketingActionService", + "google.ads.googleads.v17.services.ShareablePreviewService", + "google.ads.googleads.v17.services.SharedCriterionService", + "google.ads.googleads.v17.services.SharedSetService", + "google.ads.googleads.v17.services.SmartCampaignSettingService", + "google.ads.googleads.v17.services.SmartCampaignSuggestService", + "google.ads.googleads.v17.services.ThirdPartyAppAnalyticsLinkService", + "google.ads.googleads.v17.services.TravelAssetSuggestionService", + "google.ads.googleads.v17.services.UserDataService", + "google.ads.googleads.v17.services.UserListCustomerTypeService", + "google.ads.googleads.v17.services.UserListService" ], "nameInServiceConfig": "googleads.googleapis.com" }, { - "id": "google.ads.googleads.v17", - "directory": "google/ads/googleads/v17", - "version": "v17", - "majorVersion": "v17", + "id": "google.ads.googleads.v18", + "directory": "google/ads/googleads/v18", + "version": "v18", + "majorVersion": "v18", "hostName": "googleads.googleapis.com", "title": "Google Ads API", "description": "Manage your Google Ads accounts, campaigns, and reports with this API.", "importDirectories": [ - "google/ads/googleads/v17/common", - "google/ads/googleads/v17/enums", - "google/ads/googleads/v17/errors", - "google/ads/googleads/v17/resources", - "google/ads/googleads/v17/services", + "google/ads/googleads/v18/common", + "google/ads/googleads/v18/enums", + "google/ads/googleads/v18/errors", + "google/ads/googleads/v18/resources", + "google/ads/googleads/v18/services", "google/api", "google/longrunning", "google/protobuf", @@ -5718,73 +5833,73 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Ads.GoogleAds.V17.Common": 38, - "Google.Ads.GoogleAds.V17.Enums": 357, - "Google.Ads.GoogleAds.V17.Errors": 155, - "Google.Ads.GoogleAds.V17.Resources": 181, - "Google.Ads.GoogleAds.V17.Services": 113 + "Google.Ads.GoogleAds.V18.Common": 39, + "Google.Ads.GoogleAds.V18.Enums": 363, + "Google.Ads.GoogleAds.V18.Errors": 157, + "Google.Ads.GoogleAds.V18.Resources": 185, + "Google.Ads.GoogleAds.V18.Services": 116 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common": 38, - "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums": 357, - "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors": 155, - "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources": 181, - "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services": 113 + "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common": 39, + "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums": 363, + "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors": 157, + "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources": 185, + "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services": 116 } }, "java_multiple_files": { "valueCounts": { - "true": 844 + "true": 860 } }, "java_package": { "valueCounts": { - "com.google.ads.googleads.v17.common": 38, - "com.google.ads.googleads.v17.enums": 357, - "com.google.ads.googleads.v17.errors": 155, - "com.google.ads.googleads.v17.resources": 181, - "com.google.ads.googleads.v17.services": 113 + "com.google.ads.googleads.v18.common": 39, + "com.google.ads.googleads.v18.enums": 363, + "com.google.ads.googleads.v18.errors": 157, + "com.google.ads.googleads.v18.resources": 185, + "com.google.ads.googleads.v18.services": 116 } }, "objc_class_prefix": { "valueCounts": { - "GAA": 844 + "GAA": 860 } }, "php_namespace": { "valueCounts": { - "Google\\Ads\\GoogleAds\\V17\\Common": 38, - "Google\\Ads\\GoogleAds\\V17\\Enums": 357, - "Google\\Ads\\GoogleAds\\V17\\Errors": 155, - "Google\\Ads\\GoogleAds\\V17\\Resources": 181, - "Google\\Ads\\GoogleAds\\V17\\Services": 113 + "Google\\Ads\\GoogleAds\\V18\\Common": 39, + "Google\\Ads\\GoogleAds\\V18\\Enums": 363, + "Google\\Ads\\GoogleAds\\V18\\Errors": 157, + "Google\\Ads\\GoogleAds\\V18\\Resources": 185, + "Google\\Ads\\GoogleAds\\V18\\Services": 116 } }, "ruby_package": { "valueCounts": { - "Google::Ads::GoogleAds::V17::Common": 38, - "Google::Ads::GoogleAds::V17::Enums": 357, - "Google::Ads::GoogleAds::V17::Errors": 155, - "Google::Ads::GoogleAds::V17::Resources": 181, - "Google::Ads::GoogleAds::V17::Services": 113 + "Google::Ads::GoogleAds::V18::Common": 39, + "Google::Ads::GoogleAds::V18::Enums": 363, + "Google::Ads::GoogleAds::V18::Errors": 157, + "Google::Ads::GoogleAds::V18::Resources": 185, + "Google::Ads::GoogleAds::V18::Services": 116 } } }, "services": [ { "shortName": "AccountBudgetProposalService", - "fullName": "google.ads.googleads.v17.services.AccountBudgetProposalService", + "fullName": "google.ads.googleads.v18.services.AccountBudgetProposalService", "methods": [ { "shortName": "MutateAccountBudgetProposal", - "fullName": "google.ads.googleads.v17.services.AccountBudgetProposalService.MutateAccountBudgetProposal", + "fullName": "google.ads.googleads.v18.services.AccountBudgetProposalService.MutateAccountBudgetProposal", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/accountBudgetProposals:mutate" + "path": "/v18/customers/{customer_id=*}/accountBudgetProposals:mutate" } ] } @@ -5792,27 +5907,27 @@ }, { "shortName": "AccountLinkService", - "fullName": "google.ads.googleads.v17.services.AccountLinkService", + "fullName": "google.ads.googleads.v18.services.AccountLinkService", "methods": [ { "shortName": "CreateAccountLink", - "fullName": "google.ads.googleads.v17.services.AccountLinkService.CreateAccountLink", + "fullName": "google.ads.googleads.v18.services.AccountLinkService.CreateAccountLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/accountLinks:create" + "path": "/v18/customers/{customer_id=*}/accountLinks:create" } ] }, { "shortName": "MutateAccountLink", - "fullName": "google.ads.googleads.v17.services.AccountLinkService.MutateAccountLink", + "fullName": "google.ads.googleads.v18.services.AccountLinkService.MutateAccountLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/accountLinks:mutate" + "path": "/v18/customers/{customer_id=*}/accountLinks:mutate" } ] } @@ -5820,16 +5935,16 @@ }, { "shortName": "AdGroupAdLabelService", - "fullName": "google.ads.googleads.v17.services.AdGroupAdLabelService", + "fullName": "google.ads.googleads.v18.services.AdGroupAdLabelService", "methods": [ { "shortName": "MutateAdGroupAdLabels", - "fullName": "google.ads.googleads.v17.services.AdGroupAdLabelService.MutateAdGroupAdLabels", + "fullName": "google.ads.googleads.v18.services.AdGroupAdLabelService.MutateAdGroupAdLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/adGroupAdLabels:mutate" + "path": "/v18/customers/{customer_id=*}/adGroupAdLabels:mutate" } ] } @@ -5837,16 +5952,27 @@ }, { "shortName": "AdGroupAdService", - "fullName": "google.ads.googleads.v17.services.AdGroupAdService", + "fullName": "google.ads.googleads.v18.services.AdGroupAdService", "methods": [ { "shortName": "MutateAdGroupAds", - "fullName": "google.ads.googleads.v17.services.AdGroupAdService.MutateAdGroupAds", + "fullName": "google.ads.googleads.v18.services.AdGroupAdService.MutateAdGroupAds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/adGroupAds:mutate" + "path": "/v18/customers/{customer_id=*}/adGroupAds:mutate" + } + ] + }, + { + "shortName": "RemoveAutomaticallyCreatedAssets", + "fullName": "google.ads.googleads.v18.services.AdGroupAdService.RemoveAutomaticallyCreatedAssets", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v18/{ad_group_ad=customers/*/adGroupAds/*}:removeAutomaticallyCreatedAssets" } ] } @@ -5854,16 +5980,16 @@ }, { "shortName": "AdGroupAssetService", - "fullName": "google.ads.googleads.v17.services.AdGroupAssetService", + "fullName": "google.ads.googleads.v18.services.AdGroupAssetService", "methods": [ { "shortName": "MutateAdGroupAssets", - "fullName": "google.ads.googleads.v17.services.AdGroupAssetService.MutateAdGroupAssets", + "fullName": "google.ads.googleads.v18.services.AdGroupAssetService.MutateAdGroupAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/adGroupAssets:mutate" + "path": "/v18/customers/{customer_id=*}/adGroupAssets:mutate" } ] } @@ -5871,16 +5997,16 @@ }, { "shortName": "AdGroupAssetSetService", - "fullName": "google.ads.googleads.v17.services.AdGroupAssetSetService", + "fullName": "google.ads.googleads.v18.services.AdGroupAssetSetService", "methods": [ { "shortName": "MutateAdGroupAssetSets", - "fullName": "google.ads.googleads.v17.services.AdGroupAssetSetService.MutateAdGroupAssetSets", + "fullName": "google.ads.googleads.v18.services.AdGroupAssetSetService.MutateAdGroupAssetSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/adGroupAssetSets:mutate" + "path": "/v18/customers/{customer_id=*}/adGroupAssetSets:mutate" } ] } @@ -5888,16 +6014,16 @@ }, { "shortName": "AdGroupBidModifierService", - "fullName": "google.ads.googleads.v17.services.AdGroupBidModifierService", + "fullName": "google.ads.googleads.v18.services.AdGroupBidModifierService", "methods": [ { "shortName": "MutateAdGroupBidModifiers", - "fullName": "google.ads.googleads.v17.services.AdGroupBidModifierService.MutateAdGroupBidModifiers", + "fullName": "google.ads.googleads.v18.services.AdGroupBidModifierService.MutateAdGroupBidModifiers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/adGroupBidModifiers:mutate" + "path": "/v18/customers/{customer_id=*}/adGroupBidModifiers:mutate" } ] } @@ -5905,16 +6031,16 @@ }, { "shortName": "AdGroupCriterionCustomizerService", - "fullName": "google.ads.googleads.v17.services.AdGroupCriterionCustomizerService", + "fullName": "google.ads.googleads.v18.services.AdGroupCriterionCustomizerService", "methods": [ { "shortName": "MutateAdGroupCriterionCustomizers", - "fullName": "google.ads.googleads.v17.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers", + "fullName": "google.ads.googleads.v18.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/AdGroupCriterionCustomizers:mutate" + "path": "/v18/customers/{customer_id=*}/AdGroupCriterionCustomizers:mutate" } ] } @@ -5922,16 +6048,16 @@ }, { "shortName": "AdGroupCriterionLabelService", - "fullName": "google.ads.googleads.v17.services.AdGroupCriterionLabelService", + "fullName": "google.ads.googleads.v18.services.AdGroupCriterionLabelService", "methods": [ { "shortName": "MutateAdGroupCriterionLabels", - "fullName": "google.ads.googleads.v17.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels", + "fullName": "google.ads.googleads.v18.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/adGroupCriterionLabels:mutate" + "path": "/v18/customers/{customer_id=*}/adGroupCriterionLabels:mutate" } ] } @@ -5939,16 +6065,16 @@ }, { "shortName": "AdGroupCriterionService", - "fullName": "google.ads.googleads.v17.services.AdGroupCriterionService", + "fullName": "google.ads.googleads.v18.services.AdGroupCriterionService", "methods": [ { "shortName": "MutateAdGroupCriteria", - "fullName": "google.ads.googleads.v17.services.AdGroupCriterionService.MutateAdGroupCriteria", + "fullName": "google.ads.googleads.v18.services.AdGroupCriterionService.MutateAdGroupCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/adGroupCriteria:mutate" + "path": "/v18/customers/{customer_id=*}/adGroupCriteria:mutate" } ] } @@ -5956,16 +6082,16 @@ }, { "shortName": "AdGroupCustomizerService", - "fullName": "google.ads.googleads.v17.services.AdGroupCustomizerService", + "fullName": "google.ads.googleads.v18.services.AdGroupCustomizerService", "methods": [ { "shortName": "MutateAdGroupCustomizers", - "fullName": "google.ads.googleads.v17.services.AdGroupCustomizerService.MutateAdGroupCustomizers", + "fullName": "google.ads.googleads.v18.services.AdGroupCustomizerService.MutateAdGroupCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/adGroupCustomizers:mutate" + "path": "/v18/customers/{customer_id=*}/adGroupCustomizers:mutate" } ] } @@ -5973,16 +6099,16 @@ }, { "shortName": "AdGroupExtensionSettingService", - "fullName": "google.ads.googleads.v17.services.AdGroupExtensionSettingService", + "fullName": "google.ads.googleads.v18.services.AdGroupExtensionSettingService", "methods": [ { "shortName": "MutateAdGroupExtensionSettings", - "fullName": "google.ads.googleads.v17.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings", + "fullName": "google.ads.googleads.v18.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/adGroupExtensionSettings:mutate" + "path": "/v18/customers/{customer_id=*}/adGroupExtensionSettings:mutate" } ] } @@ -5990,16 +6116,16 @@ }, { "shortName": "AdGroupFeedService", - "fullName": "google.ads.googleads.v17.services.AdGroupFeedService", + "fullName": "google.ads.googleads.v18.services.AdGroupFeedService", "methods": [ { "shortName": "MutateAdGroupFeeds", - "fullName": "google.ads.googleads.v17.services.AdGroupFeedService.MutateAdGroupFeeds", + "fullName": "google.ads.googleads.v18.services.AdGroupFeedService.MutateAdGroupFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/adGroupFeeds:mutate" + "path": "/v18/customers/{customer_id=*}/adGroupFeeds:mutate" } ] } @@ -6007,16 +6133,16 @@ }, { "shortName": "AdGroupLabelService", - "fullName": "google.ads.googleads.v17.services.AdGroupLabelService", + "fullName": "google.ads.googleads.v18.services.AdGroupLabelService", "methods": [ { "shortName": "MutateAdGroupLabels", - "fullName": "google.ads.googleads.v17.services.AdGroupLabelService.MutateAdGroupLabels", + "fullName": "google.ads.googleads.v18.services.AdGroupLabelService.MutateAdGroupLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/adGroupLabels:mutate" + "path": "/v18/customers/{customer_id=*}/adGroupLabels:mutate" } ] } @@ -6024,16 +6150,16 @@ }, { "shortName": "AdGroupService", - "fullName": "google.ads.googleads.v17.services.AdGroupService", + "fullName": "google.ads.googleads.v18.services.AdGroupService", "methods": [ { "shortName": "MutateAdGroups", - "fullName": "google.ads.googleads.v17.services.AdGroupService.MutateAdGroups", + "fullName": "google.ads.googleads.v18.services.AdGroupService.MutateAdGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/adGroups:mutate" + "path": "/v18/customers/{customer_id=*}/adGroups:mutate" } ] } @@ -6041,16 +6167,16 @@ }, { "shortName": "AdParameterService", - "fullName": "google.ads.googleads.v17.services.AdParameterService", + "fullName": "google.ads.googleads.v18.services.AdParameterService", "methods": [ { "shortName": "MutateAdParameters", - "fullName": "google.ads.googleads.v17.services.AdParameterService.MutateAdParameters", + "fullName": "google.ads.googleads.v18.services.AdParameterService.MutateAdParameters", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/adParameters:mutate" + "path": "/v18/customers/{customer_id=*}/adParameters:mutate" } ] } @@ -6058,16 +6184,16 @@ }, { "shortName": "AdService", - "fullName": "google.ads.googleads.v17.services.AdService", + "fullName": "google.ads.googleads.v18.services.AdService", "methods": [ { "shortName": "MutateAds", - "fullName": "google.ads.googleads.v17.services.AdService.MutateAds", + "fullName": "google.ads.googleads.v18.services.AdService.MutateAds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/ads:mutate" + "path": "/v18/customers/{customer_id=*}/ads:mutate" } ] } @@ -6075,16 +6201,16 @@ }, { "shortName": "AssetGroupAssetService", - "fullName": "google.ads.googleads.v17.services.AssetGroupAssetService", + "fullName": "google.ads.googleads.v18.services.AssetGroupAssetService", "methods": [ { "shortName": "MutateAssetGroupAssets", - "fullName": "google.ads.googleads.v17.services.AssetGroupAssetService.MutateAssetGroupAssets", + "fullName": "google.ads.googleads.v18.services.AssetGroupAssetService.MutateAssetGroupAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/assetGroupAssets:mutate" + "path": "/v18/customers/{customer_id=*}/assetGroupAssets:mutate" } ] } @@ -6092,16 +6218,16 @@ }, { "shortName": "AssetGroupListingGroupFilterService", - "fullName": "google.ads.googleads.v17.services.AssetGroupListingGroupFilterService", + "fullName": "google.ads.googleads.v18.services.AssetGroupListingGroupFilterService", "methods": [ { "shortName": "MutateAssetGroupListingGroupFilters", - "fullName": "google.ads.googleads.v17.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters", + "fullName": "google.ads.googleads.v18.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/assetGroupListingGroupFilters:mutate" + "path": "/v18/customers/{customer_id=*}/assetGroupListingGroupFilters:mutate" } ] } @@ -6109,16 +6235,16 @@ }, { "shortName": "AssetGroupService", - "fullName": "google.ads.googleads.v17.services.AssetGroupService", + "fullName": "google.ads.googleads.v18.services.AssetGroupService", "methods": [ { "shortName": "MutateAssetGroups", - "fullName": "google.ads.googleads.v17.services.AssetGroupService.MutateAssetGroups", + "fullName": "google.ads.googleads.v18.services.AssetGroupService.MutateAssetGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/assetGroups:mutate" + "path": "/v18/customers/{customer_id=*}/assetGroups:mutate" } ] } @@ -6126,16 +6252,16 @@ }, { "shortName": "AssetGroupSignalService", - "fullName": "google.ads.googleads.v17.services.AssetGroupSignalService", + "fullName": "google.ads.googleads.v18.services.AssetGroupSignalService", "methods": [ { "shortName": "MutateAssetGroupSignals", - "fullName": "google.ads.googleads.v17.services.AssetGroupSignalService.MutateAssetGroupSignals", + "fullName": "google.ads.googleads.v18.services.AssetGroupSignalService.MutateAssetGroupSignals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/assetGroupSignals:mutate" + "path": "/v18/customers/{customer_id=*}/assetGroupSignals:mutate" } ] } @@ -6143,16 +6269,16 @@ }, { "shortName": "AssetService", - "fullName": "google.ads.googleads.v17.services.AssetService", + "fullName": "google.ads.googleads.v18.services.AssetService", "methods": [ { "shortName": "MutateAssets", - "fullName": "google.ads.googleads.v17.services.AssetService.MutateAssets", + "fullName": "google.ads.googleads.v18.services.AssetService.MutateAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/assets:mutate" + "path": "/v18/customers/{customer_id=*}/assets:mutate" } ] } @@ -6160,16 +6286,16 @@ }, { "shortName": "AssetSetAssetService", - "fullName": "google.ads.googleads.v17.services.AssetSetAssetService", + "fullName": "google.ads.googleads.v18.services.AssetSetAssetService", "methods": [ { "shortName": "MutateAssetSetAssets", - "fullName": "google.ads.googleads.v17.services.AssetSetAssetService.MutateAssetSetAssets", + "fullName": "google.ads.googleads.v18.services.AssetSetAssetService.MutateAssetSetAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/assetSetAssets:mutate" + "path": "/v18/customers/{customer_id=*}/assetSetAssets:mutate" } ] } @@ -6177,16 +6303,16 @@ }, { "shortName": "AssetSetService", - "fullName": "google.ads.googleads.v17.services.AssetSetService", + "fullName": "google.ads.googleads.v18.services.AssetSetService", "methods": [ { "shortName": "MutateAssetSets", - "fullName": "google.ads.googleads.v17.services.AssetSetService.MutateAssetSets", + "fullName": "google.ads.googleads.v18.services.AssetSetService.MutateAssetSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/assetSets:mutate" + "path": "/v18/customers/{customer_id=*}/assetSets:mutate" } ] } @@ -6194,60 +6320,82 @@ }, { "shortName": "AudienceInsightsService", - "fullName": "google.ads.googleads.v17.services.AudienceInsightsService", + "fullName": "google.ads.googleads.v18.services.AudienceInsightsService", "methods": [ { "shortName": "GenerateAudienceCompositionInsights", - "fullName": "google.ads.googleads.v17.services.AudienceInsightsService.GenerateAudienceCompositionInsights", + "fullName": "google.ads.googleads.v18.services.AudienceInsightsService.GenerateAudienceCompositionInsights", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}:generateAudienceCompositionInsights" + "path": "/v18/customers/{customer_id=*}:generateAudienceCompositionInsights" + } + ] + }, + { + "shortName": "GenerateAudienceOverlapInsights", + "fullName": "google.ads.googleads.v18.services.AudienceInsightsService.GenerateAudienceOverlapInsights", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v18/customers/{customer_id=*}:generateAudienceOverlapInsights" } ] }, { "shortName": "GenerateInsightsFinderReport", - "fullName": "google.ads.googleads.v17.services.AudienceInsightsService.GenerateInsightsFinderReport", + "fullName": "google.ads.googleads.v18.services.AudienceInsightsService.GenerateInsightsFinderReport", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}:generateInsightsFinderReport" + "path": "/v18/customers/{customer_id=*}:generateInsightsFinderReport" } ] }, { "shortName": "GenerateSuggestedTargetingInsights", - "fullName": "google.ads.googleads.v17.services.AudienceInsightsService.GenerateSuggestedTargetingInsights", + "fullName": "google.ads.googleads.v18.services.AudienceInsightsService.GenerateSuggestedTargetingInsights", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}:generateSuggestedTargetingInsights" + "path": "/v18/customers/{customer_id=*}:generateSuggestedTargetingInsights" + } + ] + }, + { + "shortName": "GenerateTargetingSuggestionMetrics", + "fullName": "google.ads.googleads.v18.services.AudienceInsightsService.GenerateTargetingSuggestionMetrics", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v18/customers/{customer_id=*}:generateTargetingSuggestionMetrics" } ] }, { "shortName": "ListAudienceInsightsAttributes", - "fullName": "google.ads.googleads.v17.services.AudienceInsightsService.ListAudienceInsightsAttributes", + "fullName": "google.ads.googleads.v18.services.AudienceInsightsService.ListAudienceInsightsAttributes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}:searchAudienceInsightsAttributes" + "path": "/v18/customers/{customer_id=*}:searchAudienceInsightsAttributes" } ] }, { "shortName": "ListInsightsEligibleDates", - "fullName": "google.ads.googleads.v17.services.AudienceInsightsService.ListInsightsEligibleDates", + "fullName": "google.ads.googleads.v18.services.AudienceInsightsService.ListInsightsEligibleDates", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/audienceInsights:listInsightsEligibleDates" + "path": "/v18/audienceInsights:listInsightsEligibleDates" } ] } @@ -6255,16 +6403,16 @@ }, { "shortName": "AudienceService", - "fullName": "google.ads.googleads.v17.services.AudienceService", + "fullName": "google.ads.googleads.v18.services.AudienceService", "methods": [ { "shortName": "MutateAudiences", - "fullName": "google.ads.googleads.v17.services.AudienceService.MutateAudiences", + "fullName": "google.ads.googleads.v18.services.AudienceService.MutateAudiences", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/audiences:mutate" + "path": "/v18/customers/{customer_id=*}/audiences:mutate" } ] } @@ -6272,49 +6420,49 @@ }, { "shortName": "BatchJobService", - "fullName": "google.ads.googleads.v17.services.BatchJobService", + "fullName": "google.ads.googleads.v18.services.BatchJobService", "methods": [ { "shortName": "AddBatchJobOperations", - "fullName": "google.ads.googleads.v17.services.BatchJobService.AddBatchJobOperations", + "fullName": "google.ads.googleads.v18.services.BatchJobService.AddBatchJobOperations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/{resource_name=customers/*/batchJobs/*}:addOperations" + "path": "/v18/{resource_name=customers/*/batchJobs/*}:addOperations" } ] }, { "shortName": "ListBatchJobResults", - "fullName": "google.ads.googleads.v17.services.BatchJobService.ListBatchJobResults", + "fullName": "google.ads.googleads.v18.services.BatchJobService.ListBatchJobResults", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v17/{resource_name=customers/*/batchJobs/*}:listResults" + "path": "/v18/{resource_name=customers/*/batchJobs/*}:listResults" } ] }, { "shortName": "MutateBatchJob", - "fullName": "google.ads.googleads.v17.services.BatchJobService.MutateBatchJob", + "fullName": "google.ads.googleads.v18.services.BatchJobService.MutateBatchJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/batchJobs:mutate" + "path": "/v18/customers/{customer_id=*}/batchJobs:mutate" } ] }, { "shortName": "RunBatchJob", - "fullName": "google.ads.googleads.v17.services.BatchJobService.RunBatchJob", + "fullName": "google.ads.googleads.v18.services.BatchJobService.RunBatchJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/{resource_name=customers/*/batchJobs/*}:run" + "path": "/v18/{resource_name=customers/*/batchJobs/*}:run" } ] } @@ -6322,16 +6470,16 @@ }, { "shortName": "BiddingDataExclusionService", - "fullName": "google.ads.googleads.v17.services.BiddingDataExclusionService", + "fullName": "google.ads.googleads.v18.services.BiddingDataExclusionService", "methods": [ { "shortName": "MutateBiddingDataExclusions", - "fullName": "google.ads.googleads.v17.services.BiddingDataExclusionService.MutateBiddingDataExclusions", + "fullName": "google.ads.googleads.v18.services.BiddingDataExclusionService.MutateBiddingDataExclusions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/biddingDataExclusions:mutate" + "path": "/v18/customers/{customer_id=*}/biddingDataExclusions:mutate" } ] } @@ -6339,16 +6487,16 @@ }, { "shortName": "BiddingSeasonalityAdjustmentService", - "fullName": "google.ads.googleads.v17.services.BiddingSeasonalityAdjustmentService", + "fullName": "google.ads.googleads.v18.services.BiddingSeasonalityAdjustmentService", "methods": [ { "shortName": "MutateBiddingSeasonalityAdjustments", - "fullName": "google.ads.googleads.v17.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments", + "fullName": "google.ads.googleads.v18.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/biddingSeasonalityAdjustments:mutate" + "path": "/v18/customers/{customer_id=*}/biddingSeasonalityAdjustments:mutate" } ] } @@ -6356,16 +6504,16 @@ }, { "shortName": "BiddingStrategyService", - "fullName": "google.ads.googleads.v17.services.BiddingStrategyService", + "fullName": "google.ads.googleads.v18.services.BiddingStrategyService", "methods": [ { "shortName": "MutateBiddingStrategies", - "fullName": "google.ads.googleads.v17.services.BiddingStrategyService.MutateBiddingStrategies", + "fullName": "google.ads.googleads.v18.services.BiddingStrategyService.MutateBiddingStrategies", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/biddingStrategies:mutate" + "path": "/v18/customers/{customer_id=*}/biddingStrategies:mutate" } ] } @@ -6373,16 +6521,16 @@ }, { "shortName": "BillingSetupService", - "fullName": "google.ads.googleads.v17.services.BillingSetupService", + "fullName": "google.ads.googleads.v18.services.BillingSetupService", "methods": [ { "shortName": "MutateBillingSetup", - "fullName": "google.ads.googleads.v17.services.BillingSetupService.MutateBillingSetup", + "fullName": "google.ads.googleads.v18.services.BillingSetupService.MutateBillingSetup", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/billingSetups:mutate" + "path": "/v18/customers/{customer_id=*}/billingSetups:mutate" } ] } @@ -6390,16 +6538,16 @@ }, { "shortName": "BrandSuggestionService", - "fullName": "google.ads.googleads.v17.services.BrandSuggestionService", + "fullName": "google.ads.googleads.v18.services.BrandSuggestionService", "methods": [ { "shortName": "SuggestBrands", - "fullName": "google.ads.googleads.v17.services.BrandSuggestionService.SuggestBrands", + "fullName": "google.ads.googleads.v18.services.BrandSuggestionService.SuggestBrands", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}:suggestBrands" + "path": "/v18/customers/{customer_id=*}:suggestBrands" } ] } @@ -6407,16 +6555,16 @@ }, { "shortName": "CampaignAssetService", - "fullName": "google.ads.googleads.v17.services.CampaignAssetService", + "fullName": "google.ads.googleads.v18.services.CampaignAssetService", "methods": [ { "shortName": "MutateCampaignAssets", - "fullName": "google.ads.googleads.v17.services.CampaignAssetService.MutateCampaignAssets", + "fullName": "google.ads.googleads.v18.services.CampaignAssetService.MutateCampaignAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/campaignAssets:mutate" + "path": "/v18/customers/{customer_id=*}/campaignAssets:mutate" } ] } @@ -6424,16 +6572,16 @@ }, { "shortName": "CampaignAssetSetService", - "fullName": "google.ads.googleads.v17.services.CampaignAssetSetService", + "fullName": "google.ads.googleads.v18.services.CampaignAssetSetService", "methods": [ { "shortName": "MutateCampaignAssetSets", - "fullName": "google.ads.googleads.v17.services.CampaignAssetSetService.MutateCampaignAssetSets", + "fullName": "google.ads.googleads.v18.services.CampaignAssetSetService.MutateCampaignAssetSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/campaignAssetSets:mutate" + "path": "/v18/customers/{customer_id=*}/campaignAssetSets:mutate" } ] } @@ -6441,16 +6589,16 @@ }, { "shortName": "CampaignBidModifierService", - "fullName": "google.ads.googleads.v17.services.CampaignBidModifierService", + "fullName": "google.ads.googleads.v18.services.CampaignBidModifierService", "methods": [ { "shortName": "MutateCampaignBidModifiers", - "fullName": "google.ads.googleads.v17.services.CampaignBidModifierService.MutateCampaignBidModifiers", + "fullName": "google.ads.googleads.v18.services.CampaignBidModifierService.MutateCampaignBidModifiers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/campaignBidModifiers:mutate" + "path": "/v18/customers/{customer_id=*}/campaignBidModifiers:mutate" } ] } @@ -6458,16 +6606,16 @@ }, { "shortName": "CampaignBudgetService", - "fullName": "google.ads.googleads.v17.services.CampaignBudgetService", + "fullName": "google.ads.googleads.v18.services.CampaignBudgetService", "methods": [ { "shortName": "MutateCampaignBudgets", - "fullName": "google.ads.googleads.v17.services.CampaignBudgetService.MutateCampaignBudgets", + "fullName": "google.ads.googleads.v18.services.CampaignBudgetService.MutateCampaignBudgets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/campaignBudgets:mutate" + "path": "/v18/customers/{customer_id=*}/campaignBudgets:mutate" } ] } @@ -6475,16 +6623,16 @@ }, { "shortName": "CampaignConversionGoalService", - "fullName": "google.ads.googleads.v17.services.CampaignConversionGoalService", + "fullName": "google.ads.googleads.v18.services.CampaignConversionGoalService", "methods": [ { "shortName": "MutateCampaignConversionGoals", - "fullName": "google.ads.googleads.v17.services.CampaignConversionGoalService.MutateCampaignConversionGoals", + "fullName": "google.ads.googleads.v18.services.CampaignConversionGoalService.MutateCampaignConversionGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/campaignConversionGoals:mutate" + "path": "/v18/customers/{customer_id=*}/campaignConversionGoals:mutate" } ] } @@ -6492,16 +6640,16 @@ }, { "shortName": "CampaignCriterionService", - "fullName": "google.ads.googleads.v17.services.CampaignCriterionService", + "fullName": "google.ads.googleads.v18.services.CampaignCriterionService", "methods": [ { "shortName": "MutateCampaignCriteria", - "fullName": "google.ads.googleads.v17.services.CampaignCriterionService.MutateCampaignCriteria", + "fullName": "google.ads.googleads.v18.services.CampaignCriterionService.MutateCampaignCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/campaignCriteria:mutate" + "path": "/v18/customers/{customer_id=*}/campaignCriteria:mutate" } ] } @@ -6509,16 +6657,16 @@ }, { "shortName": "CampaignCustomizerService", - "fullName": "google.ads.googleads.v17.services.CampaignCustomizerService", + "fullName": "google.ads.googleads.v18.services.CampaignCustomizerService", "methods": [ { "shortName": "MutateCampaignCustomizers", - "fullName": "google.ads.googleads.v17.services.CampaignCustomizerService.MutateCampaignCustomizers", + "fullName": "google.ads.googleads.v18.services.CampaignCustomizerService.MutateCampaignCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/campaignCustomizers:mutate" + "path": "/v18/customers/{customer_id=*}/campaignCustomizers:mutate" } ] } @@ -6526,38 +6674,38 @@ }, { "shortName": "CampaignDraftService", - "fullName": "google.ads.googleads.v17.services.CampaignDraftService", + "fullName": "google.ads.googleads.v18.services.CampaignDraftService", "methods": [ { "shortName": "ListCampaignDraftAsyncErrors", - "fullName": "google.ads.googleads.v17.services.CampaignDraftService.ListCampaignDraftAsyncErrors", + "fullName": "google.ads.googleads.v18.services.CampaignDraftService.ListCampaignDraftAsyncErrors", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v17/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" + "path": "/v18/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" } ] }, { "shortName": "MutateCampaignDrafts", - "fullName": "google.ads.googleads.v17.services.CampaignDraftService.MutateCampaignDrafts", + "fullName": "google.ads.googleads.v18.services.CampaignDraftService.MutateCampaignDrafts", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/campaignDrafts:mutate" + "path": "/v18/customers/{customer_id=*}/campaignDrafts:mutate" } ] }, { "shortName": "PromoteCampaignDraft", - "fullName": "google.ads.googleads.v17.services.CampaignDraftService.PromoteCampaignDraft", + "fullName": "google.ads.googleads.v18.services.CampaignDraftService.PromoteCampaignDraft", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/{campaign_draft=customers/*/campaignDrafts/*}:promote" + "path": "/v18/{campaign_draft=customers/*/campaignDrafts/*}:promote" } ] } @@ -6565,16 +6713,16 @@ }, { "shortName": "CampaignExtensionSettingService", - "fullName": "google.ads.googleads.v17.services.CampaignExtensionSettingService", + "fullName": "google.ads.googleads.v18.services.CampaignExtensionSettingService", "methods": [ { "shortName": "MutateCampaignExtensionSettings", - "fullName": "google.ads.googleads.v17.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings", + "fullName": "google.ads.googleads.v18.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/campaignExtensionSettings:mutate" + "path": "/v18/customers/{customer_id=*}/campaignExtensionSettings:mutate" } ] } @@ -6582,16 +6730,16 @@ }, { "shortName": "CampaignFeedService", - "fullName": "google.ads.googleads.v17.services.CampaignFeedService", + "fullName": "google.ads.googleads.v18.services.CampaignFeedService", "methods": [ { "shortName": "MutateCampaignFeeds", - "fullName": "google.ads.googleads.v17.services.CampaignFeedService.MutateCampaignFeeds", + "fullName": "google.ads.googleads.v18.services.CampaignFeedService.MutateCampaignFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/campaignFeeds:mutate" + "path": "/v18/customers/{customer_id=*}/campaignFeeds:mutate" } ] } @@ -6599,16 +6747,16 @@ }, { "shortName": "CampaignGroupService", - "fullName": "google.ads.googleads.v17.services.CampaignGroupService", + "fullName": "google.ads.googleads.v18.services.CampaignGroupService", "methods": [ { "shortName": "MutateCampaignGroups", - "fullName": "google.ads.googleads.v17.services.CampaignGroupService.MutateCampaignGroups", + "fullName": "google.ads.googleads.v18.services.CampaignGroupService.MutateCampaignGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/campaignGroups:mutate" + "path": "/v18/customers/{customer_id=*}/campaignGroups:mutate" } ] } @@ -6616,16 +6764,16 @@ }, { "shortName": "CampaignLabelService", - "fullName": "google.ads.googleads.v17.services.CampaignLabelService", + "fullName": "google.ads.googleads.v18.services.CampaignLabelService", "methods": [ { "shortName": "MutateCampaignLabels", - "fullName": "google.ads.googleads.v17.services.CampaignLabelService.MutateCampaignLabels", + "fullName": "google.ads.googleads.v18.services.CampaignLabelService.MutateCampaignLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/campaignLabels:mutate" + "path": "/v18/customers/{customer_id=*}/campaignLabels:mutate" } ] } @@ -6633,16 +6781,16 @@ }, { "shortName": "CampaignLifecycleGoalService", - "fullName": "google.ads.googleads.v17.services.CampaignLifecycleGoalService", + "fullName": "google.ads.googleads.v18.services.CampaignLifecycleGoalService", "methods": [ { "shortName": "ConfigureCampaignLifecycleGoals", - "fullName": "google.ads.googleads.v17.services.CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals", + "fullName": "google.ads.googleads.v18.services.CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/campaignLifecycleGoal:configureCampaignLifecycleGoals" + "path": "/v18/customers/{customer_id=*}/campaignLifecycleGoal:configureCampaignLifecycleGoals" } ] } @@ -6650,16 +6798,16 @@ }, { "shortName": "CampaignService", - "fullName": "google.ads.googleads.v17.services.CampaignService", + "fullName": "google.ads.googleads.v18.services.CampaignService", "methods": [ { "shortName": "MutateCampaigns", - "fullName": "google.ads.googleads.v17.services.CampaignService.MutateCampaigns", + "fullName": "google.ads.googleads.v18.services.CampaignService.MutateCampaigns", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/campaigns:mutate" + "path": "/v18/customers/{customer_id=*}/campaigns:mutate" } ] } @@ -6667,16 +6815,33 @@ }, { "shortName": "CampaignSharedSetService", - "fullName": "google.ads.googleads.v17.services.CampaignSharedSetService", + "fullName": "google.ads.googleads.v18.services.CampaignSharedSetService", "methods": [ { "shortName": "MutateCampaignSharedSets", - "fullName": "google.ads.googleads.v17.services.CampaignSharedSetService.MutateCampaignSharedSets", + "fullName": "google.ads.googleads.v18.services.CampaignSharedSetService.MutateCampaignSharedSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/campaignSharedSets:mutate" + "path": "/v18/customers/{customer_id=*}/campaignSharedSets:mutate" + } + ] + } + ] + }, + { + "shortName": "ContentCreatorInsightsService", + "fullName": "google.ads.googleads.v18.services.ContentCreatorInsightsService", + "methods": [ + { + "shortName": "GenerateCreatorInsights", + "fullName": "google.ads.googleads.v18.services.ContentCreatorInsightsService.GenerateCreatorInsights", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v18/customers/{customer_id=*}:generateCreatorInsights" } ] } @@ -6684,16 +6849,16 @@ }, { "shortName": "ConversionActionService", - "fullName": "google.ads.googleads.v17.services.ConversionActionService", + "fullName": "google.ads.googleads.v18.services.ConversionActionService", "methods": [ { "shortName": "MutateConversionActions", - "fullName": "google.ads.googleads.v17.services.ConversionActionService.MutateConversionActions", + "fullName": "google.ads.googleads.v18.services.ConversionActionService.MutateConversionActions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/conversionActions:mutate" + "path": "/v18/customers/{customer_id=*}/conversionActions:mutate" } ] } @@ -6701,16 +6866,16 @@ }, { "shortName": "ConversionAdjustmentUploadService", - "fullName": "google.ads.googleads.v17.services.ConversionAdjustmentUploadService", + "fullName": "google.ads.googleads.v18.services.ConversionAdjustmentUploadService", "methods": [ { "shortName": "UploadConversionAdjustments", - "fullName": "google.ads.googleads.v17.services.ConversionAdjustmentUploadService.UploadConversionAdjustments", + "fullName": "google.ads.googleads.v18.services.ConversionAdjustmentUploadService.UploadConversionAdjustments", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}:uploadConversionAdjustments" + "path": "/v18/customers/{customer_id=*}:uploadConversionAdjustments" } ] } @@ -6718,16 +6883,16 @@ }, { "shortName": "ConversionCustomVariableService", - "fullName": "google.ads.googleads.v17.services.ConversionCustomVariableService", + "fullName": "google.ads.googleads.v18.services.ConversionCustomVariableService", "methods": [ { "shortName": "MutateConversionCustomVariables", - "fullName": "google.ads.googleads.v17.services.ConversionCustomVariableService.MutateConversionCustomVariables", + "fullName": "google.ads.googleads.v18.services.ConversionCustomVariableService.MutateConversionCustomVariables", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/conversionCustomVariables:mutate" + "path": "/v18/customers/{customer_id=*}/conversionCustomVariables:mutate" } ] } @@ -6735,16 +6900,16 @@ }, { "shortName": "ConversionGoalCampaignConfigService", - "fullName": "google.ads.googleads.v17.services.ConversionGoalCampaignConfigService", + "fullName": "google.ads.googleads.v18.services.ConversionGoalCampaignConfigService", "methods": [ { "shortName": "MutateConversionGoalCampaignConfigs", - "fullName": "google.ads.googleads.v17.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs", + "fullName": "google.ads.googleads.v18.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/conversionGoalCampaignConfigs:mutate" + "path": "/v18/customers/{customer_id=*}/conversionGoalCampaignConfigs:mutate" } ] } @@ -6752,27 +6917,27 @@ }, { "shortName": "ConversionUploadService", - "fullName": "google.ads.googleads.v17.services.ConversionUploadService", + "fullName": "google.ads.googleads.v18.services.ConversionUploadService", "methods": [ { "shortName": "UploadCallConversions", - "fullName": "google.ads.googleads.v17.services.ConversionUploadService.UploadCallConversions", + "fullName": "google.ads.googleads.v18.services.ConversionUploadService.UploadCallConversions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}:uploadCallConversions" + "path": "/v18/customers/{customer_id=*}:uploadCallConversions" } ] }, { "shortName": "UploadClickConversions", - "fullName": "google.ads.googleads.v17.services.ConversionUploadService.UploadClickConversions", + "fullName": "google.ads.googleads.v18.services.ConversionUploadService.UploadClickConversions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}:uploadClickConversions" + "path": "/v18/customers/{customer_id=*}:uploadClickConversions" } ] } @@ -6780,16 +6945,16 @@ }, { "shortName": "ConversionValueRuleService", - "fullName": "google.ads.googleads.v17.services.ConversionValueRuleService", + "fullName": "google.ads.googleads.v18.services.ConversionValueRuleService", "methods": [ { "shortName": "MutateConversionValueRules", - "fullName": "google.ads.googleads.v17.services.ConversionValueRuleService.MutateConversionValueRules", + "fullName": "google.ads.googleads.v18.services.ConversionValueRuleService.MutateConversionValueRules", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/conversionValueRules:mutate" + "path": "/v18/customers/{customer_id=*}/conversionValueRules:mutate" } ] } @@ -6797,16 +6962,16 @@ }, { "shortName": "ConversionValueRuleSetService", - "fullName": "google.ads.googleads.v17.services.ConversionValueRuleSetService", + "fullName": "google.ads.googleads.v18.services.ConversionValueRuleSetService", "methods": [ { "shortName": "MutateConversionValueRuleSets", - "fullName": "google.ads.googleads.v17.services.ConversionValueRuleSetService.MutateConversionValueRuleSets", + "fullName": "google.ads.googleads.v18.services.ConversionValueRuleSetService.MutateConversionValueRuleSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/conversionValueRuleSets:mutate" + "path": "/v18/customers/{customer_id=*}/conversionValueRuleSets:mutate" } ] } @@ -6814,16 +6979,16 @@ }, { "shortName": "CustomAudienceService", - "fullName": "google.ads.googleads.v17.services.CustomAudienceService", + "fullName": "google.ads.googleads.v18.services.CustomAudienceService", "methods": [ { "shortName": "MutateCustomAudiences", - "fullName": "google.ads.googleads.v17.services.CustomAudienceService.MutateCustomAudiences", + "fullName": "google.ads.googleads.v18.services.CustomAudienceService.MutateCustomAudiences", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/customAudiences:mutate" + "path": "/v18/customers/{customer_id=*}/customAudiences:mutate" } ] } @@ -6831,16 +6996,16 @@ }, { "shortName": "CustomConversionGoalService", - "fullName": "google.ads.googleads.v17.services.CustomConversionGoalService", + "fullName": "google.ads.googleads.v18.services.CustomConversionGoalService", "methods": [ { "shortName": "MutateCustomConversionGoals", - "fullName": "google.ads.googleads.v17.services.CustomConversionGoalService.MutateCustomConversionGoals", + "fullName": "google.ads.googleads.v18.services.CustomConversionGoalService.MutateCustomConversionGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/customConversionGoals:mutate" + "path": "/v18/customers/{customer_id=*}/customConversionGoals:mutate" } ] } @@ -6848,16 +7013,16 @@ }, { "shortName": "CustomInterestService", - "fullName": "google.ads.googleads.v17.services.CustomInterestService", + "fullName": "google.ads.googleads.v18.services.CustomInterestService", "methods": [ { "shortName": "MutateCustomInterests", - "fullName": "google.ads.googleads.v17.services.CustomInterestService.MutateCustomInterests", + "fullName": "google.ads.googleads.v18.services.CustomInterestService.MutateCustomInterests", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/customInterests:mutate" + "path": "/v18/customers/{customer_id=*}/customInterests:mutate" } ] } @@ -6865,16 +7030,16 @@ }, { "shortName": "CustomerAssetService", - "fullName": "google.ads.googleads.v17.services.CustomerAssetService", + "fullName": "google.ads.googleads.v18.services.CustomerAssetService", "methods": [ { "shortName": "MutateCustomerAssets", - "fullName": "google.ads.googleads.v17.services.CustomerAssetService.MutateCustomerAssets", + "fullName": "google.ads.googleads.v18.services.CustomerAssetService.MutateCustomerAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/customerAssets:mutate" + "path": "/v18/customers/{customer_id=*}/customerAssets:mutate" } ] } @@ -6882,16 +7047,16 @@ }, { "shortName": "CustomerAssetSetService", - "fullName": "google.ads.googleads.v17.services.CustomerAssetSetService", + "fullName": "google.ads.googleads.v18.services.CustomerAssetSetService", "methods": [ { "shortName": "MutateCustomerAssetSets", - "fullName": "google.ads.googleads.v17.services.CustomerAssetSetService.MutateCustomerAssetSets", + "fullName": "google.ads.googleads.v18.services.CustomerAssetSetService.MutateCustomerAssetSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/customerAssetSets:mutate" + "path": "/v18/customers/{customer_id=*}/customerAssetSets:mutate" } ] } @@ -6899,16 +7064,16 @@ }, { "shortName": "CustomerClientLinkService", - "fullName": "google.ads.googleads.v17.services.CustomerClientLinkService", + "fullName": "google.ads.googleads.v18.services.CustomerClientLinkService", "methods": [ { "shortName": "MutateCustomerClientLink", - "fullName": "google.ads.googleads.v17.services.CustomerClientLinkService.MutateCustomerClientLink", + "fullName": "google.ads.googleads.v18.services.CustomerClientLinkService.MutateCustomerClientLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/customerClientLinks:mutate" + "path": "/v18/customers/{customer_id=*}/customerClientLinks:mutate" } ] } @@ -6916,16 +7081,16 @@ }, { "shortName": "CustomerConversionGoalService", - "fullName": "google.ads.googleads.v17.services.CustomerConversionGoalService", + "fullName": "google.ads.googleads.v18.services.CustomerConversionGoalService", "methods": [ { "shortName": "MutateCustomerConversionGoals", - "fullName": "google.ads.googleads.v17.services.CustomerConversionGoalService.MutateCustomerConversionGoals", + "fullName": "google.ads.googleads.v18.services.CustomerConversionGoalService.MutateCustomerConversionGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/customerConversionGoals:mutate" + "path": "/v18/customers/{customer_id=*}/customerConversionGoals:mutate" } ] } @@ -6933,16 +7098,16 @@ }, { "shortName": "CustomerCustomizerService", - "fullName": "google.ads.googleads.v17.services.CustomerCustomizerService", + "fullName": "google.ads.googleads.v18.services.CustomerCustomizerService", "methods": [ { "shortName": "MutateCustomerCustomizers", - "fullName": "google.ads.googleads.v17.services.CustomerCustomizerService.MutateCustomerCustomizers", + "fullName": "google.ads.googleads.v18.services.CustomerCustomizerService.MutateCustomerCustomizers", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/CustomerCustomizers:mutate" + "path": "/v18/customers/{customer_id=*}/CustomerCustomizers:mutate" } ] } @@ -6950,16 +7115,16 @@ }, { "shortName": "CustomerExtensionSettingService", - "fullName": "google.ads.googleads.v17.services.CustomerExtensionSettingService", + "fullName": "google.ads.googleads.v18.services.CustomerExtensionSettingService", "methods": [ { "shortName": "MutateCustomerExtensionSettings", - "fullName": "google.ads.googleads.v17.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings", + "fullName": "google.ads.googleads.v18.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/customerExtensionSettings:mutate" + "path": "/v18/customers/{customer_id=*}/customerExtensionSettings:mutate" } ] } @@ -6967,16 +7132,16 @@ }, { "shortName": "CustomerFeedService", - "fullName": "google.ads.googleads.v17.services.CustomerFeedService", + "fullName": "google.ads.googleads.v18.services.CustomerFeedService", "methods": [ { "shortName": "MutateCustomerFeeds", - "fullName": "google.ads.googleads.v17.services.CustomerFeedService.MutateCustomerFeeds", + "fullName": "google.ads.googleads.v18.services.CustomerFeedService.MutateCustomerFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/customerFeeds:mutate" + "path": "/v18/customers/{customer_id=*}/customerFeeds:mutate" } ] } @@ -6984,16 +7149,16 @@ }, { "shortName": "CustomerLabelService", - "fullName": "google.ads.googleads.v17.services.CustomerLabelService", + "fullName": "google.ads.googleads.v18.services.CustomerLabelService", "methods": [ { "shortName": "MutateCustomerLabels", - "fullName": "google.ads.googleads.v17.services.CustomerLabelService.MutateCustomerLabels", + "fullName": "google.ads.googleads.v18.services.CustomerLabelService.MutateCustomerLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/customerLabels:mutate" + "path": "/v18/customers/{customer_id=*}/customerLabels:mutate" } ] } @@ -7001,16 +7166,16 @@ }, { "shortName": "CustomerLifecycleGoalService", - "fullName": "google.ads.googleads.v17.services.CustomerLifecycleGoalService", + "fullName": "google.ads.googleads.v18.services.CustomerLifecycleGoalService", "methods": [ { "shortName": "ConfigureCustomerLifecycleGoals", - "fullName": "google.ads.googleads.v17.services.CustomerLifecycleGoalService.ConfigureCustomerLifecycleGoals", + "fullName": "google.ads.googleads.v18.services.CustomerLifecycleGoalService.ConfigureCustomerLifecycleGoals", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/customerLifecycleGoal:configureCustomerLifecycleGoals" + "path": "/v18/customers/{customer_id=*}/customerLifecycleGoal:configureCustomerLifecycleGoals" } ] } @@ -7018,27 +7183,27 @@ }, { "shortName": "CustomerManagerLinkService", - "fullName": "google.ads.googleads.v17.services.CustomerManagerLinkService", + "fullName": "google.ads.googleads.v18.services.CustomerManagerLinkService", "methods": [ { "shortName": "MoveManagerLink", - "fullName": "google.ads.googleads.v17.services.CustomerManagerLinkService.MoveManagerLink", + "fullName": "google.ads.googleads.v18.services.CustomerManagerLinkService.MoveManagerLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" + "path": "/v18/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" } ] }, { "shortName": "MutateCustomerManagerLink", - "fullName": "google.ads.googleads.v17.services.CustomerManagerLinkService.MutateCustomerManagerLink", + "fullName": "google.ads.googleads.v18.services.CustomerManagerLinkService.MutateCustomerManagerLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/customerManagerLinks:mutate" + "path": "/v18/customers/{customer_id=*}/customerManagerLinks:mutate" } ] } @@ -7046,16 +7211,16 @@ }, { "shortName": "CustomerNegativeCriterionService", - "fullName": "google.ads.googleads.v17.services.CustomerNegativeCriterionService", + "fullName": "google.ads.googleads.v18.services.CustomerNegativeCriterionService", "methods": [ { "shortName": "MutateCustomerNegativeCriteria", - "fullName": "google.ads.googleads.v17.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria", + "fullName": "google.ads.googleads.v18.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/customerNegativeCriteria:mutate" + "path": "/v18/customers/{customer_id=*}/customerNegativeCriteria:mutate" } ] } @@ -7063,38 +7228,38 @@ }, { "shortName": "CustomerService", - "fullName": "google.ads.googleads.v17.services.CustomerService", + "fullName": "google.ads.googleads.v18.services.CustomerService", "methods": [ { "shortName": "CreateCustomerClient", - "fullName": "google.ads.googleads.v17.services.CustomerService.CreateCustomerClient", + "fullName": "google.ads.googleads.v18.services.CustomerService.CreateCustomerClient", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}:createCustomerClient" + "path": "/v18/customers/{customer_id=*}:createCustomerClient" } ] }, { "shortName": "ListAccessibleCustomers", - "fullName": "google.ads.googleads.v17.services.CustomerService.ListAccessibleCustomers", + "fullName": "google.ads.googleads.v18.services.CustomerService.ListAccessibleCustomers", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v17/customers:listAccessibleCustomers" + "path": "/v18/customers:listAccessibleCustomers" } ] }, { "shortName": "MutateCustomer", - "fullName": "google.ads.googleads.v17.services.CustomerService.MutateCustomer", + "fullName": "google.ads.googleads.v18.services.CustomerService.MutateCustomer", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}:mutate" + "path": "/v18/customers/{customer_id=*}:mutate" } ] } @@ -7102,16 +7267,16 @@ }, { "shortName": "CustomerSkAdNetworkConversionValueSchemaService", - "fullName": "google.ads.googleads.v17.services.CustomerSkAdNetworkConversionValueSchemaService", + "fullName": "google.ads.googleads.v18.services.CustomerSkAdNetworkConversionValueSchemaService", "methods": [ { "shortName": "MutateCustomerSkAdNetworkConversionValueSchema", - "fullName": "google.ads.googleads.v17.services.CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema", + "fullName": "google.ads.googleads.v18.services.CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/customerSkAdNetworkConversionValueSchemas:mutate" + "path": "/v18/customers/{customer_id=*}/customerSkAdNetworkConversionValueSchemas:mutate" } ] } @@ -7119,16 +7284,16 @@ }, { "shortName": "CustomerUserAccessInvitationService", - "fullName": "google.ads.googleads.v17.services.CustomerUserAccessInvitationService", + "fullName": "google.ads.googleads.v18.services.CustomerUserAccessInvitationService", "methods": [ { "shortName": "MutateCustomerUserAccessInvitation", - "fullName": "google.ads.googleads.v17.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation", + "fullName": "google.ads.googleads.v18.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/customerUserAccessInvitations:mutate" + "path": "/v18/customers/{customer_id=*}/customerUserAccessInvitations:mutate" } ] } @@ -7136,16 +7301,16 @@ }, { "shortName": "CustomerUserAccessService", - "fullName": "google.ads.googleads.v17.services.CustomerUserAccessService", + "fullName": "google.ads.googleads.v18.services.CustomerUserAccessService", "methods": [ { "shortName": "MutateCustomerUserAccess", - "fullName": "google.ads.googleads.v17.services.CustomerUserAccessService.MutateCustomerUserAccess", + "fullName": "google.ads.googleads.v18.services.CustomerUserAccessService.MutateCustomerUserAccess", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/customerUserAccesses:mutate" + "path": "/v18/customers/{customer_id=*}/customerUserAccesses:mutate" } ] } @@ -7153,16 +7318,33 @@ }, { "shortName": "CustomizerAttributeService", - "fullName": "google.ads.googleads.v17.services.CustomizerAttributeService", + "fullName": "google.ads.googleads.v18.services.CustomizerAttributeService", "methods": [ { "shortName": "MutateCustomizerAttributes", - "fullName": "google.ads.googleads.v17.services.CustomizerAttributeService.MutateCustomizerAttributes", + "fullName": "google.ads.googleads.v18.services.CustomizerAttributeService.MutateCustomizerAttributes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/customizerAttributes:mutate" + "path": "/v18/customers/{customer_id=*}/customizerAttributes:mutate" + } + ] + } + ] + }, + { + "shortName": "DataLinkService", + "fullName": "google.ads.googleads.v18.services.DataLinkService", + "methods": [ + { + "shortName": "CreateDataLink", + "fullName": "google.ads.googleads.v18.services.DataLinkService.CreateDataLink", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v18/customers/{customer_id=*}/dataLinks:create" } ] } @@ -7170,16 +7352,16 @@ }, { "shortName": "ExperimentArmService", - "fullName": "google.ads.googleads.v17.services.ExperimentArmService", + "fullName": "google.ads.googleads.v18.services.ExperimentArmService", "methods": [ { "shortName": "MutateExperimentArms", - "fullName": "google.ads.googleads.v17.services.ExperimentArmService.MutateExperimentArms", + "fullName": "google.ads.googleads.v18.services.ExperimentArmService.MutateExperimentArms", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/experimentArms:mutate" + "path": "/v18/customers/{customer_id=*}/experimentArms:mutate" } ] } @@ -7187,71 +7369,71 @@ }, { "shortName": "ExperimentService", - "fullName": "google.ads.googleads.v17.services.ExperimentService", + "fullName": "google.ads.googleads.v18.services.ExperimentService", "methods": [ { "shortName": "EndExperiment", - "fullName": "google.ads.googleads.v17.services.ExperimentService.EndExperiment", + "fullName": "google.ads.googleads.v18.services.ExperimentService.EndExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/{experiment=customers/*/experiments/*}:endExperiment" + "path": "/v18/{experiment=customers/*/experiments/*}:endExperiment" } ] }, { "shortName": "GraduateExperiment", - "fullName": "google.ads.googleads.v17.services.ExperimentService.GraduateExperiment", + "fullName": "google.ads.googleads.v18.services.ExperimentService.GraduateExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/{experiment=customers/*/experiments/*}:graduateExperiment" + "path": "/v18/{experiment=customers/*/experiments/*}:graduateExperiment" } ] }, { "shortName": "ListExperimentAsyncErrors", - "fullName": "google.ads.googleads.v17.services.ExperimentService.ListExperimentAsyncErrors", + "fullName": "google.ads.googleads.v18.services.ExperimentService.ListExperimentAsyncErrors", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v17/{resource_name=customers/*/experiments/*}:listExperimentAsyncErrors" + "path": "/v18/{resource_name=customers/*/experiments/*}:listExperimentAsyncErrors" } ] }, { "shortName": "MutateExperiments", - "fullName": "google.ads.googleads.v17.services.ExperimentService.MutateExperiments", + "fullName": "google.ads.googleads.v18.services.ExperimentService.MutateExperiments", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/experiments:mutate" + "path": "/v18/customers/{customer_id=*}/experiments:mutate" } ] }, { "shortName": "PromoteExperiment", - "fullName": "google.ads.googleads.v17.services.ExperimentService.PromoteExperiment", + "fullName": "google.ads.googleads.v18.services.ExperimentService.PromoteExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/{resource_name=customers/*/experiments/*}:promoteExperiment" + "path": "/v18/{resource_name=customers/*/experiments/*}:promoteExperiment" } ] }, { "shortName": "ScheduleExperiment", - "fullName": "google.ads.googleads.v17.services.ExperimentService.ScheduleExperiment", + "fullName": "google.ads.googleads.v18.services.ExperimentService.ScheduleExperiment", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/{resource_name=customers/*/experiments/*}:scheduleExperiment" + "path": "/v18/{resource_name=customers/*/experiments/*}:scheduleExperiment" } ] } @@ -7259,16 +7441,16 @@ }, { "shortName": "ExtensionFeedItemService", - "fullName": "google.ads.googleads.v17.services.ExtensionFeedItemService", + "fullName": "google.ads.googleads.v18.services.ExtensionFeedItemService", "methods": [ { "shortName": "MutateExtensionFeedItems", - "fullName": "google.ads.googleads.v17.services.ExtensionFeedItemService.MutateExtensionFeedItems", + "fullName": "google.ads.googleads.v18.services.ExtensionFeedItemService.MutateExtensionFeedItems", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/extensionFeedItems:mutate" + "path": "/v18/customers/{customer_id=*}/extensionFeedItems:mutate" } ] } @@ -7276,16 +7458,16 @@ }, { "shortName": "FeedItemService", - "fullName": "google.ads.googleads.v17.services.FeedItemService", + "fullName": "google.ads.googleads.v18.services.FeedItemService", "methods": [ { "shortName": "MutateFeedItems", - "fullName": "google.ads.googleads.v17.services.FeedItemService.MutateFeedItems", + "fullName": "google.ads.googleads.v18.services.FeedItemService.MutateFeedItems", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/feedItems:mutate" + "path": "/v18/customers/{customer_id=*}/feedItems:mutate" } ] } @@ -7293,16 +7475,16 @@ }, { "shortName": "FeedItemSetLinkService", - "fullName": "google.ads.googleads.v17.services.FeedItemSetLinkService", + "fullName": "google.ads.googleads.v18.services.FeedItemSetLinkService", "methods": [ { "shortName": "MutateFeedItemSetLinks", - "fullName": "google.ads.googleads.v17.services.FeedItemSetLinkService.MutateFeedItemSetLinks", + "fullName": "google.ads.googleads.v18.services.FeedItemSetLinkService.MutateFeedItemSetLinks", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/feedItemSetLinks:mutate" + "path": "/v18/customers/{customer_id=*}/feedItemSetLinks:mutate" } ] } @@ -7310,16 +7492,16 @@ }, { "shortName": "FeedItemSetService", - "fullName": "google.ads.googleads.v17.services.FeedItemSetService", + "fullName": "google.ads.googleads.v18.services.FeedItemSetService", "methods": [ { "shortName": "MutateFeedItemSets", - "fullName": "google.ads.googleads.v17.services.FeedItemSetService.MutateFeedItemSets", + "fullName": "google.ads.googleads.v18.services.FeedItemSetService.MutateFeedItemSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/feedItemSets:mutate" + "path": "/v18/customers/{customer_id=*}/feedItemSets:mutate" } ] } @@ -7327,16 +7509,16 @@ }, { "shortName": "FeedItemTargetService", - "fullName": "google.ads.googleads.v17.services.FeedItemTargetService", + "fullName": "google.ads.googleads.v18.services.FeedItemTargetService", "methods": [ { "shortName": "MutateFeedItemTargets", - "fullName": "google.ads.googleads.v17.services.FeedItemTargetService.MutateFeedItemTargets", + "fullName": "google.ads.googleads.v18.services.FeedItemTargetService.MutateFeedItemTargets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/feedItemTargets:mutate" + "path": "/v18/customers/{customer_id=*}/feedItemTargets:mutate" } ] } @@ -7344,16 +7526,16 @@ }, { "shortName": "FeedMappingService", - "fullName": "google.ads.googleads.v17.services.FeedMappingService", + "fullName": "google.ads.googleads.v18.services.FeedMappingService", "methods": [ { "shortName": "MutateFeedMappings", - "fullName": "google.ads.googleads.v17.services.FeedMappingService.MutateFeedMappings", + "fullName": "google.ads.googleads.v18.services.FeedMappingService.MutateFeedMappings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/feedMappings:mutate" + "path": "/v18/customers/{customer_id=*}/feedMappings:mutate" } ] } @@ -7361,16 +7543,16 @@ }, { "shortName": "FeedService", - "fullName": "google.ads.googleads.v17.services.FeedService", + "fullName": "google.ads.googleads.v18.services.FeedService", "methods": [ { "shortName": "MutateFeeds", - "fullName": "google.ads.googleads.v17.services.FeedService.MutateFeeds", + "fullName": "google.ads.googleads.v18.services.FeedService.MutateFeeds", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/feeds:mutate" + "path": "/v18/customers/{customer_id=*}/feeds:mutate" } ] } @@ -7378,16 +7560,16 @@ }, { "shortName": "GeoTargetConstantService", - "fullName": "google.ads.googleads.v17.services.GeoTargetConstantService", + "fullName": "google.ads.googleads.v18.services.GeoTargetConstantService", "methods": [ { "shortName": "SuggestGeoTargetConstants", - "fullName": "google.ads.googleads.v17.services.GeoTargetConstantService.SuggestGeoTargetConstants", + "fullName": "google.ads.googleads.v18.services.GeoTargetConstantService.SuggestGeoTargetConstants", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/geoTargetConstants:suggest" + "path": "/v18/geoTargetConstants:suggest" } ] } @@ -7395,27 +7577,27 @@ }, { "shortName": "GoogleAdsFieldService", - "fullName": "google.ads.googleads.v17.services.GoogleAdsFieldService", + "fullName": "google.ads.googleads.v18.services.GoogleAdsFieldService", "methods": [ { "shortName": "GetGoogleAdsField", - "fullName": "google.ads.googleads.v17.services.GoogleAdsFieldService.GetGoogleAdsField", + "fullName": "google.ads.googleads.v18.services.GoogleAdsFieldService.GetGoogleAdsField", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v17/{resource_name=googleAdsFields/*}" + "path": "/v18/{resource_name=googleAdsFields/*}" } ] }, { "shortName": "SearchGoogleAdsFields", - "fullName": "google.ads.googleads.v17.services.GoogleAdsFieldService.SearchGoogleAdsFields", + "fullName": "google.ads.googleads.v18.services.GoogleAdsFieldService.SearchGoogleAdsFields", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/googleAdsFields:search" + "path": "/v18/googleAdsFields:search" } ] } @@ -7423,38 +7605,38 @@ }, { "shortName": "GoogleAdsService", - "fullName": "google.ads.googleads.v17.services.GoogleAdsService", + "fullName": "google.ads.googleads.v18.services.GoogleAdsService", "methods": [ { "shortName": "Mutate", - "fullName": "google.ads.googleads.v17.services.GoogleAdsService.Mutate", + "fullName": "google.ads.googleads.v18.services.GoogleAdsService.Mutate", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/googleAds:mutate" + "path": "/v18/customers/{customer_id=*}/googleAds:mutate" } ] }, { "shortName": "Search", - "fullName": "google.ads.googleads.v17.services.GoogleAdsService.Search", + "fullName": "google.ads.googleads.v18.services.GoogleAdsService.Search", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/googleAds:search" + "path": "/v18/customers/{customer_id=*}/googleAds:search" } ] }, { "shortName": "SearchStream", - "fullName": "google.ads.googleads.v17.services.GoogleAdsService.SearchStream", + "fullName": "google.ads.googleads.v18.services.GoogleAdsService.SearchStream", "mode": "SERVER_STREAMING", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/googleAds:searchStream" + "path": "/v18/customers/{customer_id=*}/googleAds:searchStream" } ] } @@ -7462,27 +7644,27 @@ }, { "shortName": "IdentityVerificationService", - "fullName": "google.ads.googleads.v17.services.IdentityVerificationService", + "fullName": "google.ads.googleads.v18.services.IdentityVerificationService", "methods": [ { "shortName": "GetIdentityVerification", - "fullName": "google.ads.googleads.v17.services.IdentityVerificationService.GetIdentityVerification", + "fullName": "google.ads.googleads.v18.services.IdentityVerificationService.GetIdentityVerification", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v17/customers/{customer_id=*}/getIdentityVerification" + "path": "/v18/customers/{customer_id=*}/getIdentityVerification" } ] }, { "shortName": "StartIdentityVerification", - "fullName": "google.ads.googleads.v17.services.IdentityVerificationService.StartIdentityVerification", + "fullName": "google.ads.googleads.v18.services.IdentityVerificationService.StartIdentityVerification", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}:startIdentityVerification" + "path": "/v18/customers/{customer_id=*}:startIdentityVerification" } ] } @@ -7490,16 +7672,16 @@ }, { "shortName": "InvoiceService", - "fullName": "google.ads.googleads.v17.services.InvoiceService", + "fullName": "google.ads.googleads.v18.services.InvoiceService", "methods": [ { "shortName": "ListInvoices", - "fullName": "google.ads.googleads.v17.services.InvoiceService.ListInvoices", + "fullName": "google.ads.googleads.v18.services.InvoiceService.ListInvoices", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v17/customers/{customer_id=*}/invoices" + "path": "/v18/customers/{customer_id=*}/invoices" } ] } @@ -7507,16 +7689,16 @@ }, { "shortName": "KeywordPlanAdGroupKeywordService", - "fullName": "google.ads.googleads.v17.services.KeywordPlanAdGroupKeywordService", + "fullName": "google.ads.googleads.v18.services.KeywordPlanAdGroupKeywordService", "methods": [ { "shortName": "MutateKeywordPlanAdGroupKeywords", - "fullName": "google.ads.googleads.v17.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords", + "fullName": "google.ads.googleads.v18.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" + "path": "/v18/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" } ] } @@ -7524,16 +7706,16 @@ }, { "shortName": "KeywordPlanAdGroupService", - "fullName": "google.ads.googleads.v17.services.KeywordPlanAdGroupService", + "fullName": "google.ads.googleads.v18.services.KeywordPlanAdGroupService", "methods": [ { "shortName": "MutateKeywordPlanAdGroups", - "fullName": "google.ads.googleads.v17.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups", + "fullName": "google.ads.googleads.v18.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/keywordPlanAdGroups:mutate" + "path": "/v18/customers/{customer_id=*}/keywordPlanAdGroups:mutate" } ] } @@ -7541,16 +7723,16 @@ }, { "shortName": "KeywordPlanCampaignKeywordService", - "fullName": "google.ads.googleads.v17.services.KeywordPlanCampaignKeywordService", + "fullName": "google.ads.googleads.v18.services.KeywordPlanCampaignKeywordService", "methods": [ { "shortName": "MutateKeywordPlanCampaignKeywords", - "fullName": "google.ads.googleads.v17.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords", + "fullName": "google.ads.googleads.v18.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" + "path": "/v18/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" } ] } @@ -7558,16 +7740,16 @@ }, { "shortName": "KeywordPlanCampaignService", - "fullName": "google.ads.googleads.v17.services.KeywordPlanCampaignService", + "fullName": "google.ads.googleads.v18.services.KeywordPlanCampaignService", "methods": [ { "shortName": "MutateKeywordPlanCampaigns", - "fullName": "google.ads.googleads.v17.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns", + "fullName": "google.ads.googleads.v18.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/keywordPlanCampaigns:mutate" + "path": "/v18/customers/{customer_id=*}/keywordPlanCampaigns:mutate" } ] } @@ -7575,49 +7757,49 @@ }, { "shortName": "KeywordPlanIdeaService", - "fullName": "google.ads.googleads.v17.services.KeywordPlanIdeaService", + "fullName": "google.ads.googleads.v18.services.KeywordPlanIdeaService", "methods": [ { "shortName": "GenerateAdGroupThemes", - "fullName": "google.ads.googleads.v17.services.KeywordPlanIdeaService.GenerateAdGroupThemes", + "fullName": "google.ads.googleads.v18.services.KeywordPlanIdeaService.GenerateAdGroupThemes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}:generateAdGroupThemes" + "path": "/v18/customers/{customer_id=*}:generateAdGroupThemes" } ] }, { "shortName": "GenerateKeywordForecastMetrics", - "fullName": "google.ads.googleads.v17.services.KeywordPlanIdeaService.GenerateKeywordForecastMetrics", + "fullName": "google.ads.googleads.v18.services.KeywordPlanIdeaService.GenerateKeywordForecastMetrics", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}:generateKeywordForecastMetrics" + "path": "/v18/customers/{customer_id=*}:generateKeywordForecastMetrics" } ] }, { "shortName": "GenerateKeywordHistoricalMetrics", - "fullName": "google.ads.googleads.v17.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics", + "fullName": "google.ads.googleads.v18.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}:generateKeywordHistoricalMetrics" + "path": "/v18/customers/{customer_id=*}:generateKeywordHistoricalMetrics" } ] }, { "shortName": "GenerateKeywordIdeas", - "fullName": "google.ads.googleads.v17.services.KeywordPlanIdeaService.GenerateKeywordIdeas", + "fullName": "google.ads.googleads.v18.services.KeywordPlanIdeaService.GenerateKeywordIdeas", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}:generateKeywordIdeas" + "path": "/v18/customers/{customer_id=*}:generateKeywordIdeas" } ] } @@ -7625,16 +7807,16 @@ }, { "shortName": "KeywordPlanService", - "fullName": "google.ads.googleads.v17.services.KeywordPlanService", + "fullName": "google.ads.googleads.v18.services.KeywordPlanService", "methods": [ { "shortName": "MutateKeywordPlans", - "fullName": "google.ads.googleads.v17.services.KeywordPlanService.MutateKeywordPlans", + "fullName": "google.ads.googleads.v18.services.KeywordPlanService.MutateKeywordPlans", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/keywordPlans:mutate" + "path": "/v18/customers/{customer_id=*}/keywordPlans:mutate" } ] } @@ -7642,16 +7824,16 @@ }, { "shortName": "KeywordThemeConstantService", - "fullName": "google.ads.googleads.v17.services.KeywordThemeConstantService", + "fullName": "google.ads.googleads.v18.services.KeywordThemeConstantService", "methods": [ { "shortName": "SuggestKeywordThemeConstants", - "fullName": "google.ads.googleads.v17.services.KeywordThemeConstantService.SuggestKeywordThemeConstants", + "fullName": "google.ads.googleads.v18.services.KeywordThemeConstantService.SuggestKeywordThemeConstants", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/keywordThemeConstants:suggest" + "path": "/v18/keywordThemeConstants:suggest" } ] } @@ -7659,16 +7841,16 @@ }, { "shortName": "LabelService", - "fullName": "google.ads.googleads.v17.services.LabelService", + "fullName": "google.ads.googleads.v18.services.LabelService", "methods": [ { "shortName": "MutateLabels", - "fullName": "google.ads.googleads.v17.services.LabelService.MutateLabels", + "fullName": "google.ads.googleads.v18.services.LabelService.MutateLabels", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/labels:mutate" + "path": "/v18/customers/{customer_id=*}/labels:mutate" } ] } @@ -7676,16 +7858,16 @@ }, { "shortName": "LocalServicesLeadService", - "fullName": "google.ads.googleads.v17.services.LocalServicesLeadService", + "fullName": "google.ads.googleads.v18.services.LocalServicesLeadService", "methods": [ { "shortName": "AppendLeadConversation", - "fullName": "google.ads.googleads.v17.services.LocalServicesLeadService.AppendLeadConversation", + "fullName": "google.ads.googleads.v18.services.LocalServicesLeadService.AppendLeadConversation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/localServices:appendLeadConversation" + "path": "/v18/customers/{customer_id=*}/localServices:appendLeadConversation" } ] } @@ -7693,38 +7875,38 @@ }, { "shortName": "OfflineUserDataJobService", - "fullName": "google.ads.googleads.v17.services.OfflineUserDataJobService", + "fullName": "google.ads.googleads.v18.services.OfflineUserDataJobService", "methods": [ { "shortName": "AddOfflineUserDataJobOperations", - "fullName": "google.ads.googleads.v17.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations", + "fullName": "google.ads.googleads.v18.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" + "path": "/v18/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" } ] }, { "shortName": "CreateOfflineUserDataJob", - "fullName": "google.ads.googleads.v17.services.OfflineUserDataJobService.CreateOfflineUserDataJob", + "fullName": "google.ads.googleads.v18.services.OfflineUserDataJobService.CreateOfflineUserDataJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/offlineUserDataJobs:create" + "path": "/v18/customers/{customer_id=*}/offlineUserDataJobs:create" } ] }, { "shortName": "RunOfflineUserDataJob", - "fullName": "google.ads.googleads.v17.services.OfflineUserDataJobService.RunOfflineUserDataJob", + "fullName": "google.ads.googleads.v18.services.OfflineUserDataJobService.RunOfflineUserDataJob", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/{resource_name=customers/*/offlineUserDataJobs/*}:run" + "path": "/v18/{resource_name=customers/*/offlineUserDataJobs/*}:run" } ] } @@ -7732,16 +7914,16 @@ }, { "shortName": "PaymentsAccountService", - "fullName": "google.ads.googleads.v17.services.PaymentsAccountService", + "fullName": "google.ads.googleads.v18.services.PaymentsAccountService", "methods": [ { "shortName": "ListPaymentsAccounts", - "fullName": "google.ads.googleads.v17.services.PaymentsAccountService.ListPaymentsAccounts", + "fullName": "google.ads.googleads.v18.services.PaymentsAccountService.ListPaymentsAccounts", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v17/customers/{customer_id=*}/paymentsAccounts" + "path": "/v18/customers/{customer_id=*}/paymentsAccounts" } ] } @@ -7749,38 +7931,38 @@ }, { "shortName": "ProductLinkInvitationService", - "fullName": "google.ads.googleads.v17.services.ProductLinkInvitationService", + "fullName": "google.ads.googleads.v18.services.ProductLinkInvitationService", "methods": [ { "shortName": "CreateProductLinkInvitation", - "fullName": "google.ads.googleads.v17.services.ProductLinkInvitationService.CreateProductLinkInvitation", + "fullName": "google.ads.googleads.v18.services.ProductLinkInvitationService.CreateProductLinkInvitation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/productLinkInvitations:create" + "path": "/v18/customers/{customer_id=*}/productLinkInvitations:create" } ] }, { "shortName": "RemoveProductLinkInvitation", - "fullName": "google.ads.googleads.v17.services.ProductLinkInvitationService.RemoveProductLinkInvitation", + "fullName": "google.ads.googleads.v18.services.ProductLinkInvitationService.RemoveProductLinkInvitation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/productLinkInvitations:remove" + "path": "/v18/customers/{customer_id=*}/productLinkInvitations:remove" } ] }, { "shortName": "UpdateProductLinkInvitation", - "fullName": "google.ads.googleads.v17.services.ProductLinkInvitationService.UpdateProductLinkInvitation", + "fullName": "google.ads.googleads.v18.services.ProductLinkInvitationService.UpdateProductLinkInvitation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/productLinkInvitations:update" + "path": "/v18/customers/{customer_id=*}/productLinkInvitations:update" } ] } @@ -7788,27 +7970,27 @@ }, { "shortName": "ProductLinkService", - "fullName": "google.ads.googleads.v17.services.ProductLinkService", + "fullName": "google.ads.googleads.v18.services.ProductLinkService", "methods": [ { "shortName": "CreateProductLink", - "fullName": "google.ads.googleads.v17.services.ProductLinkService.CreateProductLink", + "fullName": "google.ads.googleads.v18.services.ProductLinkService.CreateProductLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/productLinks:create" + "path": "/v18/customers/{customer_id=*}/productLinks:create" } ] }, { "shortName": "RemoveProductLink", - "fullName": "google.ads.googleads.v17.services.ProductLinkService.RemoveProductLink", + "fullName": "google.ads.googleads.v18.services.ProductLinkService.RemoveProductLink", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/productLinks:remove" + "path": "/v18/customers/{customer_id=*}/productLinks:remove" } ] } @@ -7816,38 +7998,38 @@ }, { "shortName": "ReachPlanService", - "fullName": "google.ads.googleads.v17.services.ReachPlanService", + "fullName": "google.ads.googleads.v18.services.ReachPlanService", "methods": [ { "shortName": "GenerateReachForecast", - "fullName": "google.ads.googleads.v17.services.ReachPlanService.GenerateReachForecast", + "fullName": "google.ads.googleads.v18.services.ReachPlanService.GenerateReachForecast", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}:generateReachForecast" + "path": "/v18/customers/{customer_id=*}:generateReachForecast" } ] }, { "shortName": "ListPlannableLocations", - "fullName": "google.ads.googleads.v17.services.ReachPlanService.ListPlannableLocations", + "fullName": "google.ads.googleads.v18.services.ReachPlanService.ListPlannableLocations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17:listPlannableLocations" + "path": "/v18:listPlannableLocations" } ] }, { "shortName": "ListPlannableProducts", - "fullName": "google.ads.googleads.v17.services.ReachPlanService.ListPlannableProducts", + "fullName": "google.ads.googleads.v18.services.ReachPlanService.ListPlannableProducts", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17:listPlannableProducts" + "path": "/v18:listPlannableProducts" } ] } @@ -7855,38 +8037,38 @@ }, { "shortName": "RecommendationService", - "fullName": "google.ads.googleads.v17.services.RecommendationService", + "fullName": "google.ads.googleads.v18.services.RecommendationService", "methods": [ { "shortName": "ApplyRecommendation", - "fullName": "google.ads.googleads.v17.services.RecommendationService.ApplyRecommendation", + "fullName": "google.ads.googleads.v18.services.RecommendationService.ApplyRecommendation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/recommendations:apply" + "path": "/v18/customers/{customer_id=*}/recommendations:apply" } ] }, { "shortName": "DismissRecommendation", - "fullName": "google.ads.googleads.v17.services.RecommendationService.DismissRecommendation", + "fullName": "google.ads.googleads.v18.services.RecommendationService.DismissRecommendation", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/recommendations:dismiss" + "path": "/v18/customers/{customer_id=*}/recommendations:dismiss" } ] }, { "shortName": "GenerateRecommendations", - "fullName": "google.ads.googleads.v17.services.RecommendationService.GenerateRecommendations", + "fullName": "google.ads.googleads.v18.services.RecommendationService.GenerateRecommendations", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/recommendations:generate" + "path": "/v18/customers/{customer_id=*}/recommendations:generate" } ] } @@ -7894,16 +8076,16 @@ }, { "shortName": "RecommendationSubscriptionService", - "fullName": "google.ads.googleads.v17.services.RecommendationSubscriptionService", + "fullName": "google.ads.googleads.v18.services.RecommendationSubscriptionService", "methods": [ { "shortName": "MutateRecommendationSubscription", - "fullName": "google.ads.googleads.v17.services.RecommendationSubscriptionService.MutateRecommendationSubscription", + "fullName": "google.ads.googleads.v18.services.RecommendationSubscriptionService.MutateRecommendationSubscription", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/recommendationSubscriptions:mutateRecommendationSubscription" + "path": "/v18/customers/{customer_id=*}/recommendationSubscriptions:mutateRecommendationSubscription" } ] } @@ -7911,16 +8093,33 @@ }, { "shortName": "RemarketingActionService", - "fullName": "google.ads.googleads.v17.services.RemarketingActionService", + "fullName": "google.ads.googleads.v18.services.RemarketingActionService", "methods": [ { "shortName": "MutateRemarketingActions", - "fullName": "google.ads.googleads.v17.services.RemarketingActionService.MutateRemarketingActions", + "fullName": "google.ads.googleads.v18.services.RemarketingActionService.MutateRemarketingActions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/remarketingActions:mutate" + "path": "/v18/customers/{customer_id=*}/remarketingActions:mutate" + } + ] + } + ] + }, + { + "shortName": "ShareablePreviewService", + "fullName": "google.ads.googleads.v18.services.ShareablePreviewService", + "methods": [ + { + "shortName": "GenerateShareablePreviews", + "fullName": "google.ads.googleads.v18.services.ShareablePreviewService.GenerateShareablePreviews", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v18/customers/{customer_id=*}:generateShareablePreviews" } ] } @@ -7928,16 +8127,16 @@ }, { "shortName": "SharedCriterionService", - "fullName": "google.ads.googleads.v17.services.SharedCriterionService", + "fullName": "google.ads.googleads.v18.services.SharedCriterionService", "methods": [ { "shortName": "MutateSharedCriteria", - "fullName": "google.ads.googleads.v17.services.SharedCriterionService.MutateSharedCriteria", + "fullName": "google.ads.googleads.v18.services.SharedCriterionService.MutateSharedCriteria", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/sharedCriteria:mutate" + "path": "/v18/customers/{customer_id=*}/sharedCriteria:mutate" } ] } @@ -7945,16 +8144,16 @@ }, { "shortName": "SharedSetService", - "fullName": "google.ads.googleads.v17.services.SharedSetService", + "fullName": "google.ads.googleads.v18.services.SharedSetService", "methods": [ { "shortName": "MutateSharedSets", - "fullName": "google.ads.googleads.v17.services.SharedSetService.MutateSharedSets", + "fullName": "google.ads.googleads.v18.services.SharedSetService.MutateSharedSets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/sharedSets:mutate" + "path": "/v18/customers/{customer_id=*}/sharedSets:mutate" } ] } @@ -7962,27 +8161,27 @@ }, { "shortName": "SmartCampaignSettingService", - "fullName": "google.ads.googleads.v17.services.SmartCampaignSettingService", + "fullName": "google.ads.googleads.v18.services.SmartCampaignSettingService", "methods": [ { "shortName": "GetSmartCampaignStatus", - "fullName": "google.ads.googleads.v17.services.SmartCampaignSettingService.GetSmartCampaignStatus", + "fullName": "google.ads.googleads.v18.services.SmartCampaignSettingService.GetSmartCampaignStatus", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v17/{resource_name=customers/*/smartCampaignSettings/*}:getSmartCampaignStatus" + "path": "/v18/{resource_name=customers/*/smartCampaignSettings/*}:getSmartCampaignStatus" } ] }, { "shortName": "MutateSmartCampaignSettings", - "fullName": "google.ads.googleads.v17.services.SmartCampaignSettingService.MutateSmartCampaignSettings", + "fullName": "google.ads.googleads.v18.services.SmartCampaignSettingService.MutateSmartCampaignSettings", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/smartCampaignSettings:mutate" + "path": "/v18/customers/{customer_id=*}/smartCampaignSettings:mutate" } ] } @@ -7990,38 +8189,38 @@ }, { "shortName": "SmartCampaignSuggestService", - "fullName": "google.ads.googleads.v17.services.SmartCampaignSuggestService", + "fullName": "google.ads.googleads.v18.services.SmartCampaignSuggestService", "methods": [ { "shortName": "SuggestKeywordThemes", - "fullName": "google.ads.googleads.v17.services.SmartCampaignSuggestService.SuggestKeywordThemes", + "fullName": "google.ads.googleads.v18.services.SmartCampaignSuggestService.SuggestKeywordThemes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}:suggestKeywordThemes" + "path": "/v18/customers/{customer_id=*}:suggestKeywordThemes" } ] }, { "shortName": "SuggestSmartCampaignAd", - "fullName": "google.ads.googleads.v17.services.SmartCampaignSuggestService.SuggestSmartCampaignAd", + "fullName": "google.ads.googleads.v18.services.SmartCampaignSuggestService.SuggestSmartCampaignAd", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}:suggestSmartCampaignAd" + "path": "/v18/customers/{customer_id=*}:suggestSmartCampaignAd" } ] }, { "shortName": "SuggestSmartCampaignBudgetOptions", - "fullName": "google.ads.googleads.v17.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions", + "fullName": "google.ads.googleads.v18.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}:suggestSmartCampaignBudgetOptions" + "path": "/v18/customers/{customer_id=*}:suggestSmartCampaignBudgetOptions" } ] } @@ -8029,16 +8228,16 @@ }, { "shortName": "ThirdPartyAppAnalyticsLinkService", - "fullName": "google.ads.googleads.v17.services.ThirdPartyAppAnalyticsLinkService", + "fullName": "google.ads.googleads.v18.services.ThirdPartyAppAnalyticsLinkService", "methods": [ { "shortName": "RegenerateShareableLinkId", - "fullName": "google.ads.googleads.v17.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId", + "fullName": "google.ads.googleads.v18.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" + "path": "/v18/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" } ] } @@ -8046,16 +8245,16 @@ }, { "shortName": "TravelAssetSuggestionService", - "fullName": "google.ads.googleads.v17.services.TravelAssetSuggestionService", + "fullName": "google.ads.googleads.v18.services.TravelAssetSuggestionService", "methods": [ { "shortName": "SuggestTravelAssets", - "fullName": "google.ads.googleads.v17.services.TravelAssetSuggestionService.SuggestTravelAssets", + "fullName": "google.ads.googleads.v18.services.TravelAssetSuggestionService.SuggestTravelAssets", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}:suggestTravelAssets" + "path": "/v18/customers/{customer_id=*}:suggestTravelAssets" } ] } @@ -8063,16 +8262,16 @@ }, { "shortName": "UserDataService", - "fullName": "google.ads.googleads.v17.services.UserDataService", + "fullName": "google.ads.googleads.v18.services.UserDataService", "methods": [ { "shortName": "UploadUserData", - "fullName": "google.ads.googleads.v17.services.UserDataService.UploadUserData", + "fullName": "google.ads.googleads.v18.services.UserDataService.UploadUserData", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}:uploadUserData" + "path": "/v18/customers/{customer_id=*}:uploadUserData" } ] } @@ -8080,16 +8279,16 @@ }, { "shortName": "UserListCustomerTypeService", - "fullName": "google.ads.googleads.v17.services.UserListCustomerTypeService", + "fullName": "google.ads.googleads.v18.services.UserListCustomerTypeService", "methods": [ { "shortName": "MutateUserListCustomerTypes", - "fullName": "google.ads.googleads.v17.services.UserListCustomerTypeService.MutateUserListCustomerTypes", + "fullName": "google.ads.googleads.v18.services.UserListCustomerTypeService.MutateUserListCustomerTypes", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/userListCustomerTypes:mutate" + "path": "/v18/customers/{customer_id=*}/userListCustomerTypes:mutate" } ] } @@ -8097,137 +8296,140 @@ }, { "shortName": "UserListService", - "fullName": "google.ads.googleads.v17.services.UserListService", + "fullName": "google.ads.googleads.v18.services.UserListService", "methods": [ { "shortName": "MutateUserLists", - "fullName": "google.ads.googleads.v17.services.UserListService.MutateUserLists", + "fullName": "google.ads.googleads.v18.services.UserListService.MutateUserLists", "mode": "UNARY", "bindings": [ { "httpMethod": "POST", - "path": "/v17/customers/{customer_id=*}/userLists:mutate" + "path": "/v18/customers/{customer_id=*}/userLists:mutate" } ] } ] } ], - "configFile": "googleads_v17.yaml", + "configFile": "googleads_v18.yaml", "serviceConfigApiNames": [ - "google.ads.googleads.v17.services.AccountBudgetProposalService", - "google.ads.googleads.v17.services.AccountLinkService", - "google.ads.googleads.v17.services.AdGroupAdLabelService", - "google.ads.googleads.v17.services.AdGroupAdService", - "google.ads.googleads.v17.services.AdGroupAssetService", - "google.ads.googleads.v17.services.AdGroupAssetSetService", - "google.ads.googleads.v17.services.AdGroupBidModifierService", - "google.ads.googleads.v17.services.AdGroupCriterionCustomizerService", - "google.ads.googleads.v17.services.AdGroupCriterionLabelService", - "google.ads.googleads.v17.services.AdGroupCriterionService", - "google.ads.googleads.v17.services.AdGroupCustomizerService", - "google.ads.googleads.v17.services.AdGroupExtensionSettingService", - "google.ads.googleads.v17.services.AdGroupFeedService", - "google.ads.googleads.v17.services.AdGroupLabelService", - "google.ads.googleads.v17.services.AdGroupService", - "google.ads.googleads.v17.services.AdParameterService", - "google.ads.googleads.v17.services.AdService", - "google.ads.googleads.v17.services.AssetGroupAssetService", - "google.ads.googleads.v17.services.AssetGroupListingGroupFilterService", - "google.ads.googleads.v17.services.AssetGroupService", - "google.ads.googleads.v17.services.AssetGroupSignalService", - "google.ads.googleads.v17.services.AssetService", - "google.ads.googleads.v17.services.AssetSetAssetService", - "google.ads.googleads.v17.services.AssetSetService", - "google.ads.googleads.v17.services.AudienceInsightsService", - "google.ads.googleads.v17.services.AudienceService", - "google.ads.googleads.v17.services.BatchJobService", - "google.ads.googleads.v17.services.BiddingDataExclusionService", - "google.ads.googleads.v17.services.BiddingSeasonalityAdjustmentService", - "google.ads.googleads.v17.services.BiddingStrategyService", - "google.ads.googleads.v17.services.BillingSetupService", - "google.ads.googleads.v17.services.BrandSuggestionService", - "google.ads.googleads.v17.services.CampaignAssetService", - "google.ads.googleads.v17.services.CampaignAssetSetService", - "google.ads.googleads.v17.services.CampaignBidModifierService", - "google.ads.googleads.v17.services.CampaignBudgetService", - "google.ads.googleads.v17.services.CampaignConversionGoalService", - "google.ads.googleads.v17.services.CampaignCriterionService", - "google.ads.googleads.v17.services.CampaignCustomizerService", - "google.ads.googleads.v17.services.CampaignDraftService", - "google.ads.googleads.v17.services.CampaignExtensionSettingService", - "google.ads.googleads.v17.services.CampaignFeedService", - "google.ads.googleads.v17.services.CampaignGroupService", - "google.ads.googleads.v17.services.CampaignLabelService", - "google.ads.googleads.v17.services.CampaignLifecycleGoalService", - "google.ads.googleads.v17.services.CampaignService", - "google.ads.googleads.v17.services.CampaignSharedSetService", - "google.ads.googleads.v17.services.ConversionActionService", - "google.ads.googleads.v17.services.ConversionAdjustmentUploadService", - "google.ads.googleads.v17.services.ConversionCustomVariableService", - "google.ads.googleads.v17.services.ConversionGoalCampaignConfigService", - "google.ads.googleads.v17.services.ConversionUploadService", - "google.ads.googleads.v17.services.ConversionValueRuleService", - "google.ads.googleads.v17.services.ConversionValueRuleSetService", - "google.ads.googleads.v17.services.CustomAudienceService", - "google.ads.googleads.v17.services.CustomConversionGoalService", - "google.ads.googleads.v17.services.CustomInterestService", - "google.ads.googleads.v17.services.CustomerAssetService", - "google.ads.googleads.v17.services.CustomerAssetSetService", - "google.ads.googleads.v17.services.CustomerClientLinkService", - "google.ads.googleads.v17.services.CustomerConversionGoalService", - "google.ads.googleads.v17.services.CustomerCustomizerService", - "google.ads.googleads.v17.services.CustomerExtensionSettingService", - "google.ads.googleads.v17.services.CustomerFeedService", - "google.ads.googleads.v17.services.CustomerLabelService", - "google.ads.googleads.v17.services.CustomerLifecycleGoalService", - "google.ads.googleads.v17.services.CustomerManagerLinkService", - "google.ads.googleads.v17.services.CustomerNegativeCriterionService", - "google.ads.googleads.v17.services.CustomerService", - "google.ads.googleads.v17.services.CustomerSkAdNetworkConversionValueSchemaService", - "google.ads.googleads.v17.services.CustomerUserAccessInvitationService", - "google.ads.googleads.v17.services.CustomerUserAccessService", - "google.ads.googleads.v17.services.CustomizerAttributeService", - "google.ads.googleads.v17.services.ExperimentArmService", - "google.ads.googleads.v17.services.ExperimentService", - "google.ads.googleads.v17.services.ExtensionFeedItemService", - "google.ads.googleads.v17.services.FeedItemService", - "google.ads.googleads.v17.services.FeedItemSetLinkService", - "google.ads.googleads.v17.services.FeedItemSetService", - "google.ads.googleads.v17.services.FeedItemTargetService", - "google.ads.googleads.v17.services.FeedMappingService", - "google.ads.googleads.v17.services.FeedService", - "google.ads.googleads.v17.services.GeoTargetConstantService", - "google.ads.googleads.v17.services.GoogleAdsFieldService", - "google.ads.googleads.v17.services.GoogleAdsService", - "google.ads.googleads.v17.services.IdentityVerificationService", - "google.ads.googleads.v17.services.InvoiceService", - "google.ads.googleads.v17.services.KeywordPlanAdGroupKeywordService", - "google.ads.googleads.v17.services.KeywordPlanAdGroupService", - "google.ads.googleads.v17.services.KeywordPlanCampaignKeywordService", - "google.ads.googleads.v17.services.KeywordPlanCampaignService", - "google.ads.googleads.v17.services.KeywordPlanIdeaService", - "google.ads.googleads.v17.services.KeywordPlanService", - "google.ads.googleads.v17.services.KeywordThemeConstantService", - "google.ads.googleads.v17.services.LabelService", - "google.ads.googleads.v17.services.LocalServicesLeadService", - "google.ads.googleads.v17.services.OfflineUserDataJobService", - "google.ads.googleads.v17.services.PaymentsAccountService", - "google.ads.googleads.v17.services.ProductLinkInvitationService", - "google.ads.googleads.v17.services.ProductLinkService", - "google.ads.googleads.v17.services.ReachPlanService", - "google.ads.googleads.v17.services.RecommendationService", - "google.ads.googleads.v17.services.RecommendationSubscriptionService", - "google.ads.googleads.v17.services.RemarketingActionService", - "google.ads.googleads.v17.services.SharedCriterionService", - "google.ads.googleads.v17.services.SharedSetService", - "google.ads.googleads.v17.services.SmartCampaignSettingService", - "google.ads.googleads.v17.services.SmartCampaignSuggestService", - "google.ads.googleads.v17.services.ThirdPartyAppAnalyticsLinkService", - "google.ads.googleads.v17.services.TravelAssetSuggestionService", - "google.ads.googleads.v17.services.UserDataService", - "google.ads.googleads.v17.services.UserListCustomerTypeService", - "google.ads.googleads.v17.services.UserListService" + "google.ads.googleads.v18.services.AccountBudgetProposalService", + "google.ads.googleads.v18.services.AccountLinkService", + "google.ads.googleads.v18.services.AdGroupAdLabelService", + "google.ads.googleads.v18.services.AdGroupAdService", + "google.ads.googleads.v18.services.AdGroupAssetService", + "google.ads.googleads.v18.services.AdGroupAssetSetService", + "google.ads.googleads.v18.services.AdGroupBidModifierService", + "google.ads.googleads.v18.services.AdGroupCriterionCustomizerService", + "google.ads.googleads.v18.services.AdGroupCriterionLabelService", + "google.ads.googleads.v18.services.AdGroupCriterionService", + "google.ads.googleads.v18.services.AdGroupCustomizerService", + "google.ads.googleads.v18.services.AdGroupExtensionSettingService", + "google.ads.googleads.v18.services.AdGroupFeedService", + "google.ads.googleads.v18.services.AdGroupLabelService", + "google.ads.googleads.v18.services.AdGroupService", + "google.ads.googleads.v18.services.AdParameterService", + "google.ads.googleads.v18.services.AdService", + "google.ads.googleads.v18.services.AssetGroupAssetService", + "google.ads.googleads.v18.services.AssetGroupListingGroupFilterService", + "google.ads.googleads.v18.services.AssetGroupService", + "google.ads.googleads.v18.services.AssetGroupSignalService", + "google.ads.googleads.v18.services.AssetService", + "google.ads.googleads.v18.services.AssetSetAssetService", + "google.ads.googleads.v18.services.AssetSetService", + "google.ads.googleads.v18.services.AudienceInsightsService", + "google.ads.googleads.v18.services.AudienceService", + "google.ads.googleads.v18.services.BatchJobService", + "google.ads.googleads.v18.services.BiddingDataExclusionService", + "google.ads.googleads.v18.services.BiddingSeasonalityAdjustmentService", + "google.ads.googleads.v18.services.BiddingStrategyService", + "google.ads.googleads.v18.services.BillingSetupService", + "google.ads.googleads.v18.services.BrandSuggestionService", + "google.ads.googleads.v18.services.CampaignAssetService", + "google.ads.googleads.v18.services.CampaignAssetSetService", + "google.ads.googleads.v18.services.CampaignBidModifierService", + "google.ads.googleads.v18.services.CampaignBudgetService", + "google.ads.googleads.v18.services.CampaignConversionGoalService", + "google.ads.googleads.v18.services.CampaignCriterionService", + "google.ads.googleads.v18.services.CampaignCustomizerService", + "google.ads.googleads.v18.services.CampaignDraftService", + "google.ads.googleads.v18.services.CampaignExtensionSettingService", + "google.ads.googleads.v18.services.CampaignFeedService", + "google.ads.googleads.v18.services.CampaignGroupService", + "google.ads.googleads.v18.services.CampaignLabelService", + "google.ads.googleads.v18.services.CampaignLifecycleGoalService", + "google.ads.googleads.v18.services.CampaignService", + "google.ads.googleads.v18.services.CampaignSharedSetService", + "google.ads.googleads.v18.services.ContentCreatorInsightsService", + "google.ads.googleads.v18.services.ConversionActionService", + "google.ads.googleads.v18.services.ConversionAdjustmentUploadService", + "google.ads.googleads.v18.services.ConversionCustomVariableService", + "google.ads.googleads.v18.services.ConversionGoalCampaignConfigService", + "google.ads.googleads.v18.services.ConversionUploadService", + "google.ads.googleads.v18.services.ConversionValueRuleService", + "google.ads.googleads.v18.services.ConversionValueRuleSetService", + "google.ads.googleads.v18.services.CustomAudienceService", + "google.ads.googleads.v18.services.CustomConversionGoalService", + "google.ads.googleads.v18.services.CustomInterestService", + "google.ads.googleads.v18.services.CustomerAssetService", + "google.ads.googleads.v18.services.CustomerAssetSetService", + "google.ads.googleads.v18.services.CustomerClientLinkService", + "google.ads.googleads.v18.services.CustomerConversionGoalService", + "google.ads.googleads.v18.services.CustomerCustomizerService", + "google.ads.googleads.v18.services.CustomerExtensionSettingService", + "google.ads.googleads.v18.services.CustomerFeedService", + "google.ads.googleads.v18.services.CustomerLabelService", + "google.ads.googleads.v18.services.CustomerLifecycleGoalService", + "google.ads.googleads.v18.services.CustomerManagerLinkService", + "google.ads.googleads.v18.services.CustomerNegativeCriterionService", + "google.ads.googleads.v18.services.CustomerService", + "google.ads.googleads.v18.services.CustomerSkAdNetworkConversionValueSchemaService", + "google.ads.googleads.v18.services.CustomerUserAccessInvitationService", + "google.ads.googleads.v18.services.CustomerUserAccessService", + "google.ads.googleads.v18.services.CustomizerAttributeService", + "google.ads.googleads.v18.services.DataLinkService", + "google.ads.googleads.v18.services.ExperimentArmService", + "google.ads.googleads.v18.services.ExperimentService", + "google.ads.googleads.v18.services.ExtensionFeedItemService", + "google.ads.googleads.v18.services.FeedItemService", + "google.ads.googleads.v18.services.FeedItemSetLinkService", + "google.ads.googleads.v18.services.FeedItemSetService", + "google.ads.googleads.v18.services.FeedItemTargetService", + "google.ads.googleads.v18.services.FeedMappingService", + "google.ads.googleads.v18.services.FeedService", + "google.ads.googleads.v18.services.GeoTargetConstantService", + "google.ads.googleads.v18.services.GoogleAdsFieldService", + "google.ads.googleads.v18.services.GoogleAdsService", + "google.ads.googleads.v18.services.IdentityVerificationService", + "google.ads.googleads.v18.services.InvoiceService", + "google.ads.googleads.v18.services.KeywordPlanAdGroupKeywordService", + "google.ads.googleads.v18.services.KeywordPlanAdGroupService", + "google.ads.googleads.v18.services.KeywordPlanCampaignKeywordService", + "google.ads.googleads.v18.services.KeywordPlanCampaignService", + "google.ads.googleads.v18.services.KeywordPlanIdeaService", + "google.ads.googleads.v18.services.KeywordPlanService", + "google.ads.googleads.v18.services.KeywordThemeConstantService", + "google.ads.googleads.v18.services.LabelService", + "google.ads.googleads.v18.services.LocalServicesLeadService", + "google.ads.googleads.v18.services.OfflineUserDataJobService", + "google.ads.googleads.v18.services.PaymentsAccountService", + "google.ads.googleads.v18.services.ProductLinkInvitationService", + "google.ads.googleads.v18.services.ProductLinkService", + "google.ads.googleads.v18.services.ReachPlanService", + "google.ads.googleads.v18.services.RecommendationService", + "google.ads.googleads.v18.services.RecommendationSubscriptionService", + "google.ads.googleads.v18.services.RemarketingActionService", + "google.ads.googleads.v18.services.ShareablePreviewService", + "google.ads.googleads.v18.services.SharedCriterionService", + "google.ads.googleads.v18.services.SharedSetService", + "google.ads.googleads.v18.services.SmartCampaignSettingService", + "google.ads.googleads.v18.services.SmartCampaignSuggestService", + "google.ads.googleads.v18.services.ThirdPartyAppAnalyticsLinkService", + "google.ads.googleads.v18.services.TravelAssetSuggestionService", + "google.ads.googleads.v18.services.UserDataService", + "google.ads.googleads.v18.services.UserListCustomerTypeService", + "google.ads.googleads.v18.services.UserListService" ], "nameInServiceConfig": "googleads.googleapis.com" }, @@ -8250,56 +8452,56 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Ads.SearchAds360.V0.Common": 13, - "Google.Ads.SearchAds360.V0.Enums": 90, + "Google.Ads.SearchAds360.V0.Common": 14, + "Google.Ads.SearchAds360.V0.Enums": 91, "Google.Ads.SearchAds360.V0.Errors": 14, - "Google.Ads.SearchAds360.V0.Resources": 54, + "Google.Ads.SearchAds360.V0.Resources": 56, "Google.Ads.SearchAds360.V0.Services": 4 } }, "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/ads/searchads360/v0/common;common": 13, - "google.golang.org/genproto/googleapis/ads/searchads360/v0/enums;enums": 90, + "google.golang.org/genproto/googleapis/ads/searchads360/v0/common;common": 14, + "google.golang.org/genproto/googleapis/ads/searchads360/v0/enums;enums": 91, "google.golang.org/genproto/googleapis/ads/searchads360/v0/errors;errors": 14, - "google.golang.org/genproto/googleapis/ads/searchads360/v0/resources;resources": 54, + "google.golang.org/genproto/googleapis/ads/searchads360/v0/resources;resources": 56, "google.golang.org/genproto/googleapis/ads/searchads360/v0/services;services": 4 } }, "java_multiple_files": { "valueCounts": { - "true": 175 + "true": 179 } }, "java_package": { "valueCounts": { - "com.google.ads.searchads360.v0.common": 13, - "com.google.ads.searchads360.v0.enums": 90, + "com.google.ads.searchads360.v0.common": 14, + "com.google.ads.searchads360.v0.enums": 91, "com.google.ads.searchads360.v0.errors": 14, - "com.google.ads.searchads360.v0.resources": 54, + "com.google.ads.searchads360.v0.resources": 56, "com.google.ads.searchads360.v0.services": 4 } }, "objc_class_prefix": { "valueCounts": { - "GASA360": 175 + "GASA360": 179 } }, "php_namespace": { "valueCounts": { - "Google\\Ads\\SearchAds360\\V0\\Common": 13, - "Google\\Ads\\SearchAds360\\V0\\Enums": 90, + "Google\\Ads\\SearchAds360\\V0\\Common": 14, + "Google\\Ads\\SearchAds360\\V0\\Enums": 91, "Google\\Ads\\SearchAds360\\V0\\Errors": 14, - "Google\\Ads\\SearchAds360\\V0\\Resources": 54, + "Google\\Ads\\SearchAds360\\V0\\Resources": 56, "Google\\Ads\\SearchAds360\\V0\\Services": 4 } }, "ruby_package": { "valueCounts": { - "Google::Ads::SearchAds360::V0::Common": 13, - "Google::Ads::SearchAds360::V0::Enums": 90, + "Google::Ads::SearchAds360::V0::Common": 14, + "Google::Ads::SearchAds360::V0::Enums": 91, "Google::Ads::SearchAds360::V0::Errors": 14, - "Google::Ads::SearchAds360::V0::Resources": 54, + "Google::Ads::SearchAds360::V0::Resources": 56, "Google::Ads::SearchAds360::V0::Services": 4 } } @@ -8566,17 +8768,17 @@ "options": { "go_package": { "valueCounts": { - "cloud.google.com/go/ai/generativelanguage/apiv1beta/generativelanguagepb;generativelanguagepb": 17 + "cloud.google.com/go/ai/generativelanguage/apiv1beta/generativelanguagepb;generativelanguagepb": 18 } }, "java_multiple_files": { "valueCounts": { - "true": 17 + "true": 18 } }, "java_package": { "valueCounts": { - "com.google.ai.generativelanguage.v1beta": 17 + "com.google.ai.generativelanguage.v1beta": 18 } } }, @@ -8971,6 +9173,23 @@ } ] }, + { + "shortName": "PredictionService", + "fullName": "google.ai.generativelanguage.v1beta.PredictionService", + "methods": [ + { + "shortName": "Predict", + "fullName": "google.ai.generativelanguage.v1beta.PredictionService.Predict", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{model=models/*}:predict" + } + ] + } + ] + }, { "shortName": "RetrieverService", "fullName": "google.ai.generativelanguage.v1beta.RetrieverService", @@ -9260,6 +9479,7 @@ "google.ai.generativelanguage.v1beta.GenerativeService", "google.ai.generativelanguage.v1beta.ModelService", "google.ai.generativelanguage.v1beta.PermissionService", + "google.ai.generativelanguage.v1beta.PredictionService", "google.ai.generativelanguage.v1beta.RetrieverService", "google.ai.generativelanguage.v1beta.TextService", "google.longrunning.Operations" @@ -9867,6 +10087,17 @@ } ] }, + { + "shortName": "CreateBigQueryLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateBigQueryLink", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/bigQueryLinks" + } + ] + }, { "shortName": "CreateCalculatedMetric", "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateCalculatedMetric", @@ -9977,6 +10208,17 @@ } ] }, + { + "shortName": "CreateEventEditRule", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateEventEditRule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*/dataStreams/*}/eventEditRules" + } + ] + }, { "shortName": "CreateExpandedDataSet", "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateExpandedDataSet", @@ -10010,6 +10252,17 @@ } ] }, + { + "shortName": "CreateKeyEvent", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateKeyEvent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*}/keyEvents" + } + ] + }, { "shortName": "CreateMeasurementProtocolSecret", "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateMeasurementProtocolSecret", @@ -10076,17 +10329,6 @@ } ] }, - { - "shortName": "CreateSubproperty", - "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateSubproperty", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1alpha/properties:createSubproperty" - } - ] - }, { "shortName": "CreateSubpropertyEventFilter", "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.CreateSubpropertyEventFilter", @@ -10135,6 +10377,17 @@ } ] }, + { + "shortName": "DeleteBigQueryLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteBigQueryLink", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/bigQueryLinks/*}" + } + ] + }, { "shortName": "DeleteCalculatedMetric", "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteCalculatedMetric", @@ -10223,6 +10476,17 @@ } ] }, + { + "shortName": "DeleteEventEditRule", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteEventEditRule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/dataStreams/*/eventEditRules/*}" + } + ] + }, { "shortName": "DeleteExpandedDataSet", "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteExpandedDataSet", @@ -10256,6 +10520,17 @@ } ] }, + { + "shortName": "DeleteKeyEvent", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteKeyEvent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1alpha/{name=properties/*/keyEvents/*}" + } + ] + }, { "shortName": "DeleteMeasurementProtocolSecret", "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.DeleteMeasurementProtocolSecret", @@ -10557,6 +10832,17 @@ } ] }, + { + "shortName": "GetEventEditRule", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetEventEditRule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/dataStreams/*/eventEditRules/*}" + } + ] + }, { "shortName": "GetExpandedDataSet", "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetExpandedDataSet", @@ -10590,6 +10876,17 @@ } ] }, + { + "shortName": "GetKeyEvent", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetKeyEvent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/keyEvents/*}" + } + ] + }, { "shortName": "GetMeasurementProtocolSecret", "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.GetMeasurementProtocolSecret", @@ -10836,6 +11133,17 @@ } ] }, + { + "shortName": "ListEventEditRules", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListEventEditRules", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*/dataStreams/*}/eventEditRules" + } + ] + }, { "shortName": "ListExpandedDataSets", "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListExpandedDataSets", @@ -10869,6 +11177,17 @@ } ] }, + { + "shortName": "ListKeyEvents", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListKeyEvents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=properties/*}/keyEvents" + } + ] + }, { "shortName": "ListMeasurementProtocolSecrets", "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ListMeasurementProtocolSecrets", @@ -10946,6 +11265,28 @@ } ] }, + { + "shortName": "ProvisionSubproperty", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ProvisionSubproperty", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/properties:provisionSubproperty" + } + ] + }, + { + "shortName": "ReorderEventEditRules", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.ReorderEventEditRules", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=properties/*/dataStreams/*}/eventEditRules:reorder" + } + ] + }, { "shortName": "RunAccessReport", "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.RunAccessReport", @@ -11031,6 +11372,17 @@ } ] }, + { + "shortName": "UpdateBigQueryLink", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateBigQueryLink", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1alpha/{bigquery_link.name=properties/*/bigQueryLinks/*}" + } + ] + }, { "shortName": "UpdateCalculatedMetric", "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateCalculatedMetric", @@ -11152,6 +11504,17 @@ } ] }, + { + "shortName": "UpdateEventEditRule", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateEventEditRule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1alpha/{event_edit_rule.name=properties/*/dataStreams/*/eventEditRules/*}" + } + ] + }, { "shortName": "UpdateExpandedDataSet", "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateExpandedDataSet", @@ -11185,6 +11548,17 @@ } ] }, + { + "shortName": "UpdateKeyEvent", + "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateKeyEvent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1alpha/{key_event.name=properties/*/keyEvents/*}" + } + ] + }, { "shortName": "UpdateMeasurementProtocolSecret", "fullName": "google.analytics.admin.v1alpha.AnalyticsAdminService.UpdateMeasurementProtocolSecret", @@ -11265,7 +11639,7 @@ "options": { "go_package": { "valueCounts": { - "google.golang.org/genproto/googleapis/analytics/admin/v1beta;admin": 3 + "cloud.google.com/go/analytics/admin/apiv1beta/adminpb;adminpb": 3 } }, "java_multiple_files": { @@ -11383,6 +11757,17 @@ } ] }, + { + "shortName": "CreateKeyEvent", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.CreateKeyEvent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{parent=properties/*}/keyEvents" + } + ] + }, { "shortName": "CreateMeasurementProtocolSecret", "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.CreateMeasurementProtocolSecret", @@ -11460,6 +11845,17 @@ } ] }, + { + "shortName": "DeleteKeyEvent", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.DeleteKeyEvent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta/{name=properties/*/keyEvents/*}" + } + ] + }, { "shortName": "DeleteMeasurementProtocolSecret", "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.DeleteMeasurementProtocolSecret", @@ -11559,6 +11955,17 @@ } ] }, + { + "shortName": "GetKeyEvent", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.GetKeyEvent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta/{name=properties/*/keyEvents/*}" + } + ] + }, { "shortName": "GetMeasurementProtocolSecret", "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.GetMeasurementProtocolSecret", @@ -11669,6 +12076,17 @@ } ] }, + { + "shortName": "ListKeyEvents", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.ListKeyEvents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta/{parent=properties/*}/keyEvents" + } + ] + }, { "shortName": "ListMeasurementProtocolSecrets", "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.ListMeasurementProtocolSecrets", @@ -11805,6 +12223,17 @@ } ] }, + { + "shortName": "UpdateKeyEvent", + "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.UpdateKeyEvent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta/{key_event.name=properties/*/keyEvents/*}" + } + ] + }, { "shortName": "UpdateMeasurementProtocolSecret", "fullName": "google.analytics.admin.v1beta.AnalyticsAdminService.UpdateMeasurementProtocolSecret", @@ -11916,6 +12345,17 @@ } ] }, + { + "shortName": "GetPropertyQuotasSnapshot", + "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData.GetPropertyQuotasSnapshot", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=properties/*/propertyQuotasSnapshot}" + } + ] + }, { "shortName": "GetRecurringAudienceList", "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData.GetRecurringAudienceList", @@ -16545,6 +16985,17 @@ } ] }, + { + "shortName": "SearchSpaces", + "fullName": "google.chat.v1.ChatService.SearchSpaces", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/spaces:search" + } + ] + }, { "shortName": "SetUpSpace", "fullName": "google.chat.v1.ChatService.SetUpSpace", @@ -17155,7 +17606,7 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.AIPlatform.V1": 106, + "Google.Cloud.AIPlatform.V1": 109, "Google.Cloud.AIPlatform.V1.Schema.Predict.Instance": 9, "Google.Cloud.AIPlatform.V1.Schema.Predict.Params": 6, "Google.Cloud.AIPlatform.V1.Schema.Predict.Prediction": 10, @@ -17164,7 +17615,7 @@ }, "go_package": { "valueCounts": { - "cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb": 106, + "cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb": 109, "cloud.google.com/go/aiplatform/apiv1/schema/predict/instance/instancepb;instancepb": 9, "cloud.google.com/go/aiplatform/apiv1/schema/predict/params/paramspb;paramspb": 6, "cloud.google.com/go/aiplatform/apiv1/schema/predict/prediction/predictionpb;predictionpb": 10, @@ -17173,12 +17624,12 @@ }, "java_multiple_files": { "valueCounts": { - "true": 142 + "true": 145 } }, "java_package": { "valueCounts": { - "com.google.cloud.aiplatform.v1": 106, + "com.google.cloud.aiplatform.v1": 109, "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, @@ -17187,7 +17638,7 @@ }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\AIPlatform\\V1": 106, + "Google\\Cloud\\AIPlatform\\V1": 109, "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Instance": 9, "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Params": 6, "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Prediction": 10, @@ -17196,7 +17647,7 @@ }, "ruby_package": { "valueCounts": { - "Google::Cloud::AIPlatform::V1": 105, + "Google::Cloud::AIPlatform::V1": 108, "Google::Cloud::AIPlatform::V1::Schema::Predict::Instance": 9, "Google::Cloud::AIPlatform::V1::Schema::Predict::Params": 6, "Google::Cloud::AIPlatform::V1::Schema::Predict::Prediction": 10, @@ -17218,6 +17669,10 @@ { "httpMethod": "POST", "path": "/v1/{parent=projects/*/locations/*}/datasets" + }, + { + "httpMethod": "POST", + "path": "/v1/datasets" } ] }, @@ -17229,6 +17684,10 @@ { "httpMethod": "POST", "path": "/v1/{parent=projects/*/locations/*/datasets/*}/datasetVersions" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=datasets/*}/datasetVersions" } ] }, @@ -17240,6 +17699,10 @@ { "httpMethod": "DELETE", "path": "/v1/{name=projects/*/locations/*/datasets/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=datasets/*}" } ] }, @@ -17251,6 +17714,10 @@ { "httpMethod": "DELETE", "path": "/v1/{name=projects/*/locations/*/datasets/*/datasetVersions/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=datasets/*/datasetVersions/*}" } ] }, @@ -17295,6 +17762,10 @@ { "httpMethod": "GET", "path": "/v1/{name=projects/*/locations/*/datasets/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=datasets/*}" } ] }, @@ -17306,6 +17777,10 @@ { "httpMethod": "GET", "path": "/v1/{name=projects/*/locations/*/datasets/*/datasetVersions/*}" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=datasets/*/datasetVersions/*}" } ] }, @@ -17350,6 +17825,10 @@ { "httpMethod": "GET", "path": "/v1/{parent=projects/*/locations/*/datasets/*}/datasetVersions" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=datasets/*}/datasetVersions" } ] }, @@ -17361,6 +17840,10 @@ { "httpMethod": "GET", "path": "/v1/{parent=projects/*/locations/*}/datasets" + }, + { + "httpMethod": "GET", + "path": "/v1/datasets" } ] }, @@ -17383,6 +17866,10 @@ { "httpMethod": "GET", "path": "/v1/{name=projects/*/locations/*/datasets/*/datasetVersions/*}:restore" + }, + { + "httpMethod": "GET", + "path": "/v1/{name=datasets/*/datasetVersions/*}:restore" } ] }, @@ -17405,6 +17892,10 @@ { "httpMethod": "PATCH", "path": "/v1/{dataset.name=projects/*/locations/*/datasets/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{dataset.name=datasets/*}" } ] }, @@ -17416,6 +17907,10 @@ { "httpMethod": "PATCH", "path": "/v1/{dataset_version.name=projects/*/locations/*/datasets/*/datasetVersions/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{dataset_version.name=datasets/*/datasetVersions/*}" } ] } @@ -17587,6 +18082,23 @@ } ] }, + { + "shortName": "EvaluationService", + "fullName": "google.cloud.aiplatform.v1.EvaluationService", + "methods": [ + { + "shortName": "EvaluateInstances", + "fullName": "google.cloud.aiplatform.v1.EvaluationService.EvaluateInstances", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{location=projects/*/locations/*}:evaluateInstances" + } + ] + } + ] + }, { "shortName": "FeatureOnlineStoreAdminService", "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService", @@ -18203,6 +18715,17 @@ "path": "/v1/{parent=projects/*/locations/*}/tuningJobs" } ] + }, + { + "shortName": "RebaseTunedModel", + "fullName": "google.cloud.aiplatform.v1.GenAiTuningService.RebaseTunedModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/tuningJobs:rebaseTunedModel" + } + ] } ] }, @@ -18790,6 +19313,14 @@ { "httpMethod": "POST", "path": "/v1/{endpoint=projects/*/locations/*/publishers/*/models/*}:computeTokens" + }, + { + "httpMethod": "POST", + "path": "/v1/{endpoint=endpoints/*}:computeTokens" + }, + { + "httpMethod": "POST", + "path": "/v1/{endpoint=publishers/*/models/*}:computeTokens" } ] }, @@ -18805,6 +19336,14 @@ { "httpMethod": "POST", "path": "/v1/{endpoint=projects/*/locations/*/publishers/*/models/*}:countTokens" + }, + { + "httpMethod": "POST", + "path": "/v1/{endpoint=endpoints/*}:countTokens" + }, + { + "httpMethod": "POST", + "path": "/v1/{endpoint=publishers/*/models/*}:countTokens" } ] } @@ -19460,6 +19999,17 @@ } ] }, + { + "shortName": "CreateNotebookExecutionJob", + "fullName": "google.cloud.aiplatform.v1.NotebookService.CreateNotebookExecutionJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/notebookExecutionJobs" + } + ] + }, { "shortName": "CreateNotebookRuntimeTemplate", "fullName": "google.cloud.aiplatform.v1.NotebookService.CreateNotebookRuntimeTemplate", @@ -19471,6 +20021,17 @@ } ] }, + { + "shortName": "DeleteNotebookExecutionJob", + "fullName": "google.cloud.aiplatform.v1.NotebookService.DeleteNotebookExecutionJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/notebookExecutionJobs/*}" + } + ] + }, { "shortName": "DeleteNotebookRuntime", "fullName": "google.cloud.aiplatform.v1.NotebookService.DeleteNotebookRuntime", @@ -19493,6 +20054,17 @@ } ] }, + { + "shortName": "GetNotebookExecutionJob", + "fullName": "google.cloud.aiplatform.v1.NotebookService.GetNotebookExecutionJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/notebookExecutionJobs/*}" + } + ] + }, { "shortName": "GetNotebookRuntime", "fullName": "google.cloud.aiplatform.v1.NotebookService.GetNotebookRuntime", @@ -19515,6 +20087,17 @@ } ] }, + { + "shortName": "ListNotebookExecutionJobs", + "fullName": "google.cloud.aiplatform.v1.NotebookService.ListNotebookExecutionJobs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/notebookExecutionJobs" + } + ] + }, { "shortName": "ListNotebookRuntimeTemplates", "fullName": "google.cloud.aiplatform.v1.NotebookService.ListNotebookRuntimeTemplates", @@ -19831,6 +20414,14 @@ { "httpMethod": "POST", "path": "/v1/{model=projects/*/locations/*/publishers/*/models/*}:generateContent" + }, + { + "httpMethod": "POST", + "path": "/v1/{model=endpoints/*}:generateContent" + }, + { + "httpMethod": "POST", + "path": "/v1/{model=publishers/*/models/*}:generateContent" } ] }, @@ -19901,6 +20492,14 @@ { "httpMethod": "POST", "path": "/v1/{model=projects/*/locations/*/publishers/*/models/*}:streamGenerateContent" + }, + { + "httpMethod": "POST", + "path": "/v1/{model=endpoints/*}:streamGenerateContent" + }, + { + "httpMethod": "POST", + "path": "/v1/{model=publishers/*/models/*}:streamGenerateContent" } ] }, @@ -20588,6 +21187,7 @@ "google.cloud.aiplatform.v1.DatasetService", "google.cloud.aiplatform.v1.DeploymentResourcePoolService", "google.cloud.aiplatform.v1.EndpointService", + "google.cloud.aiplatform.v1.EvaluationService", "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService", "google.cloud.aiplatform.v1.FeatureOnlineStoreService", "google.cloud.aiplatform.v1.FeatureRegistryService", @@ -20639,7 +21239,7 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.AIPlatform.V1Beta1": 125, + "Google.Cloud.AIPlatform.V1Beta1": 128, "Google.Cloud.AIPlatform.V1Beta1.Schema": 6, "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Instance": 9, "Google.Cloud.AIPlatform.V1Beta1.Schema.Predict.Params": 6, @@ -20649,7 +21249,7 @@ }, "go_package": { "valueCounts": { - "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb": 125, + "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb": 128, "cloud.google.com/go/aiplatform/apiv1beta1/schema/predict/instance/instancepb;instancepb": 9, "cloud.google.com/go/aiplatform/apiv1beta1/schema/predict/params/paramspb;paramspb": 6, "cloud.google.com/go/aiplatform/apiv1beta1/schema/predict/prediction/predictionpb;predictionpb": 11, @@ -20659,12 +21259,12 @@ }, "java_multiple_files": { "valueCounts": { - "true": 169 + "true": 172 } }, "java_package": { "valueCounts": { - "com.google.cloud.aiplatform.v1beta1": 125, + "com.google.cloud.aiplatform.v1beta1": 128, "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, @@ -20674,7 +21274,7 @@ }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\AIPlatform\\V1beta1": 125, + "Google\\Cloud\\AIPlatform\\V1beta1": 128, "Google\\Cloud\\AIPlatform\\V1beta1\\Schema": 6, "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Instance": 9, "Google\\Cloud\\AIPlatform\\V1beta1\\Schema\\Predict\\Params": 6, @@ -20684,7 +21284,7 @@ }, "ruby_package": { "valueCounts": { - "Google::Cloud::AIPlatform::V1beta1": 124, + "Google::Cloud::AIPlatform::V1beta1": 127, "Google::Cloud::AIPlatform::V1beta1::Schema": 6, "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Instance": 9, "Google::Cloud::AIPlatform::V1beta1::Schema::Predict::Params": 6, @@ -20707,6 +21307,10 @@ { "httpMethod": "POST", "path": "/v1beta1/{parent=projects/*/locations/*}/datasets" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/datasets" } ] }, @@ -20718,6 +21322,10 @@ { "httpMethod": "POST", "path": "/v1beta1/{parent=projects/*/locations/*/datasets/*}/datasetVersions" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{parent=datasets/*}/datasetVersions" } ] }, @@ -20729,6 +21337,10 @@ { "httpMethod": "DELETE", "path": "/v1beta1/{name=projects/*/locations/*/datasets/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=datasets/*}" } ] }, @@ -20740,6 +21352,10 @@ { "httpMethod": "DELETE", "path": "/v1beta1/{name=projects/*/locations/*/datasets/*/datasetVersions/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=datasets/*/datasetVersions/*}" } ] }, @@ -20784,6 +21400,10 @@ { "httpMethod": "GET", "path": "/v1beta1/{name=projects/*/locations/*/datasets/*}" + }, + { + "httpMethod": "GET", + "path": "/v1beta1/{name=datasets/*}" } ] }, @@ -20795,6 +21415,10 @@ { "httpMethod": "GET", "path": "/v1beta1/{name=projects/*/locations/*/datasets/*/datasetVersions/*}" + }, + { + "httpMethod": "GET", + "path": "/v1beta1/{name=datasets/*/datasetVersions/*}" } ] }, @@ -20839,6 +21463,10 @@ { "httpMethod": "GET", "path": "/v1beta1/{parent=projects/*/locations/*/datasets/*}/datasetVersions" + }, + { + "httpMethod": "GET", + "path": "/v1beta1/{parent=datasets/*}/datasetVersions" } ] }, @@ -20850,6 +21478,10 @@ { "httpMethod": "GET", "path": "/v1beta1/{parent=projects/*/locations/*}/datasets" + }, + { + "httpMethod": "GET", + "path": "/v1beta1/datasets" } ] }, @@ -20872,6 +21504,10 @@ { "httpMethod": "GET", "path": "/v1beta1/{name=projects/*/locations/*/datasets/*/datasetVersions/*}:restore" + }, + { + "httpMethod": "GET", + "path": "/v1beta1/{name=datasets/*/datasetVersions/*}:restore" } ] }, @@ -20894,6 +21530,10 @@ { "httpMethod": "PATCH", "path": "/v1beta1/{dataset.name=projects/*/locations/*/datasets/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1beta1/{dataset.name=datasets/*}" } ] }, @@ -20905,6 +21545,10 @@ { "httpMethod": "PATCH", "path": "/v1beta1/{dataset_version.name=projects/*/locations/*/datasets/*/datasetVersions/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1beta1/{dataset_version.name=datasets/*/datasetVersions/*}" } ] } @@ -21870,6 +22514,17 @@ "path": "/v1beta1/{parent=projects/*/locations/*}/tuningJobs" } ] + }, + { + "shortName": "RebaseTunedModel", + "fullName": "google.cloud.aiplatform.v1beta1.GenAiTuningService.RebaseTunedModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/tuningJobs:rebaseTunedModel" + } + ] } ] }, @@ -22457,6 +23112,14 @@ { "httpMethod": "POST", "path": "/v1beta1/{endpoint=projects/*/locations/*/publishers/*/models/*}:computeTokens" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{endpoint=endpoints/*}:computeTokens" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{endpoint=publishers/*/models/*}:computeTokens" } ] } @@ -23643,6 +24306,14 @@ { "httpMethod": "POST", "path": "/v1beta1/{endpoint=projects/*/locations/*/publishers/*/models/*}:countTokens" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{endpoint=endpoints/*}:countTokens" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{endpoint=publishers/*/models/*}:countTokens" } ] }, @@ -23691,6 +24362,14 @@ { "httpMethod": "POST", "path": "/v1beta1/{model=projects/*/locations/*/publishers/*/models/*}:generateContent" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{model=endpoints/*}:generateContent" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{model=publishers/*/models/*}:generateContent" } ] }, @@ -23761,6 +24440,14 @@ { "httpMethod": "POST", "path": "/v1beta1/{model=projects/*/locations/*/publishers/*/models/*}:streamGenerateContent" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{model=endpoints/*}:streamGenerateContent" + }, + { + "httpMethod": "POST", + "path": "/v1beta1/{model=publishers/*/models/*}:streamGenerateContent" } ] }, @@ -24441,6 +25128,17 @@ } ] }, + { + "shortName": "UpdateRagCorpus", + "fullName": "google.cloud.aiplatform.v1beta1.VertexRagDataService.UpdateRagCorpus", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta1/{rag_corpus.name=projects/*/locations/*/ragCorpora/*}" + } + ] + }, { "shortName": "UploadRagFile", "fullName": "google.cloud.aiplatform.v1beta1.VertexRagDataService.UploadRagFile", @@ -26955,6 +27653,748 @@ ], "nameInServiceConfig": "apigeeregistry.googleapis.com" }, + { + "id": "google.cloud.apihub.v1", + "directory": "google/cloud/apihub/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "apihub.googleapis.com", + "title": "API hub API", + "description": "", + "importDirectories": [ + "google/api", + "google/cloud/apihub/v1", + "google/longrunning", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.ApiHub.V1": 7 + } + }, + "go_package": { + "valueCounts": { + "cloud.google.com/go/apihub/apiv1/apihubpb;apihubpb": 7 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 7 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.apihub.v1": 7 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\ApiHub\\V1": 7 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::ApiHub::V1": 7 + } + } + }, + "services": [ + { + "shortName": "ApiHub", + "fullName": "google.cloud.apihub.v1.ApiHub", + "methods": [ + { + "shortName": "CreateApi", + "fullName": "google.cloud.apihub.v1.ApiHub.CreateApi", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/apis" + } + ] + }, + { + "shortName": "CreateAttribute", + "fullName": "google.cloud.apihub.v1.ApiHub.CreateAttribute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/attributes" + } + ] + }, + { + "shortName": "CreateDeployment", + "fullName": "google.cloud.apihub.v1.ApiHub.CreateDeployment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/deployments" + } + ] + }, + { + "shortName": "CreateExternalApi", + "fullName": "google.cloud.apihub.v1.ApiHub.CreateExternalApi", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/externalApis" + } + ] + }, + { + "shortName": "CreateSpec", + "fullName": "google.cloud.apihub.v1.ApiHub.CreateSpec", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/apis/*/versions/*}/specs" + } + ] + }, + { + "shortName": "CreateVersion", + "fullName": "google.cloud.apihub.v1.ApiHub.CreateVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/apis/*}/versions" + } + ] + }, + { + "shortName": "DeleteApi", + "fullName": "google.cloud.apihub.v1.ApiHub.DeleteApi", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/apis/*}" + } + ] + }, + { + "shortName": "DeleteAttribute", + "fullName": "google.cloud.apihub.v1.ApiHub.DeleteAttribute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/attributes/*}" + } + ] + }, + { + "shortName": "DeleteDeployment", + "fullName": "google.cloud.apihub.v1.ApiHub.DeleteDeployment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/deployments/*}" + } + ] + }, + { + "shortName": "DeleteExternalApi", + "fullName": "google.cloud.apihub.v1.ApiHub.DeleteExternalApi", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/externalApis/*}" + } + ] + }, + { + "shortName": "DeleteSpec", + "fullName": "google.cloud.apihub.v1.ApiHub.DeleteSpec", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}" + } + ] + }, + { + "shortName": "DeleteVersion", + "fullName": "google.cloud.apihub.v1.ApiHub.DeleteVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/apis/*/versions/*}" + } + ] + }, + { + "shortName": "GetApi", + "fullName": "google.cloud.apihub.v1.ApiHub.GetApi", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/apis/*}" + } + ] + }, + { + "shortName": "GetApiOperation", + "fullName": "google.cloud.apihub.v1.ApiHub.GetApiOperation", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/apis/*/versions/*/operations/*}" + } + ] + }, + { + "shortName": "GetAttribute", + "fullName": "google.cloud.apihub.v1.ApiHub.GetAttribute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/attributes/*}" + } + ] + }, + { + "shortName": "GetDefinition", + "fullName": "google.cloud.apihub.v1.ApiHub.GetDefinition", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/apis/*/versions/*/definitions/*}" + } + ] + }, + { + "shortName": "GetDeployment", + "fullName": "google.cloud.apihub.v1.ApiHub.GetDeployment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/deployments/*}" + } + ] + }, + { + "shortName": "GetExternalApi", + "fullName": "google.cloud.apihub.v1.ApiHub.GetExternalApi", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/externalApis/*}" + } + ] + }, + { + "shortName": "GetSpec", + "fullName": "google.cloud.apihub.v1.ApiHub.GetSpec", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}" + } + ] + }, + { + "shortName": "GetSpecContents", + "fullName": "google.cloud.apihub.v1.ApiHub.GetSpecContents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}:contents" + } + ] + }, + { + "shortName": "GetVersion", + "fullName": "google.cloud.apihub.v1.ApiHub.GetVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/apis/*/versions/*}" + } + ] + }, + { + "shortName": "ListApiOperations", + "fullName": "google.cloud.apihub.v1.ApiHub.ListApiOperations", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/apis/*/versions/*}/operations" + } + ] + }, + { + "shortName": "ListApis", + "fullName": "google.cloud.apihub.v1.ApiHub.ListApis", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/apis" + } + ] + }, + { + "shortName": "ListAttributes", + "fullName": "google.cloud.apihub.v1.ApiHub.ListAttributes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/attributes" + } + ] + }, + { + "shortName": "ListDeployments", + "fullName": "google.cloud.apihub.v1.ApiHub.ListDeployments", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/deployments" + } + ] + }, + { + "shortName": "ListExternalApis", + "fullName": "google.cloud.apihub.v1.ApiHub.ListExternalApis", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/externalApis" + } + ] + }, + { + "shortName": "ListSpecs", + "fullName": "google.cloud.apihub.v1.ApiHub.ListSpecs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/apis/*/versions/*}/specs" + } + ] + }, + { + "shortName": "ListVersions", + "fullName": "google.cloud.apihub.v1.ApiHub.ListVersions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/apis/*}/versions" + } + ] + }, + { + "shortName": "SearchResources", + "fullName": "google.cloud.apihub.v1.ApiHub.SearchResources", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{location=projects/*/locations/*}:searchResources" + } + ] + }, + { + "shortName": "UpdateApi", + "fullName": "google.cloud.apihub.v1.ApiHub.UpdateApi", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{api.name=projects/*/locations/*/apis/*}" + } + ] + }, + { + "shortName": "UpdateAttribute", + "fullName": "google.cloud.apihub.v1.ApiHub.UpdateAttribute", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{attribute.name=projects/*/locations/*/attributes/*}" + } + ] + }, + { + "shortName": "UpdateDeployment", + "fullName": "google.cloud.apihub.v1.ApiHub.UpdateDeployment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{deployment.name=projects/*/locations/*/deployments/*}" + } + ] + }, + { + "shortName": "UpdateExternalApi", + "fullName": "google.cloud.apihub.v1.ApiHub.UpdateExternalApi", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{external_api.name=projects/*/locations/*/externalApis/*}" + } + ] + }, + { + "shortName": "UpdateSpec", + "fullName": "google.cloud.apihub.v1.ApiHub.UpdateSpec", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{spec.name=projects/*/locations/*/apis/*/versions/*/specs/*}" + } + ] + }, + { + "shortName": "UpdateVersion", + "fullName": "google.cloud.apihub.v1.ApiHub.UpdateVersion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{version.name=projects/*/locations/*/apis/*/versions/*}" + } + ] + } + ] + }, + { + "shortName": "ApiHubDependencies", + "fullName": "google.cloud.apihub.v1.ApiHubDependencies", + "methods": [ + { + "shortName": "CreateDependency", + "fullName": "google.cloud.apihub.v1.ApiHubDependencies.CreateDependency", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/dependencies" + } + ] + }, + { + "shortName": "DeleteDependency", + "fullName": "google.cloud.apihub.v1.ApiHubDependencies.DeleteDependency", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/dependencies/*}" + } + ] + }, + { + "shortName": "GetDependency", + "fullName": "google.cloud.apihub.v1.ApiHubDependencies.GetDependency", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/dependencies/*}" + } + ] + }, + { + "shortName": "ListDependencies", + "fullName": "google.cloud.apihub.v1.ApiHubDependencies.ListDependencies", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/dependencies" + } + ] + }, + { + "shortName": "UpdateDependency", + "fullName": "google.cloud.apihub.v1.ApiHubDependencies.UpdateDependency", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{dependency.name=projects/*/locations/*/dependencies/*}" + } + ] + } + ] + }, + { + "shortName": "ApiHubPlugin", + "fullName": "google.cloud.apihub.v1.ApiHubPlugin", + "methods": [ + { + "shortName": "DisablePlugin", + "fullName": "google.cloud.apihub.v1.ApiHubPlugin.DisablePlugin", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/plugins/*}:disable" + } + ] + }, + { + "shortName": "EnablePlugin", + "fullName": "google.cloud.apihub.v1.ApiHubPlugin.EnablePlugin", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/plugins/*}:enable" + } + ] + }, + { + "shortName": "GetPlugin", + "fullName": "google.cloud.apihub.v1.ApiHubPlugin.GetPlugin", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/plugins/*}" + } + ] + } + ] + }, + { + "shortName": "HostProjectRegistrationService", + "fullName": "google.cloud.apihub.v1.HostProjectRegistrationService", + "methods": [ + { + "shortName": "CreateHostProjectRegistration", + "fullName": "google.cloud.apihub.v1.HostProjectRegistrationService.CreateHostProjectRegistration", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/hostProjectRegistrations" + } + ] + }, + { + "shortName": "GetHostProjectRegistration", + "fullName": "google.cloud.apihub.v1.HostProjectRegistrationService.GetHostProjectRegistration", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/hostProjectRegistrations/*}" + } + ] + }, + { + "shortName": "ListHostProjectRegistrations", + "fullName": "google.cloud.apihub.v1.HostProjectRegistrationService.ListHostProjectRegistrations", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/hostProjectRegistrations" + } + ] + } + ] + }, + { + "shortName": "LintingService", + "fullName": "google.cloud.apihub.v1.LintingService", + "methods": [ + { + "shortName": "GetStyleGuide", + "fullName": "google.cloud.apihub.v1.LintingService.GetStyleGuide", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/plugins/*/styleGuide}" + } + ] + }, + { + "shortName": "GetStyleGuideContents", + "fullName": "google.cloud.apihub.v1.LintingService.GetStyleGuideContents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/plugins/*/styleGuide}:contents" + } + ] + }, + { + "shortName": "LintSpec", + "fullName": "google.cloud.apihub.v1.LintingService.LintSpec", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}:lint" + } + ] + }, + { + "shortName": "UpdateStyleGuide", + "fullName": "google.cloud.apihub.v1.LintingService.UpdateStyleGuide", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{style_guide.name=projects/*/locations/*/plugins/*/styleGuide}" + } + ] + } + ] + }, + { + "shortName": "Provisioning", + "fullName": "google.cloud.apihub.v1.Provisioning", + "methods": [ + { + "shortName": "CreateApiHubInstance", + "fullName": "google.cloud.apihub.v1.Provisioning.CreateApiHubInstance", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/apiHubInstances" + } + ] + }, + { + "shortName": "GetApiHubInstance", + "fullName": "google.cloud.apihub.v1.Provisioning.GetApiHubInstance", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/apiHubInstances/*}" + } + ] + }, + { + "shortName": "LookupApiHubInstance", + "fullName": "google.cloud.apihub.v1.Provisioning.LookupApiHubInstance", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/apiHubInstances:lookup" + } + ] + } + ] + }, + { + "shortName": "RuntimeProjectAttachmentService", + "fullName": "google.cloud.apihub.v1.RuntimeProjectAttachmentService", + "methods": [ + { + "shortName": "CreateRuntimeProjectAttachment", + "fullName": "google.cloud.apihub.v1.RuntimeProjectAttachmentService.CreateRuntimeProjectAttachment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/runtimeProjectAttachments" + } + ] + }, + { + "shortName": "DeleteRuntimeProjectAttachment", + "fullName": "google.cloud.apihub.v1.RuntimeProjectAttachmentService.DeleteRuntimeProjectAttachment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/runtimeProjectAttachments/*}" + } + ] + }, + { + "shortName": "GetRuntimeProjectAttachment", + "fullName": "google.cloud.apihub.v1.RuntimeProjectAttachmentService.GetRuntimeProjectAttachment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/runtimeProjectAttachments/*}" + } + ] + }, + { + "shortName": "ListRuntimeProjectAttachments", + "fullName": "google.cloud.apihub.v1.RuntimeProjectAttachmentService.ListRuntimeProjectAttachments", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/runtimeProjectAttachments" + } + ] + }, + { + "shortName": "LookupRuntimeProjectAttachment", + "fullName": "google.cloud.apihub.v1.RuntimeProjectAttachmentService.LookupRuntimeProjectAttachment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*}:lookupRuntimeProjectAttachment" + } + ] + } + ] + } + ], + "configFile": "apihub_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.apihub.v1.ApiHub", + "google.cloud.apihub.v1.ApiHubDependencies", + "google.cloud.apihub.v1.ApiHubPlugin", + "google.cloud.apihub.v1.HostProjectRegistrationService", + "google.cloud.apihub.v1.LintingService", + "google.cloud.apihub.v1.Provisioning", + "google.cloud.apihub.v1.RuntimeProjectAttachmentService", + "google.cloud.location.Locations", + "google.longrunning.Operations" + ], + "nameInServiceConfig": "apihub.googleapis.com" + }, { "id": "google.cloud.apphub.v1", "directory": "google/cloud/apphub/v1", @@ -28892,38 +30332,41 @@ "description": "", "importDirectories": [ "google/api", + "google/cloud/backupdr/v1", "google/longrunning", - "google/protobuf" + "google/protobuf", + "google/rpc", + "google/type" ], "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.BackupDR.V1": 1 + "Google.Cloud.BackupDR.V1": 6 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/backupdr/apiv1/backupdrpb;backupdrpb": 1 + "cloud.google.com/go/backupdr/apiv1/backupdrpb;backupdrpb": 6 } }, "java_multiple_files": { "valueCounts": { - "true": 1 + "true": 6 } }, "java_package": { "valueCounts": { - "com.google.cloud.backupdr.v1": 1 + "com.google.cloud.backupdr.v1": 6 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\BackupDR\\V1": 1 + "Google\\Cloud\\BackupDR\\V1": 6 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::BackupDR::V1": 1 + "Google::Cloud::BackupDR::V1": 6 } } }, @@ -28932,6 +30375,39 @@ "shortName": "BackupDR", "fullName": "google.cloud.backupdr.v1.BackupDR", "methods": [ + { + "shortName": "CreateBackupPlan", + "fullName": "google.cloud.backupdr.v1.BackupDR.CreateBackupPlan", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/backupPlans" + } + ] + }, + { + "shortName": "CreateBackupPlanAssociation", + "fullName": "google.cloud.backupdr.v1.BackupDR.CreateBackupPlanAssociation", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/backupPlanAssociations" + } + ] + }, + { + "shortName": "CreateBackupVault", + "fullName": "google.cloud.backupdr.v1.BackupDR.CreateBackupVault", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/backupVaults" + } + ] + }, { "shortName": "CreateManagementServer", "fullName": "google.cloud.backupdr.v1.BackupDR.CreateManagementServer", @@ -28943,6 +30419,50 @@ } ] }, + { + "shortName": "DeleteBackup", + "fullName": "google.cloud.backupdr.v1.BackupDR.DeleteBackup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/backupVaults/*/dataSources/*/backups/*}" + } + ] + }, + { + "shortName": "DeleteBackupPlan", + "fullName": "google.cloud.backupdr.v1.BackupDR.DeleteBackupPlan", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/backupPlans/*}" + } + ] + }, + { + "shortName": "DeleteBackupPlanAssociation", + "fullName": "google.cloud.backupdr.v1.BackupDR.DeleteBackupPlanAssociation", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/backupPlanAssociations/*}" + } + ] + }, + { + "shortName": "DeleteBackupVault", + "fullName": "google.cloud.backupdr.v1.BackupDR.DeleteBackupVault", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/backupVaults/*}" + } + ] + }, { "shortName": "DeleteManagementServer", "fullName": "google.cloud.backupdr.v1.BackupDR.DeleteManagementServer", @@ -28954,6 +30474,72 @@ } ] }, + { + "shortName": "FetchUsableBackupVaults", + "fullName": "google.cloud.backupdr.v1.BackupDR.FetchUsableBackupVaults", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/backupVaults:fetchUsable" + } + ] + }, + { + "shortName": "GetBackup", + "fullName": "google.cloud.backupdr.v1.BackupDR.GetBackup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/backupVaults/*/dataSources/*/backups/*}" + } + ] + }, + { + "shortName": "GetBackupPlan", + "fullName": "google.cloud.backupdr.v1.BackupDR.GetBackupPlan", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/backupPlans/*}" + } + ] + }, + { + "shortName": "GetBackupPlanAssociation", + "fullName": "google.cloud.backupdr.v1.BackupDR.GetBackupPlanAssociation", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/backupPlanAssociations/*}" + } + ] + }, + { + "shortName": "GetBackupVault", + "fullName": "google.cloud.backupdr.v1.BackupDR.GetBackupVault", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/backupVaults/*}" + } + ] + }, + { + "shortName": "GetDataSource", + "fullName": "google.cloud.backupdr.v1.BackupDR.GetDataSource", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/backupVaults/*/dataSources/*}" + } + ] + }, { "shortName": "GetManagementServer", "fullName": "google.cloud.backupdr.v1.BackupDR.GetManagementServer", @@ -28965,6 +30551,61 @@ } ] }, + { + "shortName": "ListBackupPlanAssociations", + "fullName": "google.cloud.backupdr.v1.BackupDR.ListBackupPlanAssociations", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/backupPlanAssociations" + } + ] + }, + { + "shortName": "ListBackupPlans", + "fullName": "google.cloud.backupdr.v1.BackupDR.ListBackupPlans", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/backupPlans" + } + ] + }, + { + "shortName": "ListBackupVaults", + "fullName": "google.cloud.backupdr.v1.BackupDR.ListBackupVaults", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/backupVaults" + } + ] + }, + { + "shortName": "ListBackups", + "fullName": "google.cloud.backupdr.v1.BackupDR.ListBackups", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/backupVaults/*/dataSources/*}/backups" + } + ] + }, + { + "shortName": "ListDataSources", + "fullName": "google.cloud.backupdr.v1.BackupDR.ListDataSources", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/backupVaults/*}/dataSources" + } + ] + }, { "shortName": "ListManagementServers", "fullName": "google.cloud.backupdr.v1.BackupDR.ListManagementServers", @@ -28975,6 +30616,61 @@ "path": "/v1/{parent=projects/*/locations/*}/managementServers" } ] + }, + { + "shortName": "RestoreBackup", + "fullName": "google.cloud.backupdr.v1.BackupDR.RestoreBackup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/backupVaults/*/dataSources/*/backups/*}:restore" + } + ] + }, + { + "shortName": "TriggerBackup", + "fullName": "google.cloud.backupdr.v1.BackupDR.TriggerBackup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/backupPlanAssociations/*}:triggerBackup" + } + ] + }, + { + "shortName": "UpdateBackup", + "fullName": "google.cloud.backupdr.v1.BackupDR.UpdateBackup", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{backup.name=projects/*/locations/*/backupVaults/*/dataSources/*/backups/*}" + } + ] + }, + { + "shortName": "UpdateBackupVault", + "fullName": "google.cloud.backupdr.v1.BackupDR.UpdateBackupVault", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{backup_vault.name=projects/*/locations/*/backupVaults/*}" + } + ] + }, + { + "shortName": "UpdateDataSource", + "fullName": "google.cloud.backupdr.v1.BackupDR.UpdateDataSource", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{data_source.name=projects/*/locations/*/backupVaults/*/dataSources/*}" + } + ] } ] } @@ -29725,6 +31421,17 @@ "shortName": "BatchService", "fullName": "google.cloud.batch.v1alpha.BatchService", "methods": [ + { + "shortName": "CancelJob", + "fullName": "google.cloud.batch.v1alpha.BatchService.CancelJob", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{name=projects/*/locations/*/jobs/*}:cancel" + } + ] + }, { "shortName": "CreateJob", "fullName": "google.cloud.batch.v1alpha.BatchService.CreateJob", @@ -33104,6 +34811,109 @@ ], "nameInServiceConfig": "bigquerystorage.googleapis.com" }, + { + "id": "google.cloud.bigquery.storage.v1alpha", + "directory": "google/cloud/bigquery/storage/v1alpha", + "version": "v1alpha", + "majorVersion": "v1", + "hostName": "bigquerystorage.googleapis.com", + "title": "BigQuery Storage API", + "description": "", + "importDirectories": [ + "google/api", + "google/cloud/bigquery/storage/v1alpha", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.BigQuery.Storage.V1Alpha": 2 + } + }, + "go_package": { + "valueCounts": { + "cloud.google.com/go/bigquery/storage/apiv1alpha/storagepb;storagepb": 2 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 2 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.bigquery.storage.v1alpha": 2 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\BigQuery\\Storage\\V1alpha": 2 + } + } + }, + "services": [ + { + "shortName": "MetastorePartitionService", + "fullName": "google.cloud.bigquery.storage.v1alpha.MetastorePartitionService", + "methods": [ + { + "shortName": "BatchCreateMetastorePartitions", + "fullName": "google.cloud.bigquery.storage.v1alpha.MetastorePartitionService.BatchCreateMetastorePartitions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*/datasets/*/tables/*}/partitions:batchCreate" + } + ] + }, + { + "shortName": "BatchDeleteMetastorePartitions", + "fullName": "google.cloud.bigquery.storage.v1alpha.MetastorePartitionService.BatchDeleteMetastorePartitions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*/datasets/*/tables/*}/partitions:batchDelete" + } + ] + }, + { + "shortName": "BatchUpdateMetastorePartitions", + "fullName": "google.cloud.bigquery.storage.v1alpha.MetastorePartitionService.BatchUpdateMetastorePartitions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*/datasets/*/tables/*}/partitions:batchUpdate" + } + ] + }, + { + "shortName": "ListMetastorePartitions", + "fullName": "google.cloud.bigquery.storage.v1alpha.MetastorePartitionService.ListMetastorePartitions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*/datasets/*/tables/*}/partitions:list" + } + ] + }, + { + "shortName": "StreamMetastorePartitions", + "fullName": "google.cloud.bigquery.storage.v1alpha.MetastorePartitionService.StreamMetastorePartitions", + "mode": "BIDIRECTIONAL_STREAMING" + } + ] + } + ], + "configFile": "bigquerystorage_v1alpha.yaml", + "serviceConfigApiNames": [ + "google.cloud.bigquery.storage.v1alpha.MetastorePartitionService" + ], + "nameInServiceConfig": "bigquerystorage.googleapis.com" + }, { "id": "google.cloud.bigquery.storage.v1beta1", "directory": "google/cloud/bigquery/storage/v1beta1", @@ -36583,32 +38393,32 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.Commerce.Consumer.Procurement.V1": 2 + "Google.Cloud.Commerce.Consumer.Procurement.V1": 3 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/commerce/consumer/procurement/apiv1/procurementpb;procurementpb": 2 + "cloud.google.com/go/commerce/consumer/procurement/apiv1/procurementpb;procurementpb": 3 } }, "java_multiple_files": { "valueCounts": { - "true": 2 + "true": 3 } }, "java_package": { "valueCounts": { - "com.google.cloud.commerce.consumer.procurement.v1": 2 + "com.google.cloud.commerce.consumer.procurement.v1": 3 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\Commerce\\Consumer\\Procurement\\V1": 2 + "Google\\Cloud\\Commerce\\Consumer\\Procurement\\V1": 3 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::Commerce::Consumer::Procurement::V1": 2 + "Google::Cloud::Commerce::Consumer::Procurement::V1": 3 } } }, @@ -36617,6 +38427,17 @@ "shortName": "ConsumerProcurementService", "fullName": "google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService", "methods": [ + { + "shortName": "CancelOrder", + "fullName": "google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService.CancelOrder", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=billingAccounts/*/orders/*}:cancel" + } + ] + }, { "shortName": "GetOrder", "fullName": "google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService.GetOrder", @@ -36639,6 +38460,17 @@ } ] }, + { + "shortName": "ModifyOrder", + "fullName": "google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService.ModifyOrder", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=billingAccounts/*/orders/*}:modify" + } + ] + }, { "shortName": "PlaceOrder", "fullName": "google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService.PlaceOrder", @@ -36651,11 +38483,73 @@ ] } ] + }, + { + "shortName": "LicenseManagementService", + "fullName": "google.cloud.commerce.consumer.procurement.v1.LicenseManagementService", + "methods": [ + { + "shortName": "Assign", + "fullName": "google.cloud.commerce.consumer.procurement.v1.LicenseManagementService.Assign", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=billingAccounts/*/orders/*/licensePool}:assign" + } + ] + }, + { + "shortName": "EnumerateLicensedUsers", + "fullName": "google.cloud.commerce.consumer.procurement.v1.LicenseManagementService.EnumerateLicensedUsers", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=billingAccounts/*/orders/*/licensePool}:enumerateLicensedUsers" + } + ] + }, + { + "shortName": "GetLicensePool", + "fullName": "google.cloud.commerce.consumer.procurement.v1.LicenseManagementService.GetLicensePool", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=billingAccounts/*/orders/*/licensePool}" + } + ] + }, + { + "shortName": "Unassign", + "fullName": "google.cloud.commerce.consumer.procurement.v1.LicenseManagementService.Unassign", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=billingAccounts/*/orders/*/licensePool}:unassign" + } + ] + }, + { + "shortName": "UpdateLicensePool", + "fullName": "google.cloud.commerce.consumer.procurement.v1.LicenseManagementService.UpdateLicensePool", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{license_pool.name=billingAccounts/*/orders/*/licensePool/*}" + } + ] + } + ] } ], "configFile": "cloudcommerceconsumerprocurement_v1.yaml", "serviceConfigApiNames": [ "google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService", + "google.cloud.commerce.consumer.procurement.v1.LicenseManagementService", "google.longrunning.Operations" ], "nameInServiceConfig": "cloudcommerceconsumerprocurement.googleapis.com" @@ -46981,6 +48875,17 @@ } ] }, + { + "shortName": "ExportIssueModel", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.ExportIssueModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/issueModels/*}:export" + } + ] + }, { "shortName": "GetAnalysis", "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.GetAnalysis", @@ -47003,6 +48908,17 @@ } ] }, + { + "shortName": "GetEncryptionSpec", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.GetEncryptionSpec", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/encryptionSpec}" + } + ] + }, { "shortName": "GetIssue", "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.GetIssue", @@ -47058,6 +48974,17 @@ } ] }, + { + "shortName": "ImportIssueModel", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.ImportIssueModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/issueModels:import" + } + ] + }, { "shortName": "IngestConversations", "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.IngestConversations", @@ -47069,6 +48996,17 @@ } ] }, + { + "shortName": "InitializeEncryptionSpec", + "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.InitializeEncryptionSpec", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{encryption_spec.name=projects/*/locations/*/encryptionSpec}:initialize" + } + ] + }, { "shortName": "ListAnalyses", "fullName": "google.cloud.contactcenterinsights.v1.ContactCenterInsights.ListAnalyses", @@ -53649,17 +55587,17 @@ "options": { "go_package": { "valueCounts": { - "cloud.google.com/go/deploy/apiv1/deploypb;deploypb": 11 + "cloud.google.com/go/deploy/apiv1/deploypb;deploypb": 14 } }, "java_multiple_files": { "valueCounts": { - "true": 11 + "true": 14 } }, "java_package": { "valueCounts": { - "com.google.cloud.deploy.v1": 11 + "com.google.cloud.deploy.v1": 14 } } }, @@ -53756,6 +55694,17 @@ } ] }, + { + "shortName": "CreateDeployPolicy", + "fullName": "google.cloud.deploy.v1.CloudDeploy.CreateDeployPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/deployPolicies" + } + ] + }, { "shortName": "CreateRelease", "fullName": "google.cloud.deploy.v1.CloudDeploy.CreateRelease", @@ -53822,6 +55771,17 @@ } ] }, + { + "shortName": "DeleteDeployPolicy", + "fullName": "google.cloud.deploy.v1.CloudDeploy.DeleteDeployPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/deployPolicies/*}" + } + ] + }, { "shortName": "DeleteTarget", "fullName": "google.cloud.deploy.v1.CloudDeploy.DeleteTarget", @@ -53888,6 +55848,17 @@ } ] }, + { + "shortName": "GetDeployPolicy", + "fullName": "google.cloud.deploy.v1.CloudDeploy.GetDeployPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/deployPolicies/*}" + } + ] + }, { "shortName": "GetJobRun", "fullName": "google.cloud.deploy.v1.CloudDeploy.GetJobRun", @@ -53987,6 +55958,17 @@ } ] }, + { + "shortName": "ListDeployPolicies", + "fullName": "google.cloud.deploy.v1.CloudDeploy.ListDeployPolicies", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/deployPolicies" + } + ] + }, { "shortName": "ListJobRuns", "fullName": "google.cloud.deploy.v1.CloudDeploy.ListJobRuns", @@ -54097,6 +56079,17 @@ } ] }, + { + "shortName": "UpdateDeployPolicy", + "fullName": "google.cloud.deploy.v1.CloudDeploy.UpdateDeployPolicy", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{deploy_policy.name=projects/*/locations/*/deployPolicies/*}" + } + ] + }, { "shortName": "UpdateTarget", "fullName": "google.cloud.deploy.v1.CloudDeploy.UpdateTarget", @@ -57523,32 +59516,32 @@ "options": { "cc_enable_arenas": { "valueCounts": { - "true": 23 + "true": 25 } }, "csharp_namespace": { "valueCounts": { - "Google.Cloud.Dialogflow.V2": 23 + "Google.Cloud.Dialogflow.V2": 25 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/dialogflow/apiv2/dialogflowpb;dialogflowpb": 23 + "cloud.google.com/go/dialogflow/apiv2/dialogflowpb;dialogflowpb": 25 } }, "java_multiple_files": { "valueCounts": { - "true": 23 + "true": 25 } }, "java_package": { "valueCounts": { - "com.google.cloud.dialogflow.v2": 23 + "com.google.cloud.dialogflow.v2": 25 } }, "objc_class_prefix": { "valueCounts": { - "DF": 23 + "DF": 25 } } }, @@ -58229,6 +60222,17 @@ } ] }, + { + "shortName": "GenerateStatelessSuggestion", + "fullName": "google.cloud.dialogflow.v2.Conversations.GenerateStatelessSuggestion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*}/statelessSuggestion:generate" + } + ] + }, { "shortName": "GenerateStatelessSummary", "fullName": "google.cloud.dialogflow.v2.Conversations.GenerateStatelessSummary", @@ -58479,6 +60483,34 @@ } ] }, + { + "shortName": "EncryptionSpecService", + "fullName": "google.cloud.dialogflow.v2.EncryptionSpecService", + "methods": [ + { + "shortName": "GetEncryptionSpec", + "fullName": "google.cloud.dialogflow.v2.EncryptionSpecService.GetEncryptionSpec", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/encryptionSpec}" + } + ] + }, + { + "shortName": "InitializeEncryptionSpec", + "fullName": "google.cloud.dialogflow.v2.EncryptionSpecService.InitializeEncryptionSpec", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{encryption_spec.name=projects/*/locations/*/encryptionSpec}:initialize" + } + ] + } + ] + }, { "shortName": "EntityTypes", "fullName": "google.cloud.dialogflow.v2.EntityTypes", @@ -58767,6 +60799,75 @@ } ] }, + { + "shortName": "Generators", + "fullName": "google.cloud.dialogflow.v2.Generators", + "methods": [ + { + "shortName": "CreateGenerator", + "fullName": "google.cloud.dialogflow.v2.Generators.CreateGenerator", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*}/generators" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*}/generators" + } + ] + }, + { + "shortName": "DeleteGenerator", + "fullName": "google.cloud.dialogflow.v2.Generators.DeleteGenerator", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2/{name=projects/*/locations/*/generators/*}" + } + ] + }, + { + "shortName": "GetGenerator", + "fullName": "google.cloud.dialogflow.v2.Generators.GetGenerator", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{name=projects/*/locations/*/generators/*}" + } + ] + }, + { + "shortName": "ListGenerators", + "fullName": "google.cloud.dialogflow.v2.Generators.ListGenerators", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*}/generators" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*}/generators" + } + ] + }, + { + "shortName": "UpdateGenerator", + "fullName": "google.cloud.dialogflow.v2.Generators.UpdateGenerator", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{generator.name=projects/*/locations/*/generators/*}" + } + ] + } + ] + }, { "shortName": "Intents", "fullName": "google.cloud.dialogflow.v2.Intents", @@ -59086,6 +61187,21 @@ } ] }, + { + "shortName": "SuggestKnowledgeAssist", + "fullName": "google.cloud.dialogflow.v2.Participants.SuggestKnowledgeAssist", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/conversations/*/participants/*}/suggestions:suggestKnowledgeAssist" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/conversations/*/participants/*}/suggestions:suggestKnowledgeAssist" + } + ] + }, { "shortName": "SuggestSmartReplies", "fullName": "google.cloud.dialogflow.v2.Participants.SuggestSmartReplies", @@ -59365,9 +61481,11 @@ "google.cloud.dialogflow.v2.ConversationProfiles", "google.cloud.dialogflow.v2.Conversations", "google.cloud.dialogflow.v2.Documents", + "google.cloud.dialogflow.v2.EncryptionSpecService", "google.cloud.dialogflow.v2.EntityTypes", "google.cloud.dialogflow.v2.Environments", "google.cloud.dialogflow.v2.Fulfillments", + "google.cloud.dialogflow.v2.Generators", "google.cloud.dialogflow.v2.Intents", "google.cloud.dialogflow.v2.KnowledgeBases", "google.cloud.dialogflow.v2.Participants", @@ -59398,32 +61516,32 @@ "options": { "cc_enable_arenas": { "valueCounts": { - "true": 21 + "true": 23 } }, "csharp_namespace": { "valueCounts": { - "Google.Cloud.Dialogflow.V2Beta1": 21 + "Google.Cloud.Dialogflow.V2Beta1": 23 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/dialogflow/apiv2beta1/dialogflowpb;dialogflowpb": 21 + "cloud.google.com/go/dialogflow/apiv2beta1/dialogflowpb;dialogflowpb": 23 } }, "java_multiple_files": { "valueCounts": { - "true": 21 + "true": 23 } }, "java_package": { "valueCounts": { - "com.google.cloud.dialogflow.v2beta1": 21 + "com.google.cloud.dialogflow.v2beta1": 23 } }, "objc_class_prefix": { "valueCounts": { - "DF": 21 + "DF": 23 } } }, @@ -59924,6 +62042,17 @@ } ] }, + { + "shortName": "GenerateStatelessSuggestion", + "fullName": "google.cloud.dialogflow.v2beta1.Conversations.GenerateStatelessSuggestion", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*}/statelessSuggestion:generate" + } + ] + }, { "shortName": "GenerateStatelessSummary", "fullName": "google.cloud.dialogflow.v2beta1.Conversations.GenerateStatelessSummary", @@ -60159,6 +62288,34 @@ } ] }, + { + "shortName": "EncryptionSpecService", + "fullName": "google.cloud.dialogflow.v2beta1.EncryptionSpecService", + "methods": [ + { + "shortName": "GetEncryptionSpec", + "fullName": "google.cloud.dialogflow.v2beta1.EncryptionSpecService.GetEncryptionSpec", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/locations/*/encryptionSpec}" + } + ] + }, + { + "shortName": "InitializeEncryptionSpec", + "fullName": "google.cloud.dialogflow.v2beta1.EncryptionSpecService.InitializeEncryptionSpec", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{encryption_spec.name=projects/*/locations/*/encryptionSpec}:initialize" + } + ] + } + ] + }, { "shortName": "EntityTypes", "fullName": "google.cloud.dialogflow.v2beta1.EntityTypes", @@ -60447,6 +62604,75 @@ } ] }, + { + "shortName": "Generators", + "fullName": "google.cloud.dialogflow.v2beta1.Generators", + "methods": [ + { + "shortName": "CreateGenerator", + "fullName": "google.cloud.dialogflow.v2beta1.Generators.CreateGenerator", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*}/generators" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*}/generators" + } + ] + }, + { + "shortName": "DeleteGenerator", + "fullName": "google.cloud.dialogflow.v2beta1.Generators.DeleteGenerator", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v2beta1/{name=projects/*/locations/*/generators/*}" + } + ] + }, + { + "shortName": "GetGenerator", + "fullName": "google.cloud.dialogflow.v2beta1.Generators.GetGenerator", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{name=projects/*/locations/*/generators/*}" + } + ] + }, + { + "shortName": "ListGenerators", + "fullName": "google.cloud.dialogflow.v2beta1.Generators.ListGenerators", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*/locations/*}/generators" + }, + { + "httpMethod": "GET", + "path": "/v2beta1/{parent=projects/*}/generators" + } + ] + }, + { + "shortName": "UpdateGenerator", + "fullName": "google.cloud.dialogflow.v2beta1.Generators.UpdateGenerator", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2beta1/{generator.name=projects/*/locations/*/generators/*}" + } + ] + } + ] + }, { "shortName": "Intents", "fullName": "google.cloud.dialogflow.v2beta1.Intents", @@ -60788,6 +63014,21 @@ } ] }, + { + "shortName": "SuggestKnowledgeAssist", + "fullName": "google.cloud.dialogflow.v2beta1.Participants.SuggestKnowledgeAssist", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/conversations/*/participants/*}/suggestions:suggestKnowledgeAssist" + }, + { + "httpMethod": "POST", + "path": "/v2beta1/{parent=projects/*/locations/*/conversations/*/participants/*}/suggestions:suggestKnowledgeAssist" + } + ] + }, { "shortName": "SuggestSmartReplies", "fullName": "google.cloud.dialogflow.v2beta1.Participants.SuggestSmartReplies", @@ -61065,9 +63306,11 @@ "google.cloud.dialogflow.v2beta1.ConversationProfiles", "google.cloud.dialogflow.v2beta1.Conversations", "google.cloud.dialogflow.v2beta1.Documents", + "google.cloud.dialogflow.v2beta1.EncryptionSpecService", "google.cloud.dialogflow.v2beta1.EntityTypes", "google.cloud.dialogflow.v2beta1.Environments", "google.cloud.dialogflow.v2beta1.Fulfillments", + "google.cloud.dialogflow.v2beta1.Generators", "google.cloud.dialogflow.v2beta1.Intents", "google.cloud.dialogflow.v2beta1.KnowledgeBases", "google.cloud.dialogflow.v2beta1.Participants", @@ -61098,37 +63341,37 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.DiscoveryEngine.V1": 32 + "Google.Cloud.DiscoveryEngine.V1": 34 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb": 32 + "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb": 34 } }, "java_multiple_files": { "valueCounts": { - "true": 32 + "true": 34 } }, "java_package": { "valueCounts": { - "com.google.cloud.discoveryengine.v1": 32 + "com.google.cloud.discoveryengine.v1": 34 } }, "objc_class_prefix": { "valueCounts": { - "DISCOVERYENGINE": 32 + "DISCOVERYENGINE": 34 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\DiscoveryEngine\\V1": 32 + "Google\\Cloud\\DiscoveryEngine\\V1": 34 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::DiscoveryEngine::V1": 32 + "Google::Cloud::DiscoveryEngine::V1": 34 } } }, @@ -61653,6 +63896,21 @@ "shortName": "DocumentService", "fullName": "google.cloud.discoveryengine.v1.DocumentService", "methods": [ + { + "shortName": "BatchGetDocumentsMetadata", + "fullName": "google.cloud.discoveryengine.v1.DocumentService.BatchGetDocumentsMetadata", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/dataStores/*/branches/*}/batchGetDocumentsMetadata" + }, + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*/branches/*}/batchGetDocumentsMetadata" + } + ] + }, { "shortName": "CreateDocument", "fullName": "google.cloud.discoveryengine.v1.DocumentService.CreateDocument", @@ -61835,6 +64093,28 @@ "path": "/v1/{grounding_config=projects/*/locations/*/groundingConfigs/*}:check" } ] + }, + { + "shortName": "GenerateGroundedContent", + "fullName": "google.cloud.discoveryengine.v1.GroundedGenerationService.GenerateGroundedContent", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{location=projects/*/locations/*}:generateGroundedContent" + } + ] + }, + { + "shortName": "StreamGenerateGroundedContent", + "fullName": "google.cloud.discoveryengine.v1.GroundedGenerationService.StreamGenerateGroundedContent", + "mode": "BIDIRECTIONAL_STREAMING", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{location=projects/*/locations/*}:streamGenerateGroundedContent" + } + ] } ] }, @@ -62003,6 +64283,34 @@ } ] }, + { + "shortName": "SearchTuningService", + "fullName": "google.cloud.discoveryengine.v1.SearchTuningService", + "methods": [ + { + "shortName": "ListCustomModels", + "fullName": "google.cloud.discoveryengine.v1.SearchTuningService.ListCustomModels", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{data_store=projects/*/locations/*/collections/*/dataStores/*}/customModels" + } + ] + }, + { + "shortName": "TrainCustomModel", + "fullName": "google.cloud.discoveryengine.v1.SearchTuningService.TrainCustomModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{data_store=projects/*/locations/*/collections/*/dataStores/*}:trainCustomModel" + } + ] + } + ] + }, { "shortName": "SiteSearchEngineService", "fullName": "google.cloud.discoveryengine.v1.SiteSearchEngineService", @@ -62219,6 +64527,21 @@ } ] }, + { + "shortName": "PurgeUserEvents", + "fullName": "google.cloud.discoveryengine.v1.UserEventService.PurgeUserEvents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/dataStores/*}/userEvents:purge" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*}/userEvents:purge" + } + ] + }, { "shortName": "WriteUserEvent", "fullName": "google.cloud.discoveryengine.v1.UserEventService.WriteUserEvent", @@ -62255,6 +64578,7 @@ "google.cloud.discoveryengine.v1.RecommendationService", "google.cloud.discoveryengine.v1.SchemaService", "google.cloud.discoveryengine.v1.SearchService", + "google.cloud.discoveryengine.v1.SearchTuningService", "google.cloud.discoveryengine.v1.SiteSearchEngineService", "google.cloud.discoveryengine.v1.UserEventService", "google.cloud.location.Locations", @@ -62281,37 +64605,37 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.DiscoveryEngine.V1Alpha": 40 + "Google.Cloud.DiscoveryEngine.V1Alpha": 46 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb": 40 + "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb": 46 } }, "java_multiple_files": { "valueCounts": { - "true": 40 + "true": 46 } }, "java_package": { "valueCounts": { - "com.google.cloud.discoveryengine.v1alpha": 40 + "com.google.cloud.discoveryengine.v1alpha": 46 } }, "objc_class_prefix": { "valueCounts": { - "DISCOVERYENGINE": 40 + "DISCOVERYENGINE": 46 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\DiscoveryEngine\\V1alpha": 40 + "Google\\Cloud\\DiscoveryEngine\\V1alpha": 46 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::DiscoveryEngine::V1alpha": 40 + "Google::Cloud::DiscoveryEngine::V1alpha": 46 } } }, @@ -62399,6 +64723,21 @@ } ] }, + { + "shortName": "ImportCompletionSuggestions", + "fullName": "google.cloud.discoveryengine.v1alpha.CompletionService.ImportCompletionSuggestions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*}/completionSuggestions:import" + }, + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*/dataStores/*}/completionSuggestions:import" + } + ] + }, { "shortName": "ImportSuggestionDenyListEntries", "fullName": "google.cloud.discoveryengine.v1alpha.CompletionService.ImportSuggestionDenyListEntries", @@ -62414,6 +64753,21 @@ } ] }, + { + "shortName": "PurgeCompletionSuggestions", + "fullName": "google.cloud.discoveryengine.v1alpha.CompletionService.PurgeCompletionSuggestions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*}/completionSuggestions:purge" + }, + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*/dataStores/*}/completionSuggestions:purge" + } + ] + }, { "shortName": "PurgeSuggestionDenyListEntries", "fullName": "google.cloud.discoveryengine.v1alpha.CompletionService.PurgeSuggestionDenyListEntries", @@ -62900,6 +65254,21 @@ "shortName": "DocumentService", "fullName": "google.cloud.discoveryengine.v1alpha.DocumentService", "methods": [ + { + "shortName": "BatchGetDocumentsMetadata", + "fullName": "google.cloud.discoveryengine.v1alpha.DocumentService.BatchGetDocumentsMetadata", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*/dataStores/*/branches/*}/batchGetDocumentsMetadata" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*/branches/*}/batchGetDocumentsMetadata" + } + ] + }, { "shortName": "CreateDocument", "fullName": "google.cloud.discoveryengine.v1alpha.DocumentService.CreateDocument", @@ -63133,6 +65502,56 @@ } ] }, + { + "shortName": "EvaluationService", + "fullName": "google.cloud.discoveryengine.v1alpha.EvaluationService", + "methods": [ + { + "shortName": "CreateEvaluation", + "fullName": "google.cloud.discoveryengine.v1alpha.EvaluationService.CreateEvaluation", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*}/evaluations" + } + ] + }, + { + "shortName": "GetEvaluation", + "fullName": "google.cloud.discoveryengine.v1alpha.EvaluationService.GetEvaluation", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/evaluations/*}" + } + ] + }, + { + "shortName": "ListEvaluationResults", + "fullName": "google.cloud.discoveryengine.v1alpha.EvaluationService.ListEvaluationResults", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{evaluation=projects/*/locations/*/evaluations/*}:listResults" + } + ] + }, + { + "shortName": "ListEvaluations", + "fullName": "google.cloud.discoveryengine.v1alpha.EvaluationService.ListEvaluations", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*}/evaluations" + } + ] + } + ] + }, { "shortName": "GroundedGenerationService", "fullName": "google.cloud.discoveryengine.v1alpha.GroundedGenerationService", @@ -63231,6 +65650,139 @@ } ] }, + { + "shortName": "SampleQueryService", + "fullName": "google.cloud.discoveryengine.v1alpha.SampleQueryService", + "methods": [ + { + "shortName": "CreateSampleQuery", + "fullName": "google.cloud.discoveryengine.v1alpha.SampleQueryService.CreateSampleQuery", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*/sampleQuerySets/*}/sampleQueries" + } + ] + }, + { + "shortName": "DeleteSampleQuery", + "fullName": "google.cloud.discoveryengine.v1alpha.SampleQueryService.DeleteSampleQuery", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1alpha/{name=projects/*/locations/*/sampleQuerySets/*/sampleQueries/*}" + } + ] + }, + { + "shortName": "GetSampleQuery", + "fullName": "google.cloud.discoveryengine.v1alpha.SampleQueryService.GetSampleQuery", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/sampleQuerySets/*/sampleQueries/*}" + } + ] + }, + { + "shortName": "ImportSampleQueries", + "fullName": "google.cloud.discoveryengine.v1alpha.SampleQueryService.ImportSampleQueries", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*/sampleQuerySets/*}/sampleQueries:import" + } + ] + }, + { + "shortName": "ListSampleQueries", + "fullName": "google.cloud.discoveryengine.v1alpha.SampleQueryService.ListSampleQueries", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*/sampleQuerySets/*}/sampleQueries" + } + ] + }, + { + "shortName": "UpdateSampleQuery", + "fullName": "google.cloud.discoveryengine.v1alpha.SampleQueryService.UpdateSampleQuery", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1alpha/{sample_query.name=projects/*/locations/*/sampleQuerySets/*/sampleQueries/*}" + } + ] + } + ] + }, + { + "shortName": "SampleQuerySetService", + "fullName": "google.cloud.discoveryengine.v1alpha.SampleQuerySetService", + "methods": [ + { + "shortName": "CreateSampleQuerySet", + "fullName": "google.cloud.discoveryengine.v1alpha.SampleQuerySetService.CreateSampleQuerySet", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{parent=projects/*/locations/*}/sampleQuerySets" + } + ] + }, + { + "shortName": "DeleteSampleQuerySet", + "fullName": "google.cloud.discoveryengine.v1alpha.SampleQuerySetService.DeleteSampleQuerySet", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1alpha/{name=projects/*/locations/*/sampleQuerySets/*}" + } + ] + }, + { + "shortName": "GetSampleQuerySet", + "fullName": "google.cloud.discoveryengine.v1alpha.SampleQuerySetService.GetSampleQuerySet", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{name=projects/*/locations/*/sampleQuerySets/*}" + } + ] + }, + { + "shortName": "ListSampleQuerySets", + "fullName": "google.cloud.discoveryengine.v1alpha.SampleQuerySetService.ListSampleQuerySets", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*}/sampleQuerySets" + } + ] + }, + { + "shortName": "UpdateSampleQuerySet", + "fullName": "google.cloud.discoveryengine.v1alpha.SampleQuerySetService.UpdateSampleQuerySet", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1alpha/{sample_query_set.name=projects/*/locations/*/sampleQuerySets/*}" + } + ] + } + ] + }, { "shortName": "SchemaService", "fullName": "google.cloud.discoveryengine.v1alpha.SchemaService", @@ -63559,6 +66111,17 @@ } ] }, + { + "shortName": "GetUriPatternDocumentData", + "fullName": "google.cloud.discoveryengine.v1alpha.SiteSearchEngineService.GetUriPatternDocumentData", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1alpha/{site_search_engine=projects/*/locations/*/collections/*/dataStores/*/siteSearchEngine}:getUriPatternDocumentData" + } + ] + }, { "shortName": "ListTargetSites", "fullName": "google.cloud.discoveryengine.v1alpha.SiteSearchEngineService.ListTargetSites", @@ -63589,6 +66152,17 @@ } ] }, + { + "shortName": "SetUriPatternDocumentData", + "fullName": "google.cloud.discoveryengine.v1alpha.SiteSearchEngineService.SetUriPatternDocumentData", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{site_search_engine=projects/*/locations/*/collections/*/dataStores/*/siteSearchEngine}:setUriPatternDocumentData" + } + ] + }, { "shortName": "UpdateTargetSite", "fullName": "google.cloud.discoveryengine.v1alpha.SiteSearchEngineService.UpdateTargetSite", @@ -63622,6 +66196,10 @@ { "httpMethod": "GET", "path": "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*}/userEvents:collect" + }, + { + "httpMethod": "GET", + "path": "/v1alpha/{parent=projects/*/locations/*}/userEvents:collect" } ] }, @@ -63688,10 +66266,13 @@ "google.cloud.discoveryengine.v1alpha.DocumentService", "google.cloud.discoveryengine.v1alpha.EngineService", "google.cloud.discoveryengine.v1alpha.EstimateBillingService", + "google.cloud.discoveryengine.v1alpha.EvaluationService", "google.cloud.discoveryengine.v1alpha.GroundedGenerationService", "google.cloud.discoveryengine.v1alpha.ProjectService", "google.cloud.discoveryengine.v1alpha.RankService", "google.cloud.discoveryengine.v1alpha.RecommendationService", + "google.cloud.discoveryengine.v1alpha.SampleQueryService", + "google.cloud.discoveryengine.v1alpha.SampleQuerySetService", "google.cloud.discoveryengine.v1alpha.SchemaService", "google.cloud.discoveryengine.v1alpha.SearchService", "google.cloud.discoveryengine.v1alpha.SearchTuningService", @@ -63722,37 +66303,37 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.DiscoveryEngine.V1Beta": 35 + "Google.Cloud.DiscoveryEngine.V1Beta": 42 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb": 35 + "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb": 42 } }, "java_multiple_files": { "valueCounts": { - "true": 35 + "true": 42 } }, "java_package": { "valueCounts": { - "com.google.cloud.discoveryengine.v1beta": 35 + "com.google.cloud.discoveryengine.v1beta": 42 } }, "objc_class_prefix": { "valueCounts": { - "DISCOVERYENGINE": 35 + "DISCOVERYENGINE": 42 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\DiscoveryEngine\\V1beta": 35 + "Google\\Cloud\\DiscoveryEngine\\V1beta": 42 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::DiscoveryEngine::V1beta": 35 + "Google::Cloud::DiscoveryEngine::V1beta": 42 } } }, @@ -63776,6 +66357,21 @@ } ] }, + { + "shortName": "ImportCompletionSuggestions", + "fullName": "google.cloud.discoveryengine.v1beta.CompletionService.ImportCompletionSuggestions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*}/completionSuggestions:import" + }, + { + "httpMethod": "POST", + "path": "/v1beta/{parent=projects/*/locations/*/dataStores/*}/completionSuggestions:import" + } + ] + }, { "shortName": "ImportSuggestionDenyListEntries", "fullName": "google.cloud.discoveryengine.v1beta.CompletionService.ImportSuggestionDenyListEntries", @@ -63791,6 +66387,21 @@ } ] }, + { + "shortName": "PurgeCompletionSuggestions", + "fullName": "google.cloud.discoveryengine.v1beta.CompletionService.PurgeCompletionSuggestions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*}/completionSuggestions:purge" + }, + { + "httpMethod": "POST", + "path": "/v1beta/{parent=projects/*/locations/*/dataStores/*}/completionSuggestions:purge" + } + ] + }, { "shortName": "PurgeSuggestionDenyListEntries", "fullName": "google.cloud.discoveryengine.v1beta.CompletionService.PurgeSuggestionDenyListEntries", @@ -64247,6 +66858,21 @@ "shortName": "DocumentService", "fullName": "google.cloud.discoveryengine.v1beta.DocumentService", "methods": [ + { + "shortName": "BatchGetDocumentsMetadata", + "fullName": "google.cloud.discoveryengine.v1beta.DocumentService.BatchGetDocumentsMetadata", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta/{parent=projects/*/locations/*/dataStores/*/branches/*}/batchGetDocumentsMetadata" + }, + { + "httpMethod": "GET", + "path": "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*/branches/*}/batchGetDocumentsMetadata" + } + ] + }, { "shortName": "CreateDocument", "fullName": "google.cloud.discoveryengine.v1beta.DocumentService.CreateDocument", @@ -64448,6 +67074,56 @@ } ] }, + { + "shortName": "EvaluationService", + "fullName": "google.cloud.discoveryengine.v1beta.EvaluationService", + "methods": [ + { + "shortName": "CreateEvaluation", + "fullName": "google.cloud.discoveryengine.v1beta.EvaluationService.CreateEvaluation", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{parent=projects/*/locations/*}/evaluations" + } + ] + }, + { + "shortName": "GetEvaluation", + "fullName": "google.cloud.discoveryengine.v1beta.EvaluationService.GetEvaluation", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta/{name=projects/*/locations/*/evaluations/*}" + } + ] + }, + { + "shortName": "ListEvaluationResults", + "fullName": "google.cloud.discoveryengine.v1beta.EvaluationService.ListEvaluationResults", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta/{evaluation=projects/*/locations/*/evaluations/*}:listResults" + } + ] + }, + { + "shortName": "ListEvaluations", + "fullName": "google.cloud.discoveryengine.v1beta.EvaluationService.ListEvaluations", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta/{parent=projects/*/locations/*}/evaluations" + } + ] + } + ] + }, { "shortName": "GroundedGenerationService", "fullName": "google.cloud.discoveryengine.v1beta.GroundedGenerationService", @@ -64524,6 +67200,139 @@ } ] }, + { + "shortName": "SampleQueryService", + "fullName": "google.cloud.discoveryengine.v1beta.SampleQueryService", + "methods": [ + { + "shortName": "CreateSampleQuery", + "fullName": "google.cloud.discoveryengine.v1beta.SampleQueryService.CreateSampleQuery", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{parent=projects/*/locations/*/sampleQuerySets/*}/sampleQueries" + } + ] + }, + { + "shortName": "DeleteSampleQuery", + "fullName": "google.cloud.discoveryengine.v1beta.SampleQueryService.DeleteSampleQuery", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta/{name=projects/*/locations/*/sampleQuerySets/*/sampleQueries/*}" + } + ] + }, + { + "shortName": "GetSampleQuery", + "fullName": "google.cloud.discoveryengine.v1beta.SampleQueryService.GetSampleQuery", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta/{name=projects/*/locations/*/sampleQuerySets/*/sampleQueries/*}" + } + ] + }, + { + "shortName": "ImportSampleQueries", + "fullName": "google.cloud.discoveryengine.v1beta.SampleQueryService.ImportSampleQueries", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{parent=projects/*/locations/*/sampleQuerySets/*}/sampleQueries:import" + } + ] + }, + { + "shortName": "ListSampleQueries", + "fullName": "google.cloud.discoveryengine.v1beta.SampleQueryService.ListSampleQueries", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta/{parent=projects/*/locations/*/sampleQuerySets/*}/sampleQueries" + } + ] + }, + { + "shortName": "UpdateSampleQuery", + "fullName": "google.cloud.discoveryengine.v1beta.SampleQueryService.UpdateSampleQuery", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta/{sample_query.name=projects/*/locations/*/sampleQuerySets/*/sampleQueries/*}" + } + ] + } + ] + }, + { + "shortName": "SampleQuerySetService", + "fullName": "google.cloud.discoveryengine.v1beta.SampleQuerySetService", + "methods": [ + { + "shortName": "CreateSampleQuerySet", + "fullName": "google.cloud.discoveryengine.v1beta.SampleQuerySetService.CreateSampleQuerySet", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{parent=projects/*/locations/*}/sampleQuerySets" + } + ] + }, + { + "shortName": "DeleteSampleQuerySet", + "fullName": "google.cloud.discoveryengine.v1beta.SampleQuerySetService.DeleteSampleQuerySet", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta/{name=projects/*/locations/*/sampleQuerySets/*}" + } + ] + }, + { + "shortName": "GetSampleQuerySet", + "fullName": "google.cloud.discoveryengine.v1beta.SampleQuerySetService.GetSampleQuerySet", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta/{name=projects/*/locations/*/sampleQuerySets/*}" + } + ] + }, + { + "shortName": "ListSampleQuerySets", + "fullName": "google.cloud.discoveryengine.v1beta.SampleQuerySetService.ListSampleQuerySets", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta/{parent=projects/*/locations/*}/sampleQuerySets" + } + ] + }, + { + "shortName": "UpdateSampleQuerySet", + "fullName": "google.cloud.discoveryengine.v1beta.SampleQuerySetService.UpdateSampleQuerySet", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta/{sample_query_set.name=projects/*/locations/*/sampleQuerySets/*}" + } + ] + } + ] + }, { "shortName": "SchemaService", "fullName": "google.cloud.discoveryengine.v1beta.SchemaService", @@ -64915,6 +67724,10 @@ { "httpMethod": "GET", "path": "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*}/userEvents:collect" + }, + { + "httpMethod": "GET", + "path": "/v1beta/{parent=projects/*/locations/*}/userEvents:collect" } ] }, @@ -64933,6 +67746,21 @@ } ] }, + { + "shortName": "PurgeUserEvents", + "fullName": "google.cloud.discoveryengine.v1beta.UserEventService.PurgeUserEvents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta/{parent=projects/*/locations/*/dataStores/*}/userEvents:purge" + }, + { + "httpMethod": "POST", + "path": "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*}/userEvents:purge" + } + ] + }, { "shortName": "WriteUserEvent", "fullName": "google.cloud.discoveryengine.v1beta.UserEventService.WriteUserEvent", @@ -64963,10 +67791,13 @@ "google.cloud.discoveryengine.v1beta.DataStoreService", "google.cloud.discoveryengine.v1beta.DocumentService", "google.cloud.discoveryengine.v1beta.EngineService", + "google.cloud.discoveryengine.v1beta.EvaluationService", "google.cloud.discoveryengine.v1beta.GroundedGenerationService", "google.cloud.discoveryengine.v1beta.ProjectService", "google.cloud.discoveryengine.v1beta.RankService", "google.cloud.discoveryengine.v1beta.RecommendationService", + "google.cloud.discoveryengine.v1beta.SampleQueryService", + "google.cloud.discoveryengine.v1beta.SampleQuerySetService", "google.cloud.discoveryengine.v1beta.SchemaService", "google.cloud.discoveryengine.v1beta.SearchService", "google.cloud.discoveryengine.v1beta.SearchTuningService", @@ -65292,100 +68123,6 @@ ], "nameInServiceConfig": "documentai.googleapis.com" }, - { - "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": 4 - } - }, - "go_package": { - "valueCounts": { - "cloud.google.com/go/documentai/apiv1beta2/documentaipb;documentaipb": 4 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 4 - } - }, - "java_package": { - "valueCounts": { - "com.google.cloud.documentai.v1beta2": 4 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Cloud\\DocumentAI\\V1beta2": 4 - } - }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::DocumentAI::V1beta2": 4 - } - } - }, - "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", - "google.cloud.location.Locations", - "google.longrunning.Operations" - ], - "nameInServiceConfig": "documentai.googleapis.com" - }, { "id": "google.cloud.documentai.v1beta3", "directory": "google/cloud/documentai/v1beta3", @@ -68483,7 +71220,8 @@ "importDirectories": [ "google/api", "google/longrunning", - "google/protobuf" + "google/protobuf", + "google/type" ], "options": { "go_package": { @@ -68623,7 +71361,8 @@ "importDirectories": [ "google/api", "google/longrunning", - "google/protobuf" + "google/protobuf", + "google/type" ], "options": { "go_package": { @@ -68763,7 +71502,8 @@ "importDirectories": [ "google/api", "google/longrunning", - "google/protobuf" + "google/protobuf", + "google/type" ], "options": { "go_package": { @@ -69230,6 +71970,17 @@ } ] }, + { + "shortName": "RecordActionOnComment", + "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.RecordActionOnComment", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1alpha/{name=projects/*/locations/*/orders/*/comments/*}:recordAction" + } + ] + }, { "shortName": "SignalZoneState", "fullName": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement.SignalZoneState", @@ -69702,68 +72453,26 @@ }, "services": [ { - "shortName": "GatewayService", - "fullName": "google.cloud.gkeconnect.gateway.v1.GatewayService" + "shortName": "GatewayControl", + "fullName": "google.cloud.gkeconnect.gateway.v1.GatewayControl", + "methods": [ + { + "shortName": "GenerateCredentials", + "fullName": "google.cloud.gkeconnect.gateway.v1.GatewayControl.GenerateCredentials", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/memberships/*}:generateCredentials" + } + ] + } + ] } ], "configFile": "connectgateway_v1.yaml", "serviceConfigApiNames": [ - "google.cloud.gkeconnect.gateway.v1.GatewayService" - ], - "nameInServiceConfig": "connectgateway.googleapis.com" - }, - { - "id": "google.cloud.gkeconnect.gateway.v1alpha1", - "directory": "google/cloud/gkeconnect/gateway/v1alpha1", - "version": "v1alpha1", - "majorVersion": "v1", - "hostName": "connectgateway.googleapis.com", - "title": "Connect Gateway API", - "description": "The Connect Gateway service allows connectivity from external parties to connected Kubernetes clusters.", - "importDirectories": [ - "google/api" - ], - "options": { - "csharp_namespace": { - "valueCounts": { - "Google.Cloud.GkeConnect.Gateway.V1Alpha1": 1 - } - }, - "go_package": { - "valueCounts": { - "cloud.google.com/go/gkeconnect/gateway/apiv1alpha1/gatewaypb;gatewaypb": 1 - } - }, - "java_multiple_files": { - "valueCounts": { - "true": 1 - } - }, - "java_package": { - "valueCounts": { - "com.google.cloud.gkeconnect.gateway.v1alpha1": 1 - } - }, - "php_namespace": { - "valueCounts": { - "Google\\Cloud\\GkeConnect\\Gateway\\V1alpha1": 1 - } - }, - "ruby_package": { - "valueCounts": { - "Google::Cloud::GkeConnect::Gateway::V1alpha1": 1 - } - } - }, - "services": [ - { - "shortName": "GatewayService", - "fullName": "google.cloud.gkeconnect.gateway.v1alpha1.GatewayService" - } - ], - "configFile": "connectgateway_v1alpha1.yaml", - "serviceConfigApiNames": [ - "google.cloud.gkeconnect.gateway.v1alpha1.GatewayService" + "google.cloud.gkeconnect.gateway.v1.GatewayControl" ], "nameInServiceConfig": "connectgateway.googleapis.com" }, @@ -69812,61 +72521,17 @@ }, "services": [ { - "shortName": "GatewayService", - "fullName": "google.cloud.gkeconnect.gateway.v1beta1.GatewayService", + "shortName": "GatewayControl", + "fullName": "google.cloud.gkeconnect.gateway.v1beta1.GatewayControl", "methods": [ { - "shortName": "DeleteResource", - "fullName": "google.cloud.gkeconnect.gateway.v1beta1.GatewayService.DeleteResource", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "DELETE", - "path": "/v1beta1/**" - } - ] - }, - { - "shortName": "GetResource", - "fullName": "google.cloud.gkeconnect.gateway.v1beta1.GatewayService.GetResource", + "shortName": "GenerateCredentials", + "fullName": "google.cloud.gkeconnect.gateway.v1beta1.GatewayControl.GenerateCredentials", "mode": "UNARY", "bindings": [ { "httpMethod": "GET", - "path": "/v1beta1/**" - } - ] - }, - { - "shortName": "PatchResource", - "fullName": "google.cloud.gkeconnect.gateway.v1beta1.GatewayService.PatchResource", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PATCH", - "path": "/v1beta1/**" - } - ] - }, - { - "shortName": "PostResource", - "fullName": "google.cloud.gkeconnect.gateway.v1beta1.GatewayService.PostResource", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "POST", - "path": "/v1beta1/**" - } - ] - }, - { - "shortName": "PutResource", - "fullName": "google.cloud.gkeconnect.gateway.v1beta1.GatewayService.PutResource", - "mode": "UNARY", - "bindings": [ - { - "httpMethod": "PUT", - "path": "/v1beta1/**" + "path": "/v1beta1/{name=projects/*/locations/*/memberships/*}:generateCredentials" } ] } @@ -69875,7 +72540,7 @@ ], "configFile": "connectgateway_v1beta1.yaml", "serviceConfigApiNames": [ - "google.cloud.gkeconnect.gateway.v1beta1.GatewayService" + "google.cloud.gkeconnect.gateway.v1beta1.GatewayControl" ], "nameInServiceConfig": "connectgateway.googleapis.com" }, @@ -70508,8 +73173,8 @@ "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.", + "title": "GKE Multi-Cloud API", + "description": "GKE Multi-Cloud provides a way to manage Kubernetes clusters that run on AWS and Azure infrastructure using the GKE 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 GKE Multi-Cloud, Google creates the resources needed and brings up a cluster on your behalf. You can deploy workloads with the GKE Multi-Cloud API or the gcloud and kubectl command-line tools.", "importDirectories": [ "google/api", "google/cloud/gkemulticloud/v1", @@ -73573,7 +76238,7 @@ "version": "v1", "majorVersion": "v1", "hostName": "managedkafka.googleapis.com", - "title": "Apache Kafka for BigQuery API", + "title": "Managed Service for Apache Kafka API", "description": "Manage Apache Kafka clusters and resources.", "importDirectories": [ "google/api", @@ -76239,6 +78904,17 @@ } ] }, + { + "shortName": "SwitchActiveReplicaZone", + "fullName": "google.cloud.netapp.v1.NetApp.SwitchActiveReplicaZone", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/storagePools/*}:switch" + } + ] + }, { "shortName": "UpdateActiveDirectory", "fullName": "google.cloud.netapp.v1.NetApp.UpdateActiveDirectory", @@ -77000,32 +79676,32 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.NetworkManagement.V1Beta1": 3 + "Google.Cloud.NetworkManagement.V1Beta1": 5 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/networkmanagement/apiv1beta1/networkmanagementpb;networkmanagementpb": 3 + "cloud.google.com/go/networkmanagement/apiv1beta1/networkmanagementpb;networkmanagementpb": 5 } }, "java_multiple_files": { "valueCounts": { - "true": 3 + "true": 5 } }, "java_package": { "valueCounts": { - "com.google.cloud.networkmanagement.v1beta1": 3 + "com.google.cloud.networkmanagement.v1beta1": 5 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\NetworkManagement\\V1beta1": 3 + "Google\\Cloud\\NetworkManagement\\V1beta1": 5 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::NetworkManagement::V1beta1": 3 + "Google::Cloud::NetworkManagement::V1beta1": 5 } } }, @@ -77101,12 +79777,74 @@ ] } ] + }, + { + "shortName": "VpcFlowLogsService", + "fullName": "google.cloud.networkmanagement.v1beta1.VpcFlowLogsService", + "methods": [ + { + "shortName": "CreateVpcFlowLogsConfig", + "fullName": "google.cloud.networkmanagement.v1beta1.VpcFlowLogsService.CreateVpcFlowLogsConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1beta1/{parent=projects/*/locations/*}/vpcFlowLogsConfigs" + } + ] + }, + { + "shortName": "DeleteVpcFlowLogsConfig", + "fullName": "google.cloud.networkmanagement.v1beta1.VpcFlowLogsService.DeleteVpcFlowLogsConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1beta1/{name=projects/*/locations/*/vpcFlowLogsConfigs/*}" + } + ] + }, + { + "shortName": "GetVpcFlowLogsConfig", + "fullName": "google.cloud.networkmanagement.v1beta1.VpcFlowLogsService.GetVpcFlowLogsConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{name=projects/*/locations/*/vpcFlowLogsConfigs/*}" + } + ] + }, + { + "shortName": "ListVpcFlowLogsConfigs", + "fullName": "google.cloud.networkmanagement.v1beta1.VpcFlowLogsService.ListVpcFlowLogsConfigs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1beta1/{parent=projects/*/locations/*}/vpcFlowLogsConfigs" + } + ] + }, + { + "shortName": "UpdateVpcFlowLogsConfig", + "fullName": "google.cloud.networkmanagement.v1beta1.VpcFlowLogsService.UpdateVpcFlowLogsConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1beta1/{vpc_flow_logs_config.name=projects/*/locations/*/vpcFlowLogsConfigs/*}" + } + ] + } + ] } ], "configFile": "networkmanagement_v1beta1.yaml", "serviceConfigApiNames": [ "google.cloud.location.Locations", "google.cloud.networkmanagement.v1beta1.ReachabilityService", + "google.cloud.networkmanagement.v1beta1.VpcFlowLogsService", "google.iam.v1.IAMPolicy", "google.longrunning.Operations" ], @@ -79543,6 +82281,311 @@ ], "nameInServiceConfig": "cloudoptimization.googleapis.com" }, + { + "id": "google.cloud.oracledatabase.v1", + "directory": "google/cloud/oracledatabase/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "oracledatabase.googleapis.com", + "title": "Oracle Database@Google Cloud API", + "description": "The Oracle Database@Google Cloud API provides a set of APIs to manage Oracle database services, such as Exadata and Autonomous Databases.", + "importDirectories": [ + "google/api", + "google/cloud/oracledatabase/v1", + "google/longrunning", + "google/protobuf", + "google/type" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.OracleDatabase.V1": 14 + } + }, + "go_package": { + "valueCounts": { + "cloud.google.com/go/oracledatabase/apiv1/oracledatabasepb;oracledatabasepb": 14 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 14 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.oracledatabase.v1": 14 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\OracleDatabase\\V1": 14 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::OracleDatabase::V1": 14 + } + } + }, + "services": [ + { + "shortName": "OracleDatabase", + "fullName": "google.cloud.oracledatabase.v1.OracleDatabase", + "methods": [ + { + "shortName": "CreateAutonomousDatabase", + "fullName": "google.cloud.oracledatabase.v1.OracleDatabase.CreateAutonomousDatabase", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/autonomousDatabases" + } + ] + }, + { + "shortName": "CreateCloudExadataInfrastructure", + "fullName": "google.cloud.oracledatabase.v1.OracleDatabase.CreateCloudExadataInfrastructure", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/cloudExadataInfrastructures" + } + ] + }, + { + "shortName": "CreateCloudVmCluster", + "fullName": "google.cloud.oracledatabase.v1.OracleDatabase.CreateCloudVmCluster", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/cloudVmClusters" + } + ] + }, + { + "shortName": "DeleteAutonomousDatabase", + "fullName": "google.cloud.oracledatabase.v1.OracleDatabase.DeleteAutonomousDatabase", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/autonomousDatabases/*}" + } + ] + }, + { + "shortName": "DeleteCloudExadataInfrastructure", + "fullName": "google.cloud.oracledatabase.v1.OracleDatabase.DeleteCloudExadataInfrastructure", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/cloudExadataInfrastructures/*}" + } + ] + }, + { + "shortName": "DeleteCloudVmCluster", + "fullName": "google.cloud.oracledatabase.v1.OracleDatabase.DeleteCloudVmCluster", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/cloudVmClusters/*}" + } + ] + }, + { + "shortName": "GenerateAutonomousDatabaseWallet", + "fullName": "google.cloud.oracledatabase.v1.OracleDatabase.GenerateAutonomousDatabaseWallet", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/autonomousDatabases/*}:generateWallet" + } + ] + }, + { + "shortName": "GetAutonomousDatabase", + "fullName": "google.cloud.oracledatabase.v1.OracleDatabase.GetAutonomousDatabase", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/autonomousDatabases/*}" + } + ] + }, + { + "shortName": "GetCloudExadataInfrastructure", + "fullName": "google.cloud.oracledatabase.v1.OracleDatabase.GetCloudExadataInfrastructure", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/cloudExadataInfrastructures/*}" + } + ] + }, + { + "shortName": "GetCloudVmCluster", + "fullName": "google.cloud.oracledatabase.v1.OracleDatabase.GetCloudVmCluster", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/cloudVmClusters/*}" + } + ] + }, + { + "shortName": "ListAutonomousDatabaseBackups", + "fullName": "google.cloud.oracledatabase.v1.OracleDatabase.ListAutonomousDatabaseBackups", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/autonomousDatabaseBackups" + } + ] + }, + { + "shortName": "ListAutonomousDatabaseCharacterSets", + "fullName": "google.cloud.oracledatabase.v1.OracleDatabase.ListAutonomousDatabaseCharacterSets", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/autonomousDatabaseCharacterSets" + } + ] + }, + { + "shortName": "ListAutonomousDatabases", + "fullName": "google.cloud.oracledatabase.v1.OracleDatabase.ListAutonomousDatabases", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/autonomousDatabases" + } + ] + }, + { + "shortName": "ListAutonomousDbVersions", + "fullName": "google.cloud.oracledatabase.v1.OracleDatabase.ListAutonomousDbVersions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/autonomousDbVersions" + } + ] + }, + { + "shortName": "ListCloudExadataInfrastructures", + "fullName": "google.cloud.oracledatabase.v1.OracleDatabase.ListCloudExadataInfrastructures", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/cloudExadataInfrastructures" + } + ] + }, + { + "shortName": "ListCloudVmClusters", + "fullName": "google.cloud.oracledatabase.v1.OracleDatabase.ListCloudVmClusters", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/cloudVmClusters" + } + ] + }, + { + "shortName": "ListDbNodes", + "fullName": "google.cloud.oracledatabase.v1.OracleDatabase.ListDbNodes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/cloudVmClusters/*}/dbNodes" + } + ] + }, + { + "shortName": "ListDbServers", + "fullName": "google.cloud.oracledatabase.v1.OracleDatabase.ListDbServers", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/cloudExadataInfrastructures/*}/dbServers" + } + ] + }, + { + "shortName": "ListDbSystemShapes", + "fullName": "google.cloud.oracledatabase.v1.OracleDatabase.ListDbSystemShapes", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/dbSystemShapes" + } + ] + }, + { + "shortName": "ListEntitlements", + "fullName": "google.cloud.oracledatabase.v1.OracleDatabase.ListEntitlements", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/entitlements" + } + ] + }, + { + "shortName": "ListGiVersions", + "fullName": "google.cloud.oracledatabase.v1.OracleDatabase.ListGiVersions", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/giVersions" + } + ] + }, + { + "shortName": "RestoreAutonomousDatabase", + "fullName": "google.cloud.oracledatabase.v1.OracleDatabase.RestoreAutonomousDatabase", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/autonomousDatabases/*}:restore" + } + ] + } + ] + } + ], + "configFile": "oracledatabase_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.location.Locations", + "google.cloud.oracledatabase.v1.OracleDatabase", + "google.longrunning.Operations" + ], + "nameInServiceConfig": "oracledatabase.googleapis.com" + }, { "id": "google.cloud.orchestration.airflow.service.v1", "directory": "google/cloud/orchestration/airflow/service/v1", @@ -79580,6 +82623,17 @@ "shortName": "Environments", "fullName": "google.cloud.orchestration.airflow.service.v1.Environments", "methods": [ + { + "shortName": "CheckUpgrade", + "fullName": "google.cloud.orchestration.airflow.service.v1.Environments.CheckUpgrade", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{environment=projects/*/locations/*/environments/*}:checkUpgrade" + } + ] + }, { "shortName": "CreateEnvironment", "fullName": "google.cloud.orchestration.airflow.service.v1.Environments.CreateEnvironment", @@ -81677,6 +84731,144 @@ ], "nameInServiceConfig": "oslogin.googleapis.com" }, + { + "id": "google.cloud.parallelstore.v1", + "directory": "google/cloud/parallelstore/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "parallelstore.googleapis.com", + "title": "Parallelstore API", + "description": "", + "importDirectories": [ + "google/api", + "google/longrunning", + "google/protobuf" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Cloud.Parallelstore.V1": 1 + } + }, + "go_package": { + "valueCounts": { + "cloud.google.com/go/parallelstore/apiv1/parallelstorepb;parallelstorepb": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.cloud.parallelstore.v1": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Cloud\\Parallelstore\\V1": 1 + } + }, + "ruby_package": { + "valueCounts": { + "Google::Cloud::Parallelstore::V1": 1 + } + } + }, + "services": [ + { + "shortName": "Parallelstore", + "fullName": "google.cloud.parallelstore.v1.Parallelstore", + "methods": [ + { + "shortName": "CreateInstance", + "fullName": "google.cloud.parallelstore.v1.Parallelstore.CreateInstance", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/instances" + } + ] + }, + { + "shortName": "DeleteInstance", + "fullName": "google.cloud.parallelstore.v1.Parallelstore.DeleteInstance", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/instances/*}" + } + ] + }, + { + "shortName": "ExportData", + "fullName": "google.cloud.parallelstore.v1.Parallelstore.ExportData", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/instances/*}:exportData" + } + ] + }, + { + "shortName": "GetInstance", + "fullName": "google.cloud.parallelstore.v1.Parallelstore.GetInstance", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/instances/*}" + } + ] + }, + { + "shortName": "ImportData", + "fullName": "google.cloud.parallelstore.v1.Parallelstore.ImportData", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/locations/*/instances/*}:importData" + } + ] + }, + { + "shortName": "ListInstances", + "fullName": "google.cloud.parallelstore.v1.Parallelstore.ListInstances", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*}/instances" + } + ] + }, + { + "shortName": "UpdateInstance", + "fullName": "google.cloud.parallelstore.v1.Parallelstore.UpdateInstance", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{instance.name=projects/*/locations/*/instances/*}" + } + ] + } + ] + } + ], + "configFile": "parallelstore_v1.yaml", + "serviceConfigApiNames": [ + "google.cloud.location.Locations", + "google.cloud.parallelstore.v1.Parallelstore", + "google.longrunning.Operations" + ], + "nameInServiceConfig": "parallelstore.googleapis.com" + }, { "id": "google.cloud.parallelstore.v1beta", "directory": "google/cloud/parallelstore/v1beta", @@ -83746,6 +86938,17 @@ "shortName": "RecaptchaEnterpriseService", "fullName": "google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseService", "methods": [ + { + "shortName": "AddIpOverride", + "fullName": "google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseService.AddIpOverride", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/keys/*}:addIpOverride" + } + ] + }, { "shortName": "AnnotateAssessment", "fullName": "google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseService.AnnotateAssessment", @@ -86581,37 +89784,37 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.Retail.V2": 21 + "Google.Cloud.Retail.V2": 23 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/retail/apiv2/retailpb;retailpb": 21 + "cloud.google.com/go/retail/apiv2/retailpb;retailpb": 23 } }, "java_multiple_files": { "valueCounts": { - "true": 21 + "true": 23 } }, "java_package": { "valueCounts": { - "com.google.cloud.retail.v2": 21 + "com.google.cloud.retail.v2": 23 } }, "objc_class_prefix": { "valueCounts": { - "RETAIL": 21 + "RETAIL": 23 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\Retail\\V2": 21 + "Google\\Cloud\\Retail\\V2": 23 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::Retail::V2": 21 + "Google::Cloud::Retail::V2": 23 } } }, @@ -86849,6 +90052,67 @@ } ] }, + { + "shortName": "GenerativeQuestionService", + "fullName": "google.cloud.retail.v2.GenerativeQuestionService", + "methods": [ + { + "shortName": "BatchUpdateGenerativeQuestionConfigs", + "fullName": "google.cloud.retail.v2.GenerativeQuestionService.BatchUpdateGenerativeQuestionConfigs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*/catalogs/*}/generativeQuestion:batchUpdate" + } + ] + }, + { + "shortName": "GetGenerativeQuestionsFeatureConfig", + "fullName": "google.cloud.retail.v2.GenerativeQuestionService.GetGenerativeQuestionsFeatureConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{catalog=projects/*/locations/*/catalogs/*}/generativeQuestionFeature" + } + ] + }, + { + "shortName": "ListGenerativeQuestionConfigs", + "fullName": "google.cloud.retail.v2.GenerativeQuestionService.ListGenerativeQuestionConfigs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2/{parent=projects/*/locations/*/catalogs/*}/generativeQuestions" + } + ] + }, + { + "shortName": "UpdateGenerativeQuestionConfig", + "fullName": "google.cloud.retail.v2.GenerativeQuestionService.UpdateGenerativeQuestionConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{generative_question_config.catalog=projects/*/locations/*/catalogs/*}/generativeQuestion" + } + ] + }, + { + "shortName": "UpdateGenerativeQuestionsFeatureConfig", + "fullName": "google.cloud.retail.v2.GenerativeQuestionService.UpdateGenerativeQuestionsFeatureConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2/{generative_questions_feature_config.catalog=projects/*/locations/*/catalogs/*}/generativeQuestionFeature" + } + ] + } + ] + }, { "shortName": "ModelService", "fullName": "google.cloud.retail.v2.ModelService", @@ -87275,6 +90539,7 @@ "google.cloud.retail.v2.CatalogService", "google.cloud.retail.v2.CompletionService", "google.cloud.retail.v2.ControlService", + "google.cloud.retail.v2.GenerativeQuestionService", "google.cloud.retail.v2.ModelService", "google.cloud.retail.v2.PredictionService", "google.cloud.retail.v2.ProductService", @@ -87304,37 +90569,37 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.Retail.V2Alpha": 27 + "Google.Cloud.Retail.V2Alpha": 29 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/retail/apiv2alpha/retailpb;retailpb": 27 + "cloud.google.com/go/retail/apiv2alpha/retailpb;retailpb": 29 } }, "java_multiple_files": { "valueCounts": { - "true": 27 + "true": 29 } }, "java_package": { "valueCounts": { - "com.google.cloud.retail.v2alpha": 27 + "com.google.cloud.retail.v2alpha": 29 } }, "objc_class_prefix": { "valueCounts": { - "RETAIL": 27 + "RETAIL": 29 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\Retail\\V2alpha": 27 + "Google\\Cloud\\Retail\\V2alpha": 29 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::Retail::V2alpha": 27 + "Google::Cloud::Retail::V2alpha": 29 } } }, @@ -87611,6 +90876,67 @@ } ] }, + { + "shortName": "GenerativeQuestionService", + "fullName": "google.cloud.retail.v2alpha.GenerativeQuestionService", + "methods": [ + { + "shortName": "BatchUpdateGenerativeQuestionConfigs", + "fullName": "google.cloud.retail.v2alpha.GenerativeQuestionService.BatchUpdateGenerativeQuestionConfigs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2alpha/{parent=projects/*/locations/*/catalogs/*}/generativeQuestion:batchUpdate" + } + ] + }, + { + "shortName": "GetGenerativeQuestionsFeatureConfig", + "fullName": "google.cloud.retail.v2alpha.GenerativeQuestionService.GetGenerativeQuestionsFeatureConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2alpha/{catalog=projects/*/locations/*/catalogs/*}/generativeQuestionFeature" + } + ] + }, + { + "shortName": "ListGenerativeQuestionConfigs", + "fullName": "google.cloud.retail.v2alpha.GenerativeQuestionService.ListGenerativeQuestionConfigs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2alpha/{parent=projects/*/locations/*/catalogs/*}/generativeQuestions" + } + ] + }, + { + "shortName": "UpdateGenerativeQuestionConfig", + "fullName": "google.cloud.retail.v2alpha.GenerativeQuestionService.UpdateGenerativeQuestionConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2alpha/{generative_question_config.catalog=projects/*/locations/*/catalogs/*}/generativeQuestion" + } + ] + }, + { + "shortName": "UpdateGenerativeQuestionsFeatureConfig", + "fullName": "google.cloud.retail.v2alpha.GenerativeQuestionService.UpdateGenerativeQuestionsFeatureConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2alpha/{generative_questions_feature_config.catalog=projects/*/locations/*/catalogs/*}/generativeQuestionFeature" + } + ] + } + ] + }, { "shortName": "MerchantCenterAccountLinkService", "fullName": "google.cloud.retail.v2alpha.MerchantCenterAccountLinkService", @@ -87813,6 +91139,17 @@ } ] }, + { + "shortName": "ExportProducts", + "fullName": "google.cloud.retail.v2alpha.ProductService.ExportProducts", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2alpha/{parent=projects/*/locations/*/catalogs/*/branches/*}/products:export" + } + ] + }, { "shortName": "GetProduct", "fullName": "google.cloud.retail.v2alpha.ProductService.GetProduct", @@ -88116,6 +91453,17 @@ } ] }, + { + "shortName": "ExportUserEvents", + "fullName": "google.cloud.retail.v2alpha.UserEventService.ExportUserEvents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2alpha/{parent=projects/*/locations/*/catalogs/*}/userEvents:export" + } + ] + }, { "shortName": "ImportUserEvents", "fullName": "google.cloud.retail.v2alpha.UserEventService.ImportUserEvents", @@ -88171,6 +91519,7 @@ "google.cloud.retail.v2alpha.CatalogService", "google.cloud.retail.v2alpha.CompletionService", "google.cloud.retail.v2alpha.ControlService", + "google.cloud.retail.v2alpha.GenerativeQuestionService", "google.cloud.retail.v2alpha.MerchantCenterAccountLinkService", "google.cloud.retail.v2alpha.ModelService", "google.cloud.retail.v2alpha.PredictionService", @@ -88202,37 +91551,37 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.Retail.V2Beta": 21 + "Google.Cloud.Retail.V2Beta": 25 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/retail/apiv2beta/retailpb;retailpb": 21 + "cloud.google.com/go/retail/apiv2beta/retailpb;retailpb": 25 } }, "java_multiple_files": { "valueCounts": { - "true": 21 + "true": 25 } }, "java_package": { "valueCounts": { - "com.google.cloud.retail.v2beta": 21 + "com.google.cloud.retail.v2beta": 25 } }, "objc_class_prefix": { "valueCounts": { - "RETAIL": 21 + "RETAIL": 25 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\Retail\\V2beta": 21 + "Google\\Cloud\\Retail\\V2beta": 25 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::Retail::V2beta": 21 + "Google::Cloud::Retail::V2beta": 25 } } }, @@ -88481,6 +91830,67 @@ } ] }, + { + "shortName": "GenerativeQuestionService", + "fullName": "google.cloud.retail.v2beta.GenerativeQuestionService", + "methods": [ + { + "shortName": "BatchUpdateGenerativeQuestionConfigs", + "fullName": "google.cloud.retail.v2beta.GenerativeQuestionService.BatchUpdateGenerativeQuestionConfigs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta/{parent=projects/*/locations/*/catalogs/*}/generativeQuestion:batchUpdate" + } + ] + }, + { + "shortName": "GetGenerativeQuestionsFeatureConfig", + "fullName": "google.cloud.retail.v2beta.GenerativeQuestionService.GetGenerativeQuestionsFeatureConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta/{catalog=projects/*/locations/*/catalogs/*}/generativeQuestionFeature" + } + ] + }, + { + "shortName": "ListGenerativeQuestionConfigs", + "fullName": "google.cloud.retail.v2beta.GenerativeQuestionService.ListGenerativeQuestionConfigs", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta/{parent=projects/*/locations/*/catalogs/*}/generativeQuestions" + } + ] + }, + { + "shortName": "UpdateGenerativeQuestionConfig", + "fullName": "google.cloud.retail.v2beta.GenerativeQuestionService.UpdateGenerativeQuestionConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2beta/{generative_question_config.catalog=projects/*/locations/*/catalogs/*}/generativeQuestion" + } + ] + }, + { + "shortName": "UpdateGenerativeQuestionsFeatureConfig", + "fullName": "google.cloud.retail.v2beta.GenerativeQuestionService.UpdateGenerativeQuestionsFeatureConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2beta/{generative_questions_feature_config.catalog=projects/*/locations/*/catalogs/*}/generativeQuestionFeature" + } + ] + } + ] + }, { "shortName": "ModelService", "fullName": "google.cloud.retail.v2beta.ModelService", @@ -88644,6 +92054,17 @@ } ] }, + { + "shortName": "ExportProducts", + "fullName": "google.cloud.retail.v2beta.ProductService.ExportProducts", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta/{parent=projects/*/locations/*/catalogs/*/branches/*}/products:export" + } + ] + }, { "shortName": "GetProduct", "fullName": "google.cloud.retail.v2beta.ProductService.GetProduct", @@ -88734,6 +92155,34 @@ } ] }, + { + "shortName": "ProjectService", + "fullName": "google.cloud.retail.v2beta.ProjectService", + "methods": [ + { + "shortName": "GetAlertConfig", + "fullName": "google.cloud.retail.v2beta.ProjectService.GetAlertConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v2beta/{name=projects/*/alertConfig}" + } + ] + }, + { + "shortName": "UpdateAlertConfig", + "fullName": "google.cloud.retail.v2beta.ProjectService.UpdateAlertConfig", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v2beta/{alert_config.name=projects/*/alertConfig}" + } + ] + } + ] + }, { "shortName": "SearchService", "fullName": "google.cloud.retail.v2beta.SearchService", @@ -88853,6 +92302,17 @@ } ] }, + { + "shortName": "ExportUserEvents", + "fullName": "google.cloud.retail.v2beta.UserEventService.ExportUserEvents", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2beta/{parent=projects/*/locations/*/catalogs/*}/userEvents:export" + } + ] + }, { "shortName": "ImportUserEvents", "fullName": "google.cloud.retail.v2beta.UserEventService.ImportUserEvents", @@ -88907,9 +92367,11 @@ "google.cloud.retail.v2beta.CatalogService", "google.cloud.retail.v2beta.CompletionService", "google.cloud.retail.v2beta.ControlService", + "google.cloud.retail.v2beta.GenerativeQuestionService", "google.cloud.retail.v2beta.ModelService", "google.cloud.retail.v2beta.PredictionService", "google.cloud.retail.v2beta.ProductService", + "google.cloud.retail.v2beta.ProjectService", "google.cloud.retail.v2beta.SearchService", "google.cloud.retail.v2beta.ServingConfigService", "google.cloud.retail.v2beta.UserEventService", @@ -88936,21 +92398,38 @@ "options": { "go_package": { "valueCounts": { - "cloud.google.com/go/run/apiv2/runpb;runpb": 13 + "cloud.google.com/go/run/apiv2/runpb;runpb": 14 } }, "java_multiple_files": { "valueCounts": { - "true": 13 + "true": 14 } }, "java_package": { "valueCounts": { - "com.google.cloud.run.v2": 13 + "com.google.cloud.run.v2": 14 } } }, "services": [ + { + "shortName": "Builds", + "fullName": "google.cloud.run.v2.Builds", + "methods": [ + { + "shortName": "SubmitBuild", + "fullName": "google.cloud.run.v2.Builds.SubmitBuild", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v2/{parent=projects/*/locations/*}/builds:submit" + } + ] + } + ] + }, { "shortName": "Executions", "fullName": "google.cloud.run.v2.Executions", @@ -89271,6 +92750,7 @@ "configFile": "run_v2.yaml", "serviceConfigApiNames": [ "google.cloud.location.Locations", + "google.cloud.run.v2.Builds", "google.cloud.run.v2.Executions", "google.cloud.run.v2.Jobs", "google.cloud.run.v2.Revisions", @@ -90438,6 +93918,17 @@ "shortName": "SecureSourceManager", "fullName": "google.cloud.securesourcemanager.v1.SecureSourceManager", "methods": [ + { + "shortName": "CreateBranchRule", + "fullName": "google.cloud.securesourcemanager.v1.SecureSourceManager.CreateBranchRule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*/repositories/*}/branchRules" + } + ] + }, { "shortName": "CreateInstance", "fullName": "google.cloud.securesourcemanager.v1.SecureSourceManager.CreateInstance", @@ -90460,6 +93951,17 @@ } ] }, + { + "shortName": "DeleteBranchRule", + "fullName": "google.cloud.securesourcemanager.v1.SecureSourceManager.DeleteBranchRule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/repositories/*/branchRules/*}" + } + ] + }, { "shortName": "DeleteInstance", "fullName": "google.cloud.securesourcemanager.v1.SecureSourceManager.DeleteInstance", @@ -90482,6 +93984,17 @@ } ] }, + { + "shortName": "GetBranchRule", + "fullName": "google.cloud.securesourcemanager.v1.SecureSourceManager.GetBranchRule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{name=projects/*/locations/*/repositories/*/branchRules/*}" + } + ] + }, { "shortName": "GetIamPolicyRepo", "fullName": "google.cloud.securesourcemanager.v1.SecureSourceManager.GetIamPolicyRepo", @@ -90515,6 +94028,17 @@ } ] }, + { + "shortName": "ListBranchRules", + "fullName": "google.cloud.securesourcemanager.v1.SecureSourceManager.ListBranchRules", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v1/{parent=projects/*/locations/*/repositories/*}/branchRules" + } + ] + }, { "shortName": "ListInstances", "fullName": "google.cloud.securesourcemanager.v1.SecureSourceManager.ListInstances", @@ -90558,6 +94082,17 @@ "path": "/v1/{resource=projects/*/locations/*/repositories/*}:testIamPermissions" } ] + }, + { + "shortName": "UpdateBranchRule", + "fullName": "google.cloud.securesourcemanager.v1.SecureSourceManager.UpdateBranchRule", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v1/{branch_rule.name=projects/*/locations/*/repositories/*/branchRules/*}" + } + ] } ] } @@ -96431,17 +99966,17 @@ "options": { "go_package": { "valueCounts": { - "cloud.google.com/go/speech/apiv2/speechpb;speechpb": 1 + "cloud.google.com/go/speech/apiv2/speechpb;speechpb": 2 } }, "java_multiple_files": { "valueCounts": { - "true": 1 + "true": 2 } }, "java_package": { "valueCounts": { - "com.google.cloud.speech.v2": 1 + "com.google.cloud.speech.v2": 2 } } }, @@ -101033,6 +104568,12 @@ "com.google.cloud.texttospeech.v1": 2 } }, + "objc_class_prefix": { + "valueCounts": { + "": 1, + "CTTS": 1 + } + }, "php_namespace": { "valueCounts": { "Google\\Cloud\\TextToSpeech\\V1": 2 @@ -101060,6 +104601,11 @@ } ] }, + { + "shortName": "StreamingSynthesize", + "fullName": "google.cloud.texttospeech.v1.TextToSpeech.StreamingSynthesize", + "mode": "BIDIRECTIONAL_STREAMING" + }, { "shortName": "SynthesizeSpeech", "fullName": "google.cloud.texttospeech.v1.TextToSpeech.SynthesizeSpeech", @@ -101114,11 +104660,6 @@ "google/protobuf" ], "options": { - "cc_enable_arenas": { - "valueCounts": { - "true": 2 - } - }, "csharp_namespace": { "valueCounts": { "Google.Cloud.TextToSpeech.V1Beta1": 2 @@ -101139,6 +104680,12 @@ "com.google.cloud.texttospeech.v1beta1": 2 } }, + "objc_class_prefix": { + "valueCounts": { + "": 1, + "CTTS": 1 + } + }, "php_namespace": { "valueCounts": { "Google\\Cloud\\TextToSpeech\\V1beta1": 2 @@ -101166,6 +104713,11 @@ } ] }, + { + "shortName": "StreamingSynthesize", + "fullName": "google.cloud.texttospeech.v1beta1.TextToSpeech.StreamingSynthesize", + "mode": "BIDIRECTIONAL_STREAMING" + }, { "shortName": "SynthesizeSpeech", "fullName": "google.cloud.texttospeech.v1beta1.TextToSpeech.SynthesizeSpeech", @@ -101985,42 +105537,49 @@ "google/api", "google/cloud/translate/v3", "google/longrunning", - "google/protobuf" + "google/protobuf", + "google/rpc" ], "options": { "cc_enable_arenas": { "valueCounts": { - "true": 3 + "true": 4 } }, "csharp_namespace": { "valueCounts": { - "Google.Cloud.Translate.V3": 3 + "Google.Cloud.Translate.V3": 4 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/translate/apiv3/translatepb;translatepb": 3 + "cloud.google.com/go/translate/apiv3/translatepb;translatepb": 4 } }, "java_multiple_files": { "valueCounts": { - "true": 3 + "true": 4 } }, "java_package": { "valueCounts": { - "com.google.cloud.translate.v3": 3 + "com.google.cloud.translate.v3": 4 + } + }, + "objc_class_prefix": { + "valueCounts": { + "": 3, + "CTRL3": 1 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\Translate\\V3": 3 + "Google\\Cloud\\Translate\\V3": 4 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::Translate::V3": 3 + "Google::Cloud::Translate::V3": 4 } } }, @@ -102073,6 +105632,17 @@ } ] }, + { + "shortName": "CreateDataset", + "fullName": "google.cloud.translation.v3.TranslationService.CreateDataset", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{parent=projects/*/locations/*}/datasets" + } + ] + }, { "shortName": "CreateGlossary", "fullName": "google.cloud.translation.v3.TranslationService.CreateGlossary", @@ -102084,6 +105654,28 @@ } ] }, + { + "shortName": "CreateGlossaryEntry", + "fullName": "google.cloud.translation.v3.TranslationService.CreateGlossaryEntry", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{parent=projects/*/locations/*/glossaries/*}/glossaryEntries" + } + ] + }, + { + "shortName": "CreateModel", + "fullName": "google.cloud.translation.v3.TranslationService.CreateModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{parent=projects/*/locations/*}/models" + } + ] + }, { "shortName": "DeleteAdaptiveMtDataset", "fullName": "google.cloud.translation.v3.TranslationService.DeleteAdaptiveMtDataset", @@ -102106,6 +105698,17 @@ } ] }, + { + "shortName": "DeleteDataset", + "fullName": "google.cloud.translation.v3.TranslationService.DeleteDataset", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3/{name=projects/*/locations/*/datasets/*}" + } + ] + }, { "shortName": "DeleteGlossary", "fullName": "google.cloud.translation.v3.TranslationService.DeleteGlossary", @@ -102117,6 +105720,28 @@ } ] }, + { + "shortName": "DeleteGlossaryEntry", + "fullName": "google.cloud.translation.v3.TranslationService.DeleteGlossaryEntry", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3/{name=projects/*/locations/*/glossaries/*/glossaryEntries/*}" + } + ] + }, + { + "shortName": "DeleteModel", + "fullName": "google.cloud.translation.v3.TranslationService.DeleteModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "DELETE", + "path": "/v3/{name=projects/*/locations/*/models/*}" + } + ] + }, { "shortName": "DetectLanguage", "fullName": "google.cloud.translation.v3.TranslationService.DetectLanguage", @@ -102132,6 +105757,17 @@ } ] }, + { + "shortName": "ExportData", + "fullName": "google.cloud.translation.v3.TranslationService.ExportData", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{dataset=projects/*/locations/*/datasets/*}:exportData" + } + ] + }, { "shortName": "GetAdaptiveMtDataset", "fullName": "google.cloud.translation.v3.TranslationService.GetAdaptiveMtDataset", @@ -102154,6 +105790,17 @@ } ] }, + { + "shortName": "GetDataset", + "fullName": "google.cloud.translation.v3.TranslationService.GetDataset", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{name=projects/*/locations/*/datasets/*}" + } + ] + }, { "shortName": "GetGlossary", "fullName": "google.cloud.translation.v3.TranslationService.GetGlossary", @@ -102165,6 +105812,28 @@ } ] }, + { + "shortName": "GetGlossaryEntry", + "fullName": "google.cloud.translation.v3.TranslationService.GetGlossaryEntry", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{name=projects/*/locations/*/glossaries/*/glossaryEntries/*}" + } + ] + }, + { + "shortName": "GetModel", + "fullName": "google.cloud.translation.v3.TranslationService.GetModel", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{name=projects/*/locations/*/models/*}" + } + ] + }, { "shortName": "GetSupportedLanguages", "fullName": "google.cloud.translation.v3.TranslationService.GetSupportedLanguages", @@ -102191,6 +105860,17 @@ } ] }, + { + "shortName": "ImportData", + "fullName": "google.cloud.translation.v3.TranslationService.ImportData", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{dataset=projects/*/locations/*/datasets/*}:importData" + } + ] + }, { "shortName": "ListAdaptiveMtDatasets", "fullName": "google.cloud.translation.v3.TranslationService.ListAdaptiveMtDatasets", @@ -102228,6 +105908,28 @@ } ] }, + { + "shortName": "ListDatasets", + "fullName": "google.cloud.translation.v3.TranslationService.ListDatasets", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{parent=projects/*/locations/*}/datasets" + } + ] + }, + { + "shortName": "ListExamples", + "fullName": "google.cloud.translation.v3.TranslationService.ListExamples", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{parent=projects/*/locations/*/datasets/*}/examples" + } + ] + }, { "shortName": "ListGlossaries", "fullName": "google.cloud.translation.v3.TranslationService.ListGlossaries", @@ -102239,6 +105941,43 @@ } ] }, + { + "shortName": "ListGlossaryEntries", + "fullName": "google.cloud.translation.v3.TranslationService.ListGlossaryEntries", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{parent=projects/*/locations/*/glossaries/*}/glossaryEntries" + } + ] + }, + { + "shortName": "ListModels", + "fullName": "google.cloud.translation.v3.TranslationService.ListModels", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/v3/{parent=projects/*/locations/*}/models" + } + ] + }, + { + "shortName": "RomanizeText", + "fullName": "google.cloud.translation.v3.TranslationService.RomanizeText", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v3/{parent=projects/*/locations/*}:romanizeText" + }, + { + "httpMethod": "POST", + "path": "/v3/{parent=projects/*}:romanizeText" + } + ] + }, { "shortName": "TranslateDocument", "fullName": "google.cloud.translation.v3.TranslationService.TranslateDocument", @@ -102264,13 +106003,38 @@ "path": "/v3/{parent=projects/*}:translateText" } ] + }, + { + "shortName": "UpdateGlossary", + "fullName": "google.cloud.translation.v3.TranslationService.UpdateGlossary", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3/{glossary.name=projects/*/locations/*/glossaries/*}" + } + ] + }, + { + "shortName": "UpdateGlossaryEntry", + "fullName": "google.cloud.translation.v3.TranslationService.UpdateGlossaryEntry", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/v3/{glossary_entry.name=projects/*/locations/*/glossaries/*/glossaryEntries/*}" + } + ] } ] } ], "configFile": "translate_v3.yaml", "serviceConfigApiNames": [ - "google.cloud.translation.v3.TranslationService" + "google.cloud.location.Locations", + "google.cloud.translation.v3.TranslationService", + "google.iam.v1.IAMPolicy", + "google.longrunning.Operations" ], "nameInServiceConfig": "translate.googleapis.com" }, @@ -104810,33 +108574,32 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Cloud.VisionAI.V1": 12, - "Google.Cloud.VisionAi.V1": 1 + "Google.Cloud.VisionAI.V1": 12 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/visionai/apiv1/visionaipb;visionaipb": 13 + "cloud.google.com/go/visionai/apiv1/visionaipb;visionaipb": 12 } }, "java_multiple_files": { "valueCounts": { - "true": 13 + "true": 12 } }, "java_package": { "valueCounts": { - "com.google.cloud.visionai.v1": 13 + "com.google.cloud.visionai.v1": 12 } }, "php_namespace": { "valueCounts": { - "Google\\Cloud\\VisionAI\\V1": 13 + "Google\\Cloud\\VisionAI\\V1": 12 } }, "ruby_package": { "valueCounts": { - "Google::Cloud::VisionAI::V1": 13 + "Google::Cloud::VisionAI::V1": 12 } } }, @@ -105354,10 +109117,6 @@ } ] }, - { - "shortName": "PredictionService", - "fullName": "google.cloud.visionai.v1.PredictionService" - }, { "shortName": "StreamingService", "fullName": "google.cloud.visionai.v1.StreamingService", @@ -114063,6 +117822,10 @@ { "httpMethod": "GET", "path": "/v1beta1/{group_name=projects/*/groups/*}" + }, + { + "httpMethod": "GET", + "path": "/v1beta1/{group_name=projects/*/locations/*/groups/*}" } ] }, @@ -114074,6 +117837,10 @@ { "httpMethod": "PUT", "path": "/v1beta1/{group.name=projects/*/groups/*}" + }, + { + "httpMethod": "PUT", + "path": "/v1beta1/{group.name=projects/*/locations/*/groups/*}" } ] } @@ -114091,6 +117858,10 @@ { "httpMethod": "DELETE", "path": "/v1beta1/{project_name=projects/*}/events" + }, + { + "httpMethod": "DELETE", + "path": "/v1beta1/{project_name=projects/*/locations/*}/events" } ] }, @@ -114102,6 +117873,10 @@ { "httpMethod": "GET", "path": "/v1beta1/{project_name=projects/*}/events" + }, + { + "httpMethod": "GET", + "path": "/v1beta1/{project_name=projects/*/locations/*}/events" } ] }, @@ -114113,6 +117888,10 @@ { "httpMethod": "GET", "path": "/v1beta1/{project_name=projects/*}/groupStats" + }, + { + "httpMethod": "GET", + "path": "/v1beta1/{project_name=projects/*/locations/*}/groupStats" } ] } @@ -117286,8 +121065,8 @@ "options": { "cc_enable_arenas": { "valueCounts": { - "": 1, - "true": 3 + "": 2, + "true": 2 } }, "csharp_namespace": { @@ -119510,6 +123289,75 @@ ], "nameInServiceConfig": "aerialview.googleapis.com" }, + { + "id": "google.maps.areainsights.v1", + "directory": "google/maps/areainsights/v1", + "version": "v1", + "majorVersion": "v1", + "hostName": "areainsights.googleapis.com", + "title": "Places Insights API", + "description": "Places Insights API.", + "importDirectories": [ + "google/api", + "google/type" + ], + "options": { + "csharp_namespace": { + "valueCounts": { + "Google.Maps.AreaInsights.V1": 1 + } + }, + "go_package": { + "valueCounts": { + "cloud.google.com/go/maps/areainsights/apiv1/areainsightspb;areainsightspb": 1 + } + }, + "java_multiple_files": { + "valueCounts": { + "true": 1 + } + }, + "java_package": { + "valueCounts": { + "com.google.maps.areainsights.v1": 1 + } + }, + "objc_class_prefix": { + "valueCounts": { + "MAI": 1 + } + }, + "php_namespace": { + "valueCounts": { + "Google\\Maps\\AreaInsights\\V1": 1 + } + } + }, + "services": [ + { + "shortName": "AreaInsights", + "fullName": "google.maps.areainsights.v1.AreaInsights", + "methods": [ + { + "shortName": "ComputeInsights", + "fullName": "google.maps.areainsights.v1.AreaInsights.ComputeInsights", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1:computeInsights" + } + ] + } + ] + } + ], + "configFile": "areainsights_v1.yaml", + "serviceConfigApiNames": [ + "google.maps.areainsights.v1.AreaInsights" + ], + "nameInServiceConfig": "areainsights.googleapis.com" + }, { "id": "google.maps.fleetengine.delivery.v1", "directory": "google/maps/fleetengine/delivery/v1", @@ -120030,37 +123878,37 @@ "options": { "cc_enable_arenas": { "valueCounts": { - "true": 11 + "true": 16 } }, "csharp_namespace": { "valueCounts": { - "Google.Maps.Places.V1": 11 + "Google.Maps.Places.V1": 16 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/maps/places/apiv1/placespb;placespb": 11 + "cloud.google.com/go/maps/places/apiv1/placespb;placespb": 16 } }, "java_multiple_files": { "valueCounts": { - "true": 11 + "true": 16 } }, "java_package": { "valueCounts": { - "com.google.maps.places.v1": 11 + "com.google.maps.places.v1": 16 } }, "objc_class_prefix": { "valueCounts": { - "GMPSV1": 11 + "GMPSV1": 16 } }, "php_namespace": { "valueCounts": { - "Google\\Maps\\Places\\V1": 11 + "Google\\Maps\\Places\\V1": 16 } } }, @@ -120880,7 +124728,7 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Marketingplatform.Admin.V1Alpha": 2 + "Google.Ads.MarketingPlatform.Admin.V1Alpha": 2 } }, "go_package": { @@ -120895,17 +124743,17 @@ }, "java_package": { "valueCounts": { - "com.google.marketingplatform.admin.v1alpha": 2 + "com.google.ads.marketingplatform.admin.v1alpha": 2 } }, "php_namespace": { "valueCounts": { - "Google\\Marketingplatform\\Admin\\V1alpha": 2 + "Google\\Ads\\MarketingPlatform\\Admin\\V1alpha": 2 } }, "ruby_package": { "valueCounts": { - "Google::Marketingplatform::AdminService::V1alpha": 2 + "Google::Ads::MarketingPlatform::Admin::V1alpha": 2 } } }, @@ -122138,6 +125986,10 @@ { "httpMethod": "POST", "path": "/v2/{parent=projects/*/locations/*}/connections" + }, + { + "httpMethod": "POST", + "path": "/v2/{parent=organizations/*/locations/*}/connections" } ] }, @@ -122201,7 +126053,7 @@ "bindings": [ { "httpMethod": "POST", - "path": "/v2/{parent=organizations/*}/inspectTemplates" + "path": "/v2/{parent=projects/*/locations/*}/inspectTemplates" }, { "httpMethod": "POST", @@ -122213,7 +126065,7 @@ }, { "httpMethod": "POST", - "path": "/v2/{parent=projects/*/locations/*}/inspectTemplates" + "path": "/v2/{parent=organizations/*}/inspectTemplates" } ] }, @@ -122282,6 +126134,10 @@ { "httpMethod": "DELETE", "path": "/v2/{name=projects/*/locations/*/connections/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v2/{name=organizations/*/locations/*/connections/*}" } ] }, @@ -122360,7 +126216,7 @@ "bindings": [ { "httpMethod": "DELETE", - "path": "/v2/{name=organizations/*/inspectTemplates/*}" + "path": "/v2/{name=projects/*/locations/*/inspectTemplates/*}" }, { "httpMethod": "DELETE", @@ -122372,7 +126228,7 @@ }, { "httpMethod": "DELETE", - "path": "/v2/{name=projects/*/locations/*/inspectTemplates/*}" + "path": "/v2/{name=organizations/*/inspectTemplates/*}" } ] }, @@ -122467,6 +126323,10 @@ { "httpMethod": "GET", "path": "/v2/{name=projects/*/locations/*/connections/*}" + }, + { + "httpMethod": "GET", + "path": "/v2/{name=organizations/*/locations/*/connections/*}" } ] }, @@ -122545,7 +126405,7 @@ "bindings": [ { "httpMethod": "GET", - "path": "/v2/{name=organizations/*/inspectTemplates/*}" + "path": "/v2/{name=projects/*/locations/*/inspectTemplates/*}" }, { "httpMethod": "GET", @@ -122557,7 +126417,7 @@ }, { "httpMethod": "GET", - "path": "/v2/{name=projects/*/locations/*/inspectTemplates/*}" + "path": "/v2/{name=organizations/*/inspectTemplates/*}" } ] }, @@ -122693,6 +126553,10 @@ { "httpMethod": "GET", "path": "/v2/{parent=projects/*/locations/*}/connections" + }, + { + "httpMethod": "GET", + "path": "/v2/{parent=organizations/*/locations/*}/connections" } ] }, @@ -122790,7 +126654,7 @@ "bindings": [ { "httpMethod": "GET", - "path": "/v2/{parent=organizations/*}/inspectTemplates" + "path": "/v2/{parent=projects/*/locations/*}/inspectTemplates" }, { "httpMethod": "GET", @@ -122802,7 +126666,7 @@ }, { "httpMethod": "GET", - "path": "/v2/{parent=projects/*/locations/*}/inspectTemplates" + "path": "/v2/{parent=organizations/*}/inspectTemplates" } ] }, @@ -122931,6 +126795,10 @@ { "httpMethod": "PATCH", "path": "/v2/{name=projects/*/locations/*/connections/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v2/{name=organizations/*/locations/*/connections/*}" } ] }, @@ -122979,7 +126847,7 @@ "bindings": [ { "httpMethod": "PATCH", - "path": "/v2/{name=organizations/*/inspectTemplates/*}" + "path": "/v2/{name=projects/*/locations/*/inspectTemplates/*}" }, { "httpMethod": "PATCH", @@ -122991,7 +126859,7 @@ }, { "httpMethod": "PATCH", - "path": "/v2/{name=projects/*/locations/*/inspectTemplates/*}" + "path": "/v2/{name=organizations/*/inspectTemplates/*}" } ] }, @@ -123714,7 +127582,7 @@ "majorVersion": "v1", "hostName": "merchantapi.googleapis.com", "title": "Merchant API", - "description": "Programmatically manage your Merchant Center accounts.", + "description": "Programmatically manage your Merchant Center Accounts.", "importDirectories": [ "google/api", "google/protobuf", @@ -123725,17 +127593,17 @@ "options": { "go_package": { "valueCounts": { - "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb": 19 + "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb": 21 } }, "java_multiple_files": { "valueCounts": { - "true": 19 + "true": 21 } }, "java_package": { "valueCounts": { - "com.google.shopping.merchant.accounts.v1beta": 19 + "com.google.shopping.merchant.accounts.v1beta": 21 } } }, @@ -123868,6 +127736,34 @@ } ] }, + { + "shortName": "AutofeedSettingsService", + "fullName": "google.shopping.merchant.accounts.v1beta.AutofeedSettingsService", + "methods": [ + { + "shortName": "GetAutofeedSettings", + "fullName": "google.shopping.merchant.accounts.v1beta.AutofeedSettingsService.GetAutofeedSettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/accounts/v1beta/{name=accounts/*/autofeedSettings}" + } + ] + }, + { + "shortName": "UpdateAutofeedSettings", + "fullName": "google.shopping.merchant.accounts.v1beta.AutofeedSettingsService.UpdateAutofeedSettings", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "PATCH", + "path": "/accounts/v1beta/{autofeed_settings.name=accounts/*/autofeedSettings}" + } + ] + } + ] + }, { "shortName": "BusinessIdentityService", "fullName": "google.shopping.merchant.accounts.v1beta.BusinessIdentityService", @@ -124301,8 +128197,8 @@ "configFile": "merchantapi_v1beta.yaml", "serviceConfigApiNames": [ "google.shopping.merchant.accounts.v1beta.AccountIssueService", - "google.shopping.merchant.accounts.v1beta.AccountTaxService", "google.shopping.merchant.accounts.v1beta.AccountsService", + "google.shopping.merchant.accounts.v1beta.AutofeedSettingsService", "google.shopping.merchant.accounts.v1beta.BusinessIdentityService", "google.shopping.merchant.accounts.v1beta.BusinessInfoService", "google.shopping.merchant.accounts.v1beta.EmailPreferencesService", @@ -124433,7 +128329,7 @@ "majorVersion": "v1", "hostName": "merchantapi.googleapis.com", "title": "Merchant API", - "description": "Programmatically manage your Merchant Center accounts.", + "description": "Programmatically manage your Merchant Center Accounts.", "importDirectories": [ "google/api", "google/protobuf", @@ -124443,32 +128339,32 @@ "options": { "csharp_namespace": { "valueCounts": { - "Google.Shopping.Merchant.DataSources.V1Beta": 3 + "Google.Shopping.Merchant.DataSources.V1Beta": 4 } }, "go_package": { "valueCounts": { - "cloud.google.com/go/shopping/merchant/datasources/apiv1beta/datasourcespb;datasourcespb": 3 + "cloud.google.com/go/shopping/merchant/datasources/apiv1beta/datasourcespb;datasourcespb": 4 } }, "java_multiple_files": { "valueCounts": { - "true": 3 + "true": 4 } }, "java_package": { "valueCounts": { - "com.google.shopping.merchant.datasources.v1beta": 3 + "com.google.shopping.merchant.datasources.v1beta": 4 } }, "php_namespace": { "valueCounts": { - "Google\\Shopping\\Merchant\\DataSources\\V1beta": 3 + "Google\\Shopping\\Merchant\\DataSources\\V1beta": 4 } }, "ruby_package": { "valueCounts": { - "Google::Shopping::Merchant::DataSources::V1beta": 3 + "Google::Shopping::Merchant::DataSources::V1beta": 4 } } }, @@ -124544,11 +128440,29 @@ ] } ] + }, + { + "shortName": "FileUploadsService", + "fullName": "google.shopping.merchant.datasources.v1beta.FileUploadsService", + "methods": [ + { + "shortName": "GetFileUpload", + "fullName": "google.shopping.merchant.datasources.v1beta.FileUploadsService.GetFileUpload", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "GET", + "path": "/datasources/v1beta/{name=accounts/*/dataSources/*/fileUploads/*}" + } + ] + } + ] } ], "configFile": "merchantapi_v1beta.yaml", "serviceConfigApiNames": [ - "google.shopping.merchant.datasources.v1beta.DataSourcesService" + "google.shopping.merchant.datasources.v1beta.DataSourcesService", + "google.shopping.merchant.datasources.v1beta.FileUploadsService" ], "nameInServiceConfig": "merchantapi.googleapis.com" }, @@ -125761,6 +129675,17 @@ } ] }, + { + "shortName": "MoveInstance", + "fullName": "google.spanner.admin.instance.v1.InstanceAdmin.MoveInstance", + "mode": "UNARY", + "bindings": [ + { + "httpMethod": "POST", + "path": "/v1/{name=projects/*/instances/*}:move" + } + ] + }, { "shortName": "SetIamPolicy", "fullName": "google.spanner.admin.instance.v1.InstanceAdmin.SetIamPolicy", @@ -126237,7 +130162,7 @@ "majorVersion": "v2", "hostName": "storage.googleapis.com", "title": "Cloud Storage API", - "description": "Stop. This folder is likely not what you are looking for. This folder contains protocol buffer definitions for an API only accessible to select customers. Customers not participating should not depend on this file. Please contact Google Cloud sales if you are interested. Unless told otherwise by a Google Cloud representative, do not use or otherwise rely on any of the contents of this folder. If you would like to use Cloud Storage, please consult our [official documentation](https://cloud.google.com/storage/docs/apis) for details on our XML and JSON APIs, or else consider one of our [client libraries](https://cloud.google.com/storage/docs/reference/libraries). This API defined in this folder is unreleased and may shut off, break, or fail at any time for any users who are not registered as a part of a private preview program.", + "description": "This folder contains protocol buffer definitions for an API only accessible to select customers. Customers not participating should not depend on this file. Please contact Google Cloud sales if you are interested. Unless told otherwise by a Google Cloud representative, do not use or otherwise rely on any of the contents of this folder. If you would like to use Cloud Storage, please consult our [official documentation](https://cloud.google.com/storage/docs/apis) for details on our XML and JSON APIs, or else consider one of our [client libraries](https://cloud.google.com/storage/docs/reference/libraries).", "importDirectories": [ "google/api", "google/iam/v1", @@ -126286,31 +130211,11 @@ "fullName": "google.storage.v2.Storage.CreateBucket", "mode": "UNARY" }, - { - "shortName": "CreateHmacKey", - "fullName": "google.storage.v2.Storage.CreateHmacKey", - "mode": "UNARY" - }, - { - "shortName": "CreateNotificationConfig", - "fullName": "google.storage.v2.Storage.CreateNotificationConfig", - "mode": "UNARY" - }, { "shortName": "DeleteBucket", "fullName": "google.storage.v2.Storage.DeleteBucket", "mode": "UNARY" }, - { - "shortName": "DeleteHmacKey", - "fullName": "google.storage.v2.Storage.DeleteHmacKey", - "mode": "UNARY" - }, - { - "shortName": "DeleteNotificationConfig", - "fullName": "google.storage.v2.Storage.DeleteNotificationConfig", - "mode": "UNARY" - }, { "shortName": "DeleteObject", "fullName": "google.storage.v2.Storage.DeleteObject", @@ -126321,46 +130226,21 @@ "fullName": "google.storage.v2.Storage.GetBucket", "mode": "UNARY" }, - { - "shortName": "GetHmacKey", - "fullName": "google.storage.v2.Storage.GetHmacKey", - "mode": "UNARY" - }, { "shortName": "GetIamPolicy", "fullName": "google.storage.v2.Storage.GetIamPolicy", "mode": "UNARY" }, - { - "shortName": "GetNotificationConfig", - "fullName": "google.storage.v2.Storage.GetNotificationConfig", - "mode": "UNARY" - }, { "shortName": "GetObject", "fullName": "google.storage.v2.Storage.GetObject", "mode": "UNARY" }, - { - "shortName": "GetServiceAccount", - "fullName": "google.storage.v2.Storage.GetServiceAccount", - "mode": "UNARY" - }, { "shortName": "ListBuckets", "fullName": "google.storage.v2.Storage.ListBuckets", "mode": "UNARY" }, - { - "shortName": "ListHmacKeys", - "fullName": "google.storage.v2.Storage.ListHmacKeys", - "mode": "UNARY" - }, - { - "shortName": "ListNotificationConfigs", - "fullName": "google.storage.v2.Storage.ListNotificationConfigs", - "mode": "UNARY" - }, { "shortName": "ListObjects", "fullName": "google.storage.v2.Storage.ListObjects", @@ -126411,11 +130291,6 @@ "fullName": "google.storage.v2.Storage.UpdateBucket", "mode": "UNARY" }, - { - "shortName": "UpdateHmacKey", - "fullName": "google.storage.v2.Storage.UpdateHmacKey", - "mode": "UNARY" - }, { "shortName": "UpdateObject", "fullName": "google.storage.v2.Storage.UpdateObject", @@ -126952,6 +130827,10 @@ { "httpMethod": "POST", "path": "/v1/{parent=projects/*}/notes:batchCreate" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/notes:batchCreate" } ] }, @@ -126963,6 +130842,10 @@ { "httpMethod": "POST", "path": "/v1/{parent=projects/*}/occurrences:batchCreate" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/occurrences:batchCreate" } ] }, @@ -126974,6 +130857,10 @@ { "httpMethod": "POST", "path": "/v1/{parent=projects/*}/notes" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/notes" } ] }, @@ -126985,6 +130872,10 @@ { "httpMethod": "POST", "path": "/v1/{parent=projects/*}/occurrences" + }, + { + "httpMethod": "POST", + "path": "/v1/{parent=projects/*/locations/*}/occurrences" } ] }, @@ -126996,6 +130887,10 @@ { "httpMethod": "DELETE", "path": "/v1/{name=projects/*/notes/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/notes/*}" } ] }, @@ -127007,6 +130902,10 @@ { "httpMethod": "DELETE", "path": "/v1/{name=projects/*/occurrences/*}" + }, + { + "httpMethod": "DELETE", + "path": "/v1/{name=projects/*/locations/*/occurrences/*}" } ] }, @@ -127108,6 +131007,10 @@ { "httpMethod": "PATCH", "path": "/v1/{name=projects/*/notes/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{name=projects/*/locations/*/notes/*}" } ] }, @@ -127119,6 +131022,10 @@ { "httpMethod": "PATCH", "path": "/v1/{name=projects/*/occurrences/*}" + }, + { + "httpMethod": "PATCH", + "path": "/v1/{name=projects/*/locations/*/occurrences/*}" } ] } diff --git a/google/ads/admanager/BUILD.bazel b/google/ads/admanager/BUILD.bazel new file mode 100644 index 000000000..ae8862ebc --- /dev/null +++ b/google/ads/admanager/BUILD.bazel @@ -0,0 +1,36 @@ +# This build file includes a target for the Ruby wrapper library for +# google-ads-ad_manager. + +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", +) + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +# Generates a Ruby wrapper client for admanager. +# 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 = "admanager_ruby_wrapper", + srcs = ["//google/ads/admanager/v1:admanager_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-ads-ad_manager", + "ruby-cloud-wrapper-of=v1:0.0", + ], + service_yaml = "//google/ads/admanager/v1:admanager_v1.yaml", + transport = "rest", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-ads-ad_manager-ruby", + deps = [ + ":admanager_ruby_wrapper", + ], +) diff --git a/google/ads/admanager/v1/BUILD.bazel b/google/ads/admanager/v1/BUILD.bazel index 6812be2e1..aaabdb03a 100644 --- a/google/ads/admanager/v1/BUILD.bazel +++ b/google/ads/admanager/v1/BUILD.bazel @@ -9,52 +9,66 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "admanager_proto", srcs = [ - "ad_partner_declaration.proto", - "ad_partner_service.proto", "ad_unit_enums.proto", + "ad_unit_messages.proto", "ad_unit_service.proto", - "ad_unit_size.proto", "admanager_error.proto", "applied_label.proto", "company_credit_status_enum.proto", + "company_messages.proto", "company_service.proto", "company_type_enum.proto", - "computed_status_enum.proto", - "contact_service.proto", - "creative_placeholder.proto", - "creative_service.proto", + "contact_messages.proto", "custom_field_enums.proto", + "custom_field_messages.proto", "custom_field_service.proto", + "custom_field_value.proto", "custom_targeting_key_enums.proto", + "custom_targeting_key_messages.proto", "custom_targeting_key_service.proto", "custom_targeting_value_enums.proto", + "custom_targeting_value_messages.proto", "custom_targeting_value_service.proto", + "entity_signals_mapping_messages.proto", + "entity_signals_mapping_service.proto", "environment_type_enum.proto", "frequency_cap.proto", - "goal.proto", - "label_service.proto", - "line_item_enums.proto", - "line_item_service.proto", + "label_messages.proto", + "network_messages.proto", "network_service.proto", + "order_enums.proto", + "order_messages.proto", "order_service.proto", "placement_enums.proto", + "placement_messages.proto", "placement_service.proto", "report_service.proto", + "role_enums.proto", + "role_messages.proto", "role_service.proto", "size.proto", - "team_service.proto", + "size_type_enum.proto", + "taxonomy_category_messages.proto", + "taxonomy_category_service.proto", + "taxonomy_type_enum.proto", + "team_messages.proto", + "time_unit_enum.proto", + "user_messages.proto", "user_service.proto", ], deps = [ @@ -63,9 +77,12 @@ proto_library( "//google/api:field_behavior_proto", "//google/api:resource_proto", "//google/longrunning:operations_proto", - "//google/type:money_proto", + "//google/type:date_proto", + "//google/type:dayofweek_proto", + "//google/type:timeofday_proto", "@com_google_protobuf//:any_proto", "@com_google_protobuf//:duration_proto", + "@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:timestamp_proto", ], ) @@ -81,6 +98,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -113,22 +131,18 @@ java_gapic_library( java_gapic_test( name = "admanager_java_gapic_test_suite", test_classes = [ - "com.google.ads.admanager.v1.AdPartnerServiceClientTest", "com.google.ads.admanager.v1.AdUnitServiceClientTest", "com.google.ads.admanager.v1.CompanyServiceClientTest", - "com.google.ads.admanager.v1.ContactServiceClientTest", - "com.google.ads.admanager.v1.CreativeServiceClientTest", "com.google.ads.admanager.v1.CustomFieldServiceClientTest", "com.google.ads.admanager.v1.CustomTargetingKeyServiceClientTest", "com.google.ads.admanager.v1.CustomTargetingValueServiceClientTest", - "com.google.ads.admanager.v1.LabelServiceClientTest", - "com.google.ads.admanager.v1.LineItemServiceClientTest", + "com.google.ads.admanager.v1.EntitySignalsMappingServiceClientTest", "com.google.ads.admanager.v1.NetworkServiceClientTest", "com.google.ads.admanager.v1.OrderServiceClientTest", "com.google.ads.admanager.v1.PlacementServiceClientTest", "com.google.ads.admanager.v1.ReportServiceClientTest", "com.google.ads.admanager.v1.RoleServiceClientTest", - "com.google.ads.admanager.v1.TeamServiceClientTest", + "com.google.ads.admanager.v1.TaxonomyCategoryServiceClientTest", "com.google.ads.admanager.v1.UserServiceClientTest", ], runtime_deps = [":admanager_java_gapic_test"], @@ -149,6 +163,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -164,7 +179,9 @@ go_proto_library( deps = [ "//google/api:annotations_go_proto", "//google/longrunning:longrunning_go_proto", - "//google/type:money_go_proto", + "//google/type:date_go_proto", + "//google/type:dayofweek_go_proto", + "//google/type:timeofday_go_proto", ], ) @@ -203,6 +220,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -242,6 +260,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -279,6 +298,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -309,6 +329,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -331,7 +352,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "admanager_ruby_gapic", srcs = [":admanager_proto_with_info"], - extra_protoc_parameters = ["ruby-cloud-gem-name=google-ads-admanager-v1"], + extra_protoc_parameters = ["ruby-cloud-gem-name=google-ads-ad_manager-v1"], grpc_service_config = "admanager_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "admanager_v1.yaml", @@ -355,6 +376,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -365,6 +387,7 @@ load( csharp_proto_library( name = "admanager_csharp_proto", + extra_opts = [], deps = [":admanager_proto"], ) @@ -401,6 +424,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/google/ads/admanager/v1/ad_partner_declaration.proto b/google/ads/admanager/v1/ad_partner_declaration.proto deleted file mode 100644 index e4d4de364..000000000 --- a/google/ads/admanager/v1/ad_partner_declaration.proto +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2023 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.ads.admanager.v1; - -import "google/api/resource.proto"; - -option csharp_namespace = "Google.Ads.AdManager.V1"; -option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; -option java_multiple_files = true; -option java_outer_classname = "AdPartnerDeclarationProto"; -option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\AdManager\\V1"; - -// Represents a set of declarations about what (if any) ad partners -// are associated with a given creative. This can be set at the network level, -// as a default for all creatives, or overridden for a particular creative. -message AdPartnerDeclaration { - // They type of declaration. - DeclarationTypeEnum.DeclarationType type = 1; - - // The resource names of AdPartners being declared. - // Format: "networks/{network_code}/adPartners/{ad_partner_id}" - repeated string ad_partners = 2 [(google.api.resource_reference) = { - type: "admanager.googleapis.com/AdPartner" - }]; -} - -// Wrapper message for -// [DeclarationTypeEnum][google.ads.admanager.v1.DeclarationTypeEnum]. -message DeclarationTypeEnum { - // The declaration about third party data usage on the associated entity. - enum DeclarationType { - // Default value. This value is unused. - DECLARATION_TYPE_UNSPECIFIED = 0; - - // No ad technology providers to declare. - NONE = 1; - - // There are are ad technology providers to declare on this entity. - DECLARED = 2; - } -} diff --git a/google/ads/admanager/v1/ad_partner_service.proto b/google/ads/admanager/v1/ad_partner_service.proto deleted file mode 100644 index 119d29b66..000000000 --- a/google/ads/admanager/v1/ad_partner_service.proto +++ /dev/null @@ -1,139 +0,0 @@ -// Copyright 2023 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.ads.admanager.v1; - -import "google/api/annotations.proto"; -import "google/api/client.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; - -option csharp_namespace = "Google.Ads.AdManager.V1"; -option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; -option java_multiple_files = true; -option java_outer_classname = "AdPartnerServiceProto"; -option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\AdManager\\V1"; - -// Provides methods for handling AdPartner objects. -service AdPartnerService { - option (google.api.default_host) = "admanager.googleapis.com"; - - // API to retrieve a AdPartner object. - rpc GetAdPartner(GetAdPartnerRequest) returns (AdPartner) { - option (google.api.http) = { - get: "/v1/{name=networks/*/adPartners/*}" - }; - option (google.api.method_signature) = "name"; - } - - // API to retrieve a list of AdPartner objects. - rpc ListAdPartners(ListAdPartnersRequest) returns (ListAdPartnersResponse) { - option (google.api.http) = { - get: "/v1/{parent=networks/*}/adPartners" - }; - option (google.api.method_signature) = "parent"; - } -} - -// The AdPartner resource. -message AdPartner { - option (google.api.resource) = { - type: "admanager.googleapis.com/AdPartner" - pattern: "networks/{network_code}/adPartners/{ad_partner}" - plural: "adPartners" - singular: "adPartner" - }; - - // Identifier. The resource name of the AdPartner. - // Format: `networks/{network_code}/adPartners/{ad_partner_id}` - string name = 1 [(google.api.field_behavior) = IDENTIFIER]; -} - -// Request object for GetAdPartner method. -message GetAdPartnerRequest { - // Required. The resource name of the AdPartner. - // Format: `networks/{network_code}/adPartners/{ad_partner_id}` - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "admanager.googleapis.com/AdPartner" - } - ]; -} - -// Request object for ListAdPartners method. -message ListAdPartnersRequest { - // Required. The parent, which owns this collection of AdPartners. - // Format: `networks/{network_code}` - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "admanager.googleapis.com/Network" - } - ]; - - // Optional. The maximum number of AdPartners to return. The service may - // return fewer than this value. If unspecified, at most 50 AdPartners will be - // returned. The maximum value is 1000; values above 1000 will be coerced to - // 1000. - int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. A page token, received from a previous `ListAdPartners` call. - // Provide this to retrieve the subsequent page. - // - // When paginating, all other parameters provided to `ListAdPartners` must - // match the call that provided the page token. - string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Expression to filter the response. - // See syntax details at - // https://developers.google.com/ad-manager/api/beta/filters - string filter = 4 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Expression to specify sorting order. - // See syntax details at - // https://developers.google.com/ad-manager/api/beta/filters#order - string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Number of individual resources to skip while paginating. - int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; -} - -// Response object for ListAdPartnersRequest containing matching AdPartner -// resources. -message ListAdPartnersResponse { - // The AdPartner from the specified network. - repeated AdPartner ad_partners = 1; - - // A token, which can be sent as `page_token` to retrieve the next page. - // If this field is omitted, there are no subsequent pages. - string next_page_token = 2; - - // Total number of AdPartners. - // If a filter was included in the request, this reflects the total number - // after the filtering is applied. - // - // `total_size` will not be calculated in the response unless it has been - // included in a response field mask. The response field mask can be provided - // to the method by using the URL parameter `$fields` or `fields`, or by using - // the HTTP/gRPC header `X-Goog-FieldMask`. - // - // For more information, see - // https://developers.google.com/ad-manager/api/beta/field-masks - int32 total_size = 3; -} diff --git a/google/ads/admanager/v1/ad_unit_enums.proto b/google/ads/admanager/v1/ad_unit_enums.proto index 8435db2bd..e1ca03f32 100644 --- a/google/ads/admanager/v1/ad_unit_enums.proto +++ b/google/ads/admanager/v1/ad_unit_enums.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -21,22 +21,61 @@ option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;adma option java_multiple_files = true; option java_outer_classname = "AdUnitEnumsProto"; option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; // Wrapper message for -// [AppliedAdsenseEnabled][google.ads.admanager.v1.AppliedAdsenseEnabledEnum.AppliedAdsenseEnabled] -message AppliedAdsenseEnabledEnum { - // Specifies if serving ads from the AdSense content network is enabled. - enum AppliedAdsenseEnabled { - // No adsense enabled setting applied directly; value will be inherited from - // parent or system default. - APPLIED_ADSENSE_ENABLED_UNSPECIFIED = 0; - - // Serving ads from AdSense content network is enabled. - TRUE = 1; - - // Serving ads from AdSense content network is disabled. - FALSE = 2; +// [AdUnitStatus][google.ads.admanager.v1.AdUnitStatusEnum.AdUnitStatus] +message AdUnitStatusEnum { + // The status of an AdUnit. + enum AdUnitStatus { + // Default value. This value is unused. + AD_UNIT_STATUS_UNSPECIFIED = 0; + + // The ad unit is active, available for targeting, and serving. + ACTIVE = 1; + + // The ad unit will be visible in the UI, but ignored by serving. + INACTIVE = 2; + + // The ad unit will be hidden in the UI and ignored by serving. + ARCHIVED = 3; + } +} + +// Wrapper message for +// [SmartSizeMode][google.ads.admanager.v1.SmartSizeModeEnum.SmartSizeMode]. +message SmartSizeModeEnum { + // The smart size mode for this ad unit. This attribute is optional and + // defaults to SmartSizeMode.NONE for fixed sizes. + enum SmartSizeMode { + // Default value. This value is unused. + SMART_SIZE_MODE_UNSPECIFIED = 0; + + // Fixed size mode (default). + NONE = 1; + + // The height is fixed for the request, the width is a range. + SMART_BANNER = 2; + + // Height and width are ranges. + DYNAMIC_SIZE = 3; + } +} + +// Wrapper message for +// [TargetWindow][google.ads.admanager.v1.TargetWindowEnum.TargetWindow]. +message TargetWindowEnum { + // Corresponds to an HTML link's target attribute. + // See http://www.w3.org/TR/html401/present/frames.html#adef-target + enum TargetWindow { + // Default value. This value is unused. + TARGET_WINDOW_UNSPECIFIED = 0; + + // Specifies that the link should open in the full body of the page. + TOP = 1; + + // Specifies that the link should open in a new window. + BLANK = 2; } } diff --git a/google/ads/admanager/v1/ad_unit_messages.proto b/google/ads/admanager/v1/ad_unit_messages.proto new file mode 100644 index 000000000..2cc23bb6b --- /dev/null +++ b/google/ads/admanager/v1/ad_unit_messages.proto @@ -0,0 +1,230 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/ads/admanager/v1/ad_unit_enums.proto"; +import "google/ads/admanager/v1/applied_label.proto"; +import "google/ads/admanager/v1/environment_type_enum.proto"; +import "google/ads/admanager/v1/frequency_cap.proto"; +import "google/ads/admanager/v1/size.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "AdUnitMessagesProto"; +option java_package = "com.google.ads.admanager.v1"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; + +// The AdUnit resource. +message AdUnit { + option (google.api.resource) = { + type: "admanager.googleapis.com/AdUnit" + pattern: "networks/{network_code}/adUnits/{ad_unit}" + plural: "adUnits" + singular: "adUnit" + }; + + // Identifier. The resource name of the AdUnit. + // Format: `networks/{network_code}/adUnits/{ad_unit_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. AdUnit ID. + int64 ad_unit_id = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Immutable. The AdUnit's parent. Every ad unit has a parent except + // for the root ad unit, which is created by Google. Format: + // "networks/{network_code}/adUnits/{ad_unit_id}" + string parent_ad_unit = 10 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/AdUnit" + } + ]; + + // Output only. The path to this AdUnit in the ad unit hierarchy represented + // as a list from the root to this ad unit's parent. For root ad units, this + // list is empty. + repeated AdUnitParent parent_path = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The display name of the ad unit. Its maximum length is 255 + // characters. + string display_name = 9 [(google.api.field_behavior) = REQUIRED]; + + // Immutable. A string used to uniquely identify the ad unit for the purposes + // of serving the ad. This attribute is optional and can be set during ad unit + // creation. If it is not provided, it will be assigned by Google based on the + // ad unit ID. + string ad_unit_code = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The status of this ad unit. It defaults to ACTIVE. + AdUnitStatusEnum.AdUnitStatus status = 13 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The target window directly applied to this AdUnit. + // If this field is not set, this AdUnit uses the target window specified in + // effectiveTargetWindow. + TargetWindowEnum.TargetWindow applied_target_window = 44 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Non-empty default. The target window of this AdUnit. This + // value is inherited from ancestor AdUnits and defaults to TOP if no AdUnit + // in the hierarchy specifies it. + TargetWindowEnum.TargetWindow effective_target_window = 45 [ + (google.api.field_behavior) = NON_EMPTY_DEFAULT, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Optional. The resource names of Teams directly applied to this AdUnit. + // Format: "networks/{network_code}/teams/{team_id}" + repeated string applied_teams = 3 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { type: "admanager.googleapis.com/Team" } + ]; + + // Output only. The resource names of all Teams that this AdUnit is on as well + // as those inherited from parent AdUnits. Format: + // "networks/{network_code}/teams/{team_id}" + repeated string teams = 4 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "admanager.googleapis.com/Team" } + ]; + + // Optional. A description of the ad unit. The maximum length is 65,535 + // characters. + string description = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If this field is set to true, then the AdUnit will not be + // implicitly targeted when its parent is. Traffickers must explicitly + // target such an AdUnit or else no line items will serve to it. This + // feature is only available for Ad Manager 360 accounts. + bool explicitly_targeted = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. This field is set to true if the ad unit has any children. + bool has_children = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time this AdUnit was last modified. + google.protobuf.Timestamp update_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The sizes that can be served inside this ad unit. + repeated AdUnitSize ad_unit_sizes = 14 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Determines what set top box video on demand channel this ad unit + // corresponds to in an external set top box ad campaign system. + string external_set_top_box_channel_id = 17 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The duration after which an Ad Unit will automatically refresh. + // This is only valid for ad units in mobile apps. If not set, the ad unit + // will not refresh. + google.protobuf.Duration refresh_delay = 19 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The set of labels applied directly to this ad unit. + repeated AppliedLabel applied_labels = 21 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Contains the set of labels applied directly to the ad unit as + // well as those inherited from the parent ad units. If a label has been + // negated, only the negated label is returned. This field is readonly and is + // assigned by Google. + repeated AppliedLabel effective_applied_labels = 22 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The set of label frequency caps applied directly to this ad unit. + // There is a limit of 10 label frequency caps per ad unit. + repeated LabelFrequencyCap applied_label_frequency_caps = 23 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The label frequency caps applied directly to the ad unit as + // well as those inherited from parent ad units. + repeated LabelFrequencyCap effective_label_frequency_caps = 24 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The smart size mode for this ad unit. This attribute is optional + // and defaults to SmartSizeMode.NONE for fixed sizes. + SmartSizeModeEnum.SmartSizeMode smart_size_mode = 25 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The value of AdSense enabled directly applied to this ad unit. + // This attribute is optional and if not specified this ad unit will inherit + // the value of effectiveAdsenseEnabled from its ancestors. + optional bool applied_adsense_enabled = 26 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Specifies whether or not the AdUnit is enabled for serving ads + // from the AdSense content network. This attribute defaults to the ad unit's + // parent or ancestor's setting if one has been set. If no ancestor of the ad + // unit has set appliedAdsenseEnabled, the attribute is defaulted to true. + bool effective_adsense_enabled = 27 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Represents the size, environment, and companions of an ad in an ad unit. +message AdUnitSize { + // Required. The Size of the AdUnit. + Size size = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The EnvironmentType of the AdUnit + EnvironmentTypeEnum.EnvironmentType environment_type = 2 + [(google.api.field_behavior) = REQUIRED]; + + // The companions for this ad unit size. Companions are only valid if the + // environment is + // [VIDEO_PLAYER][google.ads.admanager.v1.EnvironmentTypeEnum.EnvironmentType]. + repeated Size companions = 3; +} + +// The summary of a parent AdUnit. +message AdUnitParent { + // Output only. The parent of the current AdUnit + // Format: `networks/{network_code}/adUnits/{ad_unit_id}` + string parent_ad_unit = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/AdUnit" + } + ]; + + // Output only. The display name of the parent AdUnit. + string display_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A string used to uniquely identify the ad unit for the + // purposes of serving the ad. + string ad_unit_code = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Frequency cap using a label. +message LabelFrequencyCap { + // Required. The label to used for frequency capping. + // Format: "networks/{network_code}/labels/{label_id}" + string label = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "admanager.googleapis.com/Label" } + ]; + + // The frequency cap. + FrequencyCap frequency_cap = 2; +} diff --git a/google/ads/admanager/v1/ad_unit_service.proto b/google/ads/admanager/v1/ad_unit_service.proto index 0f98cca70..3ca986723 100644 --- a/google/ads/admanager/v1/ad_unit_service.proto +++ b/google/ads/admanager/v1/ad_unit_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 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,19 @@ syntax = "proto3"; package google.ads.admanager.v1; -import "google/ads/admanager/v1/ad_unit_enums.proto"; -import "google/ads/admanager/v1/ad_unit_size.proto"; -import "google/ads/admanager/v1/applied_label.proto"; -import "google/ads/admanager/v1/frequency_cap.proto"; +import "google/ads/admanager/v1/ad_unit_messages.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/protobuf/duration.proto"; -import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Ads.AdManager.V1"; option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; option java_multiple_files = true; option java_outer_classname = "AdUnitServiceProto"; option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; // Provides methods for handling AdUnit objects. service AdUnitService { @@ -54,227 +49,14 @@ service AdUnitService { }; option (google.api.method_signature) = "parent"; } -} - -// The AdUnit resource. -message AdUnit { - option (google.api.resource) = { - type: "admanager.googleapis.com/AdUnit" - pattern: "networks/{network_code}/adUnits/{ad_unit}" - plural: "adUnits" - singular: "adUnit" - }; - - // The status of an AdUnit. - enum Status { - // Default value. This value is unused. - STATUS_UNSPECIFIED = 0; - - // The ad unit is active, available for targeting, and serving. - ACTIVE = 1; - - // The ad unit will be visible in the UI, but ignored by serving. - INACTIVE = 2; - - // The ad unit will be hidden in the UI and ignored by serving. - ARCHIVED = 3; - } - - // Identifier. The resource name of the AdUnit. - // Format: `networks/{network_code}/adUnits/{ad_unit_id}` - string name = 1 [(google.api.field_behavior) = IDENTIFIER]; - - // Output only. AdUnit ID. - int64 ad_unit_id = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. Immutable. The AdUnit's parent. Every ad unit has a parent except - // for the root ad unit, which is created by Google. Format: - // "networks/{network_code}/adUnits/{ad_unit_id}" - string parent_ad_unit = 10 [ - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "admanager.googleapis.com/AdUnit" - } - ]; - - // Output only. The path to this AdUnit in the ad unit hierarchy represented - // as a list from the root to this ad unit's parent. For root ad units, this - // list is empty. - repeated AdUnitParent parent_path = 11 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. The display name of the ad unit. Its maximum length is 255 - // characters. - string display_name = 9 [(google.api.field_behavior) = REQUIRED]; - - // Immutable. A string used to uniquely identify the ad unit for the purposes - // of serving the ad. This attribute is optional and can be set during ad unit - // creation. If it is not provided, it will be assigned by Google based off of - // the ad unit ID. - string ad_unit_code = 2 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. The status of this ad unit. It defaults to ACTIVE. - Status status = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Non-empty default. The value to use for the HTML link's target attribute. - // This value will be interpreted as TOP if left blank. - TargetWindowEnum.TargetWindow target_window = 12 - [(google.api.field_behavior) = NON_EMPTY_DEFAULT]; - - // Optional. The resource names of Teams directly applied to this AdUnit. - // Format: "networks/{network_code}/teams/{team_id}" - repeated string applied_teams = 3 [ - (google.api.field_behavior) = OPTIONAL, - (google.api.resource_reference) = { type: "admanager.googleapis.com/Team" } - ]; - - // Output only. The resource names of all Teams that this AdUnit is on as well - // as those inherited from parent AdUnits. Format: - // "networks/{network_code}/teams/{team_id}" - repeated string teams = 4 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { type: "admanager.googleapis.com/Team" } - ]; - - // Optional. A description of the ad unit. The maximum length is 65,535 - // characters. - string description = 5 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. If this field is set to true, then the AdUnit will not be - // implicitly targeted when its parent is. Traffickers must explicitly - // target such an AdUnit or else no line items will serve to it. This - // feature is only available for Ad Manager 360 accounts. - bool explicitly_targeted = 6 [(google.api.field_behavior) = OPTIONAL]; - - // Output only. This field is set to true if the ad unit has any children. - bool has_children = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The instant this AdUnit was last modified. - google.protobuf.Timestamp update_time = 8 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Optional. The sizes that can be served inside this ad unit. - repeated AdUnitSize ad_unit_sizes = 14 - [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Determines what set top box video on demand channel this ad unit - // corresponds to in an external set top box ad campaign system. - string external_set_top_box_channel_id = 17 - [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The duration after which an Ad Unit will automatically refresh. - // This is only valid for ad units in mobile apps. If not set, the ad unit - // will not refresh. - google.protobuf.Duration refresh_delay = 19 - [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The ID of the CTV application that this ad unit is within. - int64 ctv_application_id = 20 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The set of labels applied directly to this ad unit. - repeated AppliedLabel applied_labels = 21 - [(google.api.field_behavior) = OPTIONAL]; - - // Output only. Contains the set of labels applied directly to the ad unit as - // well as those inherited from the parent ad units. If a label has been - // negated, only the negated label is returned. This field is readonly and is - // assigned by Google. - repeated AppliedLabel effective_applied_labels = 22 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Optional. The set of label frequency caps applied directly to this ad unit. - // There is a limit of 10 label frequency caps per ad unit. - repeated LabelFrequencyCap applied_label_frequency_caps = 23 - [(google.api.field_behavior) = OPTIONAL]; - - // Output only. The label frequency caps applied directly to the ad unit as - // well as those inherited from parent ad units. - repeated LabelFrequencyCap effective_label_frequency_caps = 24 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Optional. The smart size mode for this ad unit. This attribute is optional - // and defaults to SmartSizeMode.NONE for fixed sizes. - SmartSizeModeEnum.SmartSizeMode smart_size_mode = 25 - [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The value of AdSense enabled directly applied to this ad unit. - // This attribute is optional and if not specified this ad unit will inherit - // the value of effectiveAdsenseEnabled from its ancestors. - AppliedAdsenseEnabledEnum.AppliedAdsenseEnabled applied_adsense_enabled = 26 - [(google.api.field_behavior) = OPTIONAL]; - - // Output only. Specifies whether or not the AdUnit is enabled for serving ads - // from the AdSense content network. This attribute defaults to the ad unit's - // parent or ancestor's setting if one has been set. If no ancestor of the ad - // unit has set appliedAdsenseEnabled, the attribute is defaulted to true. - bool effective_adsense_enabled = 27 - [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// The summary of a parent AdUnit. -message AdUnitParent { - // Output only. The parent of the current AdUnit - // Format: `networks/{network_code}/adUnits/{ad_unit_id}` - string parent_ad_unit = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "admanager.googleapis.com/AdUnit" - } - ]; - - // Output only. The display name of the parent AdUnit. - string display_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A string used to uniquely identify the ad unit for the - // purposes of serving the ad. - string ad_unit_code = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// Wrapper message for -// [TargetWindow][google.ads.admanager.v1.TargetWindowEnum.TargetWindow]. -message TargetWindowEnum { - // Corresponds to an HTML link's target attribute. - // See http://www.w3.org/TR/html401/present/frames.html#adef-target - enum TargetWindow { - // Default value. This value is unused. - TARGET_WINDOW_UNSPECIFIED = 0; - - // Specifies that the link should open in the full body of the page. - TOP = 1; - - // Specifies that the link should open in a new window. - BLANK = 2; - } -} -// Frequency cap using a label. -message LabelFrequencyCap { - // The label to used for frequency capping. - // Format: "networks/{network_code}/labels/{label_id}" - string label = 1; - - // The frequency cap. - FrequencyCap frequency_cap = 2; -} - -// Wrapper message for -// [SmartSizeMode][google.ads.admanager.v1.SmartSizeModeEnum.SmartSizeMode]. -message SmartSizeModeEnum { - // The smart size mode for this ad unit. This attribute is optional and - // defaults to SmartSizeMode.NONE for fixed sizes. - enum SmartSizeMode { - // Default value. This value is unused. - SMART_SIZE_MODE_UNSPECIFIED = 0; - - // Fixed size mode (default). - NONE = 1; - - // The height is fixed for the request, the width is a range. - SMART_BANNER = 2; - - // Height and width are ranges. - DYNAMIC_SIZE = 3; + // API to retrieve a list of AdUnitSize objects. + rpc ListAdUnitSizes(ListAdUnitSizesRequest) + returns (ListAdUnitSizesResponse) { + option (google.api.http) = { + get: "/v1/{parent=networks/*}/adUnitSizes" + }; + option (google.api.method_signature) = "parent"; } } @@ -350,3 +132,64 @@ message ListAdUnitsResponse { // https://developers.google.com/ad-manager/api/beta/field-masks int32 total_size = 3; } + +// Request object for ListAdUnitSizes method. +message ListAdUnitSizesRequest { + // Required. The parent, which owns this collection of AdUnitSizes. + // Format: `networks/{network_code}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Network" + } + ]; + + // Optional. The maximum number of AdUnitSizes to return. The service may + // return fewer than this value. If unspecified, at most 50 ad unit sizes 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 `ListAdUnitSizes` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListAdUnitSizes` must + // match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to filter the response. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to specify sorting order. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters#order + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Number of individual resources to skip while paginating. + int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response object for ListAdUnitSizesRequest containing matching AdUnitSizes. +message ListAdUnitSizesResponse { + // The AdUnitSizes from the specified network. + repeated AdUnitSize ad_unit_sizes = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; + + // Total number of AdUnitSizes. + // If a filter was included in the request, this reflects the total number + // after the filtering is applied. + // + // `total_size` will not be calculated in the response unless it has been + // included in a response field mask. The response field mask can be provided + // to the method by using the URL parameter `$fields` or `fields`, or by using + // the HTTP/gRPC header `X-Goog-FieldMask`. + // + // For more information, see + // https://developers.google.com/ad-manager/api/beta/field-masks + int32 total_size = 3; +} diff --git a/google/ads/admanager/v1/admanager_error.proto b/google/ads/admanager/v1/admanager_error.proto index 29363e183..ebaffa6c2 100644 --- a/google/ads/admanager/v1/admanager_error.proto +++ b/google/ads/admanager/v1/admanager_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -23,8 +23,8 @@ option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;adma option java_multiple_files = true; option java_outer_classname = "AdManagerErrorProto"; option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; // / AdManagerError contains all the information required for processing a // / particular error thrown by the AdManager API. diff --git a/google/ads/admanager/v1/admanager_v1.yaml b/google/ads/admanager/v1/admanager_v1.yaml index 46c0404b6..8d0a51401 100644 --- a/google/ads/admanager/v1/admanager_v1.yaml +++ b/google/ads/admanager/v1/admanager_v1.yaml @@ -4,42 +4,41 @@ name: admanager.googleapis.com title: Google Ad Manager API apis: -- name: google.ads.admanager.v1.AdPartnerService - name: google.ads.admanager.v1.AdUnitService - name: google.ads.admanager.v1.CompanyService -- name: google.ads.admanager.v1.ContactService -- name: google.ads.admanager.v1.CreativeService - name: google.ads.admanager.v1.CustomFieldService - name: google.ads.admanager.v1.CustomTargetingKeyService - name: google.ads.admanager.v1.CustomTargetingValueService -- name: google.ads.admanager.v1.LabelService -- name: google.ads.admanager.v1.LineItemService +- name: google.ads.admanager.v1.EntitySignalsMappingService - name: google.ads.admanager.v1.NetworkService - name: google.ads.admanager.v1.OrderService - name: google.ads.admanager.v1.PlacementService - name: google.ads.admanager.v1.ReportService - name: google.ads.admanager.v1.RoleService -- name: google.ads.admanager.v1.TeamService +- name: google.ads.admanager.v1.TaxonomyCategoryService - name: google.ads.admanager.v1.UserService - name: google.longrunning.Operations types: -- name: google.ads.admanager.v1.ExportSavedReportMetadata -- name: google.ads.admanager.v1.ExportSavedReportResponse +- name: google.ads.admanager.v1.Contact +- name: google.ads.admanager.v1.Label - name: google.ads.admanager.v1.Report +- name: google.ads.admanager.v1.RunReportMetadata +- name: google.ads.admanager.v1.RunReportResponse +- name: google.ads.admanager.v1.Team documentation: summary: 'Manage your Ad Manager inventory, run reports and more.' overview: |- - The Ad Manager API enables an app to integrate with Google Ad Manager. - You can read Ad Manager data and run reports using the API. + The Ad Manager API enables an app to integrate with Google Ad Manager. You + can read Ad Manager data and run reports using the API. http: rules: - selector: google.longrunning.Operations.GetOperation - get: '/v1/{name=networks/*/operations/reports/exports/*}' + get: '/v1/{name=networks/*/operations/reports/runs/*}' additional_bindings: - - get: '/v1/{name=networks/*/operations/reports/runs/*}' + - get: '/v1/{name=networks/*/operations/reports/exports/*}' publishing: new_issue_uri: https://issuetracker.google.com/issues/new?component=1265187&template=1787490 @@ -55,7 +54,27 @@ publishing: common: destinations: - PACKAGE_MANAGER + cpp_settings: + common: {} + php_settings: + common: + destinations: + - PACKAGE_MANAGER python_settings: common: destinations: - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: {} diff --git a/google/ads/admanager/v1/applied_label.proto b/google/ads/admanager/v1/applied_label.proto index d0127e54a..62d6186aa 100644 --- a/google/ads/admanager/v1/applied_label.proto +++ b/google/ads/admanager/v1/applied_label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -24,8 +24,8 @@ option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;adma option java_multiple_files = true; option java_outer_classname = "AppliedLabelProto"; option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; // Represents a Label that can be applied to an entity. message AppliedLabel { diff --git a/google/ads/admanager/v1/company_credit_status_enum.proto b/google/ads/admanager/v1/company_credit_status_enum.proto index 3b194fd45..968ec930f 100644 --- a/google/ads/admanager/v1/company_credit_status_enum.proto +++ b/google/ads/admanager/v1/company_credit_status_enum.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;adma option java_multiple_files = true; option java_outer_classname = "CompanyCreditStatusEnumProto"; option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; // Wrapper message for // [CompanyCreditStatus][google.ads.admanager.v1.CompanyCreditStatusEnum.CompanyCreditStatus] diff --git a/google/ads/admanager/v1/company_messages.proto b/google/ads/admanager/v1/company_messages.proto new file mode 100644 index 000000000..fb6a5a32f --- /dev/null +++ b/google/ads/admanager/v1/company_messages.proto @@ -0,0 +1,122 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/ads/admanager/v1/applied_label.proto"; +import "google/ads/admanager/v1/company_credit_status_enum.proto"; +import "google/ads/admanager/v1/company_type_enum.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "CompanyMessagesProto"; +option java_package = "com.google.ads.admanager.v1"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; + +// The `Company` resource. +message Company { + option (google.api.resource) = { + type: "admanager.googleapis.com/Company" + pattern: "networks/{network_code}/companies/{company}" + plural: "companies" + singular: "company" + }; + + // Identifier. The resource name of the `Company`. + // Format: `networks/{network_code}/companies/{company_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. `Company` ID. + int64 company_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The display name of the `Company`. + // + // This value has a maximum length of 127 characters. + string display_name = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The type of the `Company`. + CompanyTypeEnum.CompanyType type = 4 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The address for the `Company`. + // + // This value has a maximum length of 1024 characters. + string address = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The email for the `Company`. + // + // This value has a maximum length of 128 characters. + string email = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The fax number for the `Company`. + // + // This value has a maximum length of 63 characters. + string fax = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The phone number for the `Company`. + // + // This value has a maximum length of 63 characters. + string phone = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The external ID for the `Company`. + // + // This value has a maximum length of 255 characters. + string external_id = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Comments about the `Company`. + // + // This value has a maximum length of 1024 characters. + string comment = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The credit status of the `Company`. + // + // This attribute defaults to `ACTIVE` if basic settings are enabled and + // `ON_HOLD` if advance settings are enabled. + CompanyCreditStatusEnum.CompanyCreditStatus credit_status = 11 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The labels that are directly applied to the `Company`. + repeated AppliedLabel applied_labels = 12 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The resource names of primary Contact of the `Company`. + // Format: "networks/{network_code}/contacts/{contact_id}" + optional string primary_contact = 13 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Contact" + } + ]; + + // Optional. The resource names of Teams that are directly associated with the + // `Company`. Format: "networks/{network_code}/teams/{team_id}" + repeated string applied_teams = 14 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { type: "admanager.googleapis.com/Team" } + ]; + + // Output only. The time the `Company` was last modified. + google.protobuf.Timestamp update_time = 15 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The ID of the Google-recognized canonicalized form of the + // `Company`. + int64 third_party_company_id = 16 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/ads/admanager/v1/company_service.proto b/google/ads/admanager/v1/company_service.proto index aedb5eeee..fdb39a78c 100644 --- a/google/ads/admanager/v1/company_service.proto +++ b/google/ads/admanager/v1/company_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,9 +16,7 @@ syntax = "proto3"; package google.ads.admanager.v1; -import "google/ads/admanager/v1/applied_label.proto"; -import "google/ads/admanager/v1/company_credit_status_enum.proto"; -import "google/ads/admanager/v1/company_type_enum.proto"; +import "google/ads/admanager/v1/company_messages.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -29,8 +27,8 @@ option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;adma option java_multiple_files = true; option java_outer_classname = "CompanyServiceProto"; option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; // Provides methods for handling `Company` objects. service CompanyService { @@ -53,88 +51,6 @@ service CompanyService { } } -// The `Company` resource. -message Company { - option (google.api.resource) = { - type: "admanager.googleapis.com/Company" - pattern: "networks/{network_code}/companies/{company}" - plural: "companies" - singular: "company" - }; - - // Identifier. The resource name of the `Company`. - // Format: `networks/{network_code}/companies/{company_id}` - string name = 1 [(google.api.field_behavior) = IDENTIFIER]; - - // Output only. `Company` ID. - int64 company_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. The display name of the `Company`. - // - // This value has a maximum length of 127 characters. - string display_name = 3 [(google.api.field_behavior) = REQUIRED]; - - // Required. The type of the `Company`. - CompanyTypeEnum.CompanyType type = 4 [(google.api.field_behavior) = REQUIRED]; - - // Optional. The address for the `Company`. - // - // This value has a maximum length of 1024 characters. - string address = 5 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The email for the `Company`. - // - // This value has a maximum length of 128 characters. - string email = 6 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The fax number for the `Company`. - // - // This value has a maximum length of 63 characters. - string fax = 7 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The phone number for the `Company`. - // - // This value has a maximum length of 63 characters. - string phone = 8 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The external ID for the `Company`. - // - // This value has a maximum length of 255 characters. - string external_id = 9 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Comments about the `Company`. - // - // This value has a maximum length of 1024 characters. - string comment = 10 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The credit status of this company. - // - // This attribute defaults to `ACTIVE` if basic settings are enabled and - // `ON_HOLD` if advance settings are enabled. - CompanyCreditStatusEnum.CompanyCreditStatus credit_status = 11 - [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The labels that are directly applied to this company. - repeated AppliedLabel applied_labels = 12 - [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The resource names of primary Contact of this company. - // Format: "networks/{network_code}/contacts/{contact_id}" - optional string primary_contact = 13 [ - (google.api.field_behavior) = OPTIONAL, - (google.api.resource_reference) = { - type: "admanager.googleapis.com/Contact" - } - ]; - - // Optional. The resource names of Teams that are directly associated with - // this company. Format: "networks/{network_code}/teams/{team_id}" - repeated string applied_teams = 14 [ - (google.api.field_behavior) = OPTIONAL, - (google.api.resource_reference) = { type: "admanager.googleapis.com/Team" } - ]; -} - // Request object for `GetCompany` method. message GetCompanyRequest { // Required. The resource name of the Company. @@ -186,16 +102,16 @@ message ListCompaniesRequest { } // Response object for `ListCompaniesRequest` containing matching `Company` -// resources. +// objects. message ListCompaniesResponse { - // The `Company` from the specified network. + // The `Company` objects from the specified network. repeated Company companies = 1; // A token, which can be sent as `page_token` to retrieve the next page. // If this field is omitted, there are no subsequent pages. string next_page_token = 2; - // Total number of `Companies`. + // Total number of `Company` objects. // If a filter was included in the request, this reflects the total number // after the filtering is applied. // diff --git a/google/ads/admanager/v1/company_type_enum.proto b/google/ads/admanager/v1/company_type_enum.proto index 3f621cffd..ea73831a3 100644 --- a/google/ads/admanager/v1/company_type_enum.proto +++ b/google/ads/admanager/v1/company_type_enum.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;adma option java_multiple_files = true; option java_outer_classname = "CompanyTypeEnumProto"; option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; // Wrapper message for // [CompanyType][google.ads.admanager.v1.CompanyTypeEnum.CompanyType] @@ -47,8 +47,5 @@ message CompanyTypeEnum { // A company representing multiple advertisers and agencies. AD_NETWORK = 5; - - // A third-party that measures creative viewability. - VIEWABILITY_PROVIDER = 6; } } diff --git a/google/ads/admanager/v1/computed_status_enum.proto b/google/ads/admanager/v1/computed_status_enum.proto deleted file mode 100644 index ad320edb2..000000000 --- a/google/ads/admanager/v1/computed_status_enum.proto +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2023 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.ads.admanager.v1; - -option csharp_namespace = "Google.Ads.AdManager.V1"; -option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; -option java_multiple_files = true; -option java_outer_classname = "ComputedStatusEnumProto"; -option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\AdManager\\V1"; - -// Wrapper message for -// [ComputedStatus][google.ads.admanager.v1.ComputedStatusEnum.ComputedStatus]. -message ComputedStatusEnum { - // Describes the computed LineItem status that is derived from the - // current state of the LineItem. - enum ComputedStatus { - // No value specified. - COMPUTED_STATUS_UNSPECIFIED = 0; - - // The LineItem has past its link LineItem#endDateTime with an auto - // extension, but hasn't met its goal. - DELIVERY_EXTENDED = 1; - - // The LineItem has begun serving. - DELIVERING = 2; - - // The LineItem has been activated and is ready to serve. - READY = 3; - - // The LineItem has been paused from serving. - PAUSED = 4; - - // The LineItem is inactive. It is either caused by missing creatives or - // the network disabling auto-activation. - INACTIVE = 5; - - // The LineItem has been paused and its reserved inventory has been - // released. The LineItem will not serve. - PAUSED_INVENTORY_RELEASED = 6; - - // The LineItem has been submitted for approval. - PENDING_APPROVAL = 7; - - // The LineItem has completed its run. - COMPLETED = 8; - - // The LineItem has been disapproved and is not eligible to serve. - DISAPPROVED = 9; - - // The LineItem is still being drafted. - DRAFT = 10; - - // The LineItem has been canceled and is no longer eligible to serve. - // This is a legacy status imported from Google Ad Manager orders. - CANCELED = 11; - } -} diff --git a/google/ads/admanager/v1/contact_messages.proto b/google/ads/admanager/v1/contact_messages.proto new file mode 100644 index 000000000..1220cc448 --- /dev/null +++ b/google/ads/admanager/v1/contact_messages.proto @@ -0,0 +1,49 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "ContactMessagesProto"; +option java_package = "com.google.ads.admanager.v1"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; + +// A contact represents a person who is affiliated with a single company. A +// contact can have a variety of contact information associated to it, and can +// be invited to view their company's orders, line items, creatives, and +// reports. +message Contact { + option (google.api.resource) = { + type: "admanager.googleapis.com/Contact" + pattern: "networks/{network_code}/contacts/{contact}" + plural: "contacts" + singular: "contact" + }; + + // Identifier. The resource name of the `Contact`. + // Format: `networks/{network_code}/contacts/{contact_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. The unique ID of the contact. This value is readonly and is + // assigned by Google. + int64 contact_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/admanager/v1/contact_service.proto b/google/ads/admanager/v1/contact_service.proto deleted file mode 100644 index 0d60b5f4f..000000000 --- a/google/ads/admanager/v1/contact_service.proto +++ /dev/null @@ -1,142 +0,0 @@ -// Copyright 2023 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.ads.admanager.v1; - -import "google/api/annotations.proto"; -import "google/api/client.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; - -option csharp_namespace = "Google.Ads.AdManager.V1"; -option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; -option java_multiple_files = true; -option java_outer_classname = "ContactServiceProto"; -option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\AdManager\\V1"; - -// Provides methods for handling Contact objects. -service ContactService { - option (google.api.default_host) = "admanager.googleapis.com"; - - // API to retrieve a Contact object. - rpc GetContact(GetContactRequest) returns (Contact) { - option (google.api.http) = { - get: "/v1/{name=networks/*/contacts/*}" - }; - option (google.api.method_signature) = "name"; - } - - // API to retrieve a list of Contact objects. - rpc ListContacts(ListContactsRequest) returns (ListContactsResponse) { - option (google.api.http) = { - get: "/v1/{parent=networks/*}/contacts" - }; - option (google.api.method_signature) = "parent"; - } -} - -// The Contact resource. -message Contact { - option (google.api.resource) = { - type: "admanager.googleapis.com/Contact" - pattern: "networks/{network_code}/contacts/{contact}" - plural: "contacts" - singular: "contact" - }; - - // Identifier. The resource name of the Contact. - // Format: `networks/{network_code}/contacts/{contact_id}` - string name = 1 [(google.api.field_behavior) = IDENTIFIER]; - - // Output only. `Contact` ID. - int64 contact_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// Request object for GetContact method. -message GetContactRequest { - // Required. The resource name of the Contact. - // Format: `networks/{network_code}/contacts/{contact_id}` - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "admanager.googleapis.com/Contact" - } - ]; -} - -// Request object for ListContacts method. -message ListContactsRequest { - // Required. The parent, which owns this collection of Contacts. - // Format: `networks/{network_code}` - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "admanager.googleapis.com/Network" - } - ]; - - // Optional. The maximum number of Contacts to return. The service may return - // fewer than this value. If unspecified, at most 50 contacts will be - // returned. The maximum value is 1000; values above 1000 will be coerced to - // 1000. - int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. A page token, received from a previous `ListContacts` call. - // Provide this to retrieve the subsequent page. - // - // When paginating, all other parameters provided to `ListContacts` must match - // the call that provided the page token. - string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Expression to filter the response. - // See syntax details at - // https://developers.google.com/ad-manager/api/beta/filters - string filter = 4 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Expression to specify sorting order. - // See syntax details at - // https://developers.google.com/ad-manager/api/beta/filters#order - string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Number of individual resources to skip while paginating. - int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; -} - -// Response object for ListContactsRequest containing matching Contact -// resources. -message ListContactsResponse { - // The Contact from the specified network. - repeated Contact contacts = 1; - - // A token, which can be sent as `page_token` to retrieve the next page. - // If this field is omitted, there are no subsequent pages. - string next_page_token = 2; - - // Total number of Contacts. - // If a filter was included in the request, this reflects the total number - // after the filtering is applied. - // - // `total_size` will not be calculated in the response unless it has been - // included in a response field mask. The response field mask can be provided - // to the method by using the URL parameter `$fields` or `fields`, or by using - // the HTTP/gRPC header `X-Goog-FieldMask`. - // - // For more information, see - // https://developers.google.com/ad-manager/api/beta/field-masks - int32 total_size = 3; -} diff --git a/google/ads/admanager/v1/creative_placeholder.proto b/google/ads/admanager/v1/creative_placeholder.proto deleted file mode 100644 index 871806cb7..000000000 --- a/google/ads/admanager/v1/creative_placeholder.proto +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2023 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.ads.admanager.v1; - -import "google/ads/admanager/v1/applied_label.proto"; -import "google/ads/admanager/v1/size.proto"; -import "google/api/field_behavior.proto"; - -option csharp_namespace = "Google.Ads.AdManager.V1"; -option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; -option java_multiple_files = true; -option java_outer_classname = "CreativePlaceholderProto"; -option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\AdManager\\V1"; - -// Describes a slot that a creative is expected to fill. This is used in -// forecasting and to validate that the correct creatives are associated with -// the line item. -message CreativePlaceholder { - // Required. The size that the creative is expected to have. - Size size = 1 [(google.api.field_behavior) = REQUIRED]; - - // The companions that the creative is expected to have. This attribute can - // only be set if the line item it belongs to has an - // [EnvironmentType][google.ads.admanager.v1.EnvironmentTypeEnum.EnvironmentType] - // of VIDEO_PLAYER or [roadblocking_type][LineItem.roadblocking_type] of - // CREATIVE_SET. - repeated Size companion_sizes = 2; - - // Expected number of creatives that will be uploaded corresponding to this - // creative placeholder. This estimate is used to improve the accuracy of - // forecasting; for example, if label frequency capping limits the number of - // times a creative may be served. - int32 expected_creative_count = 3; - - // Set of labels applied directly to this CreativePlaceholder. - repeated AppliedLabel applied_labels = 4; - - // Indicates if the expected creative of this placeholder has an AMP only - // variant. This is used to improve the accuracy of forecasting and has no - // effect on serving. - bool amp_only = 5; - - // The display name of the creative targeting that this CreativePlaceholder - // represents. - string creative_targeting_display_name = 6; -} diff --git a/google/ads/admanager/v1/creative_service.proto b/google/ads/admanager/v1/creative_service.proto deleted file mode 100644 index 9f5bd8119..000000000 --- a/google/ads/admanager/v1/creative_service.proto +++ /dev/null @@ -1,176 +0,0 @@ -// Copyright 2023 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.ads.admanager.v1; - -import "google/ads/admanager/v1/ad_partner_declaration.proto"; -import "google/api/annotations.proto"; -import "google/api/client.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/protobuf/timestamp.proto"; - -option csharp_namespace = "Google.Ads.AdManager.V1"; -option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; -option java_multiple_files = true; -option java_outer_classname = "CreativeServiceProto"; -option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\AdManager\\V1"; - -// Provides methods for handling Creative objects. -service CreativeService { - option (google.api.default_host) = "admanager.googleapis.com"; - - // API to retrieve a Creative object. - rpc GetCreative(GetCreativeRequest) returns (Creative) { - option (google.api.http) = { - get: "/v1/{name=networks/*/creatives/*}" - }; - option (google.api.method_signature) = "name"; - } - - // API to retrieve a list of Creative objects. - rpc ListCreatives(ListCreativesRequest) returns (ListCreativesResponse) { - option (google.api.http) = { - get: "/v1/{parent=networks/*}/creatives" - }; - option (google.api.method_signature) = "parent"; - } -} - -// The Creative resource. -message Creative { - option (google.api.resource) = { - type: "admanager.googleapis.com/Creative" - pattern: "networks/{network_code}/creatives/{creative}" - plural: "creatives" - singular: "creative" - }; - - // Identifier. The resource name of the Creative. - // Format: `networks/{network_code}/creatives/{creative_id}` - string name = 1 [(google.api.field_behavior) = IDENTIFIER]; - - // Output only. `Creative` ID. - int64 creative_id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Optional. Display name of the `Creative`. This attribute has a maximum - // length of 255 characters. - string display_name = 8 [(google.api.field_behavior) = OPTIONAL]; - - // Required. The resource name of the Company, which is of type - // Company.Type.ADVERTISER, to which this Creative belongs. Format: - // "networks/{network_code}/companies/{company_id}" - string advertiser = 2 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "admanager.googleapis.com/Company" - } - ]; - - // Output only. The instant this Creative was last modified. - google.protobuf.Timestamp update_time = 3 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The URL of the creative for previewing the media. - string preview_url = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. String representations of creative size. - // This field is temporarily available and will be deprecated when - // `Creative.size` becomes available. - string size_label = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Optional. The Ad Partners associated with this creative. - // This is distinct from any associated companies that Google may detect - // programmatically. - AdPartnerDeclaration ad_partner_declaration = 6 - [(google.api.field_behavior) = OPTIONAL]; -} - -// Request object for GetCreative method. -message GetCreativeRequest { - // Required. The resource name of the Creative. - // Format: `networks/{network_code}/creatives/{creative_id}` - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "admanager.googleapis.com/Creative" - } - ]; -} - -// Request object for ListCreatives method. -message ListCreativesRequest { - // Required. The parent, which owns this collection of Creatives. - // Format: networks/{network_code} - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "admanager.googleapis.com/Network" - } - ]; - - // Optional. The maximum number of Creatives to return. The service may return - // fewer than this value. If unspecified, at most 50 creatives will be - // returned. The maximum value is 1000; values above 1000 will be coerced to - // 1000. - int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. A page token, received from a previous `ListCreatives` call. - // Provide this to retrieve the subsequent page. - // - // When paginating, all other parameters provided to `ListCreatives` must - // match the call that provided the page token. - string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Expression to filter the response. - // See syntax details at - // https://developers.google.com/ad-manager/api/beta/filters - string filter = 4 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Expression to specify sorting order. - // See syntax details at - // https://developers.google.com/ad-manager/api/beta/filters#order - string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Number of individual resources to skip while paginating. - int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; -} - -// Response object for ListCreativesRequest containing matching Creative -// resources. -message ListCreativesResponse { - // The Creative from the specified network. - repeated Creative creatives = 1; - - // A token, which can be sent as `page_token` to retrieve the next page. - // If this field is omitted, there are no subsequent pages. - string next_page_token = 2; - - // Total number of Creatives. - // If a filter was included in the request, this reflects the total number - // after the filtering is applied. - // - // `total_size` will not be calculated in the response unless it has been - // included in a response field mask. The response field mask can be provided - // to the method by using the URL parameter `$fields` or `fields`, or by using - // the HTTP/gRPC header `X-Goog-FieldMask`. - // - // For more information, see - // https://developers.google.com/ad-manager/api/beta/field-masks - int32 total_size = 3; -} diff --git a/google/ads/admanager/v1/custom_field_enums.proto b/google/ads/admanager/v1/custom_field_enums.proto index 7e44aa5b5..e47ca39ea 100644 --- a/google/ads/admanager/v1/custom_field_enums.proto +++ b/google/ads/admanager/v1/custom_field_enums.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;adma option java_multiple_files = true; option java_outer_classname = "CustomFieldEnumsProto"; option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; // Wrapper message for // [CustomFieldDataType][google.ads.admanager.v1.CustomFieldDataTypeEnum.CustomFieldDataType] diff --git a/google/ads/admanager/v1/custom_field_messages.proto b/google/ads/admanager/v1/custom_field_messages.proto new file mode 100644 index 000000000..20992473c --- /dev/null +++ b/google/ads/admanager/v1/custom_field_messages.proto @@ -0,0 +1,87 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/ads/admanager/v1/custom_field_enums.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "CustomFieldMessagesProto"; +option java_package = "com.google.ads.admanager.v1"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; + +// An additional, user-created field on an entity. +message CustomField { + option (google.api.resource) = { + type: "admanager.googleapis.com/CustomField" + pattern: "networks/{network_code}/customFields/{custom_field}" + plural: "customFields" + singular: "customField" + }; + + // Identifier. The resource name of the `CustomField`. + // Format: `networks/{network_code}/customFields/{custom_field_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. Unique ID of the CustomField. This value is readonly and is + // assigned by Google. + int64 custom_field_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Name of the CustomField. The max length is 127 characters. + string display_name = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. A description of the custom field. The maximum length is 511 + // characters. + string description = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The status of the `CustomField`. + CustomFieldStatusEnum.CustomFieldStatus status = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The type of entity the `CustomField` can be applied to. + CustomFieldEntityTypeEnum.CustomFieldEntityType entity_type = 7 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The data type of the `CustomField`. + CustomFieldDataTypeEnum.CustomFieldDataType data_type = 8 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The visibility of the `CustomField`. + CustomFieldVisibilityEnum.CustomFieldVisibility visibility = 9 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. The drop-down options for the `CustomField`. + // + // Only applicable for `CustomField` with the drop-down data type. + repeated CustomFieldOption options = 10 + [(google.api.field_behavior) = OPTIONAL]; +} + +// An option for a drop-down `CustomField`. +message CustomFieldOption { + // Output only. `CustomFieldOption` ID. + int64 custom_field_option_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The display name of the `CustomFieldOption`. + // + // This value has a maximum length of 127 characters. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/ads/admanager/v1/custom_field_service.proto b/google/ads/admanager/v1/custom_field_service.proto index 964487e52..e120761ac 100644 --- a/google/ads/admanager/v1/custom_field_service.proto +++ b/google/ads/admanager/v1/custom_field_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,7 +16,7 @@ syntax = "proto3"; package google.ads.admanager.v1; -import "google/ads/admanager/v1/custom_field_enums.proto"; +import "google/ads/admanager/v1/custom_field_messages.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -27,8 +27,8 @@ option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;adma option java_multiple_files = true; option java_outer_classname = "CustomFieldServiceProto"; option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; // Provides methods for handling `CustomField` objects. service CustomFieldService { @@ -52,66 +52,6 @@ service CustomFieldService { } } -// The `CustomField` resource. -message CustomField { - option (google.api.resource) = { - type: "admanager.googleapis.com/CustomField" - pattern: "networks/{network_code}/customFields/{custom_field}" - plural: "customFields" - singular: "customField" - }; - - // Identifier. The resource name of the `CustomField`. - // Format: `networks/{network_code}/customFields/{custom_field_id}` - string name = 1 [(google.api.field_behavior) = IDENTIFIER]; - - // Output only. `CustomField` ID. - int64 custom_field_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. The display name of the `CustomField`. - // - // This value has a maximum length of 127 characters. - string display_name = 3 [(google.api.field_behavior) = REQUIRED]; - - // Optional. The description of the `CustomField`. - // - // This value has a maximum length of 511 characters. - string description = 4 [(google.api.field_behavior) = OPTIONAL]; - - // Output only. The status of the `CustomField`. - CustomFieldStatusEnum.CustomFieldStatus status = 5 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. The type of entity the `CustomField` can be applied to. - CustomFieldEntityTypeEnum.CustomFieldEntityType entity_type = 7 - [(google.api.field_behavior) = REQUIRED]; - - // Required. The data type of the `CustomField`. - CustomFieldDataTypeEnum.CustomFieldDataType data_type = 8 - [(google.api.field_behavior) = REQUIRED]; - - // Required. The visibility of the `CustomField`. - CustomFieldVisibilityEnum.CustomFieldVisibility visibility = 9 - [(google.api.field_behavior) = REQUIRED]; - - // Optional. The drop-down options for the `CustomField`. - // - // Only applicable for `CustomField` with the drop-down data type. - repeated CustomFieldOption options = 10 - [(google.api.field_behavior) = OPTIONAL]; -} - -// An option for a drop-down `CustomField`. -message CustomFieldOption { - // Output only. `CustomFieldOption` ID. - int64 custom_field_option_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. The display name of the `CustomFieldOption`. - // - // This value has a maximum length of 127 characters. - string display_name = 2 [(google.api.field_behavior) = REQUIRED]; -} - // Request object for `GetCustomField` method. message GetCustomFieldRequest { // Required. The resource name of the CustomField. @@ -149,11 +89,13 @@ message ListCustomFieldsRequest { string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. Expression to filter the response. - // See syntax details at https://google.aip.dev/160 + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters string filter = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. Expression to specify sorting order. - // See syntax details at https://google.aip.dev/132#ordering + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters#order string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; // Optional. Number of individual resources to skip while paginating. @@ -180,6 +122,6 @@ message ListCustomFieldsResponse { // the HTTP/gRPC header `X-Goog-FieldMask`. // // For more information, see - // [System Parameters](https://cloud.google.com/apis/docs/system-parameters). + // https://developers.google.com/ad-manager/api/beta/field-masks int32 total_size = 3; } diff --git a/google/ads/admanager/v1/custom_field_value.proto b/google/ads/admanager/v1/custom_field_value.proto new file mode 100644 index 000000000..5647dd4cb --- /dev/null +++ b/google/ads/admanager/v1/custom_field_value.proto @@ -0,0 +1,62 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "CustomFieldValueProto"; +option java_package = "com.google.ads.admanager.v1"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; + +// A value for a CustomField on a resource. +message CustomFieldValue { + // Represent custom field value type. + // Next Id: 5 + message Value { + // The value of this field. + oneof value { + // The custom_field_option_id, if the CustomFieldDataType is DROPDOWN. + int64 dropdown_value = 1; + + // The value, if the CustomFieldDataType is STRING. + string string_value = 2; + + // The value, if the CustomFieldDataType is NUMBER. + double number_value = 3; + + // The value, if the CustomFieldDataType is TOGGLE. + bool toggle_value = 4; + } + } + + // Required. The custom field for which this is a value. + // Format: "networks/{network_code}/customFields/{custom_field_id}" + string custom_field = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/CustomField" + } + ]; + + // Required. A typed value representation of the value. + optional Value value = 2 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/ads/admanager/v1/custom_targeting_key_enums.proto b/google/ads/admanager/v1/custom_targeting_key_enums.proto index a33be039e..b271b5fa6 100644 --- a/google/ads/admanager/v1/custom_targeting_key_enums.proto +++ b/google/ads/admanager/v1/custom_targeting_key_enums.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;adma option java_multiple_files = true; option java_outer_classname = "CustomTargetingKeyEnumsProto"; option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; // Wrapper message for // [CustomTargetingKeyStatus][google.ads.admanager.v1.CustomTargetingKeyStatusEnum.CustomTargetingKeyStatus] diff --git a/google/ads/admanager/v1/custom_targeting_key_messages.proto b/google/ads/admanager/v1/custom_targeting_key_messages.proto new file mode 100644 index 000000000..ad739eac5 --- /dev/null +++ b/google/ads/admanager/v1/custom_targeting_key_messages.proto @@ -0,0 +1,69 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/ads/admanager/v1/custom_targeting_key_enums.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "CustomTargetingKeyMessagesProto"; +option java_package = "com.google.ads.admanager.v1"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; + +// The `CustomTargetingKey` resource. +message CustomTargetingKey { + option (google.api.resource) = { + type: "admanager.googleapis.com/CustomTargetingKey" + pattern: "networks/{network_code}/customTargetingKeys/{custom_targeting_key}" + plural: "customTargetingKeys" + singular: "customTargetingKey" + }; + + // Identifier. The resource name of the `CustomTargetingKey`. + // Format: + // `networks/{network_code}/customTargetingKeys/{custom_targeting_key_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. `CustomTargetingKey` ID. + int64 custom_targeting_key_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Name of the key. Keys can contain up to 10 characters each. You + // can use alphanumeric characters and symbols other than the following: + // ", ', =, !, +, #, *, ~, ;, ^, (, ), <, >, [, ], the white space character. + string ad_tag_name = 3 [(google.api.field_behavior) = IMMUTABLE]; + + // Optional. Descriptive name for the `CustomTargetingKey`. + string display_name = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Indicates whether users will select from predefined values or + // create new targeting values, while specifying targeting criteria for a line + // item. + CustomTargetingKeyTypeEnum.CustomTargetingKeyType type = 5 + [(google.api.field_behavior) = REQUIRED]; + + // Output only. Status of the `CustomTargetingKey`. + CustomTargetingKeyStatusEnum.CustomTargetingKeyStatus status = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Reportable state of the `CustomTargetingKey`. + CustomTargetingKeyReportableTypeEnum.CustomTargetingKeyReportableType + reportable_type = 7 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/ads/admanager/v1/custom_targeting_key_service.proto b/google/ads/admanager/v1/custom_targeting_key_service.proto index 59e83ac68..f3cc2cee4 100644 --- a/google/ads/admanager/v1/custom_targeting_key_service.proto +++ b/google/ads/admanager/v1/custom_targeting_key_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 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.ads.admanager.v1; -import "google/ads/admanager/v1/custom_targeting_key_enums.proto"; +import "google/ads/admanager/v1/custom_targeting_key_messages.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -27,8 +27,8 @@ option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;adma option java_multiple_files = true; option java_outer_classname = "CustomTargetingKeyServiceProto"; option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; // Provides methods for handling `CustomTargetingKey` objects. service CustomTargetingKeyService { @@ -53,46 +53,6 @@ service CustomTargetingKeyService { } } -// The `CustomTargetingKey` resource. -message CustomTargetingKey { - option (google.api.resource) = { - type: "admanager.googleapis.com/CustomTargetingKey" - pattern: "networks/{network_code}/customTargetingKeys/{custom_targeting_key}" - plural: "customTargetingKeys" - singular: "customTargetingKey" - }; - - // Identifier. The resource name of the `CustomTargetingKey`. - // Format: - // `networks/{network_code}/customTargetingKeys/{custom_targeting_key_id}` - string name = 1 [(google.api.field_behavior) = IDENTIFIER]; - - // Output only. `CustomTargetingKey` ID. - int64 custom_targeting_key_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Immutable. Name of the key. Keys can contain up to 10 characters each. You - // can use alphanumeric characters and symbols other than the following: - // ", ', =, !, +, #, *, ~, ;, ^, (, ), <, >, [, ], the white space character. - string ad_tag_name = 3 [(google.api.field_behavior) = IMMUTABLE]; - - // Optional. Descriptive name for the `CustomTargetingKey`. - string display_name = 4 [(google.api.field_behavior) = OPTIONAL]; - - // Required. Indicates whether users will select from predefined values or - // create new targeting values, while specifying targeting criteria for a line - // item. - CustomTargetingKeyTypeEnum.CustomTargetingKeyType type = 5 - [(google.api.field_behavior) = REQUIRED]; - - // Output only. Status of the `CustomTargetingKey`. - CustomTargetingKeyStatusEnum.CustomTargetingKeyStatus status = 6 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. Reportable state of the `CustomTargetingKey`. - CustomTargetingKeyReportableTypeEnum.CustomTargetingKeyReportableType - reportable_type = 7 [(google.api.field_behavior) = REQUIRED]; -} - // Request object for `GetCustomTargetingKey` method. message GetCustomTargetingKeyRequest { // Required. The resource name of the CustomTargetingKey. diff --git a/google/ads/admanager/v1/custom_targeting_value_enums.proto b/google/ads/admanager/v1/custom_targeting_value_enums.proto index 609e65ded..9bf5ae56e 100644 --- a/google/ads/admanager/v1/custom_targeting_value_enums.proto +++ b/google/ads/admanager/v1/custom_targeting_value_enums.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;adma option java_multiple_files = true; option java_outer_classname = "CustomTargetingValueEnumsProto"; option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; // Wrapper message for // [CustomTargetingValueStatus][google.ads.admanager.v1.CustomTargetingValueStatusEnum.CustomTargetingValueStatus] diff --git a/google/ads/admanager/v1/custom_targeting_value_messages.proto b/google/ads/admanager/v1/custom_targeting_value_messages.proto new file mode 100644 index 000000000..b26fb80db --- /dev/null +++ b/google/ads/admanager/v1/custom_targeting_value_messages.proto @@ -0,0 +1,66 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/ads/admanager/v1/custom_targeting_value_enums.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "CustomTargetingValueMessagesProto"; +option java_package = "com.google.ads.admanager.v1"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; + +// The `CustomTargetingValue` resource. +message CustomTargetingValue { + option (google.api.resource) = { + type: "admanager.googleapis.com/CustomTargetingValue" + pattern: "networks/{network_code}/customTargetingKeys/{custom_targeting_key}/customTargetingValues/{custom_targeting_value}" + plural: "customTargetingValues" + singular: "customTargetingValue" + }; + + // Identifier. The resource name of the `CustomTargetingValue`. + // Format: + // `networks/{network_code}/customTargetingKeys/{custom_targeting_key_id}/customTargetingValues/{custom_targeting_value_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Immutable. Name of the `CustomTargetingValue`. Values can contain up to 40 + // characters each. You can use alphanumeric characters and symbols other than + // the following: ", ', =, !, +, #, *, ~, ;, ^, (, ), <, >, [, ]. Values are + // not data-specific; all values are treated as strings. For example, instead + // of using "age>=18 AND <=34", try "18-34" + string ad_tag_name = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Optional. Descriptive name for the `CustomTargetingValue`. + string display_name = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Immutable. The way in which the CustomTargetingValue.name strings + // will be matched. + CustomTargetingValueMatchTypeEnum.CustomTargetingValueMatchType match_type = 6 + [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = REQUIRED + ]; + + // Output only. Status of the `CustomTargetingValue`. + CustomTargetingValueStatusEnum.CustomTargetingValueStatus status = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/admanager/v1/custom_targeting_value_service.proto b/google/ads/admanager/v1/custom_targeting_value_service.proto index 958bb0243..d7241b8a3 100644 --- a/google/ads/admanager/v1/custom_targeting_value_service.proto +++ b/google/ads/admanager/v1/custom_targeting_value_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 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.ads.admanager.v1; -import "google/ads/admanager/v1/custom_targeting_value_enums.proto"; +import "google/ads/admanager/v1/custom_targeting_value_messages.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -27,8 +27,8 @@ option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;adma option java_multiple_files = true; option java_outer_classname = "CustomTargetingValueServiceProto"; option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; // Provides methods for handling `CustomTargetingValue` objects. service CustomTargetingValueService { @@ -53,40 +53,6 @@ service CustomTargetingValueService { } } -// The `CustomTargetingValue` resource. -message CustomTargetingValue { - option (google.api.resource) = { - type: "admanager.googleapis.com/CustomTargetingValue" - pattern: "networks/{network_code}/customTargetingKeys/{custom_targeting_key}/customTargetingValues/{custom_targeting_value}" - plural: "customTargetingValues" - singular: "customTargetingValue" - }; - - // Identifier. The resource name of the `CustomTargetingValue`. - // Format: - // `networks/{network_code}/customTargetingKeys/{custom_targeting_key_id}/customTargetingValues/{custom_targeting_value_id}` - string name = 1 [(google.api.field_behavior) = IDENTIFIER]; - - // Immutable. Name of the `CustomTargetingValue`. Values can contain up to 40 - // characters each. You can use alphanumeric characters and symbols other than - // the following: ", ', =, !, +, #, *, ~, ;, ^, (, ), <, >, [, ]. Values are - // not data-specific; all values are treated as string. For example, instead - // of using "age>=18 AND <=34", try "18-34" - string ad_tag_name = 4 [(google.api.field_behavior) = IMMUTABLE]; - - // Optional. Descriptive name for the `CustomTargetingValue`. - string display_name = 5 [(google.api.field_behavior) = OPTIONAL]; - - // Required. The way in which the CustomTargetingValue.name strings will be - // matched. - CustomTargetingValueMatchTypeEnum.CustomTargetingValueMatchType match_type = 6 - [(google.api.field_behavior) = REQUIRED]; - - // Output only. Status of the `CustomTargetingValue`. - CustomTargetingValueStatusEnum.CustomTargetingValueStatus status = 7 - [(google.api.field_behavior) = OUTPUT_ONLY]; -} - // Request object for `GetCustomTargetingValue` method. message GetCustomTargetingValueRequest { // Required. The resource name of the CustomTargetingValue. diff --git a/google/ads/admanager/v1/entity_signals_mapping_messages.proto b/google/ads/admanager/v1/entity_signals_mapping_messages.proto new file mode 100644 index 000000000..df36b466b --- /dev/null +++ b/google/ads/admanager/v1/entity_signals_mapping_messages.proto @@ -0,0 +1,64 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "EntitySignalsMappingMessagesProto"; +option java_package = "com.google.ads.admanager.v1"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; + +// The `EntitySignalsMapping` resource. +message EntitySignalsMapping { + option (google.api.resource) = { + type: "admanager.googleapis.com/EntitySignalsMapping" + pattern: "networks/{network_code}/entitySignalsMappings/{entity_signals_mapping}" + plural: "entitySignalsMappings" + singular: "entitySignalsMapping" + }; + + // The entity that the mapping belongs to. + oneof entity { + // ID of an AudienceSegment that this mapping belongs to. + int64 audience_segment_id = 3; + + // ID of a ContentBundle that this mapping belongs to. + int64 content_bundle_id = 4; + + // ID of a CustomValue that this mapping belongs to. + int64 custom_targeting_value_id = 5; + } + + // Identifier. The resource name of the `EntitySignalsMapping`. + // Format: + // `networks/{network_code}/entitySignalsMappings/{entity_signals_mapping_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. `EntitySignalsMapping` ID. + int64 entity_signals_mapping_id = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The IDs of the categories that are associated with the + // referencing entity. + repeated int64 taxonomy_category_ids = 6 + [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/ads/admanager/v1/entity_signals_mapping_service.proto b/google/ads/admanager/v1/entity_signals_mapping_service.proto new file mode 100644 index 000000000..aedbb82e4 --- /dev/null +++ b/google/ads/admanager/v1/entity_signals_mapping_service.proto @@ -0,0 +1,252 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/ads/admanager/v1/entity_signals_mapping_messages.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.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "EntitySignalsMappingServiceProto"; +option java_package = "com.google.ads.admanager.v1"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; + +// Provides methods for handling `EntitySignalsMapping` objects. +service EntitySignalsMappingService { + option (google.api.default_host) = "admanager.googleapis.com"; + + // API to retrieve a `EntitySignalsMapping` object. + rpc GetEntitySignalsMapping(GetEntitySignalsMappingRequest) + returns (EntitySignalsMapping) { + option (google.api.http) = { + get: "/v1/{name=networks/*/entitySignalsMappings/*}" + }; + option (google.api.method_signature) = "name"; + } + + // API to retrieve a list of `EntitySignalsMapping` objects. + rpc ListEntitySignalsMappings(ListEntitySignalsMappingsRequest) + returns (ListEntitySignalsMappingsResponse) { + option (google.api.http) = { + get: "/v1/{parent=networks/*}/entitySignalsMappings" + }; + option (google.api.method_signature) = "parent"; + } + + // API to create an `EntitySignalsMapping` object. + rpc CreateEntitySignalsMapping(CreateEntitySignalsMappingRequest) + returns (EntitySignalsMapping) { + option (google.api.http) = { + post: "/v1/{parent=networks/*}/entitySignalsMappings" + body: "entity_signals_mapping" + }; + option (google.api.method_signature) = "parent,entity_signals_mapping"; + } + + // API to update an `EntitySignalsMapping` object. + rpc UpdateEntitySignalsMapping(UpdateEntitySignalsMappingRequest) + returns (EntitySignalsMapping) { + option (google.api.http) = { + patch: "/v1/{entity_signals_mapping.name=networks/*/entitySignalsMappings/*}" + body: "entity_signals_mapping" + }; + option (google.api.method_signature) = "entity_signals_mapping,update_mask"; + } + + // API to batch create `EntitySignalsMapping` objects. + rpc BatchCreateEntitySignalsMappings(BatchCreateEntitySignalsMappingsRequest) + returns (BatchCreateEntitySignalsMappingsResponse) { + option (google.api.http) = { + post: "/v1/{parent=networks/*}/entitySignalsMappings:batchCreate" + body: "*" + }; + option (google.api.method_signature) = "parent,requests"; + } + + // API to batch update `EntitySignalsMapping` objects. + rpc BatchUpdateEntitySignalsMappings(BatchUpdateEntitySignalsMappingsRequest) + returns (BatchUpdateEntitySignalsMappingsResponse) { + option (google.api.http) = { + post: "/v1/{parent=networks/*}/entitySignalsMappings:batchUpdate" + body: "*" + }; + option (google.api.method_signature) = "parent,requests"; + } +} + +// Request object for `GetEntitySignalsMapping` method. +message GetEntitySignalsMappingRequest { + // Required. The resource name of the EntitySignalsMapping. + // Format: + // `networks/{network_code}/entitySignalsMappings/{entity_signals_mapping_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/EntitySignalsMapping" + } + ]; +} + +// Request object for `ListEntitySignalsMappings` method. +message ListEntitySignalsMappingsRequest { + // Required. The parent, which owns this collection of EntitySignalsMappings. + // Format: `networks/{network_code}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Network" + } + ]; + + // Optional. The maximum number of `EntitySignalsMappings` to return. The + // service may return fewer than this value. If unspecified, at most 50 + // `EntitySignalsMappings` 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 + // `ListEntitySignalsMappings` call. Provide this to retrieve the subsequent + // page. + // + // When paginating, all other parameters provided to + // `ListEntitySignalsMappings` must match the call that provided the page + // token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to filter the response. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to specify sorting order. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters#order + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Number of individual resources to skip while paginating. + int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request object for 'CreateEntitySignalsMapping' method. +message CreateEntitySignalsMappingRequest { + // Required. The parent resource where this EntitySignalsMapping will be + // created. Format: `networks/{network_code}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "admanager.googleapis.com/EntitySignalsMapping" + } + ]; + + // Required. The EntitySignalsMapping object to create. + EntitySignalsMapping entity_signals_mapping = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request object for 'UpdateEntitySignalsMapping' method. +message UpdateEntitySignalsMappingRequest { + // Required. The `EntitySignalsMapping` to update. + // + // The EntitySignalsMapping's name is used to identify the + // EntitySignalsMapping to update. + // Format: + // `networks/{network_code}/entitySignalsMappings/{entity_signals_mapping}` + EntitySignalsMapping entity_signals_mapping = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of fields to update. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Response object for `ListEntitySignalsMappingsRequest` containing matching +// `EntitySignalsMapping` resources. +message ListEntitySignalsMappingsResponse { + // The `EntitySignalsMapping` from the specified network. + repeated EntitySignalsMapping entity_signals_mappings = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; + + // Total number of `EntitySignalsMappings`. + // If a filter was included in the request, this reflects the total number + // after the filtering is applied. + // + // `total_size` will not be calculated in the response unless it has been + // included in a response field mask. The response field mask can be provided + // to the method by using the URL parameter `$fields` or `fields`, or by using + // the HTTP/gRPC header `X-Goog-FieldMask`. + // + // For more information, see + // https://developers.google.com/ad-manager/api/beta/field-masks + int32 total_size = 3; +} + +// Request object for `BatchCreateEntitySignalsMappings` method. +message BatchCreateEntitySignalsMappingsRequest { + // Required. The parent resource where `EntitySignalsMappings` will be + // created. Format: `networks/{network_code}` The parent field in the + // CreateEntitySignalsMappingRequest must match this field. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "admanager.googleapis.com/EntitySignalsMapping" + } + ]; + + // Required. The `EntitySignalsMapping` objects to create. + // A maximum of 100 objects can be created in a batch. + repeated CreateEntitySignalsMappingRequest requests = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Response object for `BatchCreateEntitySignalsMappings` method. +message BatchCreateEntitySignalsMappingsResponse { + // The `EntitySignalsMapping` objects created. + repeated EntitySignalsMapping entity_signals_mappings = 1; +} + +// Request object for `BatchUpdateEntitySignalsMappings` method. +message BatchUpdateEntitySignalsMappingsRequest { + // Required. The parent resource where `EntitySignalsMappings` will be + // updated. Format: `networks/{network_code}` The parent field in the + // UpdateEntitySignalsMappingRequest must match this field. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "admanager.googleapis.com/EntitySignalsMapping" + } + ]; + + // Required. The `EntitySignalsMapping` objects to update. + // A maximum of 100 objects can be updated in a batch. + repeated UpdateEntitySignalsMappingRequest requests = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Response object for `BatchUpdateEntitySignalsMappings` method. +message BatchUpdateEntitySignalsMappingsResponse { + // The `EntitySignalsMapping` objects updated. + repeated EntitySignalsMapping entity_signals_mappings = 1; +} diff --git a/google/ads/admanager/v1/environment_type_enum.proto b/google/ads/admanager/v1/environment_type_enum.proto index 5e31c0bfd..7180c8ae7 100644 --- a/google/ads/admanager/v1/environment_type_enum.proto +++ b/google/ads/admanager/v1/environment_type_enum.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;adma option java_multiple_files = true; option java_outer_classname = "EnvironmentTypeEnumProto"; option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; // Wrapper message for // [EnvironmentType][google.ads.admanager.v1.EnvironmentTypeEnum.EnvironmentType]. diff --git a/google/ads/admanager/v1/frequency_cap.proto b/google/ads/admanager/v1/frequency_cap.proto index 2a6c1defb..0b999800a 100644 --- a/google/ads/admanager/v1/frequency_cap.proto +++ b/google/ads/admanager/v1/frequency_cap.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,13 +16,15 @@ syntax = "proto3"; package google.ads.admanager.v1; +import "google/ads/admanager/v1/time_unit_enum.proto"; + option csharp_namespace = "Google.Ads.AdManager.V1"; option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; option java_multiple_files = true; option java_outer_classname = "FrequencyCapProto"; option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; // Represents a Frequency Cap that can be applied to an entity. message FrequencyCap { @@ -35,37 +37,3 @@ message FrequencyCap { // The units of time of this frequency cap. optional TimeUnitEnum.TimeUnit time_unit = 3; } - -// Wrapper message for TimeUnit. -message TimeUnitEnum { - // Unit of time for the frequency cap. - enum TimeUnit { - // Default value. This value is unused. - TIME_UNIT_UNSPECIFIED = 0; - - // Minute - MINUTE = 1; - - // Hour - HOUR = 2; - - // Day - DAY = 3; - - // Week - WEEK = 4; - - // Month - MONTH = 5; - - // Lifetime - LIFETIME = 6; - - // Per pod of ads in a video stream. Only valid for entities in a - // VIDEO_PLAYER environment. - POD = 7; - - // Per video stream. Only valid for entities in a VIDEO_PLAYER environment. - STREAM = 8; - } -} diff --git a/google/ads/admanager/v1/goal.proto b/google/ads/admanager/v1/goal.proto deleted file mode 100644 index 139f82dbc..000000000 --- a/google/ads/admanager/v1/goal.proto +++ /dev/null @@ -1,162 +0,0 @@ -// Copyright 2023 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.ads.admanager.v1; - -option csharp_namespace = "Google.Ads.AdManager.V1"; -option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; -option java_multiple_files = true; -option java_outer_classname = "GoalProto"; -option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\AdManager\\V1"; - -// Defines the criteria a [LineItem][google.ads.admanager.v1.LineItem] needs to -// satisfy to meet its delivery -// goal. -message Goal { - // The type of the goal for the LineItem. It defines the period over which the - // goal should be reached. - GoalTypeEnum.GoalType goal_type = 1; - - // The type of the goal unit for the LineItem. - UnitTypeEnum.UnitType unit_type = 2; - - // If this is a primary goal, it represents the number or percentage of - // impressions or clicks that will be reserved. If the line item is of type - // [LineItemTypeEnum.LineItemType.SPONSORSHIP][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.SPONSORSHIP], - // it represents the percentage of available impressions reserved. If the line - // item is of type - // [LineItemTypeEnum.LineItemType.BULK][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.BULK] - // or - // [LineItemTypeEnum.LineItemType.PRICE_PRIORITY][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.PRICE_PRIORITY], - // it represents the number of remaining impressions reserved. If the line - // item is of type - // [LineItemTypeEnum.LineItemType.NETWORK][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.NETWORK] - // or - // [LineItemTypeEnum.LineItemType.HOUSE][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.HOUSE], - // it represents the percentage of remaining impressions reserved.

If this - // is an impression cap goal, it represents the number of impressions or - // conversions that the line item will stop serving at if reached. For valid - // line item types, see [LineItem.impressions_cap][]. - int64 units = 3; -} - -// Wrapper message for -// [GoalType][google.ads.admanager.v1.GoalTypeEnum.GoalType]. -message GoalTypeEnum { - // Specifies the type of the goal for a LineItem. - enum GoalType { - // Default value. This value is unused. - GOAL_TYPE_UNSPECIFIED = 0; - - // No goal is specified for the number of ads delivered. - // The line item [type][google.ads.admanager.v1.LineItem.line_item_type] - // must be one of: - // - // * [LineItemTypeEnum.LineItemType.PRICE_PRIORITY][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.PRICE_PRIORITY] - // * [LineItemTypeEnum.LineItemType.AD_EXCHANGE][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.AD_EXCHANGE] - // * [LineItemTypeEnum.LineItemType.CLICK_TRACKING][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.CLICK_TRACKING] - NONE = 1; - - // There is a goal on the number of ads delivered for this line item during - // its entire lifetime. - // The line item [type][google.ads.admanager.v1.LineItem.line_item_type] - // must be one of: - // - // * [LineItemTypeEnum.LineItemType.STANDARD][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.STANDARD] - // * [LineItemTypeEnum.LineItemType.BULK][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.BULK] - // * [LineItemTypeEnum.LineItemType.PRICE_PRIORITY][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.PRICE_PRIORITY] - // * [LineItemTypeEnum.LineItemType.ADSENSE][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.ADSENSE] - // * [LineItemTypeEnum.LineItemType.AD_EXCHANGE][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.AD_EXCHANGE] - // * [LineItemTypeEnum.LineItemType.ADMOB][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.ADMOB] - // * [LineItemTypeEnum.LineItemType.CLICK_TRACKING][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.CLICK_TRACKING] - LIFETIME = 2; - - // There is a daily goal on the number of ads delivered for this line item. - // The line item [type][google.ads.admanager.v1.LineItem.line_item_type] - // must be one of: - // - // * [LineItemTypeEnum.LineItemType.SPONSORSHIP][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.SPONSORSHIP] - // * [LineItemTypeEnum.LineItemType.NETWORK][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.NETWORK] - // * [LineItemTypeEnum.LineItemType.PRICE_PRIORITY][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.PRICE_PRIORITY] - // * [LineItemTypeEnum.LineItemType.HOUSE][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.HOUSE] - // * [LineItemTypeEnum.LineItemType.ADSENSE][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.ADSENSE] - // * [LineItemTypeEnum.LineItemType.AD_EXCHANGE][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.AD_EXCHANGE] - // * [LineItemTypeEnum.LineItemType.ADMOB][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.ADMOB] - // * [LineItemTypeEnum.LineItemType.BUMPER][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.BUMPER] - DAILY = 3; - } -} - -// Wrapper message for -// [UnitType][google.ads.admanager.v1.UnitTypeEnum.UnitType]. -message UnitTypeEnum { - // Indicates the type of unit used for defining a reservation. The - // [LineItem.cost_type][google.ads.admanager.v1.LineItem.cost_type] can differ - // from the UnitType - an ad can have an impression goal, but be billed by its - // click. Usually CostType and UnitType will refer to the same unit. - enum UnitType { - // Default value. This value is unused. - UNIT_TYPE_UNSPECIFIED = 0; - - // The number of impressions served by creatives associated with the line - // item. - IMPRESSIONS = 1; - - // The number of clicks reported by creatives associated with the line item. - // The line item [type][google.ads.admanager.v1.LineItem.line_item_type] - // must be one of: - // - // * [LineItemTypeEnum.LineItemType.STANDARD][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.STANDARD] - // * [LineItemTypeEnum.LineItemType.BULK][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.BULK] - // * [LineItemTypeEnum.LineItemType.PRICE_PRIORITY][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.PRICE_PRIORITY] - CLICKS = 2; - - // The number of view-through Cost-Per-Action (CPA) conversions from - // creatives associated with the line item. This is only supported as - // secondary goal and the - // [LineItem.cost_type][google.ads.admanager.v1.LineItem.cost_type] must be - // [CostTypeEnum.CostType.CPA][]. - CLICK_THROUGH_CPA_CONVERSIONS = 3; - - // The number of view-through Cost-Per-Action (CPA) conversions from - // creatives associated with the line item. This is only supported as - // secondary goal and the - // [LineItem.cost_type][google.ads.admanager.v1.LineItem.cost_type] must be - // [CostTypeEnum.CostType.CPA}. - VIEW_THROUGH_CPA_CONVERSIONS = 4; - - // The number of total Cost-Per-Action (CPA) conversions from creatives - // associated with the line item. This is only supported as secondary goal - // and the [LineItem.cost_type} must be [CostTypeEnum.CostType.CPA}. - TOTAL_CPA_CONVERSIONS = 5; - - // The number of viewable impressions reported by creatives associated with - // the line item. The - // [LineItem.line_item_type][google.ads.admanager.v1.LineItem.line_item_type] - // must be - // [LineItemTypeEnum.LineItemType.STANDARD][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.STANDARD]. - VIEWABLE_IMPRESSIONS = 6; - - // The number of in-target impressions reported by third party measurements. - // The - // [LineItem.line_item_type][google.ads.admanager.v1.LineItem.line_item_type] - // must be - // [LineItemTypeEnum.LineItemType.STANDARD][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.STANDARD]. - IN_TARGET_IMPRESSIONS = 7; - } -} diff --git a/google/ads/admanager/v1/ad_unit_size.proto b/google/ads/admanager/v1/label_messages.proto similarity index 54% rename from google/ads/admanager/v1/ad_unit_size.proto rename to google/ads/admanager/v1/label_messages.proto index d56db53a0..a8fdfbd1f 100644 --- a/google/ads/admanager/v1/ad_unit_size.proto +++ b/google/ads/admanager/v1/label_messages.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 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,29 +16,27 @@ syntax = "proto3"; package google.ads.admanager.v1; -import "google/ads/admanager/v1/environment_type_enum.proto"; -import "google/ads/admanager/v1/size.proto"; import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; option csharp_namespace = "Google.Ads.AdManager.V1"; option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; option java_multiple_files = true; -option java_outer_classname = "AdUnitSizeProto"; +option java_outer_classname = "LabelMessagesProto"; option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; -// Represents the size, environment, and companions of an ad in an ad unit. -message AdUnitSize { - // Required. The Size of the AdUnit. - Size size = 1 [(google.api.field_behavior) = REQUIRED]; +// A Label is additional information that can be added to an entity. +message Label { + option (google.api.resource) = { + type: "admanager.googleapis.com/Label" + pattern: "networks/{network_code}/labels/{label}" + plural: "labels" + singular: "label" + }; - // Required. The EnvironmentType of the AdUnit - EnvironmentTypeEnum.EnvironmentType environment_type = 2 - [(google.api.field_behavior) = REQUIRED]; - - // The companions for this ad unit size. Companions are only valid if the - // environment is - // [VIDEO_PLAYER][google.ads.admanager.v1.EnvironmentTypeEnum.EnvironmentType]. - repeated Size companions = 3; + // Identifier. The resource name of the `Label`. + // Format: `networks/{network_code}/labels/{label_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; } diff --git a/google/ads/admanager/v1/line_item_enums.proto b/google/ads/admanager/v1/line_item_enums.proto deleted file mode 100644 index 81e2f888c..000000000 --- a/google/ads/admanager/v1/line_item_enums.proto +++ /dev/null @@ -1,241 +0,0 @@ -// Copyright 2023 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.ads.admanager.v1; - -option csharp_namespace = "Google.Ads.AdManager.V1"; -option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; -option java_multiple_files = true; -option java_outer_classname = "LineItemEnumsProto"; -option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\AdManager\\V1"; - -// Wrapper message for -// [LineItemCostType][google.ads.admanager.v1.LineItemCostTypeEnum.LineItemCostType]. -message LineItemCostTypeEnum { - // Describes the LineItem actions that are billable. - enum LineItemCostType { - // Not specified value. - LINE_ITEM_COST_TYPE_UNSPECIFIED = 0; - - // Cost per action. The line item - // [type][google.ads.admanager.v1.LineItem.line_item_type] must be one of: - // - // * [LineItemTypeEnum.LineItemType.SPONSORSHIP][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.SPONSORSHIP] - // * [LineItemTypeEnum.LineItemType.STANDARD][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.STANDARD] - // * [LineItemTypeEnum.LineItemType.BULK][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.BULK] - // * [LineItemTypeEnum.LineItemType.NETWORK][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.NETWORK] - CPA = 1; - - // Cost per click. The line item - // [type][google.ads.admanager.v1.LineItem.line_item_type] must be one of: - // - // * [LineItemTypeEnum.LineItemType.SPONSORSHIP][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.SPONSORSHIP] - // * [LineItemTypeEnum.LineItemType.STANDARD][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.STANDARD] - // * [LineItemTypeEnum.LineItemType.BULK][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.BULK] - // * [LineItemTypeEnum.LineItemType.NETWORK][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.NETWORK] - // * [LineItemTypeEnum.LineItemType.PRICE_PRIORITY][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.PRICE_PRIORITY] - // * [LineItemTypeEnum.LineItemType.HOUSE][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.HOUSE] - CPC = 2; - - // Cost per day. The line item - // [type][google.ads.admanager.v1.LineItem.line_item_type] must be one of: - // - // * [LineItemTypeEnum.LineItemType.SPONSORSHIP][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.SPONSORSHIP] - // * [LineItemTypeEnum.LineItemType.NETWORK][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.NETWORK] - CPD = 3; - - // Cost per mille (thousand) impressions. The line item - // [type][google.ads.admanager.v1.LineItem.line_item_type] must be one of: - // - // * [LineItemTypeEnum.LineItemType.SPONSORSHIP][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.SPONSORSHIP] - // * [LineItemTypeEnum.LineItemType.STANDARD][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.STANDARD] - // * [LineItemTypeEnum.LineItemType.BULK][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.BULK] - // * [LineItemTypeEnum.LineItemType.NETWORK][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.NETWORK] - // * [LineItemTypeEnum.LineItemType.PRICE_PRIORITY][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.PRICE_PRIORITY] - // * [LineItemTypeEnum.LineItemType.HOUSE][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.HOUSE] - CPM = 4; - - // Cost per mille (thousand) Active View viewable impressions. The line item - // [type][google.ads.admanager.v1.LineItem.line_item_type] must be one of: - // - // * [LineItemTypeEnum.LineItemType.STANDARD][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.STANDARD] - VCPM = 5; - - // Cost per millie (thousand) in-target impressions. The line item - // [type][google.ads.admanager.v1.LineItem.line_item_type] must be one of: - // - // * [LineItemTypeEnum.LineItemType.STANDARD][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.STANDARD] - CPM_IN_TARGET = 6; - - // Cost for the entire flight of the deal. The line item - // [type][google.ads.admanager.v1.LineItem.line_item_type] must be must be - // one of: - // - // * [LineItemTypeEnum.LineItemType.SPONSORSHIP][google.ads.admanager.v1.LineItemTypeEnum.LineItemType.SPONSORSHIP] - CPF = 7; - } -} - -// Wrapper message for -// [CreativeRotationType][google.ads.admanager.v1.CreativeRotationTypeEnum.CreativeRotationType]. -message CreativeRotationTypeEnum { - // The strategy to use for displaying multiple - // [creatives][google.ads.admanager.v1.Creative] that are associated with a - // line item. - enum CreativeRotationType { - // Not specified value - CREATIVE_ROTATION_TYPE_UNSPECIFIED = 0; - - // Creatives are displayed approximately the same number of times over the - // duration of the line item. - EVENLY = 1; - - // Creatives are served approximately proportionally to their performance. - OPTIMIZED = 2; - - // Creatives are served approximately proportionally to their weights, set - // on the `LineItemCreativeAssociation`. - WEIGHTED = 3; - - // Creatives are served exactly in sequential order, aka Storyboarding. Set - // on the `LineItemCreativeAssociation`. - SEQUENTIAL = 4; - } -} - -// Wrapper message for -// [DeliveryRateType][google.ads.admanager.v1.DeliveryRateTypeEnum.DeliveryRateType]. -message DeliveryRateTypeEnum { - // Possible delivery rates for a line item. It dictates the manner in which - // the line item is served. - enum DeliveryRateType { - // Not specified value - DELIVERY_RATE_TYPE_UNSPECIFIED = 0; - - // Line items are served as evenly as possible across the number of days - // specified in a line item's [duration][LineItem.duration]. - EVENLY = 1; - - // Line items are served more aggressively in the beginning of the flight - // date. - FRONTLOADED = 2; - - // The booked impressions may delivered well before the - // [end_time][google.ads.admanager.v1.LineItem.end_time]. Other - // lower-priority or lower-value line items will be stopped from delivering - // until the line item meets the number of impressions or clicks it is - // booked for. - AS_FAST_AS_POSSIBLE = 3; - } -} - -// Wrapper message for -// [LineItemDiscountType][google.ads.admanager.v1.LineItemDiscountTypeEnum.LineItemDiscountType]. -message LineItemDiscountTypeEnum { - // Describes the possible discount types on the cost of booking a line item. - enum LineItemDiscountType { - // No value specified - LINE_ITEM_DISCOUNT_TYPE_UNSPECIFIED = 0; - - // An absolute value will be discounted from the line item's cost. - ABSOLUTE_VALUE = 1; - - // A percentage of the cost will be discounted for booking the line item. - PERCENTAGE = 2; - } -} - -// Wrapper message for -// [LineItemType][google.ads.admanager.v1.LineItemTypeEnum.LineItemType]. -message LineItemTypeEnum { - // Indicates the priority of a LineItem, determined by the way in which - // impressions are reserved to be served for it. - enum LineItemType { - // Not specified value. - LINE_ITEM_TYPE_UNSPECIFIED = 0; - - // The type of LineItem for which a percentage of all the impressions that - // are being sold are reserved. - SPONSORSHIP = 12; - - // The type of LineItem for which a fixed quantity of impressions or - // clicks are reserved. - STANDARD = 13; - - // The type of LineItem most commonly used to fill a site's unsold - // inventory if not contractually obligated to deliver a requested number - // of impressions. Uses daily percentage of unsold impressions or clicks. - NETWORK = 9; - - // The type of LineItem for which a fixed quantity of impressions or - // clicks will be delivered at a priority lower than the STANDARD type. - BULK = 4; - - // The type of LineItem most commonly used to fill a site's unsold - // inventory if not contractually obligated to deliver a requested number - // of impressions. Uses fixed quantity percentage of unsold impressions or - // clicks. - PRICE_PRIORITY = 11; - - // The type of LineItem typically used for ads that promote products and - // services chosen by the publisher. - HOUSE = 7; - - // Represents a legacy LineItem that has been migrated from the DFP - // system. - LEGACY_DFP = 8; - - // The type of LineItem used for ads that track ads being served - // externally of Ad Manager. - CLICK_TRACKING = 6; - - // A LineItem using dynamic allocation backed by AdSense. - ADSENSE = 2; - - // A LineItem using dynamic allocation backed by the Google Ad Exchange. - AD_EXCHANGE = 3; - - // Represents a non-monetizable video LineItem that targets one or more - // bumper positions, which are short house video messages used by - // publishers to separate content from ad breaks. - BUMPER = 5; - - // A LineItem using dynamic allocation backed by AdMob. - ADMOB = 1; - - // The type of LineItem for which there are no impressions reserved, and - // will serve for a second price bid. - PREFERRED_DEAL = 10; - } -} - -// Wrapper message for -// [ReservationStatus][google.ads.admanager.v1.ReservationStatusEnum.ReservationStatus]. -message ReservationStatusEnum { - // Defines the different reservation statuses of a line item. - enum ReservationStatus { - // No value specified - RESERVATION_STATUS_UNSPECIFIED = 0; - - // Indicates that inventory has been reserved for the line item. - RESERVED = 1; - - // Indicates that inventory has not been reserved for the line item. - UNRESERVED = 2; - } -} diff --git a/google/ads/admanager/v1/line_item_service.proto b/google/ads/admanager/v1/line_item_service.proto deleted file mode 100644 index 2191e77e2..000000000 --- a/google/ads/admanager/v1/line_item_service.proto +++ /dev/null @@ -1,338 +0,0 @@ -// Copyright 2023 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.ads.admanager.v1; - -import "google/ads/admanager/v1/computed_status_enum.proto"; -import "google/ads/admanager/v1/creative_placeholder.proto"; -import "google/ads/admanager/v1/environment_type_enum.proto"; -import "google/ads/admanager/v1/goal.proto"; -import "google/ads/admanager/v1/line_item_enums.proto"; -import "google/api/annotations.proto"; -import "google/api/client.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/protobuf/timestamp.proto"; -import "google/type/money.proto"; - -option csharp_namespace = "Google.Ads.AdManager.V1"; -option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; -option java_multiple_files = true; -option java_outer_classname = "LineItemServiceProto"; -option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\AdManager\\V1"; - -// Provides methods for handling LineItem objects. -service LineItemService { - option (google.api.default_host) = "admanager.googleapis.com"; - - // API to retrieve a LineItem object. - rpc GetLineItem(GetLineItemRequest) returns (LineItem) { - option (google.api.http) = { - get: "/v1/{name=networks/*/orders/*/lineItems/*}" - }; - option (google.api.method_signature) = "name"; - } - - // API to retrieve a list of LineItem objects. - rpc ListLineItems(ListLineItemsRequest) returns (ListLineItemsResponse) { - option (google.api.http) = { - get: "/v1/{parent=networks/*/orders/*}/lineItems" - }; - option (google.api.method_signature) = "parent"; - } -} - -// The LineItem resource. -message LineItem { - option (google.api.resource) = { - type: "admanager.googleapis.com/LineItem" - pattern: "networks/{network_code}/orders/{order}/lineItems/{line_item}" - plural: "lineItems" - singular: "lineItem" - }; - - // Identifier. The resource name of the LineItem. - // Format: - // `networks/{network_code}/orders/{order_id}/lineItems/{line_item_id}` - string name = 1 [(google.api.field_behavior) = IDENTIFIER]; - - // Optional. Display name of the LineItem. This attribute has a maximum length - // of 255 characters. - string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; - - // Output only. The archival status of the LineItem. - bool archived = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Optional. This attribute is only applicable for certain - // [line item types][LineItemType] and acts as an "FYI" or note, which does - // not impact ad-serving or other backend systems. - // - // For [SPONSORSHIP][LineItemType.SPONSORSHIP] line items, this represents - // the minimum quantity, which is a lifetime impression volume goal for - // reporting purposes. - // - // For [STANDARD][LineItemType.STANDARD] line items, this represents the - // contracted quantity, which is the number of units specified in the contract - // that the advertiser has bought for this line item. This attribute is only - // available if you have this feature enabled on your network. - int64 contracted_units_bought = 18 [(google.api.field_behavior) = OPTIONAL]; - - // Required. The amount of money to spend per impression or click. - google.type.Money cost_per_unit = 15 [(google.api.field_behavior) = REQUIRED]; - - // Required. The method used for billing this line item. - LineItemCostTypeEnum.LineItemCostType cost_type = 19 - [(google.api.field_behavior) = REQUIRED]; - - // Output only. The instant at which the LineItem was created. This attribute - // may be null for line items created before this feature was introduced. - google.protobuf.Timestamp create_time = 12 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The instant at which the LineItem was last updated - google.protobuf.Timestamp update_time = 31 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. The strategy used for displaying multiple - // [creatives][google.ads.admanager.v1.Creative] that are associated with the - // line item. - CreativeRotationTypeEnum.CreativeRotationType creative_rotation_type = 22 - [(google.api.field_behavior) = REQUIRED]; - - // Non-empty default. The strategy for delivering ads over the duration of the - // line item. Defaults to [EVENLY][DeliveryRateType.EVENLY] or - // [FRONTLOADED][DeliveryRatetype.FRONTLOADED] depending on the network's - // configuration. - DeliveryRateTypeEnum.DeliveryRateType delivery_rate_type = 23 - [(google.api.field_behavior) = NON_EMPTY_DEFAULT]; - - // Optional. The number here is either a percentage or an absolute value - // depending on the - // [discount_type][google.ads.admanager.v1.LineItem.discount_type]. If it is - // [PERCENTAGE][LineItemDiscountType.PERCENTAGE], then only non-fractional - // values are supported. - double discount = 13 [(google.api.field_behavior) = OPTIONAL]; - - // Non-empty default. The type of discount applied to the line item. Defaults - // to [PERCENTAGE][LineItemDiscountType.PERCENTAGE]. - LineItemDiscountTypeEnum.LineItemDiscountType discount_type = 24 - [(google.api.field_behavior) = NON_EMPTY_DEFAULT]; - - // Non-empty default. The environment that the line item is targeting. The - // default value is [BROWSER][EnvironmentType.BROWSER]. If this value is - // [VIDEO_PLAYER][EnvironmentType.VIDEO_PLAYER], then this line item can only - // target [AdUnits][google.ads.admanager.v1.AdUnit] that have `AdUnitSizes` - // whose `environment_type` is also `VIDEO_PLAYER`. - EnvironmentTypeEnum.EnvironmentType environment_type = 25 - [(google.api.field_behavior) = NON_EMPTY_DEFAULT]; - - // Optional. Identifier for the LineItem that is meaningful to the publisher. - // This attribute has a maximum length of 255 characters. - string external_id = 5 [(google.api.field_behavior) = OPTIONAL]; - - // Required. Time at which the LineItem will begin serving. This attribute - // must be in the future when creating a LineItem. - google.protobuf.Timestamp start_time = 6 - [(google.api.field_behavior) = REQUIRED]; - - // Optional. Time at which the LineItem will stop serving. This attribute is - // ignored when - // [unlimited_end_time][google.ads.admanager.v1.LineItem.unlimited_end_time] - // is `true`. If specified, it must be after - // [start_time][google.ads.admanager.v1.LineItem.start_time]. This end time - // does not include - // [auto_extension_days][google.ads.admanager.v1.LineItem.auto_extension_days]. - google.protobuf.Timestamp end_time = 7 - [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Number of days to allow a LineItem to deliver past its - // [end_time][google.ads.admanager.v1.LineItem.end_time]. A maximum of 7 days - // is allowed. This feature is only available for Ad Manager 360 accounts. - int32 auto_extension_days = 8 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Whether the LineItem has an - // [end_time][google.ads.admanager.v1.LineItem.end_time]. This attribute can - // be set to `true` for only LineItems with - // [line_item_type][google.ads.admanager.v1.LineItem.line_item_type] - // [SPONSORSHIP][LineItemType.SPONSORSHIP], [NETWORK][LineItemType.NETWORK], - // [PRICE_PRIORITY][LineItemType.PRICE_PRIORITY] and - // [HOUSE][LineItemType.HOUSE]. - bool unlimited_end_time = 9 [(google.api.field_behavior) = OPTIONAL]; - - // Output only. The application that last modified this line item. - string last_modified_by_app = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. Determines the default priority of the LineItem for delivery. - // More information can be found on the [Ad Manager Help - // Center](https://support.google.com/dfp_premium/answer/177279). - LineItemTypeEnum.LineItemType line_item_type = 10 - [(google.api.field_behavior) = REQUIRED]; - - // Output only. Indicates if a line item is missing any - // [creatives][google.ads.admanager.v1.Creative] for the - // [creative_placeholders][google.ads.admanager.v1.LineItem.creative_placeholders] - // specified. - // - // [Creatives][google.ads.admanager.v1.Creative] can be considered missing for - // several reasons: - // - // * Not enough [creatives][google.ads.admanager.v1.Creative] of a certain - // size have been uploaded, - // as determined by - // [expectedCreativeCount][google.ads.admanager.v1.CreativePlaceholder.expected_creative_count]. - // For example a line item specifies 750x350, 400x200, but only a 750x350 - // was uploaded. Or line item specifies 750x350 with an expected count of 2, - // but only one was uploaded. - // * The [appliedLabels][Creative.applied_labels] of an associated - // [Creative][google.ads.admanager.v1.Creative] - // do not match the - // [effectiveAppliedLabels][CreativePlaceholder.effective_applied_labels] of - // the line item. For example if a line item specifies 750x350 with a foo - // applied label, but a 750x350 creative without an applied label was - // uploaded. - bool missing_creatives = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Optional. Provides any additional notes that may annotate LineItem. This - // field has a maximum length of 65,535 characters. - string notes = 20 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Priority of the LineItem for delivery. Valid values range from 1 - // to 16. This field can only be changed by certain networks, otherwise a - // `PERMISSION_DENIED` error will occur. - // - // The following list shows the default, minimum, and maximum priority values - // for each [LineItemType][LineItemType]: formatted as `LineItemType`: default - // priority (minimum priority, maximum priority): - // - // * `SPONSORSHIP`: 4 (2,5) - // * `STANDARD`: 8 (6,10) - // * `NETWORK`: 12 (11, 14) - // * `BULK`: 12 (11, 14) - // * `PRICE_PRIORITY`: 12 (11, 14) - // * `HOUSE`: 16 (15, 16) - // * `CLICK_TRACKING`: 16 (1, 16) - // * `AD_EXCHANGE`: 12 (1, 16) - // * `ADSENSE`: 12 (1, 16) - // * `BUMPER`: 16 (15, 16) - int64 priority = 11 [(google.api.field_behavior) = OPTIONAL]; - - // Output only. Describes whether or not inventory has been reserved for the - // line item. - ReservationStatusEnum.ReservationStatus reservation_status = 26 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Optional. The web property code used for dynamic allocation line items. - // This web property is only required with line item types - // [AD_EXCHANGE][LineItemType.AD_EXCHANGE] and - // [ADSENSE][LineItemType.ADSENSE]. - string web_property_code = 21 [(google.api.field_behavior) = OPTIONAL]; - - // Required. Details about the creatives that are expected to serve through - // this LineItem. - repeated CreativePlaceholder creative_placeholders = 27 - [(google.api.field_behavior) = REQUIRED]; - - // Output only. The status of the LineItem. - ComputedStatusEnum.ComputedStatus status = 28 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. The primary goal that this LineItem is associated with, which is - // used in its pacing and budgeting. - Goal primary_goal = 29 [(google.api.field_behavior) = REQUIRED]; - - // Optional. The impression limit for the LineItem. This field is meaningful - // only if the - // [LineItem.line_item_type][google.ads.admanager.v1.LineItem.line_item_type] - // is [LineItemType.SPONSORSHIP][] and - // [LineItem.cost_type][google.ads.admanager.v1.LineItem.cost_type] is - // [CostType.CPM][]. - Goal impression_limit = 30 [(google.api.field_behavior) = OPTIONAL]; -} - -// Request object for GetLineItem method. -message GetLineItemRequest { - // Required. The resource name of the LineItem. - // Format: - // `networks/{network_code}/orders/{order_id}/lineItems/{line_item_id}` - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "admanager.googleapis.com/LineItem" - } - ]; -} - -// Request object for ListLineItems method. -message ListLineItemsRequest { - // Required. The parent, which owns this collection of LineItems. - // Format: networks/{network_code}/orders/{order_id} - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { type: "admanager.googleapis.com/Order" } - ]; - - // Optional. The maximum number of LineItems to return. The service may return - // fewer than this value. If unspecified, at most 50 line items will be - // returned. The maximum value is 1000; values above 1000 will be coerced to - // 1000. - int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. A page token, received from a previous `ListLineItems` call. - // Provide this to retrieve the subsequent page. - // - // When paginating, all other parameters provided to `ListLineItems` must - // match the call that provided the page token. - string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Expression to filter the response. - // See syntax details at - // https://developers.google.com/ad-manager/api/beta/filters - string filter = 4 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Expression to specify sorting order. - // See syntax details at - // https://developers.google.com/ad-manager/api/beta/filters#order - string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Number of individual resources to skip while paginating. - int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; -} - -// Response object for ListLineItemsRequest containing matching LineItem -// resources. -message ListLineItemsResponse { - // The LineItem from the specified network. - repeated LineItem line_items = 1; - - // A token, which can be sent as `page_token` to retrieve the next page. - // If this field is omitted, there are no subsequent pages. - string next_page_token = 2; - - // Total number of LineItems. - // If a filter was included in the request, this reflects the total number - // after the filtering is applied. - // - // `total_size` will not be calculated in the response unless it has been - // included in a response field mask. The response field mask can be provided - // to the method by using the URL parameter `$fields` or `fields`, or by using - // the HTTP/gRPC header `X-Goog-FieldMask`. - // - // For more information, see - // https://developers.google.com/ad-manager/api/beta/field-masks - int32 total_size = 3; -} diff --git a/google/ads/admanager/v1/network_messages.proto b/google/ads/admanager/v1/network_messages.proto new file mode 100644 index 000000000..8468264ee --- /dev/null +++ b/google/ads/admanager/v1/network_messages.proto @@ -0,0 +1,79 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "NetworkMessagesProto"; +option java_package = "com.google.ads.admanager.v1"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; + +// The Network resource. +message Network { + option (google.api.resource) = { + type: "admanager.googleapis.com/Network" + pattern: "networks/{network_code}" + plural: "networks" + singular: "network" + }; + + // Identifier. The resource name of the Network. + // Format: networks/{network_code} + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. Display name for Network. + string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Network Code. + string network_code = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Property code. + string property_code = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time zone associated with the delivery of orders and + // reporting. + string time_zone = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Primary currency code, in ISO-4217 format. + string currency_code = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Currency codes that can be used as an alternative to the primary + // currency code for trafficking Line Items. + repeated string secondary_currency_codes = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Top most [Ad Unit](google.ads.admanager.v1.AdUnit) to which + // descendant Ad Units can be added. + // Format: networks/{network_code}/adUnit/{ad_unit_id} + string effective_root_ad_unit = 8 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/AdUnit" + } + ]; + + // Output only. Whether this is a test network. + bool test_network = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Network ID. + int64 network_id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/admanager/v1/network_service.proto b/google/ads/admanager/v1/network_service.proto index ef5868841..afc526a96 100644 --- a/google/ads/admanager/v1/network_service.proto +++ b/google/ads/admanager/v1/network_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 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.ads.admanager.v1; +import "google/ads/admanager/v1/network_messages.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -26,8 +27,8 @@ option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;adma option java_multiple_files = true; option java_outer_classname = "NetworkServiceProto"; option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; // Provides methods for handling Network objects. service NetworkService { @@ -40,57 +41,13 @@ service NetworkService { }; option (google.api.method_signature) = "name"; } -} - -// The Network resource. -message Network { - option (google.api.resource) = { - type: "admanager.googleapis.com/Network" - pattern: "networks/{network_code}" - plural: "networks" - singular: "network" - }; - - // Identifier. The resource name of the Network. - // Format: networks/{network_code} - string name = 1 [(google.api.field_behavior) = IDENTIFIER]; - - // Optional. Display name for Network. - string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; - - // Output only. Network Code. - string network_code = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. Property code. - string property_code = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Time zone associated with the delivery of orders and - // reporting. - string time_zone = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Primary currency code, in ISO-4217 format. - string currency_code = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Optional. Currency codes that can be used as an alternative to the primary - // currency code for trafficking Line Items. - repeated string secondary_currency_codes = 7 - [(google.api.field_behavior) = OPTIONAL]; - - // Output only. Top most [Ad Unit](google.ads.admanager.v1.AdUnit) to which - // descendant Ad Units can be added. - // Format: networks/{network_code}/adUnit/{ad_unit_id} - string effective_root_ad_unit = 8 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "admanager.googleapis.com/AdUnit" - } - ]; - - // Output only. Whether this is a test network. - bool test_network = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Network ID. - int64 network_id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + // API to retrieve all the networks the current user has access to. + rpc ListNetworks(ListNetworksRequest) returns (ListNetworksResponse) { + option (google.api.http) = { + get: "/v1/networks" + }; + } } // Request to get Network @@ -104,3 +61,12 @@ message GetNetworkRequest { } ]; } + +// Request object for `ListNetworks` method. +message ListNetworksRequest {} + +// Response object for `ListNetworks` method. +message ListNetworksResponse { + // The `Network`s a user has access to. + repeated Network networks = 1; +} diff --git a/google/ads/admanager/v1/order_enums.proto b/google/ads/admanager/v1/order_enums.proto new file mode 100644 index 000000000..fe86328c9 --- /dev/null +++ b/google/ads/admanager/v1/order_enums.proto @@ -0,0 +1,59 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "OrderEnumsProto"; +option java_package = "com.google.ads.admanager.v1"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; + +// Wrapper message for +// [OrderStatus][google.ads.admanager.v1.OrderStatusEnum.OrderStatus]. +message OrderStatusEnum { + // The status of an Order. + enum OrderStatus { + // Default value. This value is unused. + ORDER_STATUS_UNSPECIFIED = 0; + + // Indicates that the Order has just been created but no approval has been + // requested yet. + DRAFT = 2; + + // Indicates that a request for approval for the Order has been made. + PENDING_APPROVAL = 3; + + // Indicates that the Order has been approved and is ready to serve. + APPROVED = 4; + + // Indicates that the Order has been disapproved and is not eligible to + // serve. + DISAPPROVED = 5; + + // This is a legacy state. Paused status should be checked on LineItems + // within the order. + PAUSED = 6; + + // Indicates that the Order has been canceled and cannot serve. + CANCELED = 7; + + // Indicates that the Order has been deleted. + DELETED = 8; + } +} diff --git a/google/ads/admanager/v1/order_messages.proto b/google/ads/admanager/v1/order_messages.proto new file mode 100644 index 000000000..7a4df9d3d --- /dev/null +++ b/google/ads/admanager/v1/order_messages.proto @@ -0,0 +1,209 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/ads/admanager/v1/applied_label.proto"; +import "google/ads/admanager/v1/custom_field_value.proto"; +import "google/ads/admanager/v1/order_enums.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "OrderMessagesProto"; +option java_package = "com.google.ads.admanager.v1"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; + +// The `Order` resource. +message Order { + option (google.api.resource) = { + type: "admanager.googleapis.com/Order" + pattern: "networks/{network_code}/orders/{order}" + plural: "orders" + singular: "order" + }; + + // Identifier. The resource name of the `Order`. + // Format: `networks/{network_code}/orders/{order_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. Order ID. + int64 order_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The display name of the Order. This value has a maximum length + // of 255 characters. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Specifies whether or not the Order is a programmatic order. + bool programmatic = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The resource name of the User responsible for trafficking the + // Order. Format: "networks/{network_code}/users/{user_id}" + string trafficker = 23 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "admanager.googleapis.com/User" } + ]; + + // Optional. The resource names of Contacts from the advertiser of this Order. + // Format: "networks/{network_code}/contacts/{contact_id}" + repeated string advertiser_contacts = 5 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Contact" + } + ]; + + // Required. The resource name of the Company, which is of type + // Company.Type.ADVERTISER, to which this order belongs. Format: + // "networks/{network_code}/companies/{company_id}" + string advertiser = 6 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Company" + } + ]; + + // Optional. The resource names of Contacts from the advertising Agency of + // this Order. Format: "networks/{network_code}/contacts/{contact_id}" + repeated string agency_contacts = 7 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Contact" + } + ]; + + // Optional. The resource name of the Company, which is of type + // Company.Type.AGENCY, with which this order is associated. Format: + // "networks/{network_code}/companies/{company_id}" + string agency = 8 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Company" + } + ]; + + // Optional. The resource names of Teams directly applied to this Order. + // Format: "networks/{network_code}/teams/{team_id}" + repeated string applied_teams = 9 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { type: "admanager.googleapis.com/Team" } + ]; + + // Output only. The resource names of Teams applied to this Order including + // inherited values. Format: "networks/{network_code}/teams/{team_id}" + repeated string effective_teams = 28 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "admanager.googleapis.com/Team" } + ]; + + // Output only. The resource name of the User who created the Order on behalf + // of the advertiser. This value is assigned by Google. Format: + // "networks/{network_code}/users/{user_id}" + string creator = 10 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "admanager.googleapis.com/User" } + ]; + + // Output only. The ISO 4217 3-letter currency code for the currency used by + // the Order. This value is the network's currency code. + string currency_code = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The instant at which the Order and its associated line items + // are eligible to begin serving. This attribute is derived from the line item + // of the order that has the earliest LineItem.start_time. + google.protobuf.Timestamp start_time = 19 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The instant at which the Order and its associated line items + // stop being served. This attribute is derived from the line item of the + // order that has the latest LineItem.end_time. + google.protobuf.Timestamp end_time = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Indicates whether or not this Order has an end time. + bool unlimited_end_time = 45 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. An arbitrary ID to associate to the Order, which can be used as a + // key to an external system. + int64 external_order_id = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The archival status of the Order. + bool archived = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The application which modified this order. This attribute is + // assigned by Google. + string last_modified_by_app = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The instant this Order was last modified. + google.protobuf.Timestamp update_time = 16 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Provides any additional notes that may annotate the Order. This + // attribute has a maximum length of 65,535 characters. + string notes = 17 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The purchase order number for the Order. This value has a maximum + // length of 63 characters. + string po_number = 18 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The status of the Order. + OrderStatusEnum.OrderStatus status = 20 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The resource name of the User responsible for the sales of the + // Order. Format: "networks/{network_code}/users/{user_id}" + string salesperson = 21 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { type: "admanager.googleapis.com/User" } + ]; + + // Optional. Unordered list. The resource names of the secondary salespeople + // associated with the order. Format: + // "networks/{network_code}/users/{user_id}" + repeated string secondary_salespeople = 22 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = UNORDERED_LIST, + (google.api.resource_reference) = { type: "admanager.googleapis.com/User" } + ]; + + // Optional. Unordered list. The resource names of the secondary traffickers + // associated with the order. Format: + // "networks/{network_code}/users/{user_id}" + repeated string secondary_traffickers = 24 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = UNORDERED_LIST, + (google.api.resource_reference) = { type: "admanager.googleapis.com/User" } + ]; + + // Optional. The set of labels applied directly to this order. + repeated AppliedLabel applied_labels = 25 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Contains the set of labels applied directly to the order as + // well as those inherited from the company that owns the order. If a label + // has been negated, only the negated label is returned. This field is + // assigned by Google. + repeated AppliedLabel effective_applied_labels = 26 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The set of custom field values to this order. + repeated CustomFieldValue custom_field_values = 38 + [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/ads/admanager/v1/order_service.proto b/google/ads/admanager/v1/order_service.proto index c35534b98..455017423 100644 --- a/google/ads/admanager/v1/order_service.proto +++ b/google/ads/admanager/v1/order_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,20 +16,19 @@ syntax = "proto3"; package google.ads.admanager.v1; -import "google/ads/admanager/v1/applied_label.proto"; +import "google/ads/admanager/v1/order_messages.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Ads.AdManager.V1"; option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; option java_multiple_files = true; option java_outer_classname = "OrderServiceProto"; option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; // Provides methods for handling `Order` objects. service OrderService { @@ -57,201 +56,6 @@ service OrderService { } } -// The `Order` resource. -message Order { - option (google.api.resource) = { - type: "admanager.googleapis.com/Order" - pattern: "networks/{network_code}/orders/{order}" - plural: "orders" - singular: "order" - }; - - // The status of an Order. - enum Status { - // Default value. This value is unused. - STATUS_UNSPECIFIED = 0; - - // Indicates that the Order has just been created but no approval has been - // requested yet. - DRAFT = 2; - - // Indicates that a request for approval for the Order has been made. - PENDING_APPROVAL = 3; - - // Indicates that the Order has been approved and is ready to serve. - APPROVED = 4; - - // Indicates that the Order has been disapproved and is not eligible to - // serve. - DISAPPROVED = 5; - - // This is a legacy state. Paused status should be checked on LineItems - // within the order. - PAUSED = 6; - - // Indicates that the Order has been canceled and cannot serve. - CANCELED = 7; - - // Indicates that the Order has been deleted. - DELETED = 8; - } - - // Identifier. The resource name of the `Order`. - // Format: `networks/{network_code}/orders/{order_id}` - string name = 1 [(google.api.field_behavior) = IDENTIFIER]; - - // Output only. Order ID. - int64 order_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. The display name of the Order. This value is required to create - // an order and has a maximum length of 255 characters. - string display_name = 2 [(google.api.field_behavior) = REQUIRED]; - - // Optional. Specifies whether or not the Order is a programmatic order. - bool programmatic = 3 [(google.api.field_behavior) = OPTIONAL]; - - // Required. The resource name of the User responsible for trafficking the - // Order. Format: "networks/{network_code}/users/{user_id}" - string trafficker = 23 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { type: "admanager.googleapis.com/User" } - ]; - - // Optional. The resource names of Contacts from the advertiser of this Order. - // Format: "networks/{network_code}/contacts/{contact_id}" - repeated string advertiser_contacts = 5 [ - (google.api.field_behavior) = OPTIONAL, - (google.api.resource_reference) = { - type: "admanager.googleapis.com/Contact" - } - ]; - - // Required. The resource name of the Company, which is of type - // Company.Type.ADVERTISER, to which this order belongs. This attribute is - // required. Format: "networks/{network_code}/companies/{company_id}" - string advertiser = 6 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "admanager.googleapis.com/Company" - } - ]; - - // Optional. The resource names of Contacts from the advertising Agency of - // this Order. Format: "networks/{network_code}/contacts/{contact_id}" - repeated string agency_contacts = 7 [ - (google.api.field_behavior) = OPTIONAL, - (google.api.resource_reference) = { - type: "admanager.googleapis.com/Contact" - } - ]; - - // Optional. The resource name of the Company, which is of type - // Company.Type.AGENCY, with which this order is associated. Format: - // "networks/{network_code}/companies/{company_id}" - string agency = 8 [ - (google.api.field_behavior) = OPTIONAL, - (google.api.resource_reference) = { - type: "admanager.googleapis.com/Company" - } - ]; - - // Optional. The resource names of Teams directly applied to this Order. - // Format: "networks/{network_code}/teams/{team_id}" - repeated string applied_teams = 9 [ - (google.api.field_behavior) = OPTIONAL, - (google.api.resource_reference) = { type: "admanager.googleapis.com/Team" } - ]; - - // Output only. The resource names of Teams applied to this Order including - // inherited values. Format: "networks/{network_code}/teams/{team_id}" - repeated string effective_teams = 28 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { type: "admanager.googleapis.com/Team" } - ]; - - // Output only. The resource name of the User who created the Order on behalf - // of the advertiser. This value is assigned by Google. Format: - // "networks/{network_code}/users/{user_id}" - string creator = 10 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { type: "admanager.googleapis.com/User" } - ]; - - // Output only. The ISO 4217 3-letter currency code for the currency used by - // the Order. This value is the network's currency code. - string currency_code = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The instant at which the Order and its associated line items - // are eligible to begin serving. This attribute is derived from the line item - // of the order that has the earliest LineItem.start_time. - google.protobuf.Timestamp start_time = 19 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The instant at which the Order and its associated line items - // stop being served. This attribute is derived from the line item of the - // order that has the latest LineItem.end_time. - google.protobuf.Timestamp end_time = 12 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Optional. An arbitrary ID to associate to the Order, which can be used as a - // key to an external system. - int64 external_order_id = 13 [(google.api.field_behavior) = OPTIONAL]; - - // Output only. The archival status of the Order. - bool archived = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The application which modified this order. This attribute is - // assigned by Google. - string last_modified_by_app = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The instant this Order was last modified. - google.protobuf.Timestamp update_time = 16 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Optional. Provides any additional notes that may annotate the Order. This - // attribute has a maximum length of 65,535 characters. - string notes = 17 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The purchase order number for the Order. This value has a maximum - // length of 63 characters. - string po_number = 18 [(google.api.field_behavior) = OPTIONAL]; - - // Output only. The status of the Order. - Status status = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Optional. The resource name of the User responsible for the sales of the - // Order. Format: "networks/{network_code}/users/{user_id}" - string salesperson = 21 [ - (google.api.field_behavior) = OPTIONAL, - (google.api.resource_reference) = { type: "admanager.googleapis.com/User" } - ]; - - // Optional. The resource names of the secondary salespeople associated with - // the order. Format: "networks/{network_code}/users/{user_id}" - repeated string secondary_salespeople = 22 [ - (google.api.field_behavior) = OPTIONAL, - (google.api.resource_reference) = { type: "admanager.googleapis.com/User" } - ]; - - // Optional. The resource names of the secondary traffickers associated with - // the order. Format: "networks/{network_code}/users/{user_id}" - repeated string secondary_traffickers = 24 [ - (google.api.field_behavior) = OPTIONAL, - (google.api.resource_reference) = { type: "admanager.googleapis.com/User" } - ]; - - // Optional. The set of labels applied directly to this order. - repeated AppliedLabel applied_labels = 25 - [(google.api.field_behavior) = OPTIONAL]; - - // Output only. Contains the set of labels applied directly to the order as - // well as those inherited from the company that owns the order. If a label - // has been negated, only the negated label is returned. This field is - // assigned by Google. - repeated AppliedLabel effective_applied_labels = 26 - [(google.api.field_behavior) = OUTPUT_ONLY]; -} - // Request object for `GetOrder` method. message GetOrderRequest { // Required. The resource name of the Order. diff --git a/google/ads/admanager/v1/placement_enums.proto b/google/ads/admanager/v1/placement_enums.proto index 371d5adb0..5619d71aa 100644 --- a/google/ads/admanager/v1/placement_enums.proto +++ b/google/ads/admanager/v1/placement_enums.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;adma option java_multiple_files = true; option java_outer_classname = "PlacementEnumsProto"; option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; // Wrapper message for // [PlacementStatus][google.ads.admanager.v1.PlacementStatusEnum.PlacementStatus] diff --git a/google/ads/admanager/v1/placement_messages.proto b/google/ads/admanager/v1/placement_messages.proto new file mode 100644 index 000000000..e02b8cce5 --- /dev/null +++ b/google/ads/admanager/v1/placement_messages.proto @@ -0,0 +1,77 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/ads/admanager/v1/placement_enums.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "PlacementMessagesProto"; +option java_package = "com.google.ads.admanager.v1"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; + +// The `Placement` resource. +message Placement { + option (google.api.resource) = { + type: "admanager.googleapis.com/Placement" + pattern: "networks/{network_code}/placements/{placement}" + plural: "placements" + singular: "placement" + }; + + // Identifier. The resource name of the `Placement`. + // Format: `networks/{network_code}/placements/{placement_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. `Placement` ID. + int64 placement_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The display name of the placement. Its maximum length is 255 + // characters. + string display_name = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. A description of the Placement. This value is optional and its + // maximum length is 65,535 characters. + string description = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. A string used to uniquely identify the Placement for purposes + // of serving the ad. This attribute is read-only and is assigned by Google + // when a placement is created. + string placement_code = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status of the Placement. This attribute is read-only. + PlacementStatusEnum.PlacementStatus status = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The resource names of AdUnits that constitute the Placement. + // Format: "networks/{network_code}/adUnits/{ad_unit_id}" + repeated string targeted_ad_units = 7 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/AdUnit" + } + ]; + + // Output only. The instant this Placement was last modified. + google.protobuf.Timestamp update_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/admanager/v1/placement_service.proto b/google/ads/admanager/v1/placement_service.proto index 5e984020d..2bc2b5f98 100644 --- a/google/ads/admanager/v1/placement_service.proto +++ b/google/ads/admanager/v1/placement_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,20 +16,19 @@ syntax = "proto3"; package google.ads.admanager.v1; -import "google/ads/admanager/v1/placement_enums.proto"; +import "google/ads/admanager/v1/placement_messages.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Ads.AdManager.V1"; option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; option java_multiple_files = true; option java_outer_classname = "PlacementServiceProto"; option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; // Provides methods for handling `Placement` objects. service PlacementService { @@ -52,53 +51,6 @@ service PlacementService { } } -// The `Placement` resource. -message Placement { - option (google.api.resource) = { - type: "admanager.googleapis.com/Placement" - pattern: "networks/{network_code}/placements/{placement}" - plural: "placements" - singular: "placement" - }; - - // Identifier. The resource name of the `Placement`. - // Format: `networks/{network_code}/placements/{placement_id}` - string name = 1 [(google.api.field_behavior) = IDENTIFIER]; - - // Output only. `Placement` ID. - int64 placement_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. The display name of the placement. Its maximum length is 255 - // characters. - string display_name = 3 [(google.api.field_behavior) = REQUIRED]; - - // Optional. A description of the Placement. This value is optional and its - // maximum length is 65,535 characters. - string description = 4 [(google.api.field_behavior) = OPTIONAL]; - - // Output only. A string used to uniquely identify the Placement for purposes - // of serving the ad. This attribute is read-only and is assigned by Google - // when a placement is created. - string placement_code = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The status of the Placement. This attribute is read-only. - PlacementStatusEnum.PlacementStatus status = 6 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Optional. The resource names of AdUnits that constitute the Placement. - // Format: "networks/{network_code}/adUnits/{ad_unit_id}" - repeated string targeted_ad_units = 7 [ - (google.api.field_behavior) = OPTIONAL, - (google.api.resource_reference) = { - type: "admanager.googleapis.com/AdUnit" - } - ]; - - // Output only. The instant this Placement was last modified. - google.protobuf.Timestamp update_time = 9 - [(google.api.field_behavior) = OUTPUT_ONLY]; -} - // Request object for `GetPlacement` method. message GetPlacementRequest { // Required. The resource name of the Placement. diff --git a/google/ads/admanager/v1/report_service.proto b/google/ads/admanager/v1/report_service.proto index 2e05d9b10..6a0cde018 100644 --- a/google/ads/admanager/v1/report_service.proto +++ b/google/ads/admanager/v1/report_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 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,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/field_mask.proto"; +import "google/protobuf/timestamp.proto"; +import "google/type/date.proto"; +import "google/type/dayofweek.proto"; +import "google/type/timeofday.proto"; option csharp_namespace = "Google.Ads.AdManager.V1"; option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; @@ -28,32 +33,80 @@ option java_multiple_files = true; option java_outer_classname = "ReportServiceProto"; option java_package = "com.google.ads.admanager.v1"; option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; -// Provides methods for interacting with Reports. +// Provides methods for interacting with reports. service ReportService { option (google.api.default_host) = "admanager.googleapis.com"; - // Initiates the execution and export of a report asynchronously. Users can + // API to retrieve a `Report` object. + rpc GetReport(GetReportRequest) returns (Report) { + option (google.api.http) = { + get: "/v1/{name=networks/*/reports/*}" + }; + option (google.api.method_signature) = "name"; + } + + // API to retrieve a list of `Report` objects. + rpc ListReports(ListReportsRequest) returns (ListReportsResponse) { + option (google.api.http) = { + get: "/v1/{parent=networks/*}/reports" + }; + option (google.api.method_signature) = "parent"; + } + + // API to create a `Report` object. + rpc CreateReport(CreateReportRequest) returns (Report) { + option (google.api.http) = { + post: "/v1/{parent=networks/*}/reports" + body: "report" + }; + option (google.api.method_signature) = "parent,report"; + } + + // API to update a `Report` object. + rpc UpdateReport(UpdateReportRequest) returns (Report) { + option (google.api.http) = { + patch: "/v1/{report.name=networks/*/reports/*}" + body: "report" + }; + option (google.api.method_signature) = "report,update_mask"; + } + + // Initiates the execution of an existing report asynchronously. Users can // get the report by polling this operation via - // OperationsService.GetOperation. - // Intervals of at least 2 seconds are recommended, with an exponential + // `OperationsService.GetOperation`. + // Poll every 5 seconds initially, with an exponential // backoff. Once a report is complete, the operation will contain a - // ExportSavedReportResponse in its response field. - rpc ExportSavedReport(ExportSavedReportRequest) - returns (google.longrunning.Operation) { + // `RunReportResponse` in its response field containing a report_result that + // can be passed to the `FetchReportResultRows` method to retrieve the report + // data. + rpc RunReport(RunReportRequest) returns (google.longrunning.Operation) { option (google.api.http) = { - post: "/v1/{report=networks/*/reports/*}:exportSavedReport" + post: "/v1/{name=networks/*/reports/*}:run" body: "*" }; - option (google.api.method_signature) = "report"; + option (google.api.method_signature) = "name"; option (google.longrunning.operation_info) = { - response_type: "ExportSavedReportResponse" - metadata_type: "ExportSavedReportMetadata" + response_type: "RunReportResponse" + metadata_type: "RunReportMetadata" }; } + + // Returns the result rows from a completed report. + // The caller must have previously called `RunReport` and waited for that + // operation to complete. The rows will be returned according to the order + // specified by the `sorts` member of the report definition. + rpc FetchReportResultRows(FetchReportResultRowsRequest) + returns (FetchReportResultRowsResponse) { + option (google.api.http) = { + get: "/v1/{name=networks/*/reports/*/results/*}:fetchRows" + }; + option (google.api.method_signature) = "name"; + } } -// The Report resource. +// The `Report` resource. message Report { option (google.api.resource) = { type: "admanager.googleapis.com/Report" @@ -62,74 +115,3412 @@ message Report { singular: "report" }; - // Identifier. The resource name of the Report. - // Report resource name have the form: - // `networks/{network_code}/reports/{report_id}` - string name = 1 [(google.api.field_behavior) = IDENTIFIER]; -} + // Represents a single value in a report. + message Value { + // A list of integer values. + message IntList { + // The values + repeated int64 values = 1; + } -// Request proto for the configuration of a report run. -message ExportSavedReportRequest { - // Supported file formats. - enum Format { - // Default value. This value is unused. - FORMAT_UNSPECIFIED = 0; + // A list of string values. + message StringList { + // The values + repeated string values = 1; + } - // Comma separated values meant to be used by automated machine - // processing. - // - // Unlike other formats, the output is not localized and there is no - // totals row by default. - CSV_DUMP = 2; + // The value of the field, depends on the field's data format. + oneof value { + // For integer values. + int64 int_value = 1; + + // For double values. + double double_value = 2; + + // For string values. + string string_value = 3; - // The report file is generated as an Office Open XML spreadsheet designed - // for Excel 2007+. - XLSX = 5; + // For boolean values. + bool bool_value = 4; - // The report is generated as XML. - XML = 6; + // For lists of integer values. + IntList int_list_value = 6; + + // For lists of string values. + StringList string_list_value = 7; + + // For bytes values. + bytes bytes_value = 8; + } } - // The name of a particular saved report resource. - // - // A report will be run based on the specification of this saved report. - // It must have the format of - // "networks/{network_code}/reports/{report_id}" - string report = 1 [(google.api.resource_reference) = { - type: "admanager.googleapis.com/Report" - }]; + // Represents a sorting in a report. + message Sort { + // Required. A field (dimension or metric) to sort by. + Field field = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The sort order. If true the sort will be descending. + bool descending = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Use to sort on a specific slice of data. + optional Slice slice = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. When using time period columns, use this to sort on a specific + // column. + optional int32 time_period_index = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Use to specify which metric value type to sort on. Defaults to + // PRIMARY. + optional MetricValueType metric_value_type = 5 + [(google.api.field_behavior) = OPTIONAL]; + } + + // A table containing report data including dimension and metric values. + message DataTable { + // A row of report data. + message Row { + // The order of the dimension values is the same as the order of the + // dimensions specified in the request. + repeated Value dimension_values = 1; + + // + // The length of the metric_value_groups + // field will be equal to the length of the date_ranges field in the + // fetch response. The metric_value_groups field is + // ordered such that each index corresponds to the date_range at the same + // index. For example, given date_ranges [x, y], metric_value_groups will + // have a length of two. The first entry in metric_value_groups represents + // the metrics for date x and the second entry in metric_value_groups + // represents the metrics for date y. + repeated MetricValueGroup metric_value_groups = 2; + } - // Required. The export format requested. - Format format = 2 [(google.api.field_behavior) = REQUIRED]; + // Contains all metric values requested for a single date range and set of + // column dimension values (returned in the columns field of the response). + // The order of the metrics in each field corresponds to the order of the + // metrics specified in the request. + message MetricValueGroup { + // Data for the PRIMARY MetricValueType. + repeated Value primary_values = 1; - // Whether or not to include the report properties (e.g. network, user, date - // generated...) in the generated report. - bool include_report_properties = 3; + // Data for the PRIMARY_PERCENT_OF_TOTAL MetricValueType. + repeated Value primary_percent_of_total_values = 2; - // Whether or not to include the IDs if there are any (e.g. advertiser ID, - // order ID...) present in the report. - bool include_ids = 4; + // Data for the COMPARISON MetricValueType. + repeated Value comparison_values = 3; - // Whether or not to include a row containing metric totals. - bool include_totals_row = 5; + // Data for the COMPARISON_PERCENT_OF_TOTAL MetricValueType. + repeated Value comparison_percent_of_total_values = 4; - // The file name of report download. The file extension is determined by - // export_format and gzip_compressed. + // Data for the ABSOLUTE_CHANGE MetricValueType. + repeated Value absolute_change_values = 5; + + // Data for the RELATIVE_CHANGE MetricValueType. + repeated Value relative_change_values = 6; + + // If true, the flag's conditions are met. If false, the flag's + // conditions are not met. flag_values has the same length as + // flags and index i of flag_values represents the flag at index i + // of flags. + repeated bool flag_values = 7; + } + } + + // A dimension or a metric in a report. + message Field { + // Either a dimension or a metric. + oneof field { + // The dimension this field represents. + Dimension dimension = 1; + + // The metric this field represents. + Metric metric = 2; + } + } + + // Use to specify a slice of data. // - // Defaults to "DFP Report" if not specified. - string file_name = 6; -} + // For example, in a report, to focus on just data from the US, specify + // `COUNTRY_NAME` for dimension and value: `"United States"`. + message Slice { + // Required. The dimension to slice on. + Dimension dimension = 1 [(google.api.field_behavior) = REQUIRED]; -// The message stored in the google.longrunning.Operation.metadata field. -// Contains metadata regarding this execution. -message ExportSavedReportMetadata { - // The result generated in this report run. - int64 result_id = 1; -} + // Required. The value of the dimension. + Value value = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // A filter over one or more fields. + message Filter { + // A filter on a specific field. + message FieldFilter { + // Required. The field to filter on. + Field field = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The operation of this filter. + Operation operation = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Values to filter to. + repeated Value values = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Use to filter on a specific slice of data. + optional Slice slice = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. When using time period columns, use this to filter on a + // specific column. + optional int32 time_period_index = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Use to specify which metric value type to filter on. Defaults + // to PRIMARY. + optional MetricValueType metric_value_type = 6 + [(google.api.field_behavior) = OPTIONAL]; + } + + // A list of filters. + message FilterList { + // Required. A list of filters. + repeated Filter filters = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Supported filter operations. + enum Operation { + // For scalar operands, checks if the operand is in the set of provided + // filter values. + // + // For list operands, checks if any element in the operand is in the set + // of provided filter values. + // + // Default value. + IN = 0; + + // For scalar operands, checks that the operand is not in the set of + // provided filter values. + // + // For list operands, checks that none of the elements in the operand + // is in the set of provided filter values. + NOT_IN = 1; + + // For scalar string operands, checks if the operand contains any of the + // provided filter substrings. + // + // For string list operands, checks if any string in the operand contains + // any of the provided filter substrings. + CONTAINS = 2; + + // For scalar string operands, checks that the operand contains none of + // the provided filter substrings. + // + // For string list operands, checks that none of the strings in the + // operand contain none of the provided filter substrings. + NOT_CONTAINS = 3; + + // Operand is less than the provided filter value. + LESS_THAN = 4; + + // Operand is less than or equal to provided filter value. + LESS_THAN_EQUALS = 5; + + // Operand is greater than provided filter value. + GREATER_THAN = 6; + + // Operand is greater than or equal to provided filter value. + GREATER_THAN_EQUALS = 7; + + // Operand is between provided filter values. + BETWEEN = 8; + + // Operand matches against a regex or set of regexes (one must match) + MATCHES = 9; + + // Operand negative matches against a regex or set of regexes (none must + // match) + NOT_MATCHES = 10; + } + + // The type determines how the underlying filters are combined. + oneof type { + // A filter on a single field. + FieldFilter field_filter = 1; + + // A filter whose result is negated. + Filter not_filter = 2; + + // A list of filters whose results are AND-ed. + FilterList and_filter = 3; + + // A list of filters whose results are OR-ed. + FilterList or_filter = 4; + } + } + + // A flag for a report. Flags are used show if certain thresholds are met. + // Result rows that match the filter will have the corresponding + // [MetricValueGroup.flagValues][MetricValueGroup] index set to true. + // For more information about flags see: + // https://support.google.com/admanager/answer/15079975 + message Flag { + // Required. Filters to apply for the flag. + repeated Filter filters = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Name of the flag. + // The flag names RED, YELLOW, GREEN, BLUE, PURPLE, and GREY correspond to + // the colored flags that appear in the UI. The UI will not display flags + // with other names, but they are available for use by API clients. + string name = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // A date range for a report. + message DateRange { + // A date range between two fixed dates (inclusive of end date). + message FixedDateRange { + // Required. The start date of this date range. + google.type.Date start_date = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The end date (inclusive) of this date range. + google.type.Date end_date = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Options for relative date ranges. + enum RelativeDateRange { + // Default value. This value is unused. + RELATIVE_DATE_RANGE_UNSPECIFIED = 0; + + // The date the report is run. + TODAY = 1; + + // The date a day before the date that the report is run. + YESTERDAY = 2; + + // The full week in which this report is run. Could include dates in + // the future. + THIS_WEEK = 3; + + // From the beginning of the calendar week (Monday to Sunday) in which the + // up to and including the day the report is run. + THIS_WEEK_TO_DATE = 29; + + // The full month in which this report is run. Could include dates in + // the future. + THIS_MONTH = 4; + + // From the beginning of the calendar month in which the report is run, to + // up to and including the day the report is run. + THIS_MONTH_TO_DATE = 26; + + // The full quarter in which this report is run. Could include dates + // in the future. + THIS_QUARTER = 5; + + // From the beginning of the calendar quarter in which the report is run, + // up to and including the day the report is run. + THIS_QUARTER_TO_DATE = 27; + + // The full year in which this report is run. Could include dates in + // the future. + THIS_YEAR = 6; + + // From the beginning of the calendar year in which the report is run, to + // up to and including the day the report is run. + THIS_YEAR_TO_DATE = 28; + + // The entire previous calendar week, Monday to Sunday (inclusive), + // preceding the calendar week the report is run. + LAST_WEEK = 7; + + // The entire previous calendar month preceding the calendar month the + // report is run. + LAST_MONTH = 8; + + // The entire previous calendar quarter preceding the calendar quarter the + // report is run. + LAST_QUARTER = 9; + + // The entire previous calendar year preceding the calendar year the + // report is run. + LAST_YEAR = 10; + + // The 7 days preceding the day the report is run. + LAST_7_DAYS = 11; + + // The 30 days preceding the day the report is run. + LAST_30_DAYS = 12; + + // The 60 days preceding the day the report is run. + LAST_60_DAYS = 13; + + // The 90 days preceding the day the report is run. + LAST_90_DAYS = 14; + + // The 180 days preceding the day the report is run. + LAST_180_DAYS = 15; + + // The 360 days preceding the day the report is run. + LAST_360_DAYS = 16; + + // The 365 days preceding the day the report is run. + LAST_365_DAYS = 17; + + // The entire previous 3 calendar months preceding the calendar month the + // report is run. + LAST_3_MONTHS = 18; + + // The entire previous 6 calendar months preceding the calendar month the + // report is run. + LAST_6_MONTHS = 19; + + // The entire previous 6 calendar months preceding the calendar month the + // report is run. + LAST_12_MONTHS = 20; + + // From 3 years before the report is run, to the day before the report is + // run, inclusive. + ALL_AVAILABLE = 21; + + // Only valid when used in the comparison_date_range field. The complete + // period preceding the date period provided in date_range. + // + // In the case where date_range is a FixedDateRange of N days, this will + // be a period of N days where the end date is the date preceding the + // start date of the date_range. + // + // In the case where date_range is a RelativeDateRange, this will be a + // period of the same time frame preceding the date_range. In the case + // where the date_range does not capture the full period because a report + // is run in the middle of that period, this will still be the full + // preceding period. For example, if date_range is THIS_WEEK, but the + // report is run on a Wednesday, THIS_WEEK will be Monday - Wednesday, but + // PREVIOUS_PERIOD will be Monday - Sunday. + PREVIOUS_PERIOD = 22; + + // Only valid when used in the comparison_date_range field. The period + // starting 1 year prior to the date period provided in date_range. + // + // In the case where date_range is a FixedDateRange, this will be a date + // range starting 1 year prior to the date_range start date and ending 1 + // year prior to the date_range end date. + // + // In the case where date_range is a RelativeDateRange, this will be a + // period of the same time frame exactly 1 year prior to the date_range. + // In the case where the date_range does not capture the full period + // because a report is run in the middle of that period, this will still + // be the full period 1 year prior. For example, if date range is + // THIS_WEEK, but the report is run on a Wednesday, THIS_WEEK will be + // Monday - Wednesday, but SAME_PERIOD_PREVIOUS_YEAR will be Monday - + // Sunday. + SAME_PERIOD_PREVIOUS_YEAR = 24; + } + + // Either a fixed or relative date range. + oneof date_range_type { + // A fixed date range. + FixedDateRange fixed = 1; + + // A relative date range. + RelativeDateRange relative = 2; + } + } + + // Valid time period columns. + enum TimePeriodColumn { + // Default value. Report will have no time period column. + TIME_PERIOD_COLUMN_UNSPECIFIED = 0; + + // A column for each date in the report. + TIME_PERIOD_COLUMN_DATE = 1; + + // A column for each week in the report. + TIME_PERIOD_COLUMN_WEEK = 2; + + // A column for each month in the report. + TIME_PERIOD_COLUMN_MONTH = 3; + + // A column for each quarter in the report. + TIME_PERIOD_COLUMN_QUARTER = 4; + } + + // Reporting dimensions. + enum Dimension { + // Default value. This value is unused. + DIMENSION_UNSPECIFIED = 0; + + // The domain name of the advertiser. + ADVERTISER_DOMAIN_NAME = 242; + + // The ID used in an external system for advertiser identification + ADVERTISER_EXTERNAL_ID = 228; + + // The ID of an advertiser company assigned to an order + ADVERTISER_ID = 131; + + // Labels applied to the advertiser + // can be used for either competitive exclusion or ad exclusion + ADVERTISER_LABELS = 230; + + // Label ids applied to the advertiser + // can be used for either competitive exclusion or ad exclusion + ADVERTISER_LABEL_IDS = 229; + + // The name of an advertiser company assigned to an order + ADVERTISER_NAME = 132; + + // The name of the contact associated with an advertiser company + ADVERTISER_PRIMARY_CONTACT = 227; + + // Shows an ENUM value describing whether a given piece of publisher + // inventory was above (ATF) or below the fold (BTF) of a page. + AD_LOCATION = 390; + + // Shows a localized string describing whether a given piece of publisher + // inventory was above (ATF) or below the fold (BTF) of a page. + AD_LOCATION_NAME = 391; + + // The code of the ad unit where the ad was requested. + AD_UNIT_CODE = 64; + + // The code of the first level ad unit of the ad unit where the ad was + // requested. + AD_UNIT_CODE_LEVEL_1 = 65; + + // The code of the tenth level ad unit of the ad unit where the ad was + // requested. + AD_UNIT_CODE_LEVEL_10 = 74; + + // The code of the eleventh level ad unit of the ad unit where the ad was + // requested. + AD_UNIT_CODE_LEVEL_11 = 75; + + // The code of the twelfth level ad unit of the ad unit where the ad was + // requested. + AD_UNIT_CODE_LEVEL_12 = 76; + + // The code of the thirteenth level ad unit of the ad unit where the ad was + // requested. + AD_UNIT_CODE_LEVEL_13 = 77; + + // The code of the fourteenth level ad unit of the ad unit where the ad was + // requested. + AD_UNIT_CODE_LEVEL_14 = 78; + + // The code of the fifteenth level ad unit of the ad unit where the ad was + // requested. + AD_UNIT_CODE_LEVEL_15 = 79; + + // The code of the sixteenth level ad unit of the ad unit where the ad was + // requested. + AD_UNIT_CODE_LEVEL_16 = 80; + + // The code of the second level ad unit of the ad unit where the ad was + // requested. + AD_UNIT_CODE_LEVEL_2 = 66; + + // The code of the third level ad unit of the ad unit where the ad was + // requested. + AD_UNIT_CODE_LEVEL_3 = 67; + + // The code of the fourth level ad unit of the ad unit where the ad was + // requested. + AD_UNIT_CODE_LEVEL_4 = 68; + + // The code of the fifth level ad unit of the ad unit where the ad was + // requested. + AD_UNIT_CODE_LEVEL_5 = 69; + + // The code of the sixth level ad unit of the ad unit where the ad was + // requested. + AD_UNIT_CODE_LEVEL_6 = 70; + + // The code of the seventh level ad unit of the ad unit where the ad was + // requested. + AD_UNIT_CODE_LEVEL_7 = 71; + + // The code of the eighth level ad unit of the ad unit where the ad was + // requested. + AD_UNIT_CODE_LEVEL_8 = 72; + + // The code of the ninth level ad unit of the ad unit where the ad was + // requested. + AD_UNIT_CODE_LEVEL_9 = 73; + + // The depth of the ad unit's hierarchy + AD_UNIT_DEPTH = 101; + + // The ID of the ad unit where the ad was requested. + AD_UNIT_ID = 25; + + // The full hierarchy of ad unit IDs where the ad was requested, from + // root to leaf, excluding the root ad unit ID. + AD_UNIT_ID_ALL_LEVEL = 27; + + // The first level ad unit ID of the ad unit where the ad was requested. + AD_UNIT_ID_LEVEL_1 = 30; + + // The tenth level ad unit ID of the ad unit where the ad was requested. + AD_UNIT_ID_LEVEL_10 = 48; + + // The eleventh level ad unit ID of the ad unit where the ad was requested. + AD_UNIT_ID_LEVEL_11 = 50; + + // The twelfth level ad unit ID of the ad unit where the ad was requested. + AD_UNIT_ID_LEVEL_12 = 52; + + // The thirteenth level ad unit ID of the ad unit where the ad was + // requested. + AD_UNIT_ID_LEVEL_13 = 54; + + // The fourteenth level ad unit ID of the ad unit where the ad was + // requested. + AD_UNIT_ID_LEVEL_14 = 56; + + // The fifteenth level ad unit ID of the ad unit where the ad was requested. + AD_UNIT_ID_LEVEL_15 = 58; + + // The sixteenth level ad unit ID of the ad unit where the ad was requested. + AD_UNIT_ID_LEVEL_16 = 60; + + // The second level ad unit ID of the ad unit where the ad was requested. + AD_UNIT_ID_LEVEL_2 = 32; + + // The third level ad unit ID of the ad unit where the ad was requested. + AD_UNIT_ID_LEVEL_3 = 34; + + // The fourth level ad unit ID of the ad unit where the ad was requested. + AD_UNIT_ID_LEVEL_4 = 36; + + // The fifth level ad unit ID of the ad unit where the ad was requested. + AD_UNIT_ID_LEVEL_5 = 38; + + // The sixth level ad unit ID of the ad unit where the ad was requested. + AD_UNIT_ID_LEVEL_6 = 40; + + // The seventh level ad unit ID of the ad unit where the ad was requested. + AD_UNIT_ID_LEVEL_7 = 42; + + // The eighth level ad unit ID of the ad unit where the ad was requested. + AD_UNIT_ID_LEVEL_8 = 44; + + // The ninth level ad unit ID of the ad unit where the ad was requested. + AD_UNIT_ID_LEVEL_9 = 46; + + // The top-level ad unit ID of the ad unit where the ad was requested. + AD_UNIT_ID_TOP_LEVEL = 142; + + // The name of the ad unit where the ad was requested. + AD_UNIT_NAME = 26; + + // The full hierarchy of ad unit names where the ad was requested, from + // root to leaf, excluding the root ad unit name. + AD_UNIT_NAME_ALL_LEVEL = 29; + + // The first level ad unit name of the ad unit where the ad was requested. + AD_UNIT_NAME_LEVEL_1 = 31; + + // The tenth level ad unit name of the ad unit where the ad was requested. + AD_UNIT_NAME_LEVEL_10 = 49; + + // The eleventh level ad unit name of the ad unit where the ad was + // requested. + AD_UNIT_NAME_LEVEL_11 = 51; + + // The twelfth level ad unit name of the ad unit where the ad was requested. + AD_UNIT_NAME_LEVEL_12 = 53; + + // The thirteenth level ad unit name of the ad unit where the ad was + // requested. + AD_UNIT_NAME_LEVEL_13 = 55; + + // The fourteenth level ad unit name of the ad unit where the ad was + // requested. + AD_UNIT_NAME_LEVEL_14 = 57; + + // The fifteenth level ad unit name of the ad unit where the ad was + // requested. + AD_UNIT_NAME_LEVEL_15 = 59; + + // The sixteenth level ad unit name of the ad unit where the ad was + // requested. + AD_UNIT_NAME_LEVEL_16 = 61; + + // The second level ad unit name of the ad unit where the ad was requested. + AD_UNIT_NAME_LEVEL_2 = 33; + + // The third level ad unit name of the ad unit where the ad was requested. + AD_UNIT_NAME_LEVEL_3 = 35; + + // The fourth level ad unit name of the ad unit where the ad was requested. + AD_UNIT_NAME_LEVEL_4 = 37; + + // The fifth level ad unit name of the ad unit where the ad was requested. + AD_UNIT_NAME_LEVEL_5 = 39; + + // The sixth level ad unit name of the ad unit where the ad was requested. + AD_UNIT_NAME_LEVEL_6 = 41; + + // The seventh level ad unit name of the ad unit where the ad was requested. + AD_UNIT_NAME_LEVEL_7 = 43; + + // The eighth level ad unit name of the ad unit where the ad was requested. + AD_UNIT_NAME_LEVEL_8 = 45; + + // The ninth level ad unit name of the ad unit where the ad was requested. + AD_UNIT_NAME_LEVEL_9 = 47; + + // The top-level ad unit name of the ad unit where the ad was requested. + AD_UNIT_NAME_TOP_LEVEL = 143; + + // The reward amount of the ad unit where the ad was requested. + AD_UNIT_REWARD_AMOUNT = 63; + + // The reward type of the ad unit where the ad was requested. + AD_UNIT_REWARD_TYPE = 62; + + // The status of the ad unit + AD_UNIT_STATUS = 206; + + // The name of the status of the ad unit + AD_UNIT_STATUS_NAME = 207; + + // The app version. + APP_VERSION = 392; + + // The ID used in an external system for advertiser identification + BACKFILL_ADVERTISER_EXTERNAL_ID = 349; + + // The ID of an advertiser company assigned to a backfill order + BACKFILL_ADVERTISER_ID = 346; + + // Labels applied to the advertiser + // can be used for either competitive exclusion or ad exclusion + BACKFILL_ADVERTISER_LABELS = 351; + + // Label ids applied to the advertiser + // can be used for either competitive exclusion or ad exclusion + BACKFILL_ADVERTISER_LABEL_IDS = 350; + + // The name of an advertiser company assigned to a backfill order + BACKFILL_ADVERTISER_NAME = 347; + + // The name of the contact associated with an advertiser company + BACKFILL_ADVERTISER_PRIMARY_CONTACT = 348; + + // Enum value of Backfill creative billing type + BACKFILL_CREATIVE_BILLING_TYPE = 378; + + // Localized string value of Backfill creative billing type + BACKFILL_CREATIVE_BILLING_TYPE_NAME = 379; + + // Represents the click-through URL of a Backfill creative + BACKFILL_CREATIVE_CLICK_THROUGH_URL = 376; + + // The ID of a Backfill creative + BACKFILL_CREATIVE_ID = 370; + + // Backfill creative name + BACKFILL_CREATIVE_NAME = 371; + + // Third party vendor name of a Backfill creative + BACKFILL_CREATIVE_THIRD_PARTY_VENDOR = 377; + + // Enum value of Backfill creative type + BACKFILL_CREATIVE_TYPE = 374; + + // Localized string name of Backfill creative type + BACKFILL_CREATIVE_TYPE_NAME = 375; + + // Whether a Backfill line item is archived. + BACKFILL_LINE_ITEM_ARCHIVED = 278; + + // Backfill line item comanion delivery option ENUM value. + BACKFILL_LINE_ITEM_COMPANION_DELIVERY_OPTION = 258; + + // Localized Backfill line item comanion delivery option name. + BACKFILL_LINE_ITEM_COMPANION_DELIVERY_OPTION_NAME = 259; + + // The computed status of the BackfillLineItem. + BACKFILL_LINE_ITEM_COMPUTED_STATUS = 296; + + // The localized name of the computed status of the BackfillLineItem. + BACKFILL_LINE_ITEM_COMPUTED_STATUS_NAME = 297; + + // The contracted units bought for the Backfill line item. + BACKFILL_LINE_ITEM_CONTRACTED_QUANTITY = 280; + + // The cost per unit of the Backfill line item. + BACKFILL_LINE_ITEM_COST_PER_UNIT = 272; + + // Backfill line item cost type ENUM value. + BACKFILL_LINE_ITEM_COST_TYPE = 264; + + // Localized Backfill line item cost type name. + BACKFILL_LINE_ITEM_COST_TYPE_NAME = 265; + + // Represent the end date of a Backfill creative associated with a Backfill + // line item + BACKFILL_LINE_ITEM_CREATIVE_END_DATE = 381; + + // The creative rotation type of the BackfillLineItem. + BACKFILL_LINE_ITEM_CREATIVE_ROTATION_TYPE = 290; + + // The localized name of the creative rotation type of the BackfillLineItem. + BACKFILL_LINE_ITEM_CREATIVE_ROTATION_TYPE_NAME = 291; + + // Represent the start date of a Backfill creative associated with a + // Backfill line item + BACKFILL_LINE_ITEM_CREATIVE_START_DATE = 380; + + // The 3 letter currency code of the Backfill line item + BACKFILL_LINE_ITEM_CURRENCY_CODE = 288; + + // The progress made for the delivery of the Backfill line item. + BACKFILL_LINE_ITEM_DELIVERY_INDICATOR = 274; + + // The delivery rate type of the BackfillLineItem. + BACKFILL_LINE_ITEM_DELIVERY_RATE_TYPE = 292; + + // The localized name of the delivery rate type of the BackfillLineItem. + BACKFILL_LINE_ITEM_DELIVERY_RATE_TYPE_NAME = 293; + + // The discount of the BackfillLineItem in whole units in the + // BackfillLineItem's currency code, or if unspecified the Network's + // currency code. + BACKFILL_LINE_ITEM_DISCOUNT_ABSOLUTE = 294; + + // The discount of the BackfillLineItem in percentage. + BACKFILL_LINE_ITEM_DISCOUNT_PERCENTAGE = 295; + + // The end date of the Backfill line item. + BACKFILL_LINE_ITEM_END_DATE = 267; + + // The end date and time of the Backfill line item. + BACKFILL_LINE_ITEM_END_DATE_TIME = 269; + + // The ENUM value of the environment a Backfill line item is targeting. + BACKFILL_LINE_ITEM_ENVIRONMENT_TYPE = 302; + + // The localized name of the environment a Backfill line item is targeting. + BACKFILL_LINE_ITEM_ENVIRONMENT_TYPE_NAME = 257; + + // The deal ID of the Backfill line item. Set for Programmatic Direct + // campaigns. + BACKFILL_LINE_ITEM_EXTERNAL_DEAL_ID = 285; + + // The external ID of the Backfill line item. + BACKFILL_LINE_ITEM_EXTERNAL_ID = 273; + + // The frequency cap of the Backfill line item (descriptive string). + BACKFILL_LINE_ITEM_FREQUENCY_CAP = 303; + + // Backfill line item ID. + BACKFILL_LINE_ITEM_ID = 298; + + // The application that last modified the Backfill line item. + BACKFILL_LINE_ITEM_LAST_MODIFIED_BY_APP = 289; + + // The total number of clicks delivered of the lifetime of the Backfill line + // item. + BACKFILL_LINE_ITEM_LIFETIME_CLICKS = 283; + + // The total number of impressions delivered over the lifetime of the + // Backfill line item. + BACKFILL_LINE_ITEM_LIFETIME_IMPRESSIONS = 282; + + // The total number of viewable impressions delivered over the lifetime of + // the Backfill line item. + BACKFILL_LINE_ITEM_LIFETIME_VIEWABLE_IMPRESSIONS = 284; + + // Whether or not the Backfill line item is Makegood. Makegood refers to + // free inventory offered to buyers to compensate for mistakes or + // under-delivery in the original campaigns. + BACKFILL_LINE_ITEM_MAKEGOOD = 276; + + // Backfill line item name. + BACKFILL_LINE_ITEM_NAME = 299; + + // The cost of booking for the Backfill line item (non-CPD). + BACKFILL_LINE_ITEM_NON_CPD_BOOKED_REVENUE = 286; + + // Whether a Backfill line item is eligible for opitimization. + BACKFILL_LINE_ITEM_OPTIMIZABLE = 277; + + // Goal type ENUM value of the primary goal of the Backfill line item. + BACKFILL_LINE_ITEM_PRIMARY_GOAL_TYPE = 262; + + // Localized goal type name of the primary goal of the Backfill line item. + BACKFILL_LINE_ITEM_PRIMARY_GOAL_TYPE_NAME = 263; + + // Unit type ENUM value of the primary goal of the Backfill line item. + BACKFILL_LINE_ITEM_PRIMARY_GOAL_UNIT_TYPE = 260; + + // Localized unit type name of the primary goal of the Backfill line item. + BACKFILL_LINE_ITEM_PRIMARY_GOAL_UNIT_TYPE_NAME = 261; + + // The priority of this Backfill line item as a value between 1 and 16. + // In general, a lower priority means more serving priority for the + // Backfill line item. + BACKFILL_LINE_ITEM_PRIORITY = 266; + + // ENUM value describing the state of inventory reservation for the + // BackfillLineItem. + BACKFILL_LINE_ITEM_RESERVATION_STATUS = 306; + + // Localized string describing the state of inventory reservation for the + // BackfillLineItem. + BACKFILL_LINE_ITEM_RESERVATION_STATUS_NAME = 307; + + // The start date of the Backfill line item. + BACKFILL_LINE_ITEM_START_DATE = 268; + + // The start date and time of the Backfill line item. + BACKFILL_LINE_ITEM_START_DATE_TIME = 270; + + // Backfill line item type ENUM value. + BACKFILL_LINE_ITEM_TYPE = 300; + + // Localized Backfill line item type name. + BACKFILL_LINE_ITEM_TYPE_NAME = 301; + + // Whether the Backfill line item end time and end date is set to + // effectively never end. + BACKFILL_LINE_ITEM_UNLIMITED_END = 271; + + // The artificial cost per unit used by the Ad server to help rank + // inventory. + BACKFILL_LINE_ITEM_VALUE_COST_PER_UNIT = 275; + + // The web property code used for dynamic allocation Backfill line items. + BACKFILL_LINE_ITEM_WEB_PROPERTY_CODE = 287; + + // The ID of Backfill creative, includes regular creatives, and master and + // companions in case of creative sets + BACKFILL_MASTER_COMPANION_CREATIVE_ID = 372; + + // Name of Backfill creative, includes regular creatives, and master and + // companions in case of creative sets + BACKFILL_MASTER_COMPANION_CREATIVE_NAME = 373; + + // Backfill order agency. + BACKFILL_ORDER_AGENCY = 313; + + // Backfill order agency ID. + BACKFILL_ORDER_AGENCY_ID = 314; + + // Backfill order booked CPC. + BACKFILL_ORDER_BOOKED_CPC = 315; + + // Backfill order booked CPM. + BACKFILL_ORDER_BOOKED_CPM = 316; -// Message included in the longrunning Operation result.response field when -// the report completes successfully. -message ExportSavedReportResponse { - // The link to the exported file. - string download_url = 1; + // Backfill order delivery status ENUM value. + BACKFILL_ORDER_DELIVERY_STATUS = 340; + + // Backfill order delivery status localized name. + BACKFILL_ORDER_DELIVERY_STATUS_NAME = 341; + + // Backfill order end date. + BACKFILL_ORDER_END_DATE = 317; + + // Backfill order end date and time. + BACKFILL_ORDER_END_DATE_TIME = 319; + + // Backfill order external ID. + BACKFILL_ORDER_EXTERNAL_ID = 320; + + // Backfill order id. + BACKFILL_ORDER_ID = 338; + + // Backfill order labels. + BACKFILL_ORDER_LABELS = 334; + + // Backfill order labels IDs. + BACKFILL_ORDER_LABEL_IDS = 335; + + // Backfill order lifetime clicks. + BACKFILL_ORDER_LIFETIME_CLICKS = 322; + + // Backfill order lifetime impressions. + BACKFILL_ORDER_LIFETIME_IMPRESSIONS = 323; + + // Backfill order name. + BACKFILL_ORDER_NAME = 339; + + // Backfill order PO number. + BACKFILL_ORDER_PO_NUMBER = 324; + + // Whether the Backfill order is programmatic. + BACKFILL_ORDER_PROGRAMMATIC = 321; + + // Backfill order sales person. + BACKFILL_ORDER_SALESPERSON = 325; + + // Backfill order secondary sales people. + BACKFILL_ORDER_SECONDARY_SALESPEOPLE = 329; + + // Backfill order secondary sales people ID. + BACKFILL_ORDER_SECONDARY_SALESPEOPLE_ID = 328; + + // Backfill order secondary traffickers. + BACKFILL_ORDER_SECONDARY_TRAFFICKERS = 331; + + // Backfill order secondary traffickers ID. + BACKFILL_ORDER_SECONDARY_TRAFFICKERS_ID = 330; + + // Backfill order start date. + BACKFILL_ORDER_START_DATE = 332; + + // Backfill order start date and time. + BACKFILL_ORDER_START_DATE_TIME = 333; + + // Backfill order trafficker. + BACKFILL_ORDER_TRAFFICKER = 326; + + // Backfill order trafficker ID. + BACKFILL_ORDER_TRAFFICKER_ID = 327; + + // Whether the Backfill order end time and end date is set to effectively + // never end. + BACKFILL_ORDER_UNLIMITED_END = 318; + + // The ID of the buyer on a backfill programmatic proposal. + BACKFILL_PROGRAMMATIC_BUYER_ID = 336; + + // The name of the buyer on a backfill programmatic proposal. + BACKFILL_PROGRAMMATIC_BUYER_NAME = 337; + + // The amount of information about the Publisher's page sent to the buyer + // who purchased the impressions. + BRANDING_TYPE = 383; + + // The localized version of branding type, the amount of information about + // the Publisher's page sent to the buyer who purchased the impressions. + BRANDING_TYPE_NAME = 384; + + // Browser category. + BROWSER_CATEGORY = 119; + + // Browser category name. + BROWSER_CATEGORY_NAME = 120; + + // The ID of the browser. + BROWSER_ID = 235; + + // The name of the browser. + BROWSER_NAME = 236; + + // Mobile carrier ID. + CARRIER_ID = 369; + + // Name of the mobile carrier. + CARRIER_NAME = 368; + + // The ID of an advertiser, classified by Google, associated with a creative + // transacted + CLASSIFIED_ADVERTISER_ID = 133; + + // The name of an advertiser, classified by Google, associated with a + // creative transacted + CLASSIFIED_ADVERTISER_NAME = 134; + + // ID of the brand, as classified by Google, + CLASSIFIED_BRAND_ID = 243; + + // Name of the brand, as classified by Google, + CLASSIFIED_BRAND_NAME = 244; + + // ID of the video content served. + CONTENT_ID = 246; + + // Name of the video content served. + CONTENT_NAME = 247; + + // The criteria ID of the country in which the ad served. + COUNTRY_ID = 11; + + // The name of the country in which the ad served. + COUNTRY_NAME = 12; + + // Enum value of creative billing type + CREATIVE_BILLING_TYPE = 366; + + // Localized string value of creative billing type + CREATIVE_BILLING_TYPE_NAME = 367; + + // Represents the click-through URL of a creative + CREATIVE_CLICK_THROUGH_URL = 174; + + // The ID of a creative + CREATIVE_ID = 138; + + // Creative name + CREATIVE_NAME = 139; + + // Creative technology ENUM + CREATIVE_TECHNOLOGY = 148; + + // Creative technology locallized name + CREATIVE_TECHNOLOGY_NAME = 149; + + // Third party vendor name of a creative + CREATIVE_THIRD_PARTY_VENDOR = 361; + + // Enum value of creative type + CREATIVE_TYPE = 344; + + // Localized string name of creative type + CREATIVE_TYPE_NAME = 345; + + // Breaks down reporting data by date. + DATE = 3; + + // Breaks down reporting data by day of the week. Monday is 1 and 7 is + // Sunday. + DAY_OF_WEEK = 4; + + // Demand channel. + DEMAND_CHANNEL = 9; + + // Demand channel name. + DEMAND_CHANNEL_NAME = 10; + + // Demand subchannel. + DEMAND_SUBCHANNEL = 22; + + // Demand subchannel name. + DEMAND_SUBCHANNEL_NAME = 23; + + // The device on which an ad was served. + DEVICE = 226; + + // The device category to which an ad is being targeted. + DEVICE_CATEGORY = 15; + + // The name of the category of device (smartphone, feature phone, tablet, or + // desktop) to which an ad is being targeted. + DEVICE_CATEGORY_NAME = 16; + + // The localized name of the device on which an ad was served. + DEVICE_NAME = 225; + + // ID of the yield partner as classified by Google + EXCHANGE_THIRD_PARTY_COMPANY_ID = 185; + + // Name of the yield partner as classified by Google + EXCHANGE_THIRD_PARTY_COMPANY_NAME = 186; + + // The ID of the first look pricing rule. + FIRST_LOOK_PRICING_RULE_ID = 248; + + // The name of the first look pricing rule. + FIRST_LOOK_PRICING_RULE_NAME = 249; + + // Breaks down reporting data by hour in one day. + HOUR = 100; + + // The interaction type of an ad. + INTERACTION_TYPE = 223; + + // The localized name of the interaction type of an ad. + INTERACTION_TYPE_NAME = 224; + + // Inventory format. + // The format of the ad unit (e.g, banner) where the ad was requested. + INVENTORY_FORMAT = 17; + + // Inventory format name. + // The format of the ad unit (e.g, banner) where the ad was requested. + INVENTORY_FORMAT_NAME = 18; + + // Inventory type. + // The kind of web page or device where the ad was requested. + INVENTORY_TYPE = 19; + + // Inventory type name. + // The kind of web page or device where the ad was requested. + INVENTORY_TYPE_NAME = 20; + + // Whether traffic is Adx Direct. + IS_ADX_DIRECT = 382; + + // Whether traffic is First Look. + IS_FIRST_LOOK_DEAL = 401; + + // The Custom Targeting Value ID + KEY_VALUES_ID = 214; + + // The Custom Targeting Value formatted like = + KEY_VALUES_NAME = 215; + + // Whether a Line item is archived. + LINE_ITEM_ARCHIVED = 188; + + // Line item comanion delivery option ENUM value. + LINE_ITEM_COMPANION_DELIVERY_OPTION = 204; + + // Localized line item comanion delivery option name. + LINE_ITEM_COMPANION_DELIVERY_OPTION_NAME = 205; + + // The computed status of the LineItem. + LINE_ITEM_COMPUTED_STATUS = 250; + + // The localized name of the computed status of the LineItem. + LINE_ITEM_COMPUTED_STATUS_NAME = 251; + + // The contracted units bought for the Line item. + LINE_ITEM_CONTRACTED_QUANTITY = 92; + + // The cost per unit of the Line item. + LINE_ITEM_COST_PER_UNIT = 85; + + // Line item cost type ENUM value. + LINE_ITEM_COST_TYPE = 212; + + // Localized line item cost type name. + LINE_ITEM_COST_TYPE_NAME = 213; + + // Represent the end date of a creative associated with line item + LINE_ITEM_CREATIVE_END_DATE = 176; + + // The creative rotation type of the LineItem. + LINE_ITEM_CREATIVE_ROTATION_TYPE = 189; + + // The localized name of the creative rotation type of the LineItem. + LINE_ITEM_CREATIVE_ROTATION_TYPE_NAME = 190; + + // Represent the start date of a creative associated with line item + LINE_ITEM_CREATIVE_START_DATE = 175; + + // The 3 letter currency code of the Line Item + LINE_ITEM_CURRENCY_CODE = 180; + + // The progress made for the delivery of the Line item. + LINE_ITEM_DELIVERY_INDICATOR = 87; + + // The delivery rate type of the LineItem. + LINE_ITEM_DELIVERY_RATE_TYPE = 191; + + // The localized name of the delivery rate type of the LineItem. + LINE_ITEM_DELIVERY_RATE_TYPE_NAME = 192; + + // The discount of the LineItem in whole units in the LineItem's currency + // code, or if unspecified the Network's currency code. + LINE_ITEM_DISCOUNT_ABSOLUTE = 195; + + // The discount of the LineItem in percentage. + LINE_ITEM_DISCOUNT_PERCENTAGE = 196; + + // The end date of the Line item. + LINE_ITEM_END_DATE = 81; + + // The end date and time of the Line item. + LINE_ITEM_END_DATE_TIME = 83; + + // The ENUM value of the environment a LineItem is targeting. + LINE_ITEM_ENVIRONMENT_TYPE = 201; + + // The localized name of the environment a LineItem is targeting. + LINE_ITEM_ENVIRONMENT_TYPE_NAME = 202; + + // The deal ID of the Line item. Set for Programmatic Direct campaigns. + LINE_ITEM_EXTERNAL_DEAL_ID = 97; + + // The external ID of the Line item. + LINE_ITEM_EXTERNAL_ID = 86; + + // The frequency cap of the Line item (descriptive string). + LINE_ITEM_FREQUENCY_CAP = 256; + + // Line item ID. + LINE_ITEM_ID = 1; + + // The application that last modified the Line Item. + LINE_ITEM_LAST_MODIFIED_BY_APP = 181; + + // The total number of clicks delivered of the lifetime of the Line item. + LINE_ITEM_LIFETIME_CLICKS = 95; + + // The total number of impressions delivered over the lifetime of the + // Line item. + LINE_ITEM_LIFETIME_IMPRESSIONS = 94; + + // The total number of viewable impressions delivered over the lifetime of + // the Line item. + LINE_ITEM_LIFETIME_VIEWABLE_IMPRESSIONS = 96; + + // Whether or not the Line item is Makegood. Makegood refers to free + // inventory offered to buyers to compensate for mistakes or under-delivery + // in the original campaigns. + LINE_ITEM_MAKEGOOD = 89; + + // Line item Name. + LINE_ITEM_NAME = 2; + + // The cost of booking for the Line item (non-CPD). + LINE_ITEM_NON_CPD_BOOKED_REVENUE = 98; + + // Whether a Line item is eligible for opitimization. + LINE_ITEM_OPTIMIZABLE = 90; + + // Goal type ENUM value of the primary goal of the line item. + LINE_ITEM_PRIMARY_GOAL_TYPE = 210; + + // Localized goal type name of the primary goal of the line item. + LINE_ITEM_PRIMARY_GOAL_TYPE_NAME = 211; + + // The total number of impressions or clicks that are reserved for a + // line item. For line items of type BULK or PRICE_PRIORITY, this represents + // the number of remaining impressions reserved. If the line item has an + // impression cap goal, this represents the number of impressions or + // conversions that the line item will stop serving at if reached. + LINE_ITEM_PRIMARY_GOAL_UNITS_ABSOLUTE = 93; + + // The percentage of impressions or clicks that are reserved for a + // line item. For line items of type SPONSORSHIP, this represents the + // percentage of available impressions reserved. For line items of type + // NETWORK or HOUSE, this represents the percentage of remaining impressions + // reserved. + LINE_ITEM_PRIMARY_GOAL_UNITS_PERCENTAGE = 396; + + // Unit type ENUM value of the primary goal of the line item. + LINE_ITEM_PRIMARY_GOAL_UNIT_TYPE = 208; + + // Localized unit type name of the primary goal of the line item. + LINE_ITEM_PRIMARY_GOAL_UNIT_TYPE_NAME = 209; + + // The priority of this Line item as a value between 1 and 16. + // In general, a lower priority means more serving priority for the + // Line item. + LINE_ITEM_PRIORITY = 24; + + // ENUM value describing the state of inventory reservation for the + // LineItem. + LINE_ITEM_RESERVATION_STATUS = 304; + + // Localized string describing the state of inventory reservation for the + // LineItem. + LINE_ITEM_RESERVATION_STATUS_NAME = 305; + + // The start date of the Line item. + LINE_ITEM_START_DATE = 82; + + // The start date and time of the Line item. + LINE_ITEM_START_DATE_TIME = 84; + + // Line item type ENUM value. + LINE_ITEM_TYPE = 193; + + // Localized line item type name. + LINE_ITEM_TYPE_NAME = 194; + + // Whether the Line item end time and end date is set to effectively never + // end. + LINE_ITEM_UNLIMITED_END = 187; + + // The artificial cost per unit used by the Ad server to help rank + // inventory. + LINE_ITEM_VALUE_COST_PER_UNIT = 88; + + // The web property code used for dynamic allocation Line Items. + LINE_ITEM_WEB_PROPERTY_CODE = 179; + + // The ID of creative, includes regular creatives, and master and companions + // in case of creative sets + MASTER_COMPANION_CREATIVE_ID = 140; + + // Name of creative, includes regular creatives, and master and companions + // in case of creative sets + MASTER_COMPANION_CREATIVE_NAME = 141; + + // Whether the mobile app is free. + MOBILE_APP_FREE = 128; + + // URL of app icon for the mobile app. + MOBILE_APP_ICON_URL = 129; + + // The ID of the Mobile App. + MOBILE_APP_ID = 123; + + // The name of the mobile app. + MOBILE_APP_NAME = 127; + + // Ownership status of the mobile app. + MOBILE_APP_OWNERSHIP_STATUS = 311; + + // Ownership status of the mobile app. + MOBILE_APP_OWNERSHIP_STATUS_NAME = 312; + + // The App Store of the mobile app. + MOBILE_APP_STORE = 125; + + // The localized name of the mobile app store. + MOBILE_APP_STORE_NAME = 245; + + // Mobile inventory type. + // Identifies whether a mobile ad came from a regular web page, an AMP web + // page, or a mobile app. + // Values match the Inventory type dimension available in the Overview Home + // dashboard. Note: Video takes precedence over any other value, for + // example, if there is an in-stream video impression on a desktop device, + // it will be attributed to in-stream video and not desktop web. + MOBILE_INVENTORY_TYPE = 99; + + // Mobile inventory type name. + // Identifies whether a mobile ad came from a regular web page, an AMP web + // page, or a mobile app. + MOBILE_INVENTORY_TYPE_NAME = 21; + + // SDK version of the mobile device. + MOBILE_SDK_VERSION_NAME = 130; + + // Breaks down reporting data by month and year. + MONTH_YEAR = 6; + + // Native ad format ID. + NATIVE_AD_FORMAT_ID = 255; + + // Native ad format name. + NATIVE_AD_FORMAT_NAME = 254; + + // Native style ID. + NATIVE_STYLE_ID = 253; + + // Native style name. + NATIVE_STYLE_NAME = 252; + + // Operating system category. + OPERATING_SYSTEM_CATEGORY = 117; + + // Operating system category name. + OPERATING_SYSTEM_CATEGORY_NAME = 118; + + // ID of the operating system version. + OPERATING_SYSTEM_VERSION_ID = 238; + + // Details of the operating system, including version. + OPERATING_SYSTEM_VERSION_NAME = 237; + + // Order agency. + ORDER_AGENCY = 150; + + // Order agency ID. + ORDER_AGENCY_ID = 151; + + // Order booked CPC. + ORDER_BOOKED_CPC = 152; + + // Order booked CPM. + ORDER_BOOKED_CPM = 153; + + // Order delivery status ENUM value. + ORDER_DELIVERY_STATUS = 231; + + // Order delivery status localized name. + ORDER_DELIVERY_STATUS_NAME = 239; + + // Order end date. + ORDER_END_DATE = 154; + + // Order end date and time. + ORDER_END_DATE_TIME = 155; + + // Order external ID. + ORDER_EXTERNAL_ID = 156; + + // Order id. + ORDER_ID = 7; + + // Order labels. + ORDER_LABELS = 170; + + // Order labels IDs. + ORDER_LABEL_IDS = 171; + + // Order lifetime clicks. + ORDER_LIFETIME_CLICKS = 158; + + // Order lifetime impressions. + ORDER_LIFETIME_IMPRESSIONS = 159; + + // Order name. + ORDER_NAME = 8; + + // Order PO number. + ORDER_PO_NUMBER = 160; + + // Whether the Order is programmatic. + ORDER_PROGRAMMATIC = 157; + + // Order sales person. + ORDER_SALESPERSON = 161; + + // Order secondary sales people. + ORDER_SECONDARY_SALESPEOPLE = 164; + + // Order secondary sales people ID. + ORDER_SECONDARY_SALESPEOPLE_ID = 165; + + // Order secondary traffickers. + ORDER_SECONDARY_TRAFFICKERS = 166; + + // Order secondary traffickers ID. + ORDER_SECONDARY_TRAFFICKERS_ID = 167; + + // Order start date. + ORDER_START_DATE = 168; + + // Order start date and time. + ORDER_START_DATE_TIME = 169; + + // Order trafficker. + ORDER_TRAFFICKER = 162; + + // Order trafficker ID. + ORDER_TRAFFICKER_ID = 163; + + // Whether the Order end time and end date is set to effectively never + // end. + ORDER_UNLIMITED_END = 203; + + // Placement ID + PLACEMENT_ID = 113; + + // The full list of placement IDs associated with the ad unit. + PLACEMENT_ID_ALL = 144; + + // Placement name + PLACEMENT_NAME = 114; + + // The full list of placement names associated with the ad unit. + PLACEMENT_NAME_ALL = 145; + + // Placement status ENUM value + PLACEMENT_STATUS = 362; + + // The full list of placement status ENUM values associated with the ad + // unit. + PLACEMENT_STATUS_ALL = 363; + + // Localized placement status name. + PLACEMENT_STATUS_NAME = 364; + + // The full list of localized placement status names associated with the ad + // unit. + PLACEMENT_STATUS_NAME_ALL = 365; + + // The ID of the buyer on a programmatic proposal. + PROGRAMMATIC_BUYER_ID = 240; + + // The name of the buyer on a programmatic proposal. + PROGRAMMATIC_BUYER_NAME = 241; + + // Programmatic channel. + // The type of transaction that occurred in Ad Exchange. + PROGRAMMATIC_CHANNEL = 13; + + // Programmatic channel name. + // The type of transaction that occurred in Ad Exchange. + PROGRAMMATIC_CHANNEL_NAME = 14; + + // The size of a rendered creative, It can differ with the creative's size + // if a creative is shown in an ad slot of a different size. + RENDERED_CREATIVE_SIZE = 343; + + // Inventory Requested Ad Sizes dimension + REQUESTED_AD_SIZES = 352; + + // Request type ENUM + REQUEST_TYPE = 146; + + // Request type locallized name + REQUEST_TYPE_NAME = 147; + + // Information about domain or subdomains. + SITE = 387; + + // The ID of the browser, device or other environment into which a line item + // or creative was served. + TARGETING_ID = 232; + + // Information about the browser, device and other environments into which + // a line item or creative was served. + TARGETING_NAME = 233; + + // The way in which advertisers targeted their ads. + TARGETING_TYPE = 385; + + // The localized name of the way in which advertisers targeted their ads. + TARGETING_TYPE_NAME = 386; + + // Inventory Traffic source dimension + TRAFFIC_SOURCE = 388; + + // Inventory Traffic source dimension name + TRAFFIC_SOURCE_NAME = 389; + + // Unified pricing rule ID dimension + UNIFIED_PRICING_RULE_ID = 393; + + // Unified pricing rule name dimension + UNIFIED_PRICING_RULE_NAME = 394; + + // The video placement enum as defined by ADCOM 1.0-202303. + VIDEO_PLCMT = 172; + + // The localized name of the video placement as defined by ADCOM 1.0-202303. + VIDEO_PLCMT_NAME = 173; + + // Breaks down reporting data by week of the year. + WEEK = 5; + + // Name of the company within a yield group + YIELD_GROUP_BUYER_NAME = 184; + + // ID of the group of ad networks or exchanges used for Mediation and Open + // Bidding + YIELD_GROUP_ID = 182; + + // Name of the group of ad networks or exchanges used for Mediation and Open + // Bidding + YIELD_GROUP_NAME = 183; + + // Custom field option ID for Line Item with custom field ID equal to the ID + // in index 0 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_0_OPTION_ID = 10000; + + // Custom field option ID for Line Item with custom field ID equal to the ID + // in index 1 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_1_OPTION_ID = 10001; + + // Custom field option ID for Line Item with custom field ID equal to the ID + // in index 2 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_2_OPTION_ID = 10002; + + // Custom field option ID for Line Item with custom field ID equal to the ID + // in index 3 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_3_OPTION_ID = 10003; + + // Custom field option ID for Line Item with custom field ID equal to the ID + // in index 4 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_4_OPTION_ID = 10004; + + // Custom field option ID for Line Item with custom field ID equal to the ID + // in index 5 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_5_OPTION_ID = 10005; + + // Custom field option ID for Line Item with custom field ID equal to the ID + // in index 6 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_6_OPTION_ID = 10006; + + // Custom field option ID for Line Item with custom field ID equal to the ID + // in index 7 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_7_OPTION_ID = 10007; + + // Custom field option ID for Line Item with custom field ID equal to the ID + // in index 8 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_8_OPTION_ID = 10008; + + // Custom field option ID for Line Item with custom field ID equal to the ID + // in index 9 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_9_OPTION_ID = 10009; + + // Custom field option ID for Line Item with custom field ID equal to the ID + // in index 10 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_10_OPTION_ID = 10010; + + // Custom field option ID for Line Item with custom field ID equal to the ID + // in index 11 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_11_OPTION_ID = 10011; + + // Custom field option ID for Line Item with custom field ID equal to the ID + // in index 12 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_12_OPTION_ID = 10012; + + // Custom field option ID for Line Item with custom field ID equal to the ID + // in index 13 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_13_OPTION_ID = 10013; + + // Custom field option ID for Line Item with custom field ID equal to the ID + // in index 14 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_14_OPTION_ID = 10014; + + // Custom field value for Line Item with custom field ID equal to the ID + // in index 0 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_0_VALUE = 11000; + + // Custom field value for Line Item with custom field ID equal to the ID + // in index 1 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_1_VALUE = 11001; + + // Custom field value for Line Item with custom field ID equal to the ID + // in index 2 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_2_VALUE = 11002; + + // Custom field value for Line Item with custom field ID equal to the ID + // in index 3 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_3_VALUE = 11003; + + // Custom field value for Line Item with custom field ID equal to the ID + // in index 4 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_4_VALUE = 11004; + + // Custom field value for Line Item with custom field ID equal to the ID + // in index 5 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_5_VALUE = 11005; + + // Custom field value for Line Item with custom field ID equal to the ID + // in index 6 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_6_VALUE = 11006; + + // Custom field value for Line Item with custom field ID equal to the ID + // in index 7 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_7_VALUE = 11007; + + // Custom field value for Line Item with custom field ID equal to the ID + // in index 8 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_8_VALUE = 11008; + + // Custom field value for Line Item with custom field ID equal to the ID + // in index 9 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_9_VALUE = 11009; + + // Custom field value for Line Item with custom field ID equal to the ID + // in index 10 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_10_VALUE = 11010; + + // Custom field value for Line Item with custom field ID equal to the ID + // in index 11 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_11_VALUE = 11011; + + // Custom field value for Line Item with custom field ID equal to the ID + // in index 12 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_12_VALUE = 11012; + + // Custom field value for Line Item with custom field ID equal to the ID + // in index 13 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_13_VALUE = 11013; + + // Custom field value for Line Item with custom field ID equal to the ID + // in index 14 of `ReportDefinition.line_item_custom_field_ids`. + LINE_ITEM_CUSTOM_FIELD_14_VALUE = 11014; + + // Custom field option ID for Order with custom field ID equal to the ID + // in index 0 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_0_OPTION_ID = 12000; + + // Custom field option ID for Order with custom field ID equal to the ID + // in index 1 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_1_OPTION_ID = 12001; + + // Custom field option ID for Order with custom field ID equal to the ID + // in index 2 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_2_OPTION_ID = 12002; + + // Custom field option ID for Order with custom field ID equal to the ID + // in index 3 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_3_OPTION_ID = 12003; + + // Custom field option ID for Order with custom field ID equal to the ID + // in index 4 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_4_OPTION_ID = 12004; + + // Custom field option ID for Order with custom field ID equal to the ID + // in index 5 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_5_OPTION_ID = 12005; + + // Custom field option ID for Order with custom field ID equal to the ID + // in index 6 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_6_OPTION_ID = 12006; + + // Custom field option ID for Order with custom field ID equal to the ID + // in index 7 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_7_OPTION_ID = 12007; + + // Custom field option ID for Order with custom field ID equal to the ID + // in index 8 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_8_OPTION_ID = 12008; + + // Custom field option ID for Order with custom field ID equal to the ID + // in index 9 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_9_OPTION_ID = 12009; + + // Custom field option ID for Order with custom field ID equal to the ID + // in index 10 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_10_OPTION_ID = 12010; + + // Custom field option ID for Order with custom field ID equal to the ID + // in index 11 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_11_OPTION_ID = 12011; + + // Custom field option ID for Order with custom field ID equal to the ID + // in index 12 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_12_OPTION_ID = 12012; + + // Custom field option ID for Order with custom field ID equal to the ID + // in index 13 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_13_OPTION_ID = 12013; + + // Custom field option ID for Order with custom field ID equal to the ID + // in index 14 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_14_OPTION_ID = 12014; + + // Custom field value for Order with custom field ID equal to the ID + // in index 0 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_0_VALUE = 13000; + + // Custom field value for Order with custom field ID equal to the ID + // in index 1 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_1_VALUE = 13001; + + // Custom field value for Order with custom field ID equal to the ID + // in index 2 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_2_VALUE = 13002; + + // Custom field value for Order with custom field ID equal to the ID + // in index 3 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_3_VALUE = 13003; + + // Custom field value for Order with custom field ID equal to the ID + // in index 4 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_4_VALUE = 13004; + + // Custom field value for Order with custom field ID equal to the ID + // in index 5 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_5_VALUE = 13005; + + // Custom field value for Order with custom field ID equal to the ID + // in index 6 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_6_VALUE = 13006; + + // Custom field value for Order with custom field ID equal to the ID + // in index 7 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_7_VALUE = 13007; + + // Custom field value for Order with custom field ID equal to the ID + // in index 8 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_8_VALUE = 13008; + + // Custom field value for Order with custom field ID equal to the ID + // in index 9 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_9_VALUE = 13009; + + // Custom field value for Order with custom field ID equal to the ID + // in index 10 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_10_VALUE = 13010; + + // Custom field value for Order with custom field ID equal to the ID + // in index 11 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_11_VALUE = 13011; + + // Custom field value for Order with custom field ID equal to the ID + // in index 12 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_12_VALUE = 13012; + + // Custom field value for Order with custom field ID equal to the ID + // in index 13 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_13_VALUE = 13013; + + // Custom field value for Order with custom field ID equal to the ID + // in index 14 of `ReportDefinition.order_custom_field_ids`. + ORDER_CUSTOM_FIELD_14_VALUE = 13014; + + // Custom field option ID for Creative with custom field ID equal to the ID + // in index 0 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_0_OPTION_ID = 14000; + + // Custom field option ID for Creative with custom field ID equal to the ID + // in index 1 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_1_OPTION_ID = 14001; + + // Custom field option ID for Creative with custom field ID equal to the ID + // in index 2 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_2_OPTION_ID = 14002; + + // Custom field option ID for Creative with custom field ID equal to the ID + // in index 3 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_3_OPTION_ID = 14003; + + // Custom field option ID for Creative with custom field ID equal to the ID + // in index 4 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_4_OPTION_ID = 14004; + + // Custom field option ID for Creative with custom field ID equal to the ID + // in index 5 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_5_OPTION_ID = 14005; + + // Custom field option ID for Creative with custom field ID equal to the ID + // in index 6 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_6_OPTION_ID = 14006; + + // Custom field option ID for Creative with custom field ID equal to the ID + // in index 7 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_7_OPTION_ID = 14007; + + // Custom field option ID for Creative with custom field ID equal to the ID + // in index 8 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_8_OPTION_ID = 14008; + + // Custom field option ID for Creative with custom field ID equal to the ID + // in index 9 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_9_OPTION_ID = 14009; + + // Custom field option ID for Creative with custom field ID equal to the ID + // in index 10 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_10_OPTION_ID = 14010; + + // Custom field option ID for Creative with custom field ID equal to the ID + // in index 11 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_11_OPTION_ID = 14011; + + // Custom field option ID for Creative with custom field ID equal to the ID + // in index 12 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_12_OPTION_ID = 14012; + + // Custom field option ID for Creative with custom field ID equal to the ID + // in index 13 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_13_OPTION_ID = 14013; + + // Custom field option ID for Creative with custom field ID equal to the ID + // in index 14 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_14_OPTION_ID = 14014; + + // Custom field value for Creative with custom field ID equal to the ID + // in index 0 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_0_VALUE = 15000; + + // Custom field value for Creative with custom field ID equal to the ID + // in index 1 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_1_VALUE = 15001; + + // Custom field value for Creative with custom field ID equal to the ID + // in index 2 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_2_VALUE = 15002; + + // Custom field value for Creative with custom field ID equal to the ID + // in index 3 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_3_VALUE = 15003; + + // Custom field value for Creative with custom field ID equal to the ID + // in index 4 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_4_VALUE = 15004; + + // Custom field value for Creative with custom field ID equal to the ID + // in index 5 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_5_VALUE = 15005; + + // Custom field value for Creative with custom field ID equal to the ID + // in index 6 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_6_VALUE = 15006; + + // Custom field value for Creative with custom field ID equal to the ID + // in index 7 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_7_VALUE = 15007; + + // Custom field value for Creative with custom field ID equal to the ID + // in index 8 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_8_VALUE = 15008; + + // Custom field value for Creative with custom field ID equal to the ID + // in index 9 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_9_VALUE = 15009; + + // Custom field value for Creative with custom field ID equal to the ID + // in index 10 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_10_VALUE = 15010; + + // Custom field value for Creative with custom field ID equal to the ID + // in index 11 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_11_VALUE = 15011; + + // Custom field value for Creative with custom field ID equal to the ID + // in index 12 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_12_VALUE = 15012; + + // Custom field value for Creative with custom field ID equal to the ID + // in index 13 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_13_VALUE = 15013; + + // Custom field value for Creative with custom field ID equal to the ID + // in index 14 of `ReportDefinition.creative_custom_field_ids`. + CREATIVE_CUSTOM_FIELD_14_VALUE = 15014; + + // Custom field option ID for Backfill line item with custom field ID equal + // to the ID in index 0 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_0_OPTION_ID = 16000; + + // Custom field option ID for Backfill line item with custom field ID equal + // to the ID in index 1 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_1_OPTION_ID = 16001; + + // Custom field option ID for Backfill line item with custom field ID equal + // to the ID in index 2 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_2_OPTION_ID = 16002; + + // Custom field option ID for Backfill line item with custom field ID equal + // to the ID in index 3 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_3_OPTION_ID = 16003; + + // Custom field option ID for Backfill line item with custom field ID equal + // to the ID in index 4 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_4_OPTION_ID = 16004; + + // Custom field option ID for Backfill line item with custom field ID equal + // to the ID in index 5 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_5_OPTION_ID = 16005; + + // Custom field option ID for Backfill line item with custom field ID equal + // to the ID in index 6 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_6_OPTION_ID = 16006; + + // Custom field option ID for Backfill line item with custom field ID equal + // to the ID in index 7 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_7_OPTION_ID = 16007; + + // Custom field option ID for Backfill line item with custom field ID equal + // to the ID in index 8 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_8_OPTION_ID = 16008; + + // Custom field option ID for Backfill line item with custom field ID equal + // to the ID in index 9 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_9_OPTION_ID = 16009; + + // Custom field option ID for Backfill line item with custom field ID equal + // to the ID in index 10 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_10_OPTION_ID = 16010; + + // Custom field option ID for Backfill line item with custom field ID equal + // to the ID in index 11 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_11_OPTION_ID = 16011; + + // Custom field option ID for Backfill line item with custom field ID equal + // to the ID in index 12 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_12_OPTION_ID = 16012; + + // Custom field option ID for Backfill line item with custom field ID equal + // to the ID in index 13 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_13_OPTION_ID = 16013; + + // Custom field option ID for Backfill line item with custom field ID equal + // to the ID in index 14 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_14_OPTION_ID = 16014; + + // Custom field value for Backfill line item with custom field ID equal to + // the ID in index 0 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_0_VALUE = 17000; + + // Custom field value for Backfill line item with custom field ID equal to + // the ID in index 1 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_1_VALUE = 17001; + + // Custom field value for Backfill line item with custom field ID equal to + // the ID in index 2 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_2_VALUE = 17002; + + // Custom field value for Backfill line item with custom field ID equal to + // the ID in index 3 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_3_VALUE = 17003; + + // Custom field value for Backfill line item with custom field ID equal to + // the ID in index 4 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_4_VALUE = 17004; + + // Custom field value for Backfill line item with custom field ID equal to + // the ID in index 5 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_5_VALUE = 17005; + + // Custom field value for Backfill line item with custom field ID equal to + // the ID in index 6 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_6_VALUE = 17006; + + // Custom field value for Backfill line item with custom field ID equal to + // the ID in index 7 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_7_VALUE = 17007; + + // Custom field value for Backfill line item with custom field ID equal to + // the ID in index 8 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_8_VALUE = 17008; + + // Custom field value for Backfill line item with custom field ID equal to + // the ID in index 9 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_9_VALUE = 17009; + + // Custom field value for Backfill line item with custom field ID equal to + // the ID in index 10 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_10_VALUE = 17010; + + // Custom field value for Backfill line item with custom field ID equal to + // the ID in index 11 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_11_VALUE = 17011; + + // Custom field value for Backfill line item with custom field ID equal to + // the ID in index 12 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_12_VALUE = 17012; + + // Custom field value for Backfill line item with custom field ID equal to + // the ID in index 13 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_13_VALUE = 17013; + + // Custom field value for Backfill line item with custom field ID equal to + // the ID in index 14 of `ReportDefinition.line_item_custom_field_ids`. + BACKFILL_LINE_ITEM_CUSTOM_FIELD_14_VALUE = 17014; + + // Custom field option ID for Backfill order with custom field ID equal to + // the ID in index 0 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_0_OPTION_ID = 18000; + + // Custom field option ID for Backfill order with custom field ID equal to + // the ID in index 1 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_1_OPTION_ID = 18001; + + // Custom field option ID for Backfill order with custom field ID equal to + // the ID in index 2 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_2_OPTION_ID = 18002; + + // Custom field option ID for Backfill order with custom field ID equal to + // the ID in index 3 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_3_OPTION_ID = 18003; + + // Custom field option ID for Backfill order with custom field ID equal to + // the ID in index 4 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_4_OPTION_ID = 18004; + + // Custom field option ID for Backfill order with custom field ID equal to + // the ID in index 5 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_5_OPTION_ID = 18005; + + // Custom field option ID for Backfill order with custom field ID equal to + // the ID in index 6 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_6_OPTION_ID = 18006; + + // Custom field option ID for Backfill order with custom field ID equal to + // the ID in index 7 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_7_OPTION_ID = 18007; + + // Custom field option ID for Backfill order with custom field ID equal to + // the ID in index 8 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_8_OPTION_ID = 18008; + + // Custom field option ID for Backfill order with custom field ID equal to + // the ID in index 9 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_9_OPTION_ID = 18009; + + // Custom field option ID for Backfill order with custom field ID equal to + // the ID in index 10 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_10_OPTION_ID = 18010; + + // Custom field option ID for Backfill order with custom field ID equal to + // the ID in index 11 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_11_OPTION_ID = 18011; + + // Custom field option ID for Backfill order with custom field ID equal to + // the ID in index 12 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_12_OPTION_ID = 18012; + + // Custom field option ID for Backfill order with custom field ID equal to + // the ID in index 13 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_13_OPTION_ID = 18013; + + // Custom field option ID for Backfill order with custom field ID equal to + // the ID in index 14 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_14_OPTION_ID = 18014; + + // Custom field value for Backfill order with custom field ID equal to the + // ID in index 0 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_0_VALUE = 19000; + + // Custom field value for Backfill order with custom field ID equal to the + // ID in index 1 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_1_VALUE = 19001; + + // Custom field value for Backfill order with custom field ID equal to the + // ID in index 2 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_2_VALUE = 19002; + + // Custom field value for Backfill order with custom field ID equal to the + // ID in index 3 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_3_VALUE = 19003; + + // Custom field value for Backfill order with custom field ID equal to the + // ID in index 4 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_4_VALUE = 19004; + + // Custom field value for Backfill order with custom field ID equal to the + // ID in index 5 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_5_VALUE = 19005; + + // Custom field value for Backfill order with custom field ID equal to the + // ID in index 6 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_6_VALUE = 19006; + + // Custom field value for Backfill order with custom field ID equal to the + // ID in index 7 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_7_VALUE = 19007; + + // Custom field value for Backfill order with custom field ID equal to the + // ID in index 8 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_8_VALUE = 19008; + + // Custom field value for Backfill order with custom field ID equal to the + // ID in index 9 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_9_VALUE = 19009; + + // Custom field value for Backfill order with custom field ID equal to the + // ID in index 10 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_10_VALUE = 19010; + + // Custom field value for Backfill order with custom field ID equal to the + // ID in index 11 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_11_VALUE = 19011; + + // Custom field value for Backfill order with custom field ID equal to the + // ID in index 12 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_12_VALUE = 19012; + + // Custom field value for Backfill order with custom field ID equal to the + // ID in index 13 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_13_VALUE = 19013; + + // Custom field value for Backfill order with custom field ID equal to the + // ID in index 14 of `ReportDefinition.order_custom_field_ids`. + BACKFILL_ORDER_CUSTOM_FIELD_14_VALUE = 19014; + + // Custom field option ID for Backfill creative with custom field ID equal + // to the ID in index 0 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_0_OPTION_ID = 20000; + + // Custom field option ID for Backfill creative with custom field ID equal + // to the ID in index 1 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_1_OPTION_ID = 20001; + + // Custom field option ID for Backfill creative with custom field ID equal + // to the ID in index 2 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_2_OPTION_ID = 20002; + + // Custom field option ID for Backfill creative with custom field ID equal + // to the ID in index 3 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_3_OPTION_ID = 20003; + + // Custom field option ID for Backfill creative with custom field ID equal + // to the ID in index 4 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_4_OPTION_ID = 20004; + + // Custom field option ID for Backfill creative with custom field ID equal + // to the ID in index 5 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_5_OPTION_ID = 20005; + + // Custom field option ID for Backfill creative with custom field ID equal + // to the ID in index 6 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_6_OPTION_ID = 20006; + + // Custom field option ID for Backfill creative with custom field ID equal + // to the ID in index 7 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_7_OPTION_ID = 20007; + + // Custom field option ID for Backfill creative with custom field ID equal + // to the ID in index 8 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_8_OPTION_ID = 20008; + + // Custom field option ID for Backfill creative with custom field ID equal + // to the ID in index 9 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_9_OPTION_ID = 20009; + + // Custom field option ID for Backfill creative with custom field ID equal + // to the ID in index 10 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_10_OPTION_ID = 20010; + + // Custom field option ID for Backfill creative with custom field ID equal + // to the ID in index 11 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_11_OPTION_ID = 20011; + + // Custom field option ID for Backfill creative with custom field ID equal + // to the ID in index 12 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_12_OPTION_ID = 20012; + + // Custom field option ID for Backfill creative with custom field ID equal + // to the ID in index 13 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_13_OPTION_ID = 20013; + + // Custom field option ID for Backfill creative with custom field ID equal + // to the ID in index 14 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_14_OPTION_ID = 20014; + + // Custom field value for Backfill creative with custom field ID equal to + // the ID in index 0 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_0_VALUE = 21000; + + // Custom field value for Backfill creative with custom field ID equal to + // the ID in index 1 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_1_VALUE = 21001; + + // Custom field value for Backfill creative with custom field ID equal to + // the ID in index 2 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_2_VALUE = 21002; + + // Custom field value for Backfill creative with custom field ID equal to + // the ID in index 3 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_3_VALUE = 21003; + + // Custom field value for Backfill creative with custom field ID equal to + // the ID in index 4 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_4_VALUE = 21004; + + // Custom field value for Backfill creative with custom field ID equal to + // the ID in index 5 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_5_VALUE = 21005; + + // Custom field value for Backfill creative with custom field ID equal to + // the ID in index 6 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_6_VALUE = 21006; + + // Custom field value for Backfill creative with custom field ID equal to + // the ID in index 7 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_7_VALUE = 21007; + + // Custom field value for Backfill creative with custom field ID equal to + // the ID in index 8 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_8_VALUE = 21008; + + // Custom field value for Backfill creative with custom field ID equal to + // the ID in index 9 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_9_VALUE = 21009; + + // Custom field value for Backfill creative with custom field ID equal to + // the ID in index 10 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_10_VALUE = 21010; + + // Custom field value for Backfill creative with custom field ID equal to + // the ID in index 11 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_11_VALUE = 21011; + + // Custom field value for Backfill creative with custom field ID equal to + // the ID in index 12 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_12_VALUE = 21012; + + // Custom field value for Backfill creative with custom field ID equal to + // the ID in index 13 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_13_VALUE = 21013; + + // Custom field value for Backfill creative with custom field ID equal to + // the ID in index 14 of `ReportDefinition.creative_custom_field_ids`. + BACKFILL_CREATIVE_CUSTOM_FIELD_14_VALUE = 21014; + + // Custom Dimension Value ID for Custom Dimension with key equal to the key + // in index 0 of `ReportDefinition.custom_dimension_key_ids`. + CUSTOM_DIMENSION_0_VALUE_ID = 100000; + + // Custom Dimension Value ID for Custom Dimension with key equal to the key + // in index 1 of `ReportDefinition.custom_dimension_key_ids`. + CUSTOM_DIMENSION_1_VALUE_ID = 100001; + + // Custom Dimension Value ID for Custom Dimension with key equal to the key + // in index 2 of `ReportDefinition.custom_dimension_key_ids`. + CUSTOM_DIMENSION_2_VALUE_ID = 100002; + + // Custom Dimension Value ID for Custom Dimension with key equal to the key + // in index 3 of `ReportDefinition.custom_dimension_key_ids`. + CUSTOM_DIMENSION_3_VALUE_ID = 100003; + + // Custom Dimension Value ID for Custom Dimension with key equal to the key + // in index 4 of `ReportDefinition.custom_dimension_key_ids`. + CUSTOM_DIMENSION_4_VALUE_ID = 100004; + + // Custom Dimension Value ID for Custom Dimension with key equal to the key + // in index 5 of `ReportDefinition.custom_dimension_key_ids`. + CUSTOM_DIMENSION_5_VALUE_ID = 100005; + + // Custom Dimension Value ID for Custom Dimension with key equal to the key + // in index 6 of `ReportDefinition.custom_dimension_key_ids`. + CUSTOM_DIMENSION_6_VALUE_ID = 100006; + + // Custom Dimension Value ID for Custom Dimension with key equal to the key + // in index 9 of `ReportDefinition.custom_dimension_key_ids`. + CUSTOM_DIMENSION_7_VALUE_ID = 100007; + + // Custom Dimension Value ID for Custom Dimension with key equal to the key + // in index 8 of `ReportDefinition.custom_dimension_key_ids`. + CUSTOM_DIMENSION_8_VALUE_ID = 100008; + + // Custom Dimension Value ID for Custom Dimension with key equal to the key + // in index 9 of `ReportDefinition.custom_dimension_key_ids`. + CUSTOM_DIMENSION_9_VALUE_ID = 100009; + + // Custom Dimension Value name for Custom Dimension with key equal to the + // id in index 0 of `ReportDefinition.custom_dimension_key_ids`. + CUSTOM_DIMENSION_0_VALUE = 101000; + + // Custom Dimension Value name for Custom Dimension with key equal to the + // id in index 1 of `ReportDefinition.custom_dimension_key_ids`. + CUSTOM_DIMENSION_1_VALUE = 101001; + + // Custom Dimension Value name for Custom Dimension with key equal to the + // id in index 2 of `ReportDefinition.custom_dimension_key_ids`. + CUSTOM_DIMENSION_2_VALUE = 101002; + + // Custom Dimension Value name for Custom Dimension with key equal to the + // id in index 3 of `ReportDefinition.custom_dimension_key_ids`. + CUSTOM_DIMENSION_3_VALUE = 101003; + + // Custom Dimension Value name for Custom Dimension with key equal to the + // id in index 4 of `ReportDefinition.custom_dimension_key_ids`. + CUSTOM_DIMENSION_4_VALUE = 101004; + + // Custom Dimension Value name for Custom Dimension with key equal to the + // id in index 5 of `ReportDefinition.custom_dimension_key_ids`. + CUSTOM_DIMENSION_5_VALUE = 101005; + + // Custom Dimension Value name for Custom Dimension with key equal to the + // id in index 6 of `ReportDefinition.custom_dimension_key_ids`. + CUSTOM_DIMENSION_6_VALUE = 101006; + + // Custom Dimension Value name for Custom Dimension with key equal to the + // id in index 7 of `ReportDefinition.custom_dimension_key_ids`. + CUSTOM_DIMENSION_7_VALUE = 101007; + + // Custom Dimension Value name for Custom Dimension with key equal to the + // id in index 8 of `ReportDefinition.custom_dimension_key_ids`. + CUSTOM_DIMENSION_8_VALUE = 101008; + + // Custom Dimension Value name for Custom Dimension with key equal to the + // id in index 9 of `ReportDefinition.custom_dimension_key_ids`. + CUSTOM_DIMENSION_9_VALUE = 101009; + } + + // Reporting metrics. + enum Metric { + // Default value. This value is unused. + METRIC_UNSPECIFIED = 0; + + // Active View total average time in seconds that specific impressions are + // reported as being viewable. + ACTIVE_VIEW_AVERAGE_VIEWABLE_TIME = 61; + + // Total number of impressions that were eligible to measure viewability. + ACTIVE_VIEW_ELIGIBLE_IMPRESSIONS = 58; + + // The total number of impressions that were sampled and measured by active + // view. + ACTIVE_VIEW_MEASURABLE_IMPRESSIONS = 57; + + // The percentage of total impressions that were measurable by active view + // (out of all the total impressions sampled for active view). + ACTIVE_VIEW_MEASURABLE_IMPRESSIONS_RATE = 60; + + // The total number of impressions viewed on the user's screen. + ACTIVE_VIEW_VIEWABLE_IMPRESSIONS = 56; + + // The percentage of total impressions viewed on the user's screen (out of + // the total impressions measurable by active view). + ACTIVE_VIEW_VIEWABLE_IMPRESSIONS_RATE = 59; + + // Active View AdSense average time in seconds that specific impressions are + // reported as being viewable. + ADSENSE_ACTIVE_VIEW_AVERAGE_VIEWABLE_TIME = 73; + + // Total number of impressions delivered by AdSense that were eligible to + // measure viewability. + ADSENSE_ACTIVE_VIEW_ELIGIBLE_IMPRESSIONS = 70; + + // The number of impressions delivered by AdSense that were sampled, and + // measurable by active view. + ADSENSE_ACTIVE_VIEW_MEASURABLE_IMPRESSIONS = 69; + + // The percentage of impressions delivered by AdSense that were measurable + // by active view (out of all AdSense impressions sampled for active view). + ADSENSE_ACTIVE_VIEW_MEASURABLE_IMPRESSIONS_RATE = 72; + + // The number of impressions delivered by AdSense viewed on the user's + // screen. + ADSENSE_ACTIVE_VIEW_VIEWABLE_IMPRESSIONS = 68; + + // The percentage of impressions delivered by AdSense viewed on the user's + // screen (out of AdSense impressions measurable by active view). + ADSENSE_ACTIVE_VIEW_VIEWABLE_IMPRESSIONS_RATE = 71; + + // The average effective cost-per-thousand-impressions earned from the ads + // delivered by AdSense through line item dynamic allocation. + ADSENSE_AVERAGE_ECPM = 26; + + // Number of clicks delivered by AdSense demand channel. + ADSENSE_CLICKS = 23; + + // The ratio of impressions served by AdSense that resulted in users + // clicking on an ad. The clickthrough rate (CTR) is updated nightly. The + // AdSense CTR is calculated as: (AdSense clicks / AdSense impressions). + ADSENSE_CTR = 24; + + // Total impressions delivered by AdSense. + ADSENSE_IMPRESSIONS = 22; + + // Ratio of clicks delivered by AdSense through line item dynamic allocation + // in relation to the total clicks delivered. + ADSENSE_PERCENT_CLICKS = 28; + + // Ratio of impressions delivered by AdSense through line item dynamic + // allocation in relation to the total impressions delivered. + ADSENSE_PERCENT_IMPRESSIONS = 27; + + // Ratio of revenue generated by AdSense through line item dynamic + // allocation in relation to the total revenue. + ADSENSE_PERCENT_REVENUE = 29; + + // Ratio of revenue generated by AdSense through line item dynamic + // allocation in relation to the total revenue (excluding CPD). + ADSENSE_PERCENT_REVENUE_WITHOUT_CPD = 30; + + // The total number of times that an AdSense ad is delivered. + ADSENSE_RESPONSES_SERVED = 41; + + // Revenue generated from AdSense through line item dynamic allocation, + // calculated in the network's currency and time zone. + ADSENSE_REVENUE = 25; + + // Active View AdExchange average time in seconds that specific impressions + // are reported as being viewable. + AD_EXCHANGE_ACTIVE_VIEW_AVERAGE_VIEWABLE_TIME = 79; + + // Total number of impressions delivered by Ad Exchange that were eligible + // to measure viewability. + AD_EXCHANGE_ACTIVE_VIEW_ELIGIBLE_IMPRESSIONS = 76; + + // The number of impressions delivered by Ad Exchange that were sampled, and + // measurable by active view. + AD_EXCHANGE_ACTIVE_VIEW_MEASURABLE_IMPRESSIONS = 75; + + // The percentage of impressions delivered by Ad Exchange that were + // measurable by active view (out of all Ad Exchange impressions sampled for + // active view). + AD_EXCHANGE_ACTIVE_VIEW_MEASURABLE_IMPRESSIONS_RATE = 78; + + // The number of impressions delivered by Ad Exchange viewed on the user's + // screen. + AD_EXCHANGE_ACTIVE_VIEW_VIEWABLE_IMPRESSIONS = 74; + + // The percentage of impressions delivered by Ad Exchange viewed on the + // user's screen (out of Ad Exchange impressions measurable by active view). + AD_EXCHANGE_ACTIVE_VIEW_VIEWABLE_IMPRESSIONS_RATE = 77; + + // The average effective cost-per-thousand-impressions earned from the ads + // delivered by Ad Exchange through line item dynamic allocation. + AD_EXCHANGE_AVERAGE_ECPM = 18; + + // Number of clicks delivered by the Ad Exchange. + AD_EXCHANGE_CLICKS = 15; + + // The ratio of impressions served by the Ad Exchange that resulted in users + // clicking on an ad. The clickthrough rate (CTR) is updated nightly. Ad + // Exchange CTR is calculated as: (Ad Exchange clicks / Ad Exchange + // impressions). + AD_EXCHANGE_CTR = 16; + + // Total impressions delivered by the Ad Exchange. + AD_EXCHANGE_IMPRESSIONS = 14; + + // Ratio of clicks delivered by Ad Exchange through line item dynamic + // allocation in relation to the total clicks delivered. + AD_EXCHANGE_PERCENT_CLICKS = 20; + + // Ratio of impressions delivered by Ad Exchange through line item dynamic + // allocation in relation to the total impressions delivered. + AD_EXCHANGE_PERCENT_IMPRESSIONS = 19; + + // Ratio of revenue generated by Ad Exchange through line item dynamic + // allocation in relation to the total revenue. + AD_EXCHANGE_PERCENT_REVENUE = 21; + + // Ratio of revenue generated by Ad Exchange through line item dynamic + // allocation in relation to the total revenue (excluding CPD). + AD_EXCHANGE_PERCENT_REVENUE_WITHOUT_CPD = 31; + + // The total number of times that an Ad Exchange ad is delivered. + AD_EXCHANGE_RESPONSES_SERVED = 42; + + // Revenue generated from the Ad Exchange through line item dynamic + // allocation, calculated in your network's currency and time zone. + AD_EXCHANGE_REVENUE = 17; + + // The total number of times that an ad request is sent to the ad server + // including dynamic allocation. + AD_REQUESTS = 38; + + // Active View ad server average time in seconds that specific impressions + // are reported as being viewable. + AD_SERVER_ACTIVE_VIEW_AVERAGE_VIEWABLE_TIME = 67; + + // Total number of impressions delivered by the ad server that were eligible + // to measure viewability. + AD_SERVER_ACTIVE_VIEW_ELIGIBLE_IMPRESSIONS = 64; + + // The number of impressions delivered by the ad server that were sampled, + // and measurable by active view. + AD_SERVER_ACTIVE_VIEW_MEASURABLE_IMPRESSIONS = 63; + + // The percentage of impressions delivered by the ad server that were + // measurable by active view (out of all the ad server impressions sampled + // for active view). + AD_SERVER_ACTIVE_VIEW_MEASURABLE_IMPRESSIONS_RATE = 66; + + // The number of impressions delivered by the ad server viewed on the user's + // screen. + AD_SERVER_ACTIVE_VIEW_VIEWABLE_IMPRESSIONS = 62; + + // The percentage of impressions delivered by the ad server viewed on the + // user's screen (out of the ad server impressions measurable by active + // view). + AD_SERVER_ACTIVE_VIEW_VIEWABLE_IMPRESSIONS_RATE = 65; + + // Average effective cost-per-thousand-impressions earned from the ads + // delivered by the Google Ad Manager server. + AD_SERVER_AVERAGE_ECPM = 34; + + // Average effective cost-per-thousand-impressions earned from the ads + // delivered by the Google Ad Manager server, excluding CPD value. + AD_SERVER_AVERAGE_ECPM_WITHOUT_CPD = 10; + + // Total clicks served by the Google Ad Manager server. It usually takes + // about 30 minutes for new clicks to be recorded and added to the total + // displayed in reporting. + AD_SERVER_CLICKS = 7; + + // CPD revenue earned, calculated in your network's currency, for + // the ads delivered by the Google Ad Manager server. Sum of all booked + // revenue. + AD_SERVER_CPD_REVENUE = 32; + + // Ratio of impressions served by the Google Ad Manager server that resulted + // in users clicking on an ad. The clickthrough rate (CTR) is updated + // nightly. The ad server CTR is calculated as: (Ad server clicks / Ad + // server impressions). + AD_SERVER_CTR = 8; + + // Total impressions delivered by the Ad Server. + AD_SERVER_IMPRESSIONS = 6; + + // Ratio of clicks delivered by the Google Ad Manager server in relation to + // the total clicks delivered. + AD_SERVER_PERCENT_CLICKS = 12; + + // Ratio of impressions delivered by the Google Ad Manager server in + // relation to the total impressions delivered. + AD_SERVER_PERCENT_IMPRESSIONS = 11; + + // Ratio of revenue generated by the Google Ad Manager server in relation + // to the total revenue. + AD_SERVER_PERCENT_REVENUE = 35; + + // Ratio of revenue generated by the Google Ad Manager server (excluding + // CPD) in relation to the total revenue. + AD_SERVER_PERCENT_REVENUE_WITHOUT_CPD = 13; + + // The total number of times that an ad is served by the ad server. + AD_SERVER_RESPONSES_SERVED = 40; + + // All CPM, CPC, and CPD revenue earned, calculated in your network's + // currency, for the ads delivered by the Google Ad Manager server. + // Sum of all booked revenue. + AD_SERVER_REVENUE = 33; + + // Revenue (excluding CPD) earned, calculated in your network's currency, + // for the ads delivered by the Google Ad Manager server. Sum of all booked + // revenue. + AD_SERVER_REVENUE_WITHOUT_CPD = 9; + + // Number of winning bids received from Open Bidding buyers, even when the + // winning bid is placed at the end of a mediation for mobile apps chain. + AUCTIONS_WON = 80; + + // eCPM averaged across the Google Ad Manager server, AdSense, + // and Ad Exchange. + AVERAGE_ECPM = 37; + + // eCPM averaged across the Google Ad Manager server (excluding CPD), + // AdSense, and Ad Exchange. + AVERAGE_ECPM_WITHOUT_CPD = 5; + + // Number of bids received from Open Bidding buyers, regardless of whether + // the returned bid competes in an auction. + BIDS = 81; + + // Number of bids received from Open Bidding buyers that competed in + // the auction. + BIDS_IN_AUCTION = 82; + + // Number of times a yield partner is asked to return bid to fill + // a yield group request. + CALLOUTS = 83; + + // The number of times a user clicked on an ad. + CLICKS = 2; + + // The total number of times that the code for an ad is served by the ad + // server including dynamic allocation. + CODE_SERVED_COUNT = 44; + + // For standard ads, your ad clickthrough rate (CTR) is the number of ad + // clicks divided by the number of individual ad impressions expressed as a + // fraction. Ad CTR = Clicks / Ad impressions. + CTR = 3; + + // The number of coviewed impressions sold by Google in partner sales. + GOOGLE_SOLD_AUCTION_COVIEWED_IMPRESSIONS = 129; + + // The number of auction impressions sold by Google in partner sales. + GOOGLE_SOLD_AUCTION_IMPRESSIONS = 128; + + // The number of coviewed impressions sold by Google in partner sales. + GOOGLE_SOLD_COVIEWED_IMPRESSIONS = 131; + + // The number of impressions sold by Google in partner sales. + GOOGLE_SOLD_IMPRESSIONS = 130; + + // The number of coviewed impressions sold by Google in partner sales. + GOOGLE_SOLD_RESERVATION_COVIEWED_IMPRESSIONS = 127; + + // The number of reservation impressions sold by Google in partner sales. + GOOGLE_SOLD_RESERVATION_IMPRESSIONS = 126; + + // Total impressions from the Google Ad Manager server, AdSense, + // Ad Exchange, and yield group partners. + IMPRESSIONS = 1; + + // The number of filled pod requests (filled by partner or Google) in + // partner sales. + PARTNER_SALES_FILLED_POD_REQUESTS = 135; + + // The percent of filled requests to total ad requests in + // partner sales. + PARTNER_SALES_FILL_RATE = 136; + + // The percent of partner filled requests to total ad requests + // in partner sales. + PARTNER_SALES_PARTNER_MATCH_RATE = 137; + + // The number of queries eligible for partner sales. + PARTNER_SALES_QUERIES = 132; + + // The number of partner unfilled impressions in partner sales. + // If a pod request is not filled by partner but filled by Google, this + // metric will still count 1. + PARTNER_SALES_UNFILLED_IMPRESSIONS = 133; + + // The number of partner unmatched queries in partner sales. + // If an ad request is not filled by partner but filled by Google, this + // metric will still count 1. + PARTNER_SALES_UNMATCHED_QUERIES = 134; + + // The number of code served sold by partner in partner sales. + PARTNER_SOLD_CODE_SERVED = 125; + + // The number of coviewed impressions sold by partner in partner sales. + PARTNER_SOLD_COVIEWED_IMPRESSIONS = 124; + + // The number of impressions sold by partner in partner sales. + PARTNER_SOLD_IMPRESSIONS = 123; + + // The total number of ad requests eligible for programmatic inventory, + // including Programmatic Guaranteed, Preferred Deals, backfill, and open + // auction. + PROGRAMMATIC_ELIGIBLE_AD_REQUESTS = 177; + + // The number of programmatic responses served divided by the number of + // programmatic eligible ad requests. Includes Ad Exchange, Open Bidding, + // and Preferred Deals. + PROGRAMMATIC_MATCH_RATE = 178; + + // Total number of ad responses served from programmatic demand sources. + // Includes Ad Exchange, Open Bidding, and Preferred Deals. + // + // Differs from AD_EXCHANGE_RESPONSES_SERVED, which doesn't include Open + // Bidding ad requests. + PROGRAMMATIC_RESPONSES_SERVED = 176; + + // The total number of times that an ad is served by the ad server including + // dynamic allocation. + RESPONSES_SERVED = 39; + + // Total amount of CPM, CPC, and CPD revenue based on the number of units + // served by the Google Ad Manager server, AdSense, Ad Exchange, and + // third-party Mediation networks. + REVENUE = 36; + + // Total amount of revenue (excluding CPD) based on the number of units + // served by the Google Ad Manager server, AdSense, Ad Exchange, and + // third-party Mediation networks. + REVENUE_WITHOUT_CPD = 4; + + // Number of times a yield group buyer successfully returned a bid in + // response to a yield group callout. + SUCCESSFUL_RESPONSES = 84; + + // The total number of missed impressions due to the ad servers' inability + // to find ads to serve including dynamic allocation. + UNFILLED_IMPRESSIONS = 45; + + // The total number of times that an ad is not returned by the ad server. + UNMATCHED_AD_REQUESTS = 43; + + // Number of times an Offerwall message was shown to users. + USER_MESSAGES_OFFERWALL_MESSAGES_SHOWN = 121; + + // The number of messages where the user gained an entitlement. + USER_MESSAGES_OFFERWALL_SUCCESSFUL_ENGAGEMENTS = 122; + + // The number of user interactions with a video, on average, such as pause, + // full screen, mute, etc. + VIDEO_INTERACTION_AVERAGE_INTERACTION_RATE = 92; + + // The number of times a user collapses a video, either to its original size + // or to a different size. + VIDEO_INTERACTION_COLLAPSES = 93; + + // The number of times a user expands a video. + VIDEO_INTERACTION_EXPANDS = 95; + + // The number of times ad clip played in full screen mode. + VIDEO_INTERACTION_FULL_SCREENS = 96; + + // The number of times video player was in mute state during play of ad + // clip. + VIDEO_INTERACTION_MUTES = 97; + + // The number of times user paused ad clip. + VIDEO_INTERACTION_PAUSES = 98; + + // The number of times the user unpaused the video. + VIDEO_INTERACTION_RESUMES = 99; + + // The number of times a user rewinds the video. + VIDEO_INTERACTION_REWINDS = 100; + + // The number of times a user unmutes the video. + VIDEO_INTERACTION_UNMUTES = 101; + + // The number of times a skippable video is skipped. + VIDEO_INTERACTION_VIDEO_SKIPS = 102; + + // The number of total creative serves in video realtime reporting. + VIDEO_REAL_TIME_CREATIVE_SERVES = 139; + + // The number of errors of type 100 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_100_COUNT = 143; + + // The number of errors of type 101 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_101_COUNT = 144; + + // The number of errors of type 102 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_102_COUNT = 145; + + // The number of errors of type 200 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_200_COUNT = 146; + + // The number of errors of type 201 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_201_COUNT = 147; + + // The number of errors of type 202 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_202_COUNT = 148; + + // The number of errors of type 203 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_203_COUNT = 149; + + // The number of errors of type 300 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_300_COUNT = 150; + + // The number of errors of type 301 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_301_COUNT = 151; + + // The number of errors of type 302 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_302_COUNT = 152; + + // The number of errors of type 303 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_303_COUNT = 153; + + // The number of errors of type 400 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_400_COUNT = 154; + + // The number of errors of type 401 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_401_COUNT = 155; + + // The number of errors of type 402 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_402_COUNT = 156; + + // The number of errors of type 403 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_403_COUNT = 157; + + // The number of errors of type 405 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_405_COUNT = 158; + + // The number of errors of type 406 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_406_COUNT = 159; + + // The number of errors of type 407 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_407_COUNT = 160; + + // The number of errors of type 408 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_408_COUNT = 161; + + // The number of errors of type 409 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_409_COUNT = 162; + + // The number of errors of type 410 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_410_COUNT = 163; + + // The number of errors of type 500 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_500_COUNT = 164; + + // The number of errors of type 501 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_501_COUNT = 165; + + // The number of errors of type 502 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_502_COUNT = 166; + + // The number of errors of type 503 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_503_COUNT = 167; + + // The number of errors of type 600 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_600_COUNT = 168; + + // The number of errors of type 601 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_601_COUNT = 169; + + // The number of errors of type 602 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_602_COUNT = 170; + + // The number of errors of type 603 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_603_COUNT = 171; + + // The number of errors of type 604 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_604_COUNT = 172; + + // The number of errors of type 900 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_900_COUNT = 173; + + // The number of errors of type 901 in video realtime reporting. + VIDEO_REAL_TIME_ERROR_901_COUNT = 174; + + // The number of total impressions in video realtime reporting. + VIDEO_REAL_TIME_IMPRESSIONS = 138; + + // The number of matched queries in video realtime reporting. + VIDEO_REAL_TIME_MATCHED_QUERIES = 140; + + // The number of all errors in video realtime reporting. + VIDEO_REAL_TIME_TOTAL_ERROR_COUNT = 175; + + // The number of total queries in video realtime reporting. + VIDEO_REAL_TIME_TOTAL_QUERIES = 142; + + // The number of unmatched queries in video realtime reporting. + VIDEO_REAL_TIME_UNMATCHED_QUERIES = 141; + + // Number of times that the publisher specified a video ad played + // automatically. + VIDEO_VIEWERSHIP_AUTO_PLAYS = 103; + + // Average percentage of the video watched by users. + VIDEO_VIEWERSHIP_AVERAGE_VIEW_RATE = 104; + + // Average time(seconds) users watched the video. + VIDEO_VIEWERSHIP_AVERAGE_VIEW_TIME = 105; + + // Number of times that the publisher specified a video ad was clicked to + // play. + VIDEO_VIEWERSHIP_CLICK_TO_PLAYS = 106; + + // The number of times the video played to completion. + VIDEO_VIEWERSHIP_COMPLETES = 107; + + // Percentage of times the video played to the end. + VIDEO_VIEWERSHIP_COMPLETION_RATE = 108; + + // The number of engaged views: ad is viewed to completion or for 30s, + // whichever comes first. + VIDEO_VIEWERSHIP_ENGAGED_VIEWS = 109; + + // The number of times the video played to 25% of its length. + VIDEO_VIEWERSHIP_FIRST_QUARTILES = 110; + + // The number of times the video reached its midpoint during play. + VIDEO_VIEWERSHIP_MIDPOINTS = 111; + + // The number of times a skip button is shown in video. + VIDEO_VIEWERSHIP_SKIP_BUTTONS_SHOWN = 112; + + // The number of impressions where the video was played. + VIDEO_VIEWERSHIP_STARTS = 113; + + // The number of times the video played to 75% of its length. + VIDEO_VIEWERSHIP_THIRD_QUARTILES = 114; + + // The number of times an error occurred, such as a VAST redirect error, a + // video playback error, or an invalid response error. + VIDEO_VIEWERSHIP_TOTAL_ERROR_COUNT = 115; + + // The percentage of video error count. + VIDEO_VIEWERSHIP_TOTAL_ERROR_RATE = 94; + + // Duration of the video creative. + VIDEO_VIEWERSHIP_VIDEO_LENGTH = 116; + + // View-through rate represented as a percentage. + VIDEO_VIEWERSHIP_VIEW_THROUGH_RATE = 117; + + // The estimated net rate for yield groups or individual + // yield group partners. + YIELD_GROUP_ESTIMATED_CPM = 88; + + // Total net revenue earned by a yield group, based upon the yield group + // estimated CPM and yield group impressions recorded. + YIELD_GROUP_ESTIMATED_REVENUE = 87; + + // Number of matched yield group requests where a yield partner delivered + // their ad to publisher inventory. + YIELD_GROUP_IMPRESSIONS = 85; + + // Yield group Mediation fill rate indicating how often a network + // fills an ad request. + YIELD_GROUP_MEDIATION_FILL_RATE = 89; + + // Total requests where a Mediation chain was served. + YIELD_GROUP_MEDIATION_MATCHED_QUERIES = 86; + + // The number of mediation chain passback across all channels. + YIELD_GROUP_MEDIATION_PASSBACKS = 118; + + // Revenue per thousand impressions based on data collected by Ad Manager + // from third-party ad network reports. + YIELD_GROUP_MEDIATION_THIRD_PARTY_ECPM = 90; + } + + // Possible metric value types to add. + enum MetricValueType { + // The values for the primary date_range. + PRIMARY = 0; + + // Each metrics' percent of the total for the primary date_range. + PRIMARY_PERCENT_OF_TOTAL = 1; + + // The values for the comparison_date_range. + COMPARISON = 2; + + // Each metrics' percent of the total for the comparison_date_range. + COMPARISON_PERCENT_OF_TOTAL = 3; + + // The absolute change between the primary and comparison date ranges. + ABSOLUTE_CHANGE = 4; + + // The relative change between the primary and comparison date ranges. + RELATIVE_CHANGE = 5; + } + + // Supported report types. + enum ReportType { + // Default value. This value is unused. + REPORT_TYPE_UNSPECIFIED = 0; + + // Historical. + HISTORICAL = 1; + } + + // The visibility of a report. + enum Visibility { + // Default value. Reports with hidden visibility will not appear in the Ad + // Manager UI. + HIDDEN = 0; + + // Reports with draft visibility will appear in the Ad Manager UI only if + // the user has configured the UI to show them. + DRAFT = 1; + + // Reports with saved visibility will appear in the Ad Manager UI by + // default. + SAVED = 2; + } + + // Identifier. The resource name of the report. + // Report resource name have the form: + // `networks/{network_code}/reports/{report_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. Report ID. + int64 report_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The visibility of a report. + Visibility visibility = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The report definition of the report. + ReportDefinition report_definition = 4 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Display name for the report. + string display_name = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The instant this report was last modified. + google.protobuf.Timestamp update_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The instant this report was created. + google.protobuf.Timestamp create_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The locale of this report. Locale is set from the user's + // locale at the time of the request. Locale can not be modified. + string locale = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The schedule options of this report. + ScheduleOptions schedule_options = 9 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for a running a report. +message RunReportRequest { + // Required. The report to run. + // Format: `networks/{network_code}/reports/{report_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Report" + } + ]; +} + +// `RunReport` operation metadata. +message RunReportMetadata { + // An estimate of how close this report is to being completed. Will always be + // 100 for failed and completed reports. + int32 percent_complete = 2; + + // The result's parent report. + string report = 4 [(google.api.resource_reference) = { + type: "admanager.googleapis.com/Report" + }]; +} + +// Response message for a completed `RunReport` operation. +message RunReportResponse { + // The unique name of the generated result. Use with `FetchReportResultRows` + // to retrieve data. + string report_result = 1; +} + +// Request object for `GetReport` method. +message GetReportRequest { + // Required. The resource name of the report. + // Format: `networks/{network_code}/reports/{report_id}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Report" + } + ]; +} + +// Request object for `ListReports` method. +message ListReportsRequest { + // Required. The parent, which owns this collection of reports. + // Format: `networks/{network_code}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "admanager.googleapis.com/Network" + } + ]; + + // Optional. The maximum number of `Reports` to return. The service may return + // fewer than this value. If unspecified, at most 50 `Reports` 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 `ListReports` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListReports` must + // match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to filter the response. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Expression to specify sorting order. + // See syntax details at + // https://developers.google.com/ad-manager/api/beta/filters#order + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Number of individual resources to skip while paginating. + int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response object for `ListReportsResponse` containing matching `Report` +// objects. +message ListReportsResponse { + // The `Report` objects from the specified network. + repeated Report reports = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; + + // Total number of `Report` objects. + // If a filter was included in the request, this reflects the total number + // after the filtering is applied. + // + // `total_size` will not be calculated in the response unless it has been + // included in a response field mask. The response field mask can be provided + // to the method by using the URL parameter `$fields` or `fields`, or by using + // the HTTP/gRPC header `X-Goog-FieldMask`. + // + // For more information, see + // https://developers.google.com/ad-manager/api/beta/field-masks + int32 total_size = 3; +} + +// Request object for `CreateReport` method. +message CreateReportRequest { + // Required. The parent resource where this `Report` will be created. + // Format: `networks/{network_code}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "admanager.googleapis.com/Report" + } + ]; + + // Required. The `Report` to create. + Report report = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request object for `UpdateReport` method. +message UpdateReportRequest { + // Required. The `Report` to update. + Report report = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of fields to update. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// The request message for the fetch report result rows endpoint. +message FetchReportResultRowsRequest { + // The report result being fetched. + // Format: + // `networks/{network_code}/reports/{report_id}/results/{report_result_id}` + string name = 1; + + // Optional. The maximum number of rows to return. The service may return + // fewer than this value. If unspecified, at most 1,000 rows will be returned. + // The maximum value is 10,000; values above 10,000 will be reduced to 10,000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `FetchReportResultRows` + // call. Provide this to retrieve the second and subsequent batches of rows. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response message for the fetch report result rows endpoint. +message FetchReportResultRowsResponse { + // Up to `page_size` rows of report data. + repeated Report.DataTable.Row rows = 1; + + // The time at which the report was scheduled to run. For non-scheduled + // reports, this is the time at which the report was requested to be run. + google.protobuf.Timestamp run_time = 2; + + // The computed fixed date ranges this report includes. + // Only returned with the first page of results (when page_token is not + // included in the request). + repeated Report.DateRange.FixedDateRange date_ranges = 3; + + // The computed comparison fixed date ranges this report includes. + // Only returned with the first page of results (when page_token is not + // included in the request). + repeated Report.DateRange.FixedDateRange comparison_date_ranges = 4; + + // The total number of rows available from this report. Useful for + // pagination. + // Only returned with the first page of results (when page_token is not + // included in the request). + int32 total_row_count = 5; + + // 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 = 6; +} + +// The definition of how a report should be run. +message ReportDefinition { + // Required. The list of dimensions to report on. If empty, the report will + // have no dimensions, and any metrics will be totals. + repeated Report.Dimension dimensions = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of metrics to report on. If empty, the report will have + // no metrics. + repeated Report.Metric metrics = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The filters for this report. + repeated Report.Filter filters = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The time zone the date range is defined in for this report. + // Defaults to publisher's time zone if not specified. Time zone in IANA + // format. Acceptable values depend on the report type. Publisher time zone is + // always accepted. Use "America/Los_Angeles" for pacific time, or "Etc/UTC" + // for UTC. + string time_zone = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The ISO 4217 currency code for this report. Defaults to publisher + // currency code if not specified. + string currency_code = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The primary date range of this report. + Report.DateRange date_range = 6 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The comparison date range of this report. If unspecified, the + // report will not have any comparison metrics. + optional Report.DateRange comparison_date_range = 9 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Custom Dimension keys that represent CUSTOM_DIMENSION_* + // dimensions. The index of this repeated field corresponds to the index on + // each dimension. For example, custom_dimension_key_ids[0] describes + // CUSTOM_DIMENSION_0_VALUE_ID and CUSTOM_DIMENSION_0_VALUE. + repeated int64 custom_dimension_key_ids = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Custom field IDs that represent LINE_ITEM_CUSTOM_FIELD_* + // dimensions. The index of this repeated field corresponds to the index on + // each dimension. For example, line_item_custom_field_ids[0] describes + // LINE_ITEM_CUSTOM_FIELD_0_OPTION_ID and LINE_ITEM_CUSTOM_FIELD_0_VALUE. + repeated int64 line_item_custom_field_ids = 11 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Custom field IDs that represent ORDER_CUSTOM_FIELD_* + // dimensions. The index of this repeated field corresponds to the index on + // each dimension. For example, order_custom_field_ids[0] describes + // ORDER_CUSTOM_FIELD_0_OPTION_ID and ORDER_CUSTOM_FIELD_0_VALUE. + repeated int64 order_custom_field_ids = 12 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Custom field IDs that represent CREATIVE_CUSTOM_FIELD_* + // dimensions. The index of this repeated field corresponds to the index on + // each dimension. For example, creative_custom_field_ids[0] describes + // CREATIVE_CUSTOM_FIELD_0_OPTION_ID and CREATIVE_CUSTOM_FIELD_0_VALUE. + repeated int64 creative_custom_field_ids = 13 + [(google.api.field_behavior) = OPTIONAL]; + + // Required. The type of this report. + Report.ReportType report_type = 8 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Include a time period column to introduce comparison columns in + // the report for each generated period. For example, set to "QUARTERS" here + // to have a column for each quarter present in the primary date range. If + // "PREVIOUS PERIOD" is specified in comparison_date_range, then each quarter + // column will also include comparison values for its relative previous + // quarter. + Report.TimePeriodColumn time_period_column = 10 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. List of flags for this report. Used to flag rows in a result set + // based on a set of defined filters. + repeated Report.Flag flags = 14 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Default sorts to apply to this report. + repeated Report.Sort sorts = 15 [(google.api.field_behavior) = OPTIONAL]; +} + +// The options for a scheduled report. +message ScheduleOptions { + // Condition for when to email the scheduled report. + enum DeliveryCondition { + // Never deliver report. + NEVER = 0; + + // Always deliver report. + ALWAYS = 1; + + // Deliver report when flag's conditions are met. + WHEN_FLAG_CONDITIONS_MET = 2; + } + + // Information pertaining to schedule itself. + Schedule schedule = 1; + + // Option for when to deliver the scheduled report. + DeliveryCondition delivery_condition = 2; + + // Optional. The flags evaluated when ReportDeliveryOption.WHEN_FLAG_PRESENT + // is specified. + repeated Report.Flag flags = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// The schedule for the report +message Schedule { + // Days of week to schedule report run. + message WeeklySchedule { + // Specifies days of the week on which to run report. + repeated google.type.DayOfWeek weekly_scheduled_days = 1; + } + + // Days of Month to schedule report run. + message MonthlySchedule { + // Specifies days of the month to run report. Range is from 1-31. + // Will ignore days that are not valid for the given month. + repeated int32 monthly_scheduled_days = 1; + } + + // Frequency to run report. + enum Frequency { + // No Frequency specified. + FREQUENCY_UNSPECIFIED = 0; + + // Schedule report to run every hour. + HOURLY = 1; + + // Schedule report to run twice a day (every 12 hours). + TWO_TIMES_DAILY = 2; + + // Schedule report to run three times a day (every 8 hours). + THREE_TIMES_DAILY = 3; + + // Schedule report to run four times a day (every 6 hours). + FOUR_TIMES_DAILY = 4; + + // Schedule report to run on a daily basis. + DAILY = 5; + + // Schedule report to run on a weekly basis. + WEEKLY = 6; + + // Schedule report to run on a monthly basis. + MONTHLY = 7; + } + + // The scheduled values based on the frequency selected. + // WEEKLY - uses WeeklySchedule + // MONTHLY - uses MonthlySchedule + oneof frequency_schedule { + // Days of week to schedule report run. + WeeklySchedule weekly_schedule = 6; + + // Days of month to schedule report run. + MonthlySchedule monthly_schedule = 7; + } + + // Date for the first run of the report. + google.type.Date start_date = 1; + + // Date for the final run of the report. + google.type.Date end_date = 2; + + // Frequency to run report. + Frequency frequency = 3; + + // Indicates start time for schedule to run + // Will use the time_zone from `ReportDefinition`. Defaults + // to the publisher's time zone if not specified. + // + // For HOURLY, TWO_TIMES_DAILY, THREE_TIMES_DAILY, or FOUR_TIMES_DAILY, this + // will be the time of day that the first report will run on the first day. + // For example, if the start time is 2:00 PM, and the frequency is + // THREE_TIMES_DAILY, the first day will have reports scheduled at 2:00 PM, + // 10:00 PM. Each subsequent day will have reports scheduled at 6:00 AM, + // 2:00 PM, 10:00 PM. + google.type.TimeOfDay start_time = 4; } diff --git a/google/ads/admanager/v1/role_enums.proto b/google/ads/admanager/v1/role_enums.proto new file mode 100644 index 000000000..710fb1720 --- /dev/null +++ b/google/ads/admanager/v1/role_enums.proto @@ -0,0 +1,41 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "RoleEnumsProto"; +option java_package = "com.google.ads.admanager.v1"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; + +// Wrapper message for +// [RoleStatus][google.ads.admanager.v1.RoleStatusEnum.RoleStatus] +message RoleStatusEnum { + // The status of the role. + enum RoleStatus { + // No value specified. + ROLE_STATUS_UNSPECIFIED = 0; + + // Role is active. + ACTIVE = 1; + + // Role is inactive. + INACTIVE = 2; + } +} diff --git a/google/ads/admanager/v1/role_messages.proto b/google/ads/admanager/v1/role_messages.proto new file mode 100644 index 000000000..ae016a138 --- /dev/null +++ b/google/ads/admanager/v1/role_messages.proto @@ -0,0 +1,59 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/ads/admanager/v1/role_enums.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "RoleMessagesProto"; +option java_package = "com.google.ads.admanager.v1"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; + +// The `Role` resource. +message Role { + option (google.api.resource) = { + type: "admanager.googleapis.com/Role" + pattern: "networks/{network_code}/roles/{role}" + plural: "roles" + singular: "role" + }; + + // Identifier. The resource name of the `Role`. + // Format: `networks/{network_code}/roles/{role_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. `Role` ID. + int64 role_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The display name of the `Role`. + string display_name = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The description of the `Role`. + string description = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Whether the `Role` is a built-in or custom user role. + bool built_in = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status of the `Role`. + RoleStatusEnum.RoleStatus status = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/admanager/v1/role_service.proto b/google/ads/admanager/v1/role_service.proto index b15e064db..b01b420ba 100644 --- a/google/ads/admanager/v1/role_service.proto +++ b/google/ads/admanager/v1/role_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 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.ads.admanager.v1; +import "google/ads/admanager/v1/role_messages.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -26,14 +27,14 @@ option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;adma option java_multiple_files = true; option java_outer_classname = "RoleServiceProto"; option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; -// Provides methods for handling Role objects. +// Provides methods for handling `Role` objects. service RoleService { option (google.api.default_host) = "admanager.googleapis.com"; - // API to retrieve a Role object. + // API to retrieve a `Role` object. rpc GetRole(GetRoleRequest) returns (Role) { option (google.api.http) = { get: "/v1/{name=networks/*/roles/*}" @@ -41,7 +42,7 @@ service RoleService { option (google.api.method_signature) = "name"; } - // API to retrieve a list of Role objects. + // API to retrieve a list of `Role` objects. rpc ListRoles(ListRolesRequest) returns (ListRolesResponse) { option (google.api.http) = { get: "/v1/{parent=networks/*}/roles" @@ -50,21 +51,7 @@ service RoleService { } } -// The Role resource. -message Role { - option (google.api.resource) = { - type: "admanager.googleapis.com/Role" - pattern: "networks/{network_code}/roles/{role}" - plural: "roles" - singular: "role" - }; - - // Identifier. The resource name of the Role. - // Format: `networks/{network_code}/roles/{role_id}` - string name = 1 [(google.api.field_behavior) = IDENTIFIER]; -} - -// Request object for GetRole method. +// Request object for `GetRole` method. message GetRoleRequest { // Required. The resource name of the Role. // Format: `networks/{network_code}/roles/{role_id}` @@ -74,7 +61,7 @@ message GetRoleRequest { ]; } -// Request object for ListRoles method. +// Request object for `ListRoles` method. message ListRolesRequest { // Required. The parent, which owns this collection of Roles. // Format: `networks/{network_code}` @@ -85,8 +72,8 @@ message ListRolesRequest { } ]; - // Optional. The maximum number of Roles to return. The service may return - // fewer than this value. If unspecified, at most 50 roles will be returned. + // Optional. The maximum number of `Roles` to return. The service may return + // fewer than this value. If unspecified, at most 50 `Roles` will be returned. // The maximum value is 1000; values above 1000 will be coerced to 1000. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; @@ -111,17 +98,16 @@ message ListRolesRequest { int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; } -// Response object for ListRolesRequest containing matching Role -// resources. +// Response object for `ListRolesRequest` containing matching `Role` objects. message ListRolesResponse { - // The Role from the specified network. + // The `Role` objects from the specified network. repeated Role roles = 1; // A token, which can be sent as `page_token` to retrieve the next page. // If this field is omitted, there are no subsequent pages. string next_page_token = 2; - // Total number of Roles. + // Total number of `Role` objects. // If a filter was included in the request, this reflects the total number // after the filtering is applied. // diff --git a/google/ads/admanager/v1/size.proto b/google/ads/admanager/v1/size.proto index 9e3befcc5..47d1eda4a 100644 --- a/google/ads/admanager/v1/size.proto +++ b/google/ads/admanager/v1/size.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 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.ads.admanager.v1; +import "google/ads/admanager/v1/size_type_enum.proto"; import "google/api/field_behavior.proto"; option csharp_namespace = "Google.Ads.AdManager.V1"; @@ -23,8 +24,8 @@ option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;adma option java_multiple_files = true; option java_outer_classname = "SizeProto"; option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; // Represents the dimensions of an AdUnit, LineItem, or Creative. message Size { @@ -44,40 +45,3 @@ message Size { // [LineItem](google.ads.admanager.v1.LineItem). SizeTypeEnum.SizeType size_type = 3 [(google.api.field_behavior) = REQUIRED]; } - -// Wrapper message for -// [SizeType][google.ads.admanager.v1.SizeTypeEnum.SizeType]. -message SizeTypeEnum { - // The different Size types for an ad. - enum SizeType { - // Default value. This value is unused. - SIZE_TYPE_UNSPECIFIED = 0; - - // Dimension based size, an actual height and width in pixels. - PIXEL = 1; - - // Size is expressed as a ratio. For example, 4:1 could be - // met by a 100 x 25 sized image. - ASPECT_RATIO = 2; - - // Out-of-page (Interstitial) size that is not related to the slot it is - // served. This must be used with 1x1 size. - INTERSTITIAL = 3; - - // Size is ignored. This must be used with 1x1 - // size. - IGNORED = 4; - - // Native size, which is a function of the how the client renders the - // creative. This must be used with 1x1 size. - NATIVE = 5; - - // Fluid size. Automatically sizes the ad by filling the width of the - // enclosing column and adjusting the height as appropriate. This must be - // used with 1x1 size. - FLUID = 6; - - // Audio size. Used with audio ads. This must be used with 1x1 size. - AUDIO = 7; - } -} diff --git a/google/ads/admanager/v1/size_type_enum.proto b/google/ads/admanager/v1/size_type_enum.proto new file mode 100644 index 000000000..87066762e --- /dev/null +++ b/google/ads/admanager/v1/size_type_enum.proto @@ -0,0 +1,62 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "SizeTypeEnumProto"; +option java_package = "com.google.ads.admanager.v1"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; + +// Wrapper message for +// [SizeType][google.ads.admanager.v1.SizeTypeEnum.SizeType]. +message SizeTypeEnum { + // The different Size types for an ad. + enum SizeType { + // Default value. This value is unused. + SIZE_TYPE_UNSPECIFIED = 0; + + // Dimension based size, an actual height and width in pixels. + PIXEL = 1; + + // Size is expressed as a ratio. For example, 4:1 could be + // met by a 100 x 25 sized image. + ASPECT_RATIO = 2; + + // Out-of-page (Interstitial) size that is not related to the slot it is + // served. This must be used with 1x1 size. + INTERSTITIAL = 3; + + // Size is ignored. This must be used with 1x1 + // size. + IGNORED = 4; + + // Native size, which is a function of the how the client renders the + // creative. This must be used with 1x1 size. + NATIVE = 5; + + // Fluid size. Automatically sizes the ad by filling the width of the + // enclosing column and adjusting the height as appropriate. This must be + // used with 1x1 size. + FLUID = 6; + + // Audio size. Used with audio ads. This must be used with 1x1 size. + AUDIO = 7; + } +} diff --git a/google/ads/admanager/v1/taxonomy_category_messages.proto b/google/ads/admanager/v1/taxonomy_category_messages.proto new file mode 100644 index 000000000..060594f1e --- /dev/null +++ b/google/ads/admanager/v1/taxonomy_category_messages.proto @@ -0,0 +1,70 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/ads/admanager/v1/taxonomy_type_enum.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "TaxonomyCategoryMessagesProto"; +option java_package = "com.google.ads.admanager.v1"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; + +// The `TaxonomyCategory` resource. +message TaxonomyCategory { + option (google.api.resource) = { + type: "admanager.googleapis.com/TaxonomyCategory" + pattern: "networks/{network_code}/taxonomyCategories/{taxonomy_category}" + plural: "taxonomyCategories" + singular: "taxonomyCategory" + }; + + // Identifier. The resource name of the `TaxonomyCategory`. + // Format: `networks/{network_code}/taxonomyCategories/{taxonomy_category_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. `TaxonomyCategory` ID. + int64 taxonomy_category_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Display name of the `TaxonomyCategory`. + string display_name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Whether this `TaxonomyCategory` only serves to group its + // children. + bool grouping_only = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The ID of the parent category this `TaxonomyCategory` descends + // from. + int64 parent_taxonomy_category_id = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The taxonomy that this `TaxonomyCategory` belongs to. + TaxonomyTypeEnum.TaxonomyType taxonomy_type = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The list of names of the ancestors of this `TaxonomyCategory`. + repeated string ancestor_names = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The list of IDs of the ancestors of this `TaxonomyCategory`. + repeated int64 ancestor_taxonomy_category_ids = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/admanager/v1/label_service.proto b/google/ads/admanager/v1/taxonomy_category_service.proto similarity index 59% rename from google/ads/admanager/v1/label_service.proto rename to google/ads/admanager/v1/taxonomy_category_service.proto index b18b571c6..203fa498f 100644 --- a/google/ads/admanager/v1/label_service.proto +++ b/google/ads/admanager/v1/taxonomy_category_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 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.ads.admanager.v1; +import "google/ads/admanager/v1/taxonomy_category_messages.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -24,59 +25,49 @@ import "google/api/resource.proto"; option csharp_namespace = "Google.Ads.AdManager.V1"; option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; option java_multiple_files = true; -option java_outer_classname = "LabelServiceProto"; +option java_outer_classname = "TaxonomyCategoryServiceProto"; option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; -// Provides methods for handling Label objects. -service LabelService { +// Provides methods for handling `TaxonomyCategory` objects. +service TaxonomyCategoryService { option (google.api.default_host) = "admanager.googleapis.com"; - // API to retrieve a Label object. - rpc GetLabel(GetLabelRequest) returns (Label) { + // API to retrieve a `TaxonomyCategory` object. + rpc GetTaxonomyCategory(GetTaxonomyCategoryRequest) + returns (TaxonomyCategory) { option (google.api.http) = { - get: "/v1/{name=networks/*/labels/*}" + get: "/v1/{name=networks/*/taxonomyCategories/*}" }; option (google.api.method_signature) = "name"; } - // API to retrieve a list of Label objects. - rpc ListLabels(ListLabelsRequest) returns (ListLabelsResponse) { + // API to retrieve a list of `TaxonomyCategory` objects. + rpc ListTaxonomyCategories(ListTaxonomyCategoriesRequest) + returns (ListTaxonomyCategoriesResponse) { option (google.api.http) = { - get: "/v1/{parent=networks/*}/labels" + get: "/v1/{parent=networks/*}/taxonomyCategories" }; option (google.api.method_signature) = "parent"; } } -// The Label resource. -message Label { - option (google.api.resource) = { - type: "admanager.googleapis.com/Label" - pattern: "networks/{network_code}/labels/{label}" - plural: "labels" - singular: "label" - }; - - // Identifier. The resource name of the Label. - // Format: `networks/{network_code}/labels/{label_id}` - string name = 1 [(google.api.field_behavior) = IDENTIFIER]; -} - -// Request object for GetLabel method. -message GetLabelRequest { - // Required. The resource name of the Label. - // Format: `networks/{network_code}/labels/{label_id}` +// Request object for `GetTaxonomyCategory` method. +message GetTaxonomyCategoryRequest { + // Required. The resource name of the TaxonomyCategory. + // Format: `networks/{network_code}/taxonomyCategories/{taxonomy_category_id}` string name = 1 [ (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { type: "admanager.googleapis.com/Label" } + (google.api.resource_reference) = { + type: "admanager.googleapis.com/TaxonomyCategory" + } ]; } -// Request object for ListLabels method. -message ListLabelsRequest { - // Required. The parent, which owns this collection of Labels. +// Request object for `ListTaxonomyCategories` method. +message ListTaxonomyCategoriesRequest { + // Required. The parent, which owns this collection of TaxonomyCategories. // Format: `networks/{network_code}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, @@ -85,16 +76,17 @@ message ListLabelsRequest { } ]; - // Optional. The maximum number of Labels to return. The service may return - // fewer than this value. If unspecified, at most 50 labels will be returned. - // The maximum value is 1000; values above 1000 will be coerced to 1000. + // Optional. The maximum number of `TaxonomyCategories` to return. The service + // may return fewer than this value. If unspecified, at most 50 + // `TaxonomyCategories` will be returned. The maximum value is 1000; values + // above 1000 will be coerced to 1000. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. A page token, received from a previous `ListLabels` call. - // Provide this to retrieve the subsequent page. + // Optional. A page token, received from a previous `ListTaxonomyCategories` + // call. Provide this to retrieve the subsequent page. // - // When paginating, all other parameters provided to `ListLabels` must match - // the call that provided the page token. + // When paginating, all other parameters provided to `ListTaxonomyCategories` + // must match the call that provided the page token. string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. Expression to filter the response. @@ -111,17 +103,17 @@ message ListLabelsRequest { int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; } -// Response object for ListLabelsRequest containing matching Label -// resources. -message ListLabelsResponse { - // The Label from the specified network. - repeated Label labels = 1; +// Response object for `ListTaxonomyCategoriesRequest` containing matching +// `TaxonomyCategory` objects. +message ListTaxonomyCategoriesResponse { + // The `TaxonomyCategory` objects. + repeated TaxonomyCategory taxonomy_categories = 1; // A token, which can be sent as `page_token` to retrieve the next page. // If this field is omitted, there are no subsequent pages. string next_page_token = 2; - // Total number of Labels. + // Total number of `TaxonomyCategory` objects. // If a filter was included in the request, this reflects the total number // after the filtering is applied. // diff --git a/google/ads/admanager/v1/taxonomy_type_enum.proto b/google/ads/admanager/v1/taxonomy_type_enum.proto new file mode 100644 index 000000000..1a8e642c3 --- /dev/null +++ b/google/ads/admanager/v1/taxonomy_type_enum.proto @@ -0,0 +1,51 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "TaxonomyTypeEnumProto"; +option java_package = "com.google.ads.admanager.v1"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; + +// Wrapper for +// [TaxonomyType][google.ads.admanager.v1.TaxonomyTypeEnum.TaxonomyType] +message TaxonomyTypeEnum { + // The taxonomy type of the IAB defined taxonomies. + // Used for Publisher provided signals. + enum TaxonomyType { + // Unspecified/not present + TAXONOMY_TYPE_UNSPECIFIED = 0; + + // The IAB Audience Taxonomy v1.1. + TAXONOMY_IAB_AUDIENCE_1_1 = 3; + + // The IAB Content Taxonomy v2.1. + TAXONOMY_IAB_CONTENT_2_1 = 4; + + // The IAB Content Taxonomy v2.2. + TAXONOMY_IAB_CONTENT_2_2 = 6; + + // The IAB Content Taxonomy v3.0. + TAXONOMY_IAB_CONTENT_3_0 = 5; + + // The PPS structured video signals taxonomy. + TAXONOMY_GOOGLE_STRUCTURED_VIDEO_1_0 = 7; + } +} diff --git a/google/ads/admanager/v1/team_messages.proto b/google/ads/admanager/v1/team_messages.proto new file mode 100644 index 000000000..84d958fa7 --- /dev/null +++ b/google/ads/admanager/v1/team_messages.proto @@ -0,0 +1,46 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "TeamMessagesProto"; +option java_package = "com.google.ads.admanager.v1"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; + +// A Team defines a grouping of users and what entities they have access to. +message Team { + option (google.api.resource) = { + type: "admanager.googleapis.com/Team" + pattern: "networks/{network_code}/teams/{team}" + plural: "teams" + singular: "team" + }; + + // Identifier. The resource name of the `Team`. + // Format: `networks/{network_code}/teams/{team_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. The unique ID of the Team. This value is assigned by Google. + // Teams that are created by Google will have negative IDs. + int64 team_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/admanager/v1/team_service.proto b/google/ads/admanager/v1/team_service.proto deleted file mode 100644 index 898f829e0..000000000 --- a/google/ads/admanager/v1/team_service.proto +++ /dev/null @@ -1,136 +0,0 @@ -// Copyright 2023 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.ads.admanager.v1; - -import "google/api/annotations.proto"; -import "google/api/client.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; - -option csharp_namespace = "Google.Ads.AdManager.V1"; -option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; -option java_multiple_files = true; -option java_outer_classname = "TeamServiceProto"; -option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\AdManager\\V1"; - -// Provides methods for handling Team objects. -service TeamService { - option (google.api.default_host) = "admanager.googleapis.com"; - - // API to retrieve a Team object. - rpc GetTeam(GetTeamRequest) returns (Team) { - option (google.api.http) = { - get: "/v1/{name=networks/*/teams/*}" - }; - option (google.api.method_signature) = "name"; - } - - // API to retrieve a list of Team objects. - rpc ListTeams(ListTeamsRequest) returns (ListTeamsResponse) { - option (google.api.http) = { - get: "/v1/{parent=networks/*}/teams" - }; - option (google.api.method_signature) = "parent"; - } -} - -// The Team resource. -message Team { - option (google.api.resource) = { - type: "admanager.googleapis.com/Team" - pattern: "networks/{network_code}/teams/{team}" - plural: "teams" - singular: "team" - }; - - // Identifier. The resource name of the Team. - // Format: `networks/{network_code}/teams/{team_id}` - string name = 1 [(google.api.field_behavior) = IDENTIFIER]; -} - -// Request object for GetTeam method. -message GetTeamRequest { - // Required. The resource name of the Team. - // Format: `networks/{network_code}/teams/{team_id}` - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { type: "admanager.googleapis.com/Team" } - ]; -} - -// Request object for ListTeams method. -message ListTeamsRequest { - // Required. The parent, which owns this collection of Teams. - // Format: `networks/{network_code}` - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "admanager.googleapis.com/Network" - } - ]; - - // Optional. The maximum number of Teams to return. The service may return - // fewer than this value. If unspecified, at most 50 teams will be returned. - // The maximum value is 1000; values above 1000 will be coerced to 1000. - int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. A page token, received from a previous `ListTeams` call. - // Provide this to retrieve the subsequent page. - // - // When paginating, all other parameters provided to `ListTeams` must match - // the call that provided the page token. - string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Expression to filter the response. - // See syntax details at - // https://developers.google.com/ad-manager/api/beta/filters - string filter = 4 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Expression to specify sorting order. - // See syntax details at - // https://developers.google.com/ad-manager/api/beta/filters#order - string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Number of individual resources to skip while paginating. - int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; -} - -// Response object for ListTeamsRequest containing matching Team -// resources. -message ListTeamsResponse { - // The Team from the specified network. - repeated Team teams = 1; - - // A token, which can be sent as `page_token` to retrieve the next page. - // If this field is omitted, there are no subsequent pages. - string next_page_token = 2; - - // Total number of Teams. - // If a filter was included in the request, this reflects the total number - // after the filtering is applied. - // - // `total_size` will not be calculated in the response unless it has been - // included in a response field mask. The response field mask can be provided - // to the method by using the URL parameter `$fields` or `fields`, or by using - // the HTTP/gRPC header `X-Goog-FieldMask`. - // - // For more information, see - // https://developers.google.com/ad-manager/api/beta/field-masks - int32 total_size = 3; -} diff --git a/google/ads/admanager/v1/time_unit_enum.proto b/google/ads/admanager/v1/time_unit_enum.proto new file mode 100644 index 000000000..a453934a2 --- /dev/null +++ b/google/ads/admanager/v1/time_unit_enum.proto @@ -0,0 +1,59 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "TimeUnitEnumProto"; +option java_package = "com.google.ads.admanager.v1"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; + +// Wrapper message for TimeUnit. +message TimeUnitEnum { + // Unit of time for the frequency cap. + enum TimeUnit { + // Default value. This value is unused. + TIME_UNIT_UNSPECIFIED = 0; + + // Minute + MINUTE = 1; + + // Hour + HOUR = 2; + + // Day + DAY = 3; + + // Week + WEEK = 4; + + // Month + MONTH = 5; + + // Lifetime + LIFETIME = 6; + + // Per pod of ads in a video stream. Only valid for entities in a + // VIDEO_PLAYER environment. + POD = 7; + + // Per video stream. Only valid for entities in a VIDEO_PLAYER environment. + STREAM = 8; + } +} diff --git a/google/ads/admanager/v1/user_messages.proto b/google/ads/admanager/v1/user_messages.proto new file mode 100644 index 000000000..6922280c4 --- /dev/null +++ b/google/ads/admanager/v1/user_messages.proto @@ -0,0 +1,78 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.admanager.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.AdManager.V1"; +option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;admanager"; +option java_multiple_files = true; +option java_outer_classname = "UserMessagesProto"; +option java_package = "com.google.ads.admanager.v1"; +option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; + +// The User resource. +message User { + option (google.api.resource) = { + type: "admanager.googleapis.com/User" + pattern: "networks/{network_code}/users/{user}" + plural: "users" + singular: "user" + }; + + // Identifier. The resource name of the User. + // Format: `networks/{network_code}/users/{user_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. `User` ID. + int64 user_id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The name of the User. It has a maximum length of 128 characters. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The email or login of the User. In order to create a new user, + // you must already have a Google Account. + string email = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The unique Role ID of the User. Roles that are created by Google + // will have negative IDs. + string role = 4 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "admanager.googleapis.com/Role" } + ]; + + // Output only. Specifies whether or not the User is active. An inactive user + // cannot log in to the system or perform any operations. + bool active = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. An identifier for the User that is meaningful to the publisher. + // This attribute has a maximum length of 255 characters. + string external_id = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Whether the user is an OAuth2 service account user. + // Service account users can only be added through the UI. + bool service_account = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The IANA Time Zone Database time zone, e.g. "America/New_York", + // used in the orders and line items UI for this User. If not provided, the UI + // then defaults to using the Network's timezone. This setting only affects + // the UI for this user and does not affect the timezone of any dates and + // times returned in API responses. + string orders_ui_local_time_zone = 9 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/ads/admanager/v1/user_service.proto b/google/ads/admanager/v1/user_service.proto index 265472e6f..8ff620967 100644 --- a/google/ads/admanager/v1/user_service.proto +++ b/google/ads/admanager/v1/user_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 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.ads.admanager.v1; +import "google/ads/admanager/v1/user_messages.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -26,78 +27,23 @@ option go_package = "google.golang.org/genproto/googleapis/ads/admanager/v1;adma option java_multiple_files = true; option java_outer_classname = "UserServiceProto"; option java_package = "com.google.ads.admanager.v1"; -option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\AdManager\\V1"; +option ruby_package = "Google::Ads::AdManager::V1"; // Provides methods for handling User objects. service UserService { option (google.api.default_host) = "admanager.googleapis.com"; // API to retrieve a User object. + // + // To get the current user, the resource name + // `networks/{networkCode}/users/me` can be used. rpc GetUser(GetUserRequest) returns (User) { option (google.api.http) = { get: "/v1/{name=networks/*/users/*}" }; option (google.api.method_signature) = "name"; } - - // API to retrieve a list of User objects. - rpc ListUsers(ListUsersRequest) returns (ListUsersResponse) { - option (google.api.http) = { - get: "/v1/{parent=networks/*}/users" - }; - option (google.api.method_signature) = "parent"; - } -} - -// The User resource. -message User { - option (google.api.resource) = { - type: "admanager.googleapis.com/User" - pattern: "networks/{network_code}/users/{user}" - plural: "users" - singular: "user" - }; - - // Identifier. The resource name of the User. - // Format: `networks/{network_code}/users/{user_id}` - string name = 1 [(google.api.field_behavior) = IDENTIFIER]; - - // Output only. `User` ID. - int64 user_id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. The name of the User. It has a maximum length of 128 characters. - string display_name = 2 [(google.api.field_behavior) = REQUIRED]; - - // Required. The email or login of the User. In order to create a new user, - // you must already have a Google Account. - string email = 3 [(google.api.field_behavior) = REQUIRED]; - - // Required. The unique Role ID of the User. Roles that are created by Google - // will have negative IDs. - string role = 4 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { type: "admanager.googleapis.com/Role" } - ]; - - // Output only. Specifies whether or not the User is active. An inactive user - // cannot log in to the system or perform any operations. - bool active = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Optional. An identifier for the User that is meaningful to the publisher. - // This attribute has a maximum length of 255 characters. - string external_id = 7 [(google.api.field_behavior) = OPTIONAL]; - - // Output only. Whether the user is an OAuth2 service account user. - // Service account users can only be added through the UI. - bool service_account = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Optional. The IANA Time Zone Database time zone, e.g. "America/New_York", - // used in the orders and line items UI for this User. If not provided, the UI - // then defaults to using the Network's timezone. This setting only affects - // the UI for this user and does not affect the timezone of any dates and - // times returned in API responses. - string orders_ui_local_time_zone = 9 [(google.api.field_behavior) = OPTIONAL]; } // Request object for GetUser method. @@ -109,63 +55,3 @@ message GetUserRequest { (google.api.resource_reference) = { type: "admanager.googleapis.com/User" } ]; } - -// Request object for ListUsers method. -message ListUsersRequest { - // Required. The parent, which owns this collection of Users. - // Format: `networks/{network_code}` - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "admanager.googleapis.com/Network" - } - ]; - - // Optional. The maximum number of Users to return. The service may return - // fewer than this value. If unspecified, at most 50 users will be returned. - // The maximum value is 1000; values above 1000 will be coerced to 1000. - int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. A page token, received from a previous `ListUsers` call. - // Provide this to retrieve the subsequent page. - // - // When paginating, all other parameters provided to `ListUsers` must match - // the call that provided the page token. - string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Expression to filter the response. - // See syntax details at - // https://developers.google.com/ad-manager/api/beta/filters - string filter = 4 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Expression to specify sorting order. - // See syntax details at - // https://developers.google.com/ad-manager/api/beta/filters#order - string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Number of individual resources to skip while paginating. - int32 skip = 6 [(google.api.field_behavior) = OPTIONAL]; -} - -// Response object for ListUsersRequest containing matching User resources. -message ListUsersResponse { - // The User from the specified network. - repeated User users = 1; - - // A token, which can be sent as `page_token` to retrieve the next page. - // If this field is omitted, there are no subsequent pages. - string next_page_token = 2; - - // Total number of Users. - // If a filter was included in the request, this reflects the total number - // after the filtering is applied. - // - // `total_size` will not be calculated in the response unless it has been - // included in a response field mask. The response field mask can be provided - // to the method by using the URL parameter `$fields` or `fields`, or by using - // the HTTP/gRPC header `X-Goog-FieldMask`. - // - // For more information, see - // https://developers.google.com/ad-manager/api/beta/field-masks - int32 total_size = 3; -} diff --git a/google/ads/googleads/v15/common/ad_asset.proto b/google/ads/googleads/v15/common/ad_asset.proto deleted file mode 100644 index 98f391904..000000000 --- a/google/ads/googleads/v15/common/ad_asset.proto +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2023 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.ads.googleads.v15.common; - -import "google/ads/googleads/v15/common/asset_policy.proto"; -import "google/ads/googleads/v15/enums/asset_performance_label.proto"; -import "google/ads/googleads/v15/enums/served_asset_field_type.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; -option java_multiple_files = true; -option java_outer_classname = "AdAssetProto"; -option java_package = "com.google.ads.googleads.v15.common"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::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.v15.enums.ServedAssetFieldTypeEnum.ServedAssetFieldType - pinned_field = 2; - - // The performance label of this text asset. - google.ads.googleads.v15.enums.AssetPerformanceLabelEnum.AssetPerformanceLabel - asset_performance_label = 5; - - // The policy summary of this text asset. - AdAssetPolicySummary policy_summary_info = 6; -} - -// An image asset used inside an ad. -message AdImageAsset { - // The Asset resource name of this image. - optional string asset = 2; -} - -// A video asset used inside an ad. -message AdVideoAsset { - // The Asset resource name of this video. - optional string asset = 2; -} - -// A media bundle asset used inside an ad. -message AdMediaBundleAsset { - // The Asset resource name of this media bundle. - optional string asset = 2; -} - -// A discovery carousel card asset used inside an ad. -message AdDiscoveryCarouselCardAsset { - // The Asset resource name of this discovery carousel card. - optional string asset = 1; -} - -// A call to action asset used inside an ad. -message AdCallToActionAsset { - // The Asset resource name of this call to action asset. - optional string asset = 1; -} diff --git a/google/ads/googleads/v15/enums/content_label_type.proto b/google/ads/googleads/v15/enums/content_label_type.proto deleted file mode 100644 index 31c8a1317..000000000 --- a/google/ads/googleads/v15/enums/content_label_type.proto +++ /dev/null @@ -1,85 +0,0 @@ -// Copyright 2023 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.ads.googleads.v15.enums; - -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; -option java_multiple_files = true; -option java_outer_classname = "ContentLabelTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::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/v15/errors/recommendation_error.proto b/google/ads/googleads/v15/errors/recommendation_error.proto deleted file mode 100644 index 0f06a96e7..000000000 --- a/google/ads/googleads/v15/errors/recommendation_error.proto +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright 2023 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.ads.googleads.v15.errors; - -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; -option java_multiple_files = true; -option java_outer_classname = "RecommendationErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::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; - - // The type of recommendation requested to apply is not supported. - RECOMMENDATION_TYPE_APPLY_NOT_SUPPORTED = 17; - - // The target multiplier specified is invalid. - INVALID_MULTIPLIER = 18; - } -} diff --git a/google/ads/googleads/v15/googleads_gapic.yaml b/google/ads/googleads/v15/googleads_gapic.yaml deleted file mode 100644 index 0c28933f8..000000000 --- a/google/ads/googleads/v15/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.V15.Services - go: - package_name: google.golang.org/google/ads/googleads/v15/services - java: - package_name: com.google.ads.googleads.v15.services - nodejs: - package_name: v15.services - php: - package_name: Google\Ads\GoogleAds\V15\Services - python: - package_name: google.ads.googleads_v15.gapic.services - ruby: - package_name: Google::Ads::Googleads::V15::Services -interfaces: -- name: google.ads.googleads.v15.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/v15/googleads_grpc_service_config.json b/google/ads/googleads/v15/googleads_grpc_service_config.json deleted file mode 100755 index a174c6934..000000000 --- a/google/ads/googleads/v15/googleads_grpc_service_config.json +++ /dev/null @@ -1,348 +0,0 @@ -{ - "methodConfig": [ - { - "name": [ - { - "service": "google.ads.googleads.v15.services.AccountBudgetProposalService" - }, - { - "service": "google.ads.googleads.v15.services.AccountLinkService" - }, - { - "service": "google.ads.googleads.v15.services.AdGroupAdLabelService" - }, - { - "service": "google.ads.googleads.v15.services.AdGroupAdService" - }, - { - "service": "google.ads.googleads.v15.services.AdGroupAssetService" - }, - { - "service": "google.ads.googleads.v15.services.AdGroupAssetSetService" - }, - { - "service": "google.ads.googleads.v15.services.AdGroupBidModifierService" - }, - { - "service": "google.ads.googleads.v15.services.AdGroupCriterionCustomizerService" - }, - { - "service": "google.ads.googleads.v15.services.AdGroupCriterionLabelService" - }, - { - "service": "google.ads.googleads.v15.services.AdGroupCriterionService" - }, - { - "service": "google.ads.googleads.v15.services.AdGroupCustomizerService" - }, - { - "service": "google.ads.googleads.v15.services.AdGroupExtensionSettingService" - }, - { - "service": "google.ads.googleads.v15.services.AdGroupFeedService" - }, - { - "service": "google.ads.googleads.v15.services.AdGroupLabelService" - }, - { - "service": "google.ads.googleads.v15.services.AdGroupService" - }, - { - "service": "google.ads.googleads.v15.services.AdParameterService" - }, - { - "service": "google.ads.googleads.v15.services.AdService" - }, - { - "service": "google.ads.googleads.v15.services.AssetGroupAssetService" - }, - { - "service": "google.ads.googleads.v15.services.AssetGroupListingGroupFilterService" - }, - { - "service": "google.ads.googleads.v15.services.AssetGroupService" - }, - { - "service": "google.ads.googleads.v15.services.AssetGroupSignalService" - }, - { - "service": "google.ads.googleads.v15.services.AssetService" - }, - { - "service": "google.ads.googleads.v15.services.AssetSetAssetService" - }, - { - "service": "google.ads.googleads.v15.services.AssetSetService" - }, - { - "service": "google.ads.googleads.v15.services.AudienceInsightsService" - }, - { - "service": "google.ads.googleads.v15.services.AudienceService" - }, - { - "service": "google.ads.googleads.v15.services.BatchJobService" - }, - { - "service": "google.ads.googleads.v15.services.BiddingDataExclusionService" - }, - { - "service": "google.ads.googleads.v15.services.BiddingSeasonalityAdjustmentService" - }, - { - "service": "google.ads.googleads.v15.services.BiddingStrategyService" - }, - { - "service": "google.ads.googleads.v15.services.BillingSetupService" - }, - { - "service": "google.ads.googleads.v15.services.BrandSuggestionService" - }, - { - "service": "google.ads.googleads.v15.services.CampaignAssetService" - }, - { - "service": "google.ads.googleads.v15.services.CampaignAssetSetService" - }, - { - "service": "google.ads.googleads.v15.services.CampaignBidModifierService" - }, - { - "service": "google.ads.googleads.v15.services.CampaignBudgetService" - }, - { - "service": "google.ads.googleads.v15.services.CampaignConversionGoalService" - }, - { - "service": "google.ads.googleads.v15.services.CampaignCriterionService" - }, - { - "service": "google.ads.googleads.v15.services.CampaignCustomizerService" - }, - { - "service": "google.ads.googleads.v15.services.CampaignDraftService" - }, - { - "service": "google.ads.googleads.v15.services.CampaignExtensionSettingService" - }, - { - "service": "google.ads.googleads.v15.services.CampaignFeedService" - }, - { - "service": "google.ads.googleads.v15.services.CampaignGroupService" - }, - { - "service": "google.ads.googleads.v15.services.CampaignLabelService" - }, - { - "service": "google.ads.googleads.v15.services.CampaignLifecycleService" - }, - { - "service": "google.ads.googleads.v15.services.CampaignService" - }, - { - "service": "google.ads.googleads.v15.services.CampaignSharedSetService" - }, - { - "service": "google.ads.googleads.v15.services.ConversionActionService" - }, - { - "service": "google.ads.googleads.v15.services.ConversionAdjustmentUploadService" - }, - { - "service": "google.ads.googleads.v15.services.ConversionCustomVariableService" - }, - { - "service": "google.ads.googleads.v15.services.ConversionGoalCampaignConfigService" - }, - { - "service": "google.ads.googleads.v15.services.ConversionUploadService" - }, - { - "service": "google.ads.googleads.v15.services.ConversionValueRuleService" - }, - { - "service": "google.ads.googleads.v15.services.ConversionValueRuleSetService" - }, - { - "service": "google.ads.googleads.v15.services.CustomAudienceService" - }, - { - "service": "google.ads.googleads.v15.services.CustomConversionGoalService" - }, - { - "service": "google.ads.googleads.v15.services.CustomInterestService" - }, - { - "service": "google.ads.googleads.v15.services.CustomerAssetService" - }, - { - "service": "google.ads.googleads.v15.services.CustomerAssetSetService" - }, - { - "service": "google.ads.googleads.v15.services.CustomerClientLinkService" - }, - { - "service": "google.ads.googleads.v15.services.CustomerConversionGoalService" - }, - { - "service": "google.ads.googleads.v15.services.CustomerCustomizerService" - }, - { - "service": "google.ads.googleads.v15.services.CustomerExtensionSettingService" - }, - { - "service": "google.ads.googleads.v15.services.CustomerFeedService" - }, - { - "service": "google.ads.googleads.v15.services.CustomerLabelService" - }, - { - "service": "google.ads.googleads.v15.services.CustomerLifecycleService" - }, - { - "service": "google.ads.googleads.v15.services.CustomerManagerLinkService" - }, - { - "service": "google.ads.googleads.v15.services.CustomerNegativeCriterionService" - }, - { - "service": "google.ads.googleads.v15.services.CustomerService" - }, - { - "service": "google.ads.googleads.v15.services.CustomerSkAdNetworkConversionValueSchemaService" - }, - { - "service": "google.ads.googleads.v15.services.CustomerUserAccessInvitationService" - }, - { - "service": "google.ads.googleads.v15.services.CustomerUserAccessService" - }, - { - "service": "google.ads.googleads.v15.services.CustomizerAttributeService" - }, - { - "service": "google.ads.googleads.v15.services.ExperimentArmService" - }, - { - "service": "google.ads.googleads.v15.services.ExperimentService" - }, - { - "service": "google.ads.googleads.v15.services.ExtensionFeedItemService" - }, - { - "service": "google.ads.googleads.v15.services.FeedItemService" - }, - { - "service": "google.ads.googleads.v15.services.FeedItemSetLinkService" - }, - { - "service": "google.ads.googleads.v15.services.FeedItemSetService" - }, - { - "service": "google.ads.googleads.v15.services.FeedItemTargetService" - }, - { - "service": "google.ads.googleads.v15.services.FeedMappingService" - }, - { - "service": "google.ads.googleads.v15.services.FeedService" - }, - { - "service": "google.ads.googleads.v15.services.GeoTargetConstantService" - }, - { - "service": "google.ads.googleads.v15.services.GoogleAdsFieldService" - }, - { - "service": "google.ads.googleads.v15.services.GoogleAdsService" - }, - { - "service": "google.ads.googleads.v15.services.InvoiceService" - }, - { - "service": "google.ads.googleads.v15.services.KeywordPlanAdGroupKeywordService" - }, - { - "service": "google.ads.googleads.v15.services.KeywordPlanAdGroupService" - }, - { - "service": "google.ads.googleads.v15.services.KeywordPlanCampaignKeywordService" - }, - { - "service": "google.ads.googleads.v15.services.KeywordPlanCampaignService" - }, - { - "service": "google.ads.googleads.v15.services.KeywordPlanIdeaService" - }, - { - "service": "google.ads.googleads.v15.services.KeywordPlanService" - }, - { - "service": "google.ads.googleads.v15.services.KeywordThemeConstantService" - }, - { - "service": "google.ads.googleads.v15.services.LabelService" - }, - { - "service": "google.ads.googleads.v15.services.OfflineUserDataJobService" - }, - { - "service": "google.ads.googleads.v15.services.PaymentsAccountService" - }, - { - "service": "google.ads.googleads.v15.services.ProductLinkInvitationService" - }, - { - "service": "google.ads.googleads.v15.services.ProductLinkService" - }, - { - "service": "google.ads.googleads.v15.services.ReachPlanService" - }, - { - "service": "google.ads.googleads.v15.services.RecommendationService" - }, - { - "service": "google.ads.googleads.v15.services.RecommendationSubscriptionService" - }, - { - "service": "google.ads.googleads.v15.services.RemarketingActionService" - }, - { - "service": "google.ads.googleads.v15.services.SharedCriterionService" - }, - { - "service": "google.ads.googleads.v15.services.SharedSetService" - }, - { - "service": "google.ads.googleads.v15.services.SmartCampaignSettingService" - }, - { - "service": "google.ads.googleads.v15.services.SmartCampaignSuggestService" - }, - { - "service": "google.ads.googleads.v15.services.ThirdPartyAppAnalyticsLinkService" - }, - { - "service": "google.ads.googleads.v15.services.TravelAssetSuggestionService" - }, - { - "service": "google.ads.googleads.v15.services.UserDataService" - }, - { - "service": "google.ads.googleads.v15.services.UserListService" - } - ], - "timeout": "14400s", - "retryPolicy": { - "initialBackoff": "5s", - "maxBackoff": "60s", - "backoffMultiplier": 1.3, - "retryableStatusCodes": [ - "UNAVAILABLE", - "DEADLINE_EXCEEDED" - ] - } - } - ] -} diff --git a/google/ads/googleads/v15/googleads_v15.yaml b/google/ads/googleads/v15/googleads_v15.yaml deleted file mode 100644 index fb6e33e1e..000000000 --- a/google/ads/googleads/v15/googleads_v15.yaml +++ /dev/null @@ -1,625 +0,0 @@ -type: google.api.Service -config_version: 3 -name: googleads.googleapis.com -title: Google Ads API - -apis: -- name: google.ads.googleads.v15.services.AccountBudgetProposalService -- name: google.ads.googleads.v15.services.AccountLinkService -- name: google.ads.googleads.v15.services.AdGroupAdLabelService -- name: google.ads.googleads.v15.services.AdGroupAdService -- name: google.ads.googleads.v15.services.AdGroupAssetService -- name: google.ads.googleads.v15.services.AdGroupAssetSetService -- name: google.ads.googleads.v15.services.AdGroupBidModifierService -- name: google.ads.googleads.v15.services.AdGroupCriterionCustomizerService -- name: google.ads.googleads.v15.services.AdGroupCriterionLabelService -- name: google.ads.googleads.v15.services.AdGroupCriterionService -- name: google.ads.googleads.v15.services.AdGroupCustomizerService -- name: google.ads.googleads.v15.services.AdGroupExtensionSettingService -- name: google.ads.googleads.v15.services.AdGroupFeedService -- name: google.ads.googleads.v15.services.AdGroupLabelService -- name: google.ads.googleads.v15.services.AdGroupService -- name: google.ads.googleads.v15.services.AdParameterService -- name: google.ads.googleads.v15.services.AdService -- name: google.ads.googleads.v15.services.AssetGroupAssetService -- name: google.ads.googleads.v15.services.AssetGroupListingGroupFilterService -- name: google.ads.googleads.v15.services.AssetGroupService -- name: google.ads.googleads.v15.services.AssetGroupSignalService -- name: google.ads.googleads.v15.services.AssetService -- name: google.ads.googleads.v15.services.AssetSetAssetService -- name: google.ads.googleads.v15.services.AssetSetService -- name: google.ads.googleads.v15.services.AudienceInsightsService -- name: google.ads.googleads.v15.services.AudienceService -- name: google.ads.googleads.v15.services.BatchJobService -- name: google.ads.googleads.v15.services.BiddingDataExclusionService -- name: google.ads.googleads.v15.services.BiddingSeasonalityAdjustmentService -- name: google.ads.googleads.v15.services.BiddingStrategyService -- name: google.ads.googleads.v15.services.BillingSetupService -- name: google.ads.googleads.v15.services.BrandSuggestionService -- name: google.ads.googleads.v15.services.CampaignAssetService -- name: google.ads.googleads.v15.services.CampaignAssetSetService -- name: google.ads.googleads.v15.services.CampaignBidModifierService -- name: google.ads.googleads.v15.services.CampaignBudgetService -- name: google.ads.googleads.v15.services.CampaignConversionGoalService -- name: google.ads.googleads.v15.services.CampaignCriterionService -- name: google.ads.googleads.v15.services.CampaignCustomizerService -- name: google.ads.googleads.v15.services.CampaignDraftService -- name: google.ads.googleads.v15.services.CampaignExtensionSettingService -- name: google.ads.googleads.v15.services.CampaignFeedService -- name: google.ads.googleads.v15.services.CampaignGroupService -- name: google.ads.googleads.v15.services.CampaignLabelService -- name: google.ads.googleads.v15.services.CampaignLifecycleService -- name: google.ads.googleads.v15.services.CampaignService -- name: google.ads.googleads.v15.services.CampaignSharedSetService -- name: google.ads.googleads.v15.services.ConversionActionService -- name: google.ads.googleads.v15.services.ConversionAdjustmentUploadService -- name: google.ads.googleads.v15.services.ConversionCustomVariableService -- name: google.ads.googleads.v15.services.ConversionGoalCampaignConfigService -- name: google.ads.googleads.v15.services.ConversionUploadService -- name: google.ads.googleads.v15.services.ConversionValueRuleService -- name: google.ads.googleads.v15.services.ConversionValueRuleSetService -- name: google.ads.googleads.v15.services.CustomAudienceService -- name: google.ads.googleads.v15.services.CustomConversionGoalService -- name: google.ads.googleads.v15.services.CustomInterestService -- name: google.ads.googleads.v15.services.CustomerAssetService -- name: google.ads.googleads.v15.services.CustomerAssetSetService -- name: google.ads.googleads.v15.services.CustomerClientLinkService -- name: google.ads.googleads.v15.services.CustomerConversionGoalService -- name: google.ads.googleads.v15.services.CustomerCustomizerService -- name: google.ads.googleads.v15.services.CustomerExtensionSettingService -- name: google.ads.googleads.v15.services.CustomerFeedService -- name: google.ads.googleads.v15.services.CustomerLabelService -- name: google.ads.googleads.v15.services.CustomerLifecycleService -- name: google.ads.googleads.v15.services.CustomerManagerLinkService -- name: google.ads.googleads.v15.services.CustomerNegativeCriterionService -- name: google.ads.googleads.v15.services.CustomerService -- name: google.ads.googleads.v15.services.CustomerSkAdNetworkConversionValueSchemaService -- name: google.ads.googleads.v15.services.CustomerUserAccessInvitationService -- name: google.ads.googleads.v15.services.CustomerUserAccessService -- name: google.ads.googleads.v15.services.CustomizerAttributeService -- name: google.ads.googleads.v15.services.ExperimentArmService -- name: google.ads.googleads.v15.services.ExperimentService -- name: google.ads.googleads.v15.services.ExtensionFeedItemService -- name: google.ads.googleads.v15.services.FeedItemService -- name: google.ads.googleads.v15.services.FeedItemSetLinkService -- name: google.ads.googleads.v15.services.FeedItemSetService -- name: google.ads.googleads.v15.services.FeedItemTargetService -- name: google.ads.googleads.v15.services.FeedMappingService -- name: google.ads.googleads.v15.services.FeedService -- name: google.ads.googleads.v15.services.GeoTargetConstantService -- name: google.ads.googleads.v15.services.GoogleAdsFieldService -- name: google.ads.googleads.v15.services.GoogleAdsService -- name: google.ads.googleads.v15.services.InvoiceService -- name: google.ads.googleads.v15.services.KeywordPlanAdGroupKeywordService -- name: google.ads.googleads.v15.services.KeywordPlanAdGroupService -- name: google.ads.googleads.v15.services.KeywordPlanCampaignKeywordService -- name: google.ads.googleads.v15.services.KeywordPlanCampaignService -- name: google.ads.googleads.v15.services.KeywordPlanIdeaService -- name: google.ads.googleads.v15.services.KeywordPlanService -- name: google.ads.googleads.v15.services.KeywordThemeConstantService -- name: google.ads.googleads.v15.services.LabelService -- name: google.ads.googleads.v15.services.OfflineUserDataJobService -- name: google.ads.googleads.v15.services.PaymentsAccountService -- name: google.ads.googleads.v15.services.ProductLinkInvitationService -- name: google.ads.googleads.v15.services.ProductLinkService -- name: google.ads.googleads.v15.services.ReachPlanService -- name: google.ads.googleads.v15.services.RecommendationService -- name: google.ads.googleads.v15.services.RecommendationSubscriptionService -- name: google.ads.googleads.v15.services.RemarketingActionService -- name: google.ads.googleads.v15.services.SharedCriterionService -- name: google.ads.googleads.v15.services.SharedSetService -- name: google.ads.googleads.v15.services.SmartCampaignSettingService -- name: google.ads.googleads.v15.services.SmartCampaignSuggestService -- name: google.ads.googleads.v15.services.ThirdPartyAppAnalyticsLinkService -- name: google.ads.googleads.v15.services.TravelAssetSuggestionService -- name: google.ads.googleads.v15.services.UserDataService -- name: google.ads.googleads.v15.services.UserListService - -types: -- name: google.ads.googleads.v15.errors.GoogleAdsFailure -- name: google.ads.googleads.v15.resources.BatchJob.BatchJobMetadata -- name: google.ads.googleads.v15.resources.OfflineUserDataJobMetadata -- name: google.ads.googleads.v15.services.PromoteExperimentMetadata -- name: google.ads.googleads.v15.services.ScheduleExperimentMetadata - -documentation: - summary: 'Manage your Google Ads accounts, campaigns, and reports with this API.' - overview: |- - The Google Ads API enables an app to integrate with the Google Ads - platform. You can efficiently retrieve and change your Google Ads data - using the API, making it ideal for managing large or complex accounts and - campaigns. - -http: - rules: - - selector: google.longrunning.Operations.CancelOperation - post: '/v15/{name=customers/*/operations/*}:cancel' - body: '*' - - selector: google.longrunning.Operations.DeleteOperation - delete: '/v15/{name=customers/*/operations/*}' - - selector: google.longrunning.Operations.GetOperation - get: '/v15/{name=customers/*/operations/*}' - - selector: google.longrunning.Operations.ListOperations - get: '/v15/{name=customers/*/operations}' - - selector: google.longrunning.Operations.WaitOperation - post: '/v15/{name=customers/*/operations/*}:wait' - body: '*' - -authentication: - rules: - - selector: google.ads.googleads.v15.services.AccountBudgetProposalService.MutateAccountBudgetProposal - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AccountLinkService.CreateAccountLink - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AccountLinkService.MutateAccountLink - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AdGroupAdLabelService.MutateAdGroupAdLabels - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AdGroupAdService.MutateAdGroupAds - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AdGroupAssetService.MutateAdGroupAssets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AdGroupAssetSetService.MutateAdGroupAssetSets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AdGroupBidModifierService.MutateAdGroupBidModifiers - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AdGroupCriterionService.MutateAdGroupCriteria - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AdGroupCustomizerService.MutateAdGroupCustomizers - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AdGroupFeedService.MutateAdGroupFeeds - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AdGroupLabelService.MutateAdGroupLabels - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AdGroupService.MutateAdGroups - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AdParameterService.MutateAdParameters - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AdService.GetAd - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AdService.MutateAds - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AssetGroupAssetService.MutateAssetGroupAssets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AssetGroupService.MutateAssetGroups - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AssetGroupSignalService.MutateAssetGroupSignals - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AssetService.MutateAssets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AssetSetAssetService.MutateAssetSetAssets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AssetSetService.MutateAssetSets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v15.services.AudienceInsightsService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.AudienceService.MutateAudiences - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v15.services.BatchJobService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.BiddingDataExclusionService.MutateBiddingDataExclusions - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.BiddingStrategyService.MutateBiddingStrategies - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.BillingSetupService.MutateBillingSetup - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.BrandSuggestionService.SuggestBrands - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CampaignAssetService.MutateCampaignAssets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CampaignAssetSetService.MutateCampaignAssetSets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CampaignBidModifierService.MutateCampaignBidModifiers - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CampaignBudgetService.MutateCampaignBudgets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CampaignConversionGoalService.MutateCampaignConversionGoals - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CampaignCriterionService.MutateCampaignCriteria - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CampaignCustomizerService.MutateCampaignCustomizers - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v15.services.CampaignDraftService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CampaignFeedService.MutateCampaignFeeds - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CampaignGroupService.MutateCampaignGroups - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CampaignLabelService.MutateCampaignLabels - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CampaignLifecycleService.ConfigureCampaignLifecycleGoals - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CampaignService.MutateCampaigns - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CampaignSharedSetService.MutateCampaignSharedSets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.ConversionActionService.MutateConversionActions - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.ConversionAdjustmentUploadService.UploadConversionAdjustments - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.ConversionCustomVariableService.MutateConversionCustomVariables - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.ConversionUploadService.UploadCallConversions - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.ConversionUploadService.UploadClickConversions - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.ConversionValueRuleService.MutateConversionValueRules - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.ConversionValueRuleSetService.MutateConversionValueRuleSets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CustomAudienceService.MutateCustomAudiences - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CustomConversionGoalService.MutateCustomConversionGoals - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CustomInterestService.MutateCustomInterests - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CustomerAssetService.MutateCustomerAssets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CustomerAssetSetService.MutateCustomerAssetSets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CustomerClientLinkService.MutateCustomerClientLink - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CustomerConversionGoalService.MutateCustomerConversionGoals - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CustomerCustomizerService.MutateCustomerCustomizers - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CustomerFeedService.MutateCustomerFeeds - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CustomerLabelService.MutateCustomerLabels - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CustomerLifecycleService.ConfigureCustomerLifecycleGoals - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CustomerManagerLinkService.MoveManagerLink - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CustomerManagerLinkService.MutateCustomerManagerLink - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v15.services.CustomerService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CustomerUserAccessService.MutateCustomerUserAccess - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.CustomizerAttributeService.MutateCustomizerAttributes - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.ExperimentArmService.MutateExperimentArms - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v15.services.ExperimentService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.ExtensionFeedItemService.MutateExtensionFeedItems - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.FeedItemService.MutateFeedItems - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.FeedItemSetLinkService.MutateFeedItemSetLinks - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.FeedItemSetService.MutateFeedItemSets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.FeedItemTargetService.MutateFeedItemTargets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.FeedMappingService.MutateFeedMappings - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.FeedService.MutateFeeds - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.GeoTargetConstantService.SuggestGeoTargetConstants - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.GoogleAdsFieldService.GetGoogleAdsField - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.GoogleAdsFieldService.SearchGoogleAdsFields - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v15.services.GoogleAdsService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.InvoiceService.ListInvoices - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v15.services.KeywordPlanIdeaService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.KeywordPlanService.MutateKeywordPlans - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.KeywordThemeConstantService.SuggestKeywordThemeConstants - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.LabelService.MutateLabels - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v15.services.OfflineUserDataJobService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.PaymentsAccountService.ListPaymentsAccounts - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.ProductLinkInvitationService.UpdateProductLinkInvitation - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.ProductLinkService.CreateProductLink - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.ProductLinkService.RemoveProductLink - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v15.services.ReachPlanService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.RecommendationService.ApplyRecommendation - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.RecommendationService.DismissRecommendation - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.RecommendationSubscriptionService.MutateRecommendationSubscription - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.RemarketingActionService.MutateRemarketingActions - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.SharedCriterionService.MutateSharedCriteria - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.SharedSetService.MutateSharedSets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.SmartCampaignSettingService.GetSmartCampaignStatus - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.SmartCampaignSettingService.MutateSmartCampaignSettings - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: 'google.ads.googleads.v15.services.SmartCampaignSuggestService.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.TravelAssetSuggestionService.SuggestTravelAssets - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.services.UserDataService.UploadUserData - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/adwords - - selector: google.ads.googleads.v15.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/v15/services/product_link_invitation_service.proto b/google/ads/googleads/v15/services/product_link_invitation_service.proto deleted file mode 100644 index 169283e95..000000000 --- a/google/ads/googleads/v15/services/product_link_invitation_service.proto +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2023 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.ads.googleads.v15.services; - -import "google/ads/googleads/v15/enums/product_link_invitation_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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; -option java_multiple_files = true; -option java_outer_classname = "ProductLinkInvitationServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; -option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; - -// This service allows management of product link invitations from Google Ads -// accounts to other accounts. -service ProductLinkInvitationService { - option (google.api.default_host) = "googleads.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - - // Update a product link invitation. - rpc UpdateProductLinkInvitation(UpdateProductLinkInvitationRequest) - returns (UpdateProductLinkInvitationResponse) { - option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/productLinkInvitations:update" - body: "*" - }; - option (google.api.method_signature) = - "customer_id,product_link_invitation_status,resource_name"; - } -} - -// Request message for -// [ProductLinkInvitationService.UpdateProductLinkInvitation][google.ads.googleads.v15.services.ProductLinkInvitationService.UpdateProductLinkInvitation]. -message UpdateProductLinkInvitationRequest { - // Required. The ID of the customer being modified. - string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The product link invitation to be created. - google.ads.googleads.v15.enums.ProductLinkInvitationStatusEnum - .ProductLinkInvitationStatus product_link_invitation_status = 2 - [(google.api.field_behavior) = REQUIRED]; - - // Required. Resource name of the product link invitation. - string resource_name = 3 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/ProductLinkInvitation" - } - ]; -} - -// Response message for product link invitation update. -message UpdateProductLinkInvitationResponse { - // Result of the update. - string resource_name = 1 [(google.api.resource_reference) = { - type: "googleads.googleapis.com/ProductLinkInvitation" - }]; -} diff --git a/google/ads/googleads/v17/common/bidding.proto b/google/ads/googleads/v17/common/bidding.proto index a2b3d8410..25eb20c69 100644 --- a/google/ads/googleads/v17/common/bidding.proto +++ b/google/ads/googleads/v17/common/bidding.proto @@ -16,6 +16,8 @@ syntax = "proto3"; package google.ads.googleads.v17.common; +import "google/ads/googleads/v17/enums/fixed_cpm_goal.proto"; +import "google/ads/googleads/v17/enums/fixed_cpm_target_frequency_time_unit.proto"; import "google/ads/googleads/v17/enums/target_frequency_time_unit.proto"; import "google/ads/googleads/v17/enums/target_impression_share_location.proto"; @@ -216,3 +218,34 @@ message PercentCpc { // not. optional bool enhanced_cpc_enabled = 4; } + +// Fixed CPM (cost per thousand impression) bidding strategy. A manual bidding +// strategy with a fixed CPM. +message FixedCpm { + // Fixed CPM bidding goal. Determines the exact bidding optimization + // parameters. + google.ads.googleads.v17.enums.FixedCpmGoalEnum.FixedCpmGoal goal = 1; + + // Additional information related to bidding goal. + oneof goal_info { + // Target frequency bidding goal details. + FixedCpmTargetFrequencyGoalInfo target_frequency_info = 2; + } +} + +// Target frequency bidding goal details for Fixed CPM bidding strategy. Only +// relevant if the goal of the bidding strategy is `TARGET_FREQUENCY`. +message FixedCpmTargetFrequencyGoalInfo { + // Target frequency count represents the number of times an advertiser wants + // to show the ad to target a single user. + int64 target_count = 1; + + // Time window expressing the period over which you want to reach + // the specified target_count. + google.ads.googleads.v17.enums.FixedCpmTargetFrequencyTimeUnitEnum + .FixedCpmTargetFrequencyTimeUnit time_unit = 2; +} + +// Target CPV (cost per view) bidding strategy. An automated bidding strategy +// that sets bids to optimize performance given the target CPV you set. +message TargetCpv {} diff --git a/google/ads/googleads/v17/common/segments.proto b/google/ads/googleads/v17/common/segments.proto index f3c8f34c4..89fd4d14b 100644 --- a/google/ads/googleads/v17/common/segments.proto +++ b/google/ads/googleads/v17/common/segments.proto @@ -18,6 +18,7 @@ package google.ads.googleads.v17.common; import "google/ads/googleads/v17/common/criteria.proto"; import "google/ads/googleads/v17/enums/ad_destination_type.proto"; +import "google/ads/googleads/v17/enums/ad_format_type.proto"; import "google/ads/googleads/v17/enums/ad_network_type.proto"; import "google/ads/googleads/v17/enums/budget_campaign_association_status.proto"; import "google/ads/googleads/v17/enums/click_type.proto"; @@ -84,6 +85,10 @@ message Segments { google.ads.googleads.v17.enums.AdDestinationTypeEnum.AdDestinationType ad_destination_type = 136; + // Ad Format type. + google.ads.googleads.v17.enums.AdFormatTypeEnum.AdFormatType ad_format_type = + 191; + // Ad network type. google.ads.googleads.v17.enums.AdNetworkTypeEnum.AdNetworkType ad_network_type = 3; @@ -443,6 +448,9 @@ message Segments { // iOS Store Kit Ad Network postback sequence index. optional int64 sk_ad_network_postback_sequence_index = 154; + // The version of the SKAdNetwork API used. + optional string sk_ad_network_version = 192; + // 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. diff --git a/google/ads/googleads/v17/common/text_label.proto b/google/ads/googleads/v17/common/text_label.proto index 0314cefbe..b2dbb698c 100644 --- a/google/ads/googleads/v17/common/text_label.proto +++ b/google/ads/googleads/v17/common/text_label.proto @@ -27,7 +27,7 @@ option ruby_package = "Google::Ads::GoogleAds::V17::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 + // Background color of the label in HEX 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; diff --git a/google/ads/googleads/v17/enums/ad_format_type.proto b/google/ads/googleads/v17/enums/ad_format_type.proto new file mode 100644 index 000000000..a984e748d --- /dev/null +++ b/google/ads/googleads/v17/enums/ad_format_type.proto @@ -0,0 +1,85 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdFormatTypeProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing ad format types. + +// Container for enumeration of Google Ads format types. +message AdFormatTypeEnum { + // Enumerates Google Ads format types. + // + // Note that this segmentation is available only for Video and Discovery + // campaigns. For assets, only video assets are supported. + enum AdFormatType { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Value assigned to formats (such as experimental formats) which don't + // support format segmentation in Video and Discovery campaigns. + // + // Note that these formats may change categories in the future, for example + // if an experimental format is exposed or a new format is added. We + // strongly recommend to not rely on this field for long term decisions. + OTHER = 2; + + // Value assigned for Video TrueView for Action campaigns statistics. + // + // Note that statistics with this value may change categories in the future, + // for example if format segmentation support is added for new campaign + // types. We strongly recommend to not rely on this field for long term + // decisions. + UNSEGMENTED = 3; + + // Skippable in-stream ads. + INSTREAM_SKIPPABLE = 4; + + // Non-skippable in-stream ads. + INSTREAM_NON_SKIPPABLE = 5; + + // In-feed YouTube or discovery image ads served on feed surfaces (e.g. + // Discover Feed, YouTube Home, etc.). + INFEED = 6; + + // Short (<7 secs) in-stream non-skippable YouTube ads. + BUMPER = 7; + + // Outstream ads. + OUTSTREAM = 8; + + // Masthead ads. + MASTHEAD = 9; + + // Audio ads. + AUDIO = 10; + + // Vertical full-screen video or discovery image ad served on YouTube Shorts + // or BrandConnect ads served as organic YouTube Shorts. + SHORTS = 11; + } +} diff --git a/google/ads/googleads/v17/enums/bidding_strategy_type.proto b/google/ads/googleads/v17/enums/bidding_strategy_type.proto index 4f7f0bbd7..d9b5c494f 100644 --- a/google/ads/googleads/v17/enums/bidding_strategy_type.proto +++ b/google/ads/googleads/v17/enums/bidding_strategy_type.proto @@ -46,6 +46,9 @@ message BiddingStrategyTypeEnum { // them for clicks where they seem less likely. ENHANCED_CPC = 2; + // Fixed CPM is a manual bidding strategy with a fixed CPM. + FIXED_CPM = 19; + // 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 @@ -96,6 +99,10 @@ message BiddingStrategyTypeEnum { // impressions (CPM) you set. TARGET_CPM = 14; + // Target CPV is an automated bidding strategy that sets bids to optimize + // performance given the average target cost per view. + TARGET_CPV = 20; + // 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). diff --git a/google/ads/googleads/v17/enums/change_status_resource_type.proto b/google/ads/googleads/v17/enums/change_status_resource_type.proto index 11297b524..eb20e9336 100644 --- a/google/ads/googleads/v17/enums/change_status_resource_type.proto +++ b/google/ads/googleads/v17/enums/change_status_resource_type.proto @@ -89,5 +89,8 @@ message ChangeStatusResourceTypeEnum { // A CombinedAudience resource change. COMBINED_AUDIENCE = 20; + + // An AssetGroup resource change. + ASSET_GROUP = 21; } } diff --git a/google/ads/googleads/v17/enums/fixed_cpm_goal.proto b/google/ads/googleads/v17/enums/fixed_cpm_goal.proto new file mode 100644 index 000000000..ca2e3d54d --- /dev/null +++ b/google/ads/googleads/v17/enums/fixed_cpm_goal.proto @@ -0,0 +1,48 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FixedCpmGoalProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing the goal of the Fixed CPM bidding strategy. + +// Container for describing the goal of the Fixed CPM bidding strategy. +message FixedCpmGoalEnum { + // Enum describing the goal of the Fixed CPM bidding strategy. + enum FixedCpmGoal { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Maximize reach, that is the number of users who saw the ads in this + // campaign. + REACH = 2; + + // Target Frequency CPM bidder. Optimize bidding to reach a single user with + // the requested frequency. + TARGET_FREQUENCY = 3; + } +} diff --git a/google/ads/googleads/v17/enums/fixed_cpm_target_frequency_time_unit.proto b/google/ads/googleads/v17/enums/fixed_cpm_target_frequency_time_unit.proto new file mode 100644 index 000000000..8d80cab3b --- /dev/null +++ b/google/ads/googleads/v17/enums/fixed_cpm_target_frequency_time_unit.proto @@ -0,0 +1,45 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v17.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FixedCpmTargetFrequencyTimeUnitProto"; +option java_package = "com.google.ads.googleads.v17.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V17::Enums"; + +// Proto file describing bidding goal target frequency time units for Fixed +// CPM bidding strategy. + +// Container for enum describing bidding goal target frequency time units. +message FixedCpmTargetFrequencyTimeUnitEnum { + // An enum describing the time window over which the bidding is optimized to + // meet the target frequency when using Fixed CPM bidding strategy. + enum FixedCpmTargetFrequencyTimeUnit { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Optimize bidding to reach target frequency in 30 days. + MONTHLY = 2; + } +} diff --git a/google/ads/googleads/v17/enums/user_list_customer_type_category.proto b/google/ads/googleads/v17/enums/user_list_customer_type_category.proto index 3461d4bb0..4b7a92e0e 100644 --- a/google/ads/googleads/v17/enums/user_list_customer_type_category.proto +++ b/google/ads/googleads/v17/enums/user_list_customer_type_category.proto @@ -63,5 +63,26 @@ message UserListCustomerTypeCategoryEnum { // Customer type category for cart abandoners. CART_ABANDONERS = 10; + + // Customer type category for loyalty tier 1 members. + LOYALTY_TIER_1_MEMBERS = 11; + + // Customer type category for loyalty tier 2 members. + LOYALTY_TIER_2_MEMBERS = 12; + + // Customer type category for loyalty tier 3 members. + LOYALTY_TIER_3_MEMBERS = 13; + + // Customer type category for loyalty tier 4 members. + LOYALTY_TIER_4_MEMBERS = 14; + + // Customer type category for loyalty tier 5 members. + LOYALTY_TIER_5_MEMBERS = 15; + + // Customer type category for loyalty tier 6 members. + LOYALTY_TIER_6_MEMBERS = 16; + + // Customer type category for loyalty tier 7 members. + LOYALTY_TIER_7_MEMBERS = 17; } } diff --git a/google/ads/googleads/v17/errors/automatically_created_asset_removal_error.proto b/google/ads/googleads/v17/errors/automatically_created_asset_removal_error.proto new file mode 100644 index 000000000..eeeb1c579 --- /dev/null +++ b/google/ads/googleads/v17/errors/automatically_created_asset_removal_error.proto @@ -0,0 +1,56 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v17.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AutomaticallyCreatedAssetRemovalErrorProto"; +option java_package = "com.google.ads.googleads.v17.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; + +// Proto file describing automatically created asset removal errors. + +// Container for enum describing possible automatically created asset removal +// errors. +message AutomaticallyCreatedAssetRemovalErrorEnum { + // Enum describing possible automatically created asset removal errors. + enum AutomaticallyCreatedAssetRemovalError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The ad does not exist. + AD_DOES_NOT_EXIST = 2; + + // Ad type is not supported. Only Responsive Search Ad type is supported. + INVALID_AD_TYPE = 3; + + // The asset does not exist. + ASSET_DOES_NOT_EXIST = 4; + + // The asset field type does not match. + ASSET_FIELD_TYPE_DOES_NOT_MATCH = 5; + + // Not an automatically created asset. + NOT_AN_AUTOMATICALLY_CREATED_ASSET = 6; + } +} diff --git a/google/ads/googleads/v17/errors/errors.proto b/google/ads/googleads/v17/errors/errors.proto index ab58b57f8..ad68d78b6 100644 --- a/google/ads/googleads/v17/errors/errors.proto +++ b/google/ads/googleads/v17/errors/errors.proto @@ -47,6 +47,7 @@ import "google/ads/googleads/v17/errors/audience_error.proto"; import "google/ads/googleads/v17/errors/audience_insights_error.proto"; import "google/ads/googleads/v17/errors/authentication_error.proto"; import "google/ads/googleads/v17/errors/authorization_error.proto"; +import "google/ads/googleads/v17/errors/automatically_created_asset_removal_error.proto"; import "google/ads/googleads/v17/errors/batch_job_error.proto"; import "google/ads/googleads/v17/errors/bidding_error.proto"; import "google/ads/googleads/v17/errors/bidding_strategy_error.proto"; @@ -158,6 +159,7 @@ import "google/ads/googleads/v17/errors/resource_access_denied_error.proto"; import "google/ads/googleads/v17/errors/resource_count_limit_exceeded_error.proto"; import "google/ads/googleads/v17/errors/search_term_insight_error.proto"; import "google/ads/googleads/v17/errors/setting_error.proto"; +import "google/ads/googleads/v17/errors/shareable_preview_error.proto"; import "google/ads/googleads/v17/errors/shared_criterion_error.proto"; import "google/ads/googleads/v17/errors/shared_set_error.proto"; import "google/ads/googleads/v17/errors/shopping_product_error.proto"; @@ -734,6 +736,15 @@ message ErrorCode { // The reasons for error in querying shopping product. ShoppingProductErrorEnum.ShoppingProductError shopping_product_error = 184; + + // The reasons for error in automatically created asset removal action. + AutomaticallyCreatedAssetRemovalErrorEnum + .AutomaticallyCreatedAssetRemovalError + automatically_created_asset_removal_error = 185; + + // The reasons for the shareable preview error. + ShareablePreviewErrorEnum.ShareablePreviewError shareable_preview_error = + 186; } } diff --git a/google/ads/googleads/v17/errors/shareable_preview_error.proto b/google/ads/googleads/v17/errors/shareable_preview_error.proto new file mode 100644 index 000000000..e3ae5aee7 --- /dev/null +++ b/google/ads/googleads/v17/errors/shareable_preview_error.proto @@ -0,0 +1,46 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v17.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ShareablePreviewErrorProto"; +option java_package = "com.google.ads.googleads.v17.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V17::Errors"; + +// Proto file describing shareable preview errors. + +// Container for enum describing possible shareable preview errors. +message ShareablePreviewErrorEnum { + // Enum describing possible shareable preview errors. + enum ShareablePreviewError { + // Enum unspecified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The maximum of 10 asset groups was exceeded. + TOO_MANY_ASSET_GROUPS_IN_REQUEST = 2; + + // asset group does not exist under this customer. + ASSET_GROUP_DOES_NOT_EXIST_UNDER_THIS_CUSTOMER = 3; + } +} diff --git a/google/ads/googleads/v17/googleads_grpc_service_config.json b/google/ads/googleads/v17/googleads_grpc_service_config.json index 4f7e0b3e6..cda24b96e 100755 --- a/google/ads/googleads/v17/googleads_grpc_service_config.json +++ b/google/ads/googleads/v17/googleads_grpc_service_config.json @@ -314,6 +314,9 @@ { "service": "google.ads.googleads.v17.services.RemarketingActionService" }, + { + "service": "google.ads.googleads.v17.services.ShareablePreviewService" + }, { "service": "google.ads.googleads.v17.services.SharedCriterionService" }, diff --git a/google/ads/googleads/v17/googleads_v17.yaml b/google/ads/googleads/v17/googleads_v17.yaml index 2d0bcbfcf..d82690635 100644 --- a/google/ads/googleads/v17/googleads_v17.yaml +++ b/google/ads/googleads/v17/googleads_v17.yaml @@ -108,6 +108,7 @@ apis: - name: google.ads.googleads.v17.services.RecommendationService - name: google.ads.googleads.v17.services.RecommendationSubscriptionService - name: google.ads.googleads.v17.services.RemarketingActionService +- name: google.ads.googleads.v17.services.ShareablePreviewService - name: google.ads.googleads.v17.services.SharedCriterionService - name: google.ads.googleads.v17.services.SharedSetService - name: google.ads.googleads.v17.services.SmartCampaignSettingService @@ -170,6 +171,10 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.AdGroupAdService.RemoveAutomaticallyCreatedAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords - selector: google.ads.googleads.v17.services.AdGroupAssetService.MutateAdGroupAssets oauth: canonical_scopes: |- @@ -590,6 +595,10 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v17.services.ShareablePreviewService.GenerateShareablePreviews + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords - selector: google.ads.googleads.v17.services.SharedCriterionService.MutateSharedCriteria oauth: canonical_scopes: |- diff --git a/google/ads/googleads/v17/resources/ad_group.proto b/google/ads/googleads/v17/resources/ad_group.proto index 2a0ac58d1..d79e0d199 100644 --- a/google/ads/googleads/v17/resources/ad_group.proto +++ b/google/ads/googleads/v17/resources/ad_group.proto @@ -161,6 +161,14 @@ message AdGroup { // value stored here is 1,000,000 * [fraction]. optional int64 percent_cpc_bid_micros = 45; + // The fixed amount in micros that the advertiser pays for every thousand + // impressions of the ad. + optional int64 fixed_cpm_micros = 64; + + // Average amount in micros that the advertiser is willing to pay for every ad + // view. + optional int64 target_cpv_micros = 65; + // True if optimized targeting is enabled. Optimized Targeting is the // replacement for Audience Expansion. bool optimized_targeting_enabled = 59; diff --git a/google/ads/googleads/v17/resources/campaign.proto b/google/ads/googleads/v17/resources/campaign.proto index 08036d002..5ed9079c8 100644 --- a/google/ads/googleads/v17/resources/campaign.proto +++ b/google/ads/googleads/v17/resources/campaign.proto @@ -307,6 +307,26 @@ message Campaign { [(google.api.field_behavior) = IMMUTABLE]; } + // Settings for Video campaign. + message VideoCampaignSettings { + // For campaigns using responsive ad containers inventory controls determine + // on which inventories the ads can be shown. This only applies for + // campaigns with the bidding strategies TARGET_CPM and FIXED_CPM. + message VideoAdInventoryControl { + // Determine if VideoResponsiveAds can be used for in-stream video ads. + optional bool allow_in_stream = 1; + + // Determine if VideoResponsiveAds can be used for in-feed video ads. + optional bool allow_in_feed = 2; + + // Determine if VideoResponsiveAds can be used as shorts format. + optional bool allow_shorts = 3; + } + + // Inventory control for responsive ad containers in reach campaigns. + VideoAdInventoryControl video_ad_inventory_control = 1; + } + // Asset automation setting contains pair of AssetAutomationType and the // asset automation opt-in/out status message AssetAutomationSetting { @@ -415,6 +435,9 @@ message Campaign { // Settings for Demand Gen campaign. DemandGenCampaignSettings demand_gen_campaign_settings = 91; + // Settings for Video campaign. + VideoCampaignSettings video_campaign_settings = 94; + // Settings for Real-Time Bidding, a feature only available for campaigns // targeting the Ad Exchange network. google.ads.googleads.v17.common.RealTimeBiddingSetting @@ -687,5 +710,12 @@ message Campaign { // A bidding strategy that automatically optimizes cost per thousand // impressions. google.ads.googleads.v17.common.TargetCpm target_cpm = 41; + + // A manual bidding strategy with a fixed CPM. + google.ads.googleads.v17.common.FixedCpm fixed_cpm = 92; + + // An automated bidding strategy that sets bids to optimize performance + // given the target CPV you set. + google.ads.googleads.v17.common.TargetCpv target_cpv = 93; } } diff --git a/google/ads/googleads/v17/resources/change_status.proto b/google/ads/googleads/v17/resources/change_status.proto index f94b5771b..af30da728 100644 --- a/google/ads/googleads/v17/resources/change_status.proto +++ b/google/ads/googleads/v17/resources/change_status.proto @@ -198,4 +198,12 @@ message ChangeStatus { type: "googleads.googleapis.com/CombinedAudience" } ]; + + // Output only. The AssetGroup affected by this change. + string asset_group = 41 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroup" + } + ]; } diff --git a/google/ads/googleads/v17/resources/offline_conversion_upload_client_summary.proto b/google/ads/googleads/v17/resources/offline_conversion_upload_client_summary.proto index 79cca66f5..9aef2cdef 100644 --- a/google/ads/googleads/v17/resources/offline_conversion_upload_client_summary.proto +++ b/google/ads/googleads/v17/resources/offline_conversion_upload_client_summary.proto @@ -40,16 +40,16 @@ option objc_class_prefix = "GAA"; option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; -// Offline conversion upload client summary. +// Offline conversion upload summary at customer level. message OfflineConversionUploadClientSummary { option (google.api.resource) = { type: "googleads.googleapis.com/OfflineConversionUploadClientSummary" pattern: "customers/{customer_id}/offlineConversionUploadClientSummaries/{client}" }; - // Output only. The resource name of the offline conversion upload client - // summary. Offline conversion upload client summary resource names have the - // form: + // Output only. The resource name of the offline conversion upload summary at + // customer level. Offline conversion upload client summary resource names + // have the form: // // `customers/{customer_id}/offlineConversionUploadClientSummaries/{client}` string resource_name = 1 [ @@ -65,8 +65,7 @@ message OfflineConversionUploadClientSummary { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Overall status for offline conversion client summary. Status - // is generated - // from most recent calendar day with upload stats + // is generated from most recent calendar day with upload stats. google.ads.googleads.v17.enums.OfflineConversionDiagnosticStatusEnum .OfflineConversionDiagnosticStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -80,6 +79,12 @@ message OfflineConversionUploadClientSummary { // Output only. Successful rate. double success_rate = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Total count of pending uploaded events. + int64 pending_event_count = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The ratio of total pending events to total events. + double pending_rate = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Date for the latest upload batch. The format is "yyyy-mm-dd // hh:mm:ss", and it's in the time zone of the Google Ads account. string last_upload_date_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -106,6 +111,9 @@ message OfflineConversionSummary { // Output only. Total count of failed event. int64 failed_count = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Total count of pending uploaded event. + int64 pending_count = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Dimension key for summary. oneof dimension_key { // Output only. Dimension key for last N jobs. diff --git a/google/ads/googleads/v17/resources/offline_conversion_upload_conversion_action_summary.proto b/google/ads/googleads/v17/resources/offline_conversion_upload_conversion_action_summary.proto new file mode 100644 index 000000000..2440250ce --- /dev/null +++ b/google/ads/googleads/v17/resources/offline_conversion_upload_conversion_action_summary.proto @@ -0,0 +1,96 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v17.resources; + +import "google/ads/googleads/v17/enums/offline_conversion_diagnostic_status_enum.proto"; +import "google/ads/googleads/v17/enums/offline_event_upload_client_enum.proto"; +import "google/ads/googleads/v17/resources/offline_conversion_upload_client_summary.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V17.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "OfflineConversionUploadConversionActionSummaryProto"; +option java_package = "com.google.ads.googleads.v17.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V17::Resources"; + +// Offline conversion upload summary at conversion action level. +message OfflineConversionUploadConversionActionSummary { + option (google.api.resource) = { + type: "googleads.googleapis.com/OfflineConversionUploadConversionActionSummary" + pattern: "customers/{customer_id}/offlineConversionUploadConversionActionSummaries/{conversion_type_id}~{client}" + }; + + // Output only. The resource name of the offline conversion upload summary at + // conversion action level. Offline conversion upload conversion action + // summary resource names have the form: + // + // `customers/{customer_id}/offlineConversionUploadConversionActionSummaries/{conversion_action_id}~{client}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/OfflineConversionUploadConversionActionSummary" + } + ]; + + // Output only. Client type of the upload event. + google.ads.googleads.v17.enums.OfflineEventUploadClientEnum + .OfflineEventUploadClient client = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Conversion action id. + int64 conversion_action_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the conversion action. + string conversion_action_name = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Overall status for offline conversion upload conversion action + // summary. Status is generated from most recent calendar day with upload + // stats. + google.ads.googleads.v17.enums.OfflineConversionDiagnosticStatusEnum + .OfflineConversionDiagnosticStatus status = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Total count of uploaded events. + int64 total_event_count = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Total count of successful uploaded events. + int64 successful_event_count = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Total count of pending uploaded events. + int64 pending_event_count = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Date for the latest upload batch. The format is "yyyy-mm-dd + // hh:mm:ss", and it's in the time zone of the Google Ads account. + string last_upload_date_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Summary of history stats by last N days. + repeated OfflineConversionSummary daily_summaries = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Summary of history stats by last N jobs. + repeated OfflineConversionSummary job_summaries = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Details for each error code. Alerts are generated from most + // recent calendar day with upload stats. + repeated OfflineConversionAlert alerts = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v17/services/ad_group_ad_service.proto b/google/ads/googleads/v17/services/ad_group_ad_service.proto index c27abab88..7df51f036 100644 --- a/google/ads/googleads/v17/services/ad_group_ad_service.proto +++ b/google/ads/googleads/v17/services/ad_group_ad_service.proto @@ -17,12 +17,14 @@ syntax = "proto3"; package google.ads.googleads.v17.services; import "google/ads/googleads/v17/common/policy.proto"; +import "google/ads/googleads/v17/enums/asset_field_type.proto"; import "google/ads/googleads/v17/enums/response_content_type.proto"; import "google/ads/googleads/v17/resources/ad_group_ad.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; @@ -96,6 +98,27 @@ service AdGroupAdService { }; option (google.api.method_signature) = "customer_id,operations"; } + + // Remove automatically created assets from an ad. + // + // List of thrown errors: + // [AdError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [AutomaticallyCreatedAssetRemovalError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc RemoveAutomaticallyCreatedAssets(RemoveAutomaticallyCreatedAssetsRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v17/{ad_group_ad=customers/*/adGroupAds/*}:removeAutomaticallyCreatedAssets" + body: "*" + }; + option (google.api.method_signature) = "ad_group_ad,assets_with_field_type"; + } } // Request message for @@ -175,3 +198,33 @@ message MutateAdGroupAdResult { // "MUTABLE_RESOURCE". google.ads.googleads.v17.resources.AdGroupAd ad_group_ad = 2; } + +// Request message for +// [AdGroupAdService.RemoveAutomaticallyCreatedAssetsRequest][]. +message RemoveAutomaticallyCreatedAssetsRequest { + // Required. The resource name of the AdGroupAd from which to remove + // automatically created assets. + string ad_group_ad = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAd" + } + ]; + + // Required. List of assets with field type to be removed from the AdGroupAd. + repeated AssetsWithFieldType assets_with_field_type = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// The combination of system asset and field type to remove. +message AssetsWithFieldType { + // Required. The resource name of the asset to be removed. + string asset = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "googleads.googleapis.com/Asset" } + ]; + + // Required. The asset field type. + google.ads.googleads.v17.enums.AssetFieldTypeEnum.AssetFieldType + asset_field_type = 2 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/ads/googleads/v17/services/audience_insights_service.proto b/google/ads/googleads/v17/services/audience_insights_service.proto index 1367c5cd5..29287e077 100644 --- a/google/ads/googleads/v17/services/audience_insights_service.proto +++ b/google/ads/googleads/v17/services/audience_insights_service.proto @@ -147,6 +147,30 @@ service AudienceInsightsService { }; option (google.api.method_signature) = "customer_id,audience"; } + + // Returns a collection of audience attributes along with estimates of the + // overlap between their potential YouTube reach and that of a given input + // attribute. + // + // List of thrown errors: + // [AudienceInsightsError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + rpc GenerateAudienceOverlapInsights(GenerateAudienceOverlapInsightsRequest) + returns (GenerateAudienceOverlapInsightsResponse) { + option (google.api.http) = { + post: "/v17/customers/{customer_id=*}:generateAudienceOverlapInsights" + body: "*" + }; + option (google.api.method_signature) = + "customer_id,country_location,primary_attribute,dimensions"; + } } // Request message for @@ -305,6 +329,13 @@ message ListAudienceInsightsAttributesRequest { // SUB_COUNTRY_LOCATION attributes are not requested will return an error. repeated google.ads.googleads.v17.common.LocationInfo location_country_filters = 5; + + // If present, potential YouTube reach estimates within the specified market + // will be returned for attributes for which they are available. Reach is + // only available for the AGE_RANGE, GENDER, AFFINITY_USER_INTEREST and + // IN_MARKET_USER_INTEREST dimensions, and may not be available for every + // attribute of those dimensions in every market. + google.ads.googleads.v17.common.LocationInfo youtube_reach_location = 6; } // Response message for @@ -332,6 +363,69 @@ message ListInsightsEligibleDatesResponse { google.ads.googleads.v17.common.DateRange last_thirty_days = 2; } +// Request message for +// [AudienceInsightsService.GenerateAudienceOverlapInsights][google.ads.googleads.v17.services.AudienceInsightsService.GenerateAudienceOverlapInsights]. +message GenerateAudienceOverlapInsightsRequest { + // Required. The ID of the customer. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The country in which to calculate the sizes and overlaps of + // audiences. + google.ads.googleads.v17.common.LocationInfo country_location = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The audience attribute that should be intersected with all other + // eligible audiences. This must be an Affinity or In-Market UserInterest, an + // AgeRange or a Gender. + AudienceInsightsAttribute primary_attribute = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The types of attributes of which to calculate the overlap with + // the primary_attribute. The values must be a subset of + // AFFINITY_USER_INTEREST, IN_MARKET_USER_INTEREST, AGE_RANGE and GENDER. + repeated google.ads.googleads.v17.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.GenerateAudienceOverlapInsights][google.ads.googleads.v17.services.AudienceInsightsService.GenerateAudienceOverlapInsights]. +message GenerateAudienceOverlapInsightsResponse { + // Metadata for the primary attribute, including potential YouTube reach. + AudienceInsightsAttributeMetadata primary_attribute_metadata = 1; + + // Lists of attributes and their overlap with the primary attribute, one list + // per requested dimension. + repeated DimensionOverlapResult dimension_results = 2; +} + +// A list of audience attributes of a single dimension, including their overlap +// with a primary attribute, returned as part of a +// [GenerateAudienceOverlapInsightsResponse][google.ads.googleads.v17.services.GenerateAudienceOverlapInsightsResponse]. +message DimensionOverlapResult { + // The dimension of all the attributes in this section. + google.ads.googleads.v17.enums.AudienceInsightsDimensionEnum + .AudienceInsightsDimension dimension = 1; + + // The attributes and their overlap with the primary attribute. + repeated AudienceOverlapItem items = 2; +} + +// An audience attribute, with metadata including the overlap between this +// attribute's potential YouTube reach and that of a primary attribute. +message AudienceOverlapItem { + // The attribute and its metadata, including potential YouTube reach. + AudienceInsightsAttributeMetadata attribute_metadata = 1; + + // The estimated size of the intersection of this audience attribute with the + // primary attribute, that is, the number of reachable YouTube users who match + // BOTH the primary attribute and this one. + int64 potential_youtube_reach_intersection = 2; +} + // An audience attribute that can be used to request insights about the // audience. message AudienceInsightsAttribute { @@ -451,6 +545,14 @@ message AudienceInsightsAttributeMetadata { // "/Apparel/Clothing/Outerwear". string display_info = 5; + // An estimate of the number of reachable YouTube users matching this + // attribute in the requested location, or zero if that information is not + // available for this attribute. Only populated in + // GenerateAudienceOverlapInsightsResponses and in + // ListAudienceInsightsAttributesResponses when youtube_reach_location is + // present in the request. + int64 potential_youtube_reach = 9; + // Metadata specific to the dimension of this attribute. oneof dimension_metadata { // Special metadata for a YouTube channel. diff --git a/google/ads/googleads/v17/services/custom_conversion_goal_service.proto b/google/ads/googleads/v17/services/custom_conversion_goal_service.proto index 9ba2398c4..0478edfad 100644 --- a/google/ads/googleads/v17/services/custom_conversion_goal_service.proto +++ b/google/ads/googleads/v17/services/custom_conversion_goal_service.proto @@ -92,7 +92,7 @@ message CustomConversionGoalOperation { // 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}' + // 'customers/{customer_id}/customConversionGoals/{goal_id}' string remove = 3 [(google.api.resource_reference) = { type: "googleads.googleapis.com/CustomConversionGoal" }]; diff --git a/google/ads/googleads/v17/services/google_ads_service.proto b/google/ads/googleads/v17/services/google_ads_service.proto index 440dd80c9..4e3e70065 100644 --- a/google/ads/googleads/v17/services/google_ads_service.proto +++ b/google/ads/googleads/v17/services/google_ads_service.proto @@ -166,6 +166,7 @@ import "google/ads/googleads/v17/resources/media_file.proto"; import "google/ads/googleads/v17/resources/mobile_app_category_constant.proto"; import "google/ads/googleads/v17/resources/mobile_device_constant.proto"; import "google/ads/googleads/v17/resources/offline_conversion_upload_client_summary.proto"; +import "google/ads/googleads/v17/resources/offline_conversion_upload_conversion_action_summary.proto"; import "google/ads/googleads/v17/resources/offline_user_data_job.proto"; import "google/ads/googleads/v17/resources/operating_system_version_constant.proto"; import "google/ads/googleads/v17/resources/paid_organic_search_term_view.proto"; @@ -1036,10 +1037,15 @@ message GoogleAdsRow { google.ads.googleads.v17.resources.MobileDeviceConstant mobile_device_constant = 98; - // Offline conversion upload client summary. + // Offline conversion upload summary at customer level. google.ads.googleads.v17.resources.OfflineConversionUploadClientSummary offline_conversion_upload_client_summary = 216; + // Offline conversion upload summary at conversion type level. + google.ads.googleads.v17.resources + .OfflineConversionUploadConversionActionSummary + offline_conversion_upload_conversion_action_summary = 228; + // The offline user data job referenced in the query. google.ads.googleads.v17.resources.OfflineUserDataJob offline_user_data_job = 137; diff --git a/google/ads/googleads/v17/services/shareable_preview_service.proto b/google/ads/googleads/v17/services/shareable_preview_service.proto new file mode 100644 index 000000000..9e7dabd2f --- /dev/null +++ b/google/ads/googleads/v17/services/shareable_preview_service.proto @@ -0,0 +1,102 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v17.services; + +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.V17.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v17/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ShareablePreviewServiceProto"; +option java_package = "com.google.ads.googleads.v17.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V17::Services"; + +// Service to generate Shareable Previews. +service ShareablePreviewService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Returns the requested Shareable Preview. + rpc GenerateShareablePreviews(GenerateShareablePreviewsRequest) + returns (GenerateShareablePreviewsResponse) { + option (google.api.http) = { + post: "/v17/customers/{customer_id=*}:generateShareablePreviews" + body: "*" + }; + option (google.api.method_signature) = "customer_id,shareable_previews"; + } +} + +// Request message for +// [ShareablePreviewService.GenerateShareablePreviews][google.ads.googleads.v17.services.ShareablePreviewService.GenerateShareablePreviews]. +message GenerateShareablePreviewsRequest { + // Required. The customer creating the shareable previews request. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of shareable previews to generate. + repeated ShareablePreview shareable_previews = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// A shareable preview with its identifier. +message ShareablePreview { + // Required. Asset group of the shareable preview. + AssetGroupIdentifier asset_group_identifier = 1 + [(google.api.field_behavior) = REQUIRED]; +} + +// Asset group of the shareable preview. +message AssetGroupIdentifier { + // Required. The asset group identifier. + int64 asset_group_id = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for +// [ShareablePreviewService.GenerateShareablePreviews][google.ads.googleads.v17.services.ShareablePreviewService.GenerateShareablePreviews]. +message GenerateShareablePreviewsResponse { + // List of generate shareable preview results. + repeated ShareablePreviewOrError responses = 1; +} + +// Result of the generate shareable preview. +message ShareablePreviewOrError { + // The asset group of the shareable preview. + AssetGroupIdentifier asset_group_identifier = 3; + + // The shareable preview result or error. + oneof generate_shareable_preview_response { + // The shareable preview result. + ShareablePreviewResult shareable_preview_result = 1; + + // The shareable preview partial failure error. + google.rpc.Status partial_failure_error = 2; + } +} + +// Message to hold a shareable preview result. +message ShareablePreviewResult { + // The shareable preview URL. + string shareable_preview_url = 1; + + // Expiration date time using the ISO-8601 format. + string expiration_date_time = 2; +} diff --git a/google/ads/googleads/v15/BUILD.bazel b/google/ads/googleads/v18/BUILD.bazel similarity index 73% rename from google/ads/googleads/v15/BUILD.bazel rename to google/ads/googleads/v18/BUILD.bazel index 291784dc4..2db5905bb 100644 --- a/google/ads/googleads/v15/BUILD.bazel +++ b/google/ads/googleads/v18/BUILD.bazel @@ -26,11 +26,11 @@ proto_library( name = "googleads_proto", srcs = [], deps = [ - "//google/ads/googleads/v15/common:common_proto", - "//google/ads/googleads/v15/enums:enums_proto", - "//google/ads/googleads/v15/errors:errors_proto", - "//google/ads/googleads/v15/resources:resources_proto", - "//google/ads/googleads/v15/services:services_proto", + "//google/ads/googleads/v18/common:common_proto", + "//google/ads/googleads/v18/enums:enums_proto", + "//google/ads/googleads/v18/errors:errors_proto", + "//google/ads/googleads/v18/resources:resources_proto", + "//google/ads/googleads/v18/services:services_proto", ], ) @@ -58,13 +58,13 @@ java_gapic_library( ], gapic_yaml = "googleads_gapic.yaml", grpc_service_config = ":googleads_grpc_service_config.json", - service_yaml = "googleads_v15.yaml", + service_yaml = "googleads_v18.yaml", deps = [ - "//google/ads/googleads/v15/common:common_java_proto", - "//google/ads/googleads/v15/enums:enums_java_proto", - "//google/ads/googleads/v15/resources:resources_java_proto", - "//google/ads/googleads/v15/services:services_java_grpc", - "//google/ads/googleads/v15/services:services_java_proto", + "//google/ads/googleads/v18/common:common_java_proto", + "//google/ads/googleads/v18/enums:enums_java_proto", + "//google/ads/googleads/v18/resources:resources_java_proto", + "//google/ads/googleads/v18/services:services_java_grpc", + "//google/ads/googleads/v18/services:services_java_proto", ], ) @@ -73,7 +73,7 @@ java_gapic_library( java_gapic_test( name = "googleads_java_gapic_suite", test_classes = [ - "com.google.ads.googleads.v15.services.CampaignServiceClientTest", + "com.google.ads.googleads.v18.services.CampaignServiceClientTest", ], runtime_deps = [":googleads_java_gapic_test"], ) @@ -82,13 +82,13 @@ java_gapic_assembly_gradle_pkg( name = "googleads-java", deps = [ ":googleads_java_gapic", - "//google/ads/googleads/v15:googleads_proto", - "//google/ads/googleads/v15/common:common_java_proto", - "//google/ads/googleads/v15/enums:enums_java_proto", - "//google/ads/googleads/v15/errors:errors_java_proto", - "//google/ads/googleads/v15/resources:resources_java_proto", - "//google/ads/googleads/v15/services:services_java_grpc", - "//google/ads/googleads/v15/services:services_java_proto", + "//google/ads/googleads/v18:googleads_proto", + "//google/ads/googleads/v18/common:common_java_proto", + "//google/ads/googleads/v18/enums:enums_java_proto", + "//google/ads/googleads/v18/errors:errors_java_proto", + "//google/ads/googleads/v18/resources:resources_java_proto", + "//google/ads/googleads/v18/services:services_java_grpc", + "//google/ads/googleads/v18/services:services_java_proto", ], ) @@ -120,7 +120,7 @@ php_gapic_library( srcs = [":googleads_proto"], gapic_yaml = "googleads_gapic.yaml", grpc_service_config = "googleads_grpc_service_config.json", - service_yaml = "googleads_v15.yaml", + service_yaml = "googleads_v18.yaml", generate_snippets = False, migration_mode = "NEW_SURFACE_ONLY", deps = [ @@ -153,9 +153,9 @@ csharp_gapic_library( ":googleads_proto_with_info", ], grpc_service_config = "googleads_grpc_service_config.json", - service_yaml = "googleads_v15.yaml", + service_yaml = "googleads_v18.yaml", deps = [ - "//google/ads/googleads/v15/services:services_csharp_grpc", + "//google/ads/googleads/v18/services:services_csharp_grpc", ], ) @@ -163,12 +163,12 @@ csharp_gapic_assembly_pkg( name = "googleads-csharp", deps = [ ":googleads_csharp_gapic", - "//google/ads/googleads/v15/common:common_csharp_proto", - "//google/ads/googleads/v15/enums:enums_csharp_proto", - "//google/ads/googleads/v15/errors:errors_csharp_proto", - "//google/ads/googleads/v15/resources:resources_csharp_proto", - "//google/ads/googleads/v15/services:services_csharp_grpc", - "//google/ads/googleads/v15/services:services_csharp_proto", + "//google/ads/googleads/v18/common:common_csharp_proto", + "//google/ads/googleads/v18/enums:enums_csharp_proto", + "//google/ads/googleads/v18/errors:errors_csharp_proto", + "//google/ads/googleads/v18/resources:resources_csharp_proto", + "//google/ads/googleads/v18/services:services_csharp_grpc", + "//google/ads/googleads/v18/services:services_csharp_proto", ], ) @@ -190,19 +190,19 @@ ruby_ads_gapic_library( ":overrides.:namespace.Googleads=GoogleAds", ], grpc_service_config = "googleads_grpc_service_config.json", - service_yaml = "googleads_v15.yaml", + service_yaml = "googleads_v18.yaml", ) ruby_gapic_assembly_pkg( name = "googleads-ruby", deps = [ ":googleads_ruby_gapic", - "//google/ads/googleads/v15/common:common_ruby_proto", - "//google/ads/googleads/v15/enums:enums_ruby_proto", - "//google/ads/googleads/v15/errors:errors_ruby_proto", - "//google/ads/googleads/v15/resources:resources_ruby_proto", - "//google/ads/googleads/v15/services:services_ruby_grpc", - "//google/ads/googleads/v15/services:services_ruby_proto", + "//google/ads/googleads/v18/common:common_ruby_proto", + "//google/ads/googleads/v18/enums:enums_ruby_proto", + "//google/ads/googleads/v18/errors:errors_ruby_proto", + "//google/ads/googleads/v18/resources:resources_ruby_proto", + "//google/ads/googleads/v18/services:services_ruby_grpc", + "//google/ads/googleads/v18/services:services_ruby_proto", ], ) @@ -218,7 +218,7 @@ load( py_gapic_library( name = "googleads_py_gapic", srcs = [":googleads_proto_with_info"], - service_yaml = "googleads_v15.yaml", + service_yaml = "googleads_v18.yaml", grpc_service_config = "googleads_grpc_service_config.json", opt_args = [ "old-naming", @@ -252,8 +252,8 @@ nodejs_gapic_library( extra_protoc_parameters = ["metadata"], grpc_service_config = "googleads_grpc_service_config.json", main_service = "GoogleAdsService", - package = "google.ads.googleads.v15", - service_yaml = "googleads_v15.yaml", + package = "google.ads.googleads.v18", + service_yaml = "googleads_v18.yaml", deps = [], ) diff --git a/google/ads/googleads/v15/common/BUILD.bazel b/google/ads/googleads/v18/common/BUILD.bazel similarity index 98% rename from google/ads/googleads/v15/common/BUILD.bazel rename to google/ads/googleads/v18/common/BUILD.bazel index 228c7abb6..12eb94fa0 100644 --- a/google/ads/googleads/v15/common/BUILD.bazel +++ b/google/ads/googleads/v18/common/BUILD.bazel @@ -26,7 +26,7 @@ proto_library( name = "common_proto", srcs = glob(["*.proto"]), deps = [ - "//google/ads/googleads/v15/enums:enums_proto", + "//google/ads/googleads/v18/enums:enums_proto", "//google/api:annotations_proto", "//google/api:field_behavior_proto", "//google/api:resource_proto", diff --git a/google/ads/googleads/v18/common/ad_asset.proto b/google/ads/googleads/v18/common/ad_asset.proto new file mode 100644 index 000000000..39c181d5d --- /dev/null +++ b/google/ads/googleads/v18/common/ad_asset.proto @@ -0,0 +1,114 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.common; + +import "google/ads/googleads/v18/common/asset_policy.proto"; +import "google/ads/googleads/v18/enums/asset_performance_label.proto"; +import "google/ads/googleads/v18/enums/served_asset_field_type.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; +option java_multiple_files = true; +option java_outer_classname = "AdAssetProto"; +option java_package = "com.google.ads.googleads.v18.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::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.v18.enums.ServedAssetFieldTypeEnum.ServedAssetFieldType + pinned_field = 2; + + // The performance label of this text asset. + google.ads.googleads.v18.enums.AssetPerformanceLabelEnum.AssetPerformanceLabel + asset_performance_label = 5; + + // The policy summary of this text asset. + AdAssetPolicySummary policy_summary_info = 6; +} + +// An image asset used inside an ad. +message AdImageAsset { + // The Asset resource name of this image. + optional string asset = 2; +} + +// A video asset used inside an ad. +message AdVideoAsset { + // The Asset resource name of this video. + optional string asset = 2; + + // Contains info fields for this AdVideoAsset. + optional AdVideoAssetInfo ad_video_asset_info = 4; +} + +// Contains info fields for AdVideoAssets. +message AdVideoAssetInfo { + // List of inventory preferences for this AdVideoAsset. This field can only be + // set for DiscoveryVideoResponsiveAd. The video assets with an inventory + // asset preference set will be preferred over other videos from the same ad + // during serving time. For example, consider this ad being served for a + // specific inventory. The server will first try to match an eligible video + // with a matching preference for that inventory. Videos with no preferences + // are chosen only when a video with matching preference and eligible for a + // given ad slot can be found. + optional AdVideoAssetInventoryPreferences + ad_video_asset_inventory_preferences = 1; +} + +// YouTube Video Asset inventory preferences. +message AdVideoAssetInventoryPreferences { + // When true, YouTube Video Asset with this inventory preference will be + // preferred when choosing a video to serve In Feed. + optional bool in_feed_preference = 1; + + // When true, YouTube Video Asset with this inventory preference will be + // preferred when choosing a video to serve In Stream. + optional bool in_stream_preference = 2; + + // When true, YouTube Video Asset with this inventory preference will be + // preferred when choosing a video to serve on YouTube Shorts. + optional bool shorts_preference = 3; +} + +// A media bundle asset used inside an ad. +message AdMediaBundleAsset { + // The Asset resource name of this media bundle. + optional string asset = 2; +} + +// A Demand Gen carousel card asset used inside an ad. +message AdDemandGenCarouselCardAsset { + // The Asset resource name of this discovery carousel card. + optional string asset = 1; +} + +// A call to action asset used inside an ad. +message AdCallToActionAsset { + // The Asset resource name of this call to action asset. + optional string asset = 1; +} diff --git a/google/ads/googleads/v15/common/ad_type_infos.proto b/google/ads/googleads/v18/common/ad_type_infos.proto similarity index 90% rename from google/ads/googleads/v15/common/ad_type_infos.proto rename to google/ads/googleads/v18/common/ad_type_infos.proto index 981f959dd..7ecf6be36 100644 --- a/google/ads/googleads/v15/common/ad_type_infos.proto +++ b/google/ads/googleads/v18/common/ad_type_infos.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,25 +14,25 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -import "google/ads/googleads/v15/common/ad_asset.proto"; -import "google/ads/googleads/v15/enums/call_conversion_reporting_state.proto"; -import "google/ads/googleads/v15/enums/display_ad_format_setting.proto"; -import "google/ads/googleads/v15/enums/display_upload_product_type.proto"; -import "google/ads/googleads/v15/enums/legacy_app_install_ad_app_store.proto"; -import "google/ads/googleads/v15/enums/mime_type.proto"; -import "google/ads/googleads/v15/enums/video_thumbnail.proto"; +import "google/ads/googleads/v18/common/ad_asset.proto"; +import "google/ads/googleads/v18/enums/call_conversion_reporting_state.proto"; +import "google/ads/googleads/v18/enums/display_ad_format_setting.proto"; +import "google/ads/googleads/v18/enums/display_upload_product_type.proto"; +import "google/ads/googleads/v18/enums/legacy_app_install_ad_app_store.proto"; +import "google/ads/googleads/v18/enums/mime_type.proto"; +import "google/ads/googleads/v18/enums/video_thumbnail.proto"; import "google/api/field_behavior.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "AdTypeInfosProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file containing info messages for specific ad types. @@ -121,7 +121,7 @@ message ImageAdInfo { optional string preview_image_url = 20; // The mime type of the image. - google.ads.googleads.v15.enums.MimeTypeEnum.MimeType mime_type = 10; + google.ads.googleads.v18.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. @@ -212,7 +212,7 @@ message InFeedVideoAdInfo { string description2 = 3; // Video thumbnail image to use. - google.ads.googleads.v15.enums.VideoThumbnailEnum.VideoThumbnail thumbnail = + google.ads.googleads.v18.enums.VideoThumbnailEnum.VideoThumbnail thumbnail = 4; } @@ -242,9 +242,8 @@ message VideoAdInfo { // A video responsive ad. message VideoResponsiveAdInfo { - // List of text assets used for the short headline, for example, the "Call To - // Action" banner. Currently, only a single value for the short headline is - // supported. + // List of text assets used for the short headline. Currently, only a single + // value for the short headline is supported. repeated AdTextAsset headlines = 1; // List of text assets used for the long headline. @@ -350,7 +349,7 @@ message LegacyResponsiveDisplayAdInfo { optional string square_marketing_image = 27; // Specifies which format the ad will be served in. Default is ALL_FORMATS. - google.ads.googleads.v15.enums.DisplayAdFormatSettingEnum + google.ads.googleads.v18.enums.DisplayAdFormatSettingEnum .DisplayAdFormatSetting format_setting = 13; // Prefix before price. For example, 'as low as'. @@ -431,7 +430,7 @@ message LegacyAppInstallAdInfo { optional string app_id = 6; // The app store the mobile app is available in. - google.ads.googleads.v15.enums.LegacyAppInstallAdAppStoreEnum + google.ads.googleads.v18.enums.LegacyAppInstallAdAppStoreEnum .LegacyAppInstallAdAppStore app_store = 2; // The headline of the ad. @@ -513,7 +512,7 @@ message ResponsiveDisplayAdInfo { optional string promo_text = 23; // Specifies which format the ad will be served in. Default is ALL_FORMATS. - google.ads.googleads.v15.enums.DisplayAdFormatSettingEnum + google.ads.googleads.v18.enums.DisplayAdFormatSettingEnum .DisplayAdFormatSetting format_setting = 16; // Specification for various creative controls. @@ -564,7 +563,7 @@ message LocalAdInfo { // need to be included with the ad. message DisplayUploadAdInfo { // The product type of this ad. See comments on the enum for details. - google.ads.googleads.v15.enums.DisplayUploadProductTypeEnum + google.ads.googleads.v18.enums.DisplayUploadProductTypeEnum .DisplayUploadProductType display_upload_product_type = 1; // The asset data that makes up the ad. @@ -643,7 +642,7 @@ message CallAdInfo { // The call conversion behavior of this call ad. It can use its own call // conversion setting, inherit the account level setting, or be disabled. - google.ads.googleads.v15.enums.CallConversionReportingStateEnum + google.ads.googleads.v18.enums.CallConversionReportingStateEnum .CallConversionReportingState conversion_reporting_state = 10; // First part of text that can be appended to the URL in the ad. Optional. @@ -654,8 +653,8 @@ message CallAdInfo { string path2 = 14; } -// A discovery multi asset ad. -message DiscoveryMultiAssetAdInfo { +// A Demand Gen multi asset ad. +message DemandGenMultiAssetAdInfo { // Marketing image assets to be used in the ad. Valid image types are GIF, // JPEG, and PNG. The minimum size is 600x314 and the aspect ratio must // be 1.91:1 (+-1%). Required if square_marketing_images is @@ -677,7 +676,7 @@ message DiscoveryMultiAssetAdInfo { // Logo image assets to be used in the ad. Valid image types are GIF, // JPEG, and PNG. The minimum size is 128x128 and the aspect ratio must be - // 1:1(+-1%). At least 1 and max 5 logo images can be specified. + // 1:1 (+-1%). At least 1 and max 5 logo images can be specified. repeated AdImageAsset logo_images = 4; // Headline text asset of the ad. Maximum display width is 30. At least 1 and @@ -698,13 +697,13 @@ message DiscoveryMultiAssetAdInfo { optional bool lead_form_only = 9; } -// A discovery carousel ad. -message DiscoveryCarouselAdInfo { +// A Demand Gen carousel ad. +message DemandGenCarouselAdInfo { // Required. The Advertiser/brand name. string business_name = 1 [(google.api.field_behavior) = REQUIRED]; // Required. Logo image to be used in the ad. The minimum size is 128x128 and - // the aspect ratio must be 1:1(+-1%). + // the aspect ratio must be 1:1 (+-1%). AdImageAsset logo_image = 2 [(google.api.field_behavior) = REQUIRED]; // Required. Headline of the ad. @@ -717,14 +716,13 @@ message DiscoveryCarouselAdInfo { string call_to_action_text = 5; // Required. Carousel cards that will display with the ad. Min 2 max 10. - repeated AdDiscoveryCarouselCardAsset carousel_cards = 6 + repeated AdDemandGenCarouselCardAsset carousel_cards = 6 [(google.api.field_behavior) = REQUIRED]; } -// A discovery video responsive ad. -message DiscoveryVideoResponsiveAdInfo { - // List of text assets used for the short headline, for example, the "Call To - // Action" banner. +// A Demand Gen video responsive ad. +message DemandGenVideoResponsiveAdInfo { + // List of text assets used for the short headline. repeated AdTextAsset headlines = 1; // List of text assets used for the long headline. @@ -737,7 +735,7 @@ message DiscoveryVideoResponsiveAdInfo { repeated AdVideoAsset videos = 4; // Logo image to be used in the ad. Valid image types are GIF, JPEG, and PNG. - // The minimum size is 128x128 and the aspect ratio must be 1:1(+-1%). + // The minimum size is 128x128 and the aspect ratio must be 1:1 (+-1%). repeated AdImageAsset logo_images = 5; // First part of text that appears in the ad with the displayed URL. @@ -752,3 +750,29 @@ message DiscoveryVideoResponsiveAdInfo { // Assets of type CallToActionAsset used for the "Call To Action" button. repeated AdCallToActionAsset call_to_actions = 9; } + +// A Demand Gen product ad. +message DemandGenProductAdInfo { + // Required. Text asset used for the short headline. + optional AdTextAsset headline = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Text asset used for the description. + optional AdTextAsset description = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Logo image to be used in the ad. Valid image types are GIF, JPEG, + // and PNG. The minimum size is 128x128 and the aspect ratio must be 1:1 + // (+-1%). + optional AdImageAsset logo_image = 3 [(google.api.field_behavior) = REQUIRED]; + + // First part of text that appears in the ad with the displayed URL. + string breadcrumb1 = 4; + + // Second part of text that appears in the ad with the displayed URL. + string breadcrumb2 = 5; + + // Required. The advertiser/brand name. + AdTextAsset business_name = 6 [(google.api.field_behavior) = REQUIRED]; + + // Asset of type CallToActionAsset used for the "Call To Action" button. + optional AdCallToActionAsset call_to_action = 7; +} diff --git a/google/ads/googleads/v15/common/asset_policy.proto b/google/ads/googleads/v18/common/asset_policy.proto similarity index 70% rename from google/ads/googleads/v15/common/asset_policy.proto rename to google/ads/googleads/v18/common/asset_policy.proto index 931935ba1..5691fe63f 100644 --- a/google/ads/googleads/v15/common/asset_policy.proto +++ b/google/ads/googleads/v18/common/asset_policy.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -import "google/ads/googleads/v15/common/policy.proto"; -import "google/ads/googleads/v15/enums/asset_link_primary_status.proto"; -import "google/ads/googleads/v15/enums/asset_link_primary_status_reason.proto"; -import "google/ads/googleads/v15/enums/asset_offline_evaluation_error_reasons.proto"; -import "google/ads/googleads/v15/enums/policy_approval_status.proto"; -import "google/ads/googleads/v15/enums/policy_review_status.proto"; +import "google/ads/googleads/v18/common/policy.proto"; +import "google/ads/googleads/v18/enums/asset_link_primary_status.proto"; +import "google/ads/googleads/v18/enums/asset_link_primary_status_reason.proto"; +import "google/ads/googleads/v18/enums/asset_offline_evaluation_error_reasons.proto"; +import "google/ads/googleads/v18/enums/policy_approval_status.proto"; +import "google/ads/googleads/v18/enums/policy_review_status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "AssetPolicyProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing asset policies. @@ -40,12 +40,12 @@ message AdAssetPolicySummary { repeated PolicyTopicEntry policy_topic_entries = 1; // Where in the review process this asset. - google.ads.googleads.v15.enums.PolicyReviewStatusEnum.PolicyReviewStatus + google.ads.googleads.v18.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.v15.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus + google.ads.googleads.v18.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3; } @@ -58,11 +58,11 @@ message AdAssetPolicySummary { // evaluation errors which led to the asset being disapproved. message AssetLinkPrimaryStatusDetails { // Provides the reason of this PrimaryStatus. - optional google.ads.googleads.v15.enums.AssetLinkPrimaryStatusReasonEnum + optional google.ads.googleads.v18.enums.AssetLinkPrimaryStatusReasonEnum .AssetLinkPrimaryStatusReason reason = 1; // Provides the PrimaryStatus of this status detail. - optional google.ads.googleads.v15.enums.AssetLinkPrimaryStatusEnum + optional google.ads.googleads.v18.enums.AssetLinkPrimaryStatusEnum .AssetLinkPrimaryStatus status = 2; // Provides the details associated with the asset link primary status. @@ -75,6 +75,6 @@ message AssetLinkPrimaryStatusDetails { // Details related to AssetLinkPrimaryStatusReasonPB.ASSET_DISAPPROVED message AssetDisapproved { // Provides the quality evaluation disapproval reason of an asset. - repeated google.ads.googleads.v15.enums.AssetOfflineEvaluationErrorReasonsEnum + repeated google.ads.googleads.v18.enums.AssetOfflineEvaluationErrorReasonsEnum .AssetOfflineEvaluationErrorReasons offline_evaluation_error_reasons = 1; } diff --git a/google/ads/googleads/v15/common/asset_set_types.proto b/google/ads/googleads/v18/common/asset_set_types.proto similarity index 90% rename from google/ads/googleads/v15/common/asset_set_types.proto rename to google/ads/googleads/v18/common/asset_set_types.proto index 767279213..59bb7825a 100644 --- a/google/ads/googleads/v15/common/asset_set_types.proto +++ b/google/ads/googleads/v18/common/asset_set_types.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -import "google/ads/googleads/v15/enums/chain_relationship_type.proto"; -import "google/ads/googleads/v15/enums/location_ownership_type.proto"; -import "google/ads/googleads/v15/enums/location_string_filter_type.proto"; +import "google/ads/googleads/v18/enums/chain_relationship_type.proto"; +import "google/ads/googleads/v18/enums/location_ownership_type.proto"; +import "google/ads/googleads/v18/enums/location_string_filter_type.proto"; import "google/api/field_behavior.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "AssetSetTypesProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file containing info messages for specific asset set types. @@ -38,7 +38,7 @@ option ruby_package = "Google::Ads::GoogleAds::V15::Common"; message LocationSet { // Required. Immutable. Location Ownership Type (owned location or affiliate // location). - google.ads.googleads.v15.enums.LocationOwnershipTypeEnum.LocationOwnershipType + google.ads.googleads.v18.enums.LocationOwnershipTypeEnum.LocationOwnershipType location_ownership_type = 3 [ (google.api.field_behavior) = REQUIRED, (google.api.field_behavior) = IMMUTABLE @@ -106,7 +106,7 @@ message BusinessProfileLocationSet { message ChainSet { // Required. Immutable. Relationship type the specified chains have with this // advertiser. - google.ads.googleads.v15.enums.ChainRelationshipTypeEnum.ChainRelationshipType + google.ads.googleads.v18.enums.ChainRelationshipTypeEnum.ChainRelationshipType relationship_type = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.field_behavior) = IMMUTABLE @@ -173,7 +173,7 @@ message BusinessProfileBusinessNameFilter { string business_name = 1; // The type of string matching to use when filtering with business_name. - google.ads.googleads.v15.enums.LocationStringFilterTypeEnum + google.ads.googleads.v18.enums.LocationStringFilterTypeEnum .LocationStringFilterType filter_type = 2; } diff --git a/google/ads/googleads/v15/common/asset_types.proto b/google/ads/googleads/v18/common/asset_types.proto similarity index 94% rename from google/ads/googleads/v15/common/asset_types.proto rename to google/ads/googleads/v18/common/asset_types.proto index 94960c71a..0b36ba4dc 100644 --- a/google/ads/googleads/v15/common/asset_types.proto +++ b/google/ads/googleads/v18/common/asset_types.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,35 +14,35 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; - -import "google/ads/googleads/v15/common/criteria.proto"; -import "google/ads/googleads/v15/common/feed_common.proto"; -import "google/ads/googleads/v15/enums/call_conversion_reporting_state.proto"; -import "google/ads/googleads/v15/enums/call_to_action_type.proto"; -import "google/ads/googleads/v15/enums/lead_form_call_to_action_type.proto"; -import "google/ads/googleads/v15/enums/lead_form_desired_intent.proto"; -import "google/ads/googleads/v15/enums/lead_form_field_user_input_type.proto"; -import "google/ads/googleads/v15/enums/lead_form_post_submit_call_to_action_type.proto"; -import "google/ads/googleads/v15/enums/location_ownership_type.proto"; -import "google/ads/googleads/v15/enums/mime_type.proto"; -import "google/ads/googleads/v15/enums/mobile_app_vendor.proto"; -import "google/ads/googleads/v15/enums/price_extension_price_qualifier.proto"; -import "google/ads/googleads/v15/enums/price_extension_price_unit.proto"; -import "google/ads/googleads/v15/enums/price_extension_type.proto"; -import "google/ads/googleads/v15/enums/promotion_extension_discount_modifier.proto"; -import "google/ads/googleads/v15/enums/promotion_extension_occasion.proto"; +package google.ads.googleads.v18.common; + +import "google/ads/googleads/v18/common/criteria.proto"; +import "google/ads/googleads/v18/common/feed_common.proto"; +import "google/ads/googleads/v18/enums/call_conversion_reporting_state.proto"; +import "google/ads/googleads/v18/enums/call_to_action_type.proto"; +import "google/ads/googleads/v18/enums/lead_form_call_to_action_type.proto"; +import "google/ads/googleads/v18/enums/lead_form_desired_intent.proto"; +import "google/ads/googleads/v18/enums/lead_form_field_user_input_type.proto"; +import "google/ads/googleads/v18/enums/lead_form_post_submit_call_to_action_type.proto"; +import "google/ads/googleads/v18/enums/location_ownership_type.proto"; +import "google/ads/googleads/v18/enums/mime_type.proto"; +import "google/ads/googleads/v18/enums/mobile_app_vendor.proto"; +import "google/ads/googleads/v18/enums/price_extension_price_qualifier.proto"; +import "google/ads/googleads/v18/enums/price_extension_price_unit.proto"; +import "google/ads/googleads/v18/enums/price_extension_type.proto"; +import "google/ads/googleads/v18/enums/promotion_extension_discount_modifier.proto"; +import "google/ads/googleads/v18/enums/promotion_extension_occasion.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "AssetTypesProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file containing info messages for specific asset types. @@ -74,7 +74,7 @@ message ImageAsset { optional int64 file_size = 6; // MIME type of the image asset. - google.ads.googleads.v15.enums.MimeTypeEnum.MimeType mime_type = 3; + google.ads.googleads.v18.enums.MimeTypeEnum.MimeType mime_type = 3; // Metadata for this image at its original size. ImageDimension full_size = 4; @@ -104,7 +104,7 @@ message LeadFormAsset { string business_name = 10 [(google.api.field_behavior) = REQUIRED]; // Required. Pre-defined display text that encourages user to expand the form. - google.ads.googleads.v15.enums.LeadFormCallToActionTypeEnum + google.ads.googleads.v18.enums.LeadFormCallToActionTypeEnum .LeadFormCallToActionType call_to_action_type = 17 [(google.api.field_behavior) = REQUIRED]; @@ -147,16 +147,16 @@ message LeadFormAsset { // Pre-defined display text that encourages user action after the form is // submitted. - google.ads.googleads.v15.enums.LeadFormPostSubmitCallToActionTypeEnum + google.ads.googleads.v18.enums.LeadFormPostSubmitCallToActionTypeEnum .LeadFormPostSubmitCallToActionType post_submit_call_to_action_type = 19; - // Asset resource name of the background image. The minimum size is 600x314 - // and the aspect ratio must be 1.91:1 (+-1%). + // Asset resource name of the background image. + // The image dimensions must be exactly 1200x628. optional string background_image_asset = 20; // Chosen intent for the lead form, for example, more volume or more // qualified. - google.ads.googleads.v15.enums.LeadFormDesiredIntentEnum.LeadFormDesiredIntent + google.ads.googleads.v18.enums.LeadFormDesiredIntentEnum.LeadFormDesiredIntent desired_intent = 21; // Custom disclosure shown along with Google disclaimer on the lead form. @@ -168,7 +168,7 @@ message LeadFormAsset { message LeadFormField { // Describes the input type, which may be a predefined type such as "full // name" or a pre-vetted question like "What kind of vehicle do you have?". - google.ads.googleads.v15.enums.LeadFormFieldUserInputTypeEnum + google.ads.googleads.v18.enums.LeadFormFieldUserInputTypeEnum .LeadFormFieldUserInputType input_type = 1; // Defines answer configuration that this form field accepts. If oneof is not @@ -254,7 +254,7 @@ message PromotionAsset { string promotion_target = 1 [(google.api.field_behavior) = REQUIRED]; // A modifier for qualification of the discount. - google.ads.googleads.v15.enums.PromotionExtensionDiscountModifierEnum + google.ads.googleads.v18.enums.PromotionExtensionDiscountModifierEnum .PromotionExtensionDiscountModifier discount_modifier = 2; // Start date of when the promotion is eligible to be redeemed, in yyyy-MM-dd @@ -268,7 +268,7 @@ message PromotionAsset { // The occasion the promotion was intended for. // If an occasion is set, the redemption window will need to fall within the // date range associated with the occasion. - google.ads.googleads.v15.enums.PromotionExtensionOccasionEnum + google.ads.googleads.v18.enums.PromotionExtensionOccasionEnum .PromotionExtensionOccasion occasion = 9; // The language of the promotion. @@ -447,7 +447,7 @@ message MobileAppAsset { string app_id = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The application store that distributes this specific app. - google.ads.googleads.v15.enums.MobileAppVendorEnum.MobileAppVendor app_store = + google.ads.googleads.v18.enums.MobileAppVendorEnum.MobileAppVendor app_store = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The visible text displayed when the link is rendered in an ad. @@ -486,7 +486,7 @@ message CallAsset { // Indicates whether this CallAsset should use its own call conversion // setting, follow the account level setting, or disable call conversion. - google.ads.googleads.v15.enums.CallConversionReportingStateEnum + google.ads.googleads.v18.enums.CallConversionReportingStateEnum .CallConversionReportingState call_conversion_reporting_state = 3; // The conversion action to attribute a call conversion to. If not set, the @@ -506,11 +506,11 @@ message CallAsset { // An asset representing a list of price offers. message PriceAsset { // Required. The type of the price asset. - google.ads.googleads.v15.enums.PriceExtensionTypeEnum.PriceExtensionType + google.ads.googleads.v18.enums.PriceExtensionTypeEnum.PriceExtensionType type = 1 [(google.api.field_behavior) = REQUIRED]; // The price qualifier of the price asset. - google.ads.googleads.v15.enums.PriceExtensionPriceQualifierEnum + google.ads.googleads.v18.enums.PriceExtensionPriceQualifierEnum .PriceExtensionPriceQualifier price_qualifier = 2; // Required. The language of the price asset. @@ -536,7 +536,7 @@ message PriceOffering { Money price = 3 [(google.api.field_behavior) = REQUIRED]; // The price unit of the price offering. - google.ads.googleads.v15.enums.PriceExtensionPriceUnitEnum + google.ads.googleads.v18.enums.PriceExtensionPriceUnitEnum .PriceExtensionPriceUnit unit = 4; // Required. The final URL after all cross domain redirects. @@ -549,7 +549,7 @@ message PriceOffering { // A call to action asset. message CallToActionAsset { // Call to action. - google.ads.googleads.v15.enums.CallToActionTypeEnum.CallToActionType + google.ads.googleads.v18.enums.CallToActionTypeEnum.CallToActionType call_to_action = 1; } @@ -810,8 +810,8 @@ message DynamicFlightsAsset { string custom_mapping = 15; } -// A Discovery Carousel Card asset. -message DiscoveryCarouselCardAsset { +// A Demand Gen Carousel Card asset. +message DemandGenCarouselCardAsset { // Asset resource name of the associated 1.91:1 marketing image. This and/or // square marketing image asset is required. string marketing_image_asset = 1; @@ -1035,7 +1035,7 @@ message LocationAsset { // The type of location ownership. // If the type is BUSINESS_OWNER, it will be served as a location extension. // If the type is AFFILIATE, it will be served as an affiliate location. - google.ads.googleads.v15.enums.LocationOwnershipTypeEnum.LocationOwnershipType + google.ads.googleads.v18.enums.LocationOwnershipTypeEnum.LocationOwnershipType location_ownership_type = 3; } diff --git a/google/ads/googleads/v15/common/asset_usage.proto b/google/ads/googleads/v18/common/asset_usage.proto similarity index 68% rename from google/ads/googleads/v15/common/asset_usage.proto rename to google/ads/googleads/v18/common/asset_usage.proto index e39544374..4e8617b73 100644 --- a/google/ads/googleads/v15/common/asset_usage.proto +++ b/google/ads/googleads/v18/common/asset_usage.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,18 +14,18 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -import "google/ads/googleads/v15/enums/served_asset_field_type.proto"; +import "google/ads/googleads/v18/enums/served_asset_field_type.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "AssetUsageProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing asset usage. @@ -35,6 +35,6 @@ message AssetUsage { string asset = 1; // The served field type of the asset. - google.ads.googleads.v15.enums.ServedAssetFieldTypeEnum.ServedAssetFieldType + google.ads.googleads.v18.enums.ServedAssetFieldTypeEnum.ServedAssetFieldType served_asset_field_type = 2; } diff --git a/google/ads/googleads/v18/common/audience_insights_attribute.proto b/google/ads/googleads/v18/common/audience_insights_attribute.proto new file mode 100644 index 000000000..865935c56 --- /dev/null +++ b/google/ads/googleads/v18/common/audience_insights_attribute.proto @@ -0,0 +1,177 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.common; + +import "google/ads/googleads/v18/common/criteria.proto"; +import "google/ads/googleads/v18/enums/audience_insights_dimension.proto"; +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; +option java_multiple_files = true; +option java_outer_classname = "AudienceInsightsAttributeProto"; +option java_package = "com.google.ads.googleads.v18.common"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; + +// Proto file describing audience insights attributes. + +// An audience attribute, with metadata about it, returned in response to a +// search. +message AudienceInsightsAttributeMetadata { + // The type of the attribute. + google.ads.googleads.v18.enums.AudienceInsightsDimensionEnum + .AudienceInsightsDimension dimension = 1; + + // The attribute itself. + AudienceInsightsAttribute attribute = 2; + + // The human-readable name of the attribute. + string display_name = 3; + + // 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 = 4; + + // An estimate of the number of reachable YouTube users matching this + // attribute in the requested location, or zero if that information is not + // available for this attribute. This field is not populated in every + // response. + int64 potential_youtube_reach = 8; + + // The share of subscribers within this attribute, between and including 0 and + // 1. This field is not populated in every response. + double subscriber_share = 9; + + // Metadata specific to the dimension of this attribute. + oneof dimension_metadata { + // Special metadata for a YouTube channel. + YouTubeChannelAttributeMetadata youtube_channel_metadata = 5; + + // Special metadata for a YouTube Dynamic Lineup. + DynamicLineupAttributeMetadata dynamic_attribute_metadata = 6; + + // Special metadata for a Location. + LocationAttributeMetadata location_attribute_metadata = 7; + } +} + +// 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. + AgeRangeInfo age_range = 1; + + // An audience attribute defined by a gender. + GenderInfo gender = 2; + + // An audience attribute defined by a geographic location. + LocationInfo location = 3; + + // An Affinity or In-Market audience. + 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). + ParentalStatusInfo parental_status = 8; + + // A household income percentile range. + IncomeRangeInfo income_range = 9; + + // A YouTube channel. + YouTubeChannelInfo youtube_channel = 10; + } +} + +// 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]; +} + +// 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 { + // A YouTube channel returned as an example of the content in a lineup. + message SampleChannel { + // A YouTube channel. + YouTubeChannelInfo youtube_channel = 1; + + // The name of the sample channel. + string display_name = 2; + + // Metadata for the sample channel. + YouTubeChannelAttributeMetadata youtube_channel_metadata = 3; + } + + // The national market associated with the lineup. + 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; + + // Examples of channels that are included in the lineup. + repeated SampleChannel sample_channels = 5; +} + +// Metadata associated with a Location attribute. +message LocationAttributeMetadata { + // The country location that this attribute’s sub country location is located + // in. + LocationInfo country_location = 1; +} diff --git a/google/ads/googleads/v15/common/audiences.proto b/google/ads/googleads/v18/common/audiences.proto similarity index 82% rename from google/ads/googleads/v15/common/audiences.proto rename to google/ads/googleads/v18/common/audiences.proto index 36e4556f4..757aae1aa 100644 --- a/google/ads/googleads/v15/common/audiences.proto +++ b/google/ads/googleads/v18/common/audiences.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -import "google/ads/googleads/v15/enums/gender_type.proto"; -import "google/ads/googleads/v15/enums/income_range_type.proto"; -import "google/ads/googleads/v15/enums/parental_status_type.proto"; +import "google/ads/googleads/v18/enums/gender_type.proto"; +import "google/ads/googleads/v18/enums/income_range_type.proto"; +import "google/ads/googleads/v18/enums/parental_status_type.proto"; +import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "AudiencesProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Positive dimension specifying user's audience. message AudienceDimension { @@ -90,7 +91,7 @@ message AgeSegment { // Dimension specifying users by their gender. message GenderDimension { // Included gender demographic segments. - repeated google.ads.googleads.v15.enums.GenderTypeEnum.GenderType genders = 1; + repeated google.ads.googleads.v18.enums.GenderTypeEnum.GenderType genders = 1; // Include users whose gender is not determined. optional bool include_undetermined = 2; @@ -99,7 +100,7 @@ message GenderDimension { // Dimension specifying users by their household income. message HouseholdIncomeDimension { // Included household income demographic segments. - repeated google.ads.googleads.v15.enums.IncomeRangeTypeEnum.IncomeRangeType + repeated google.ads.googleads.v18.enums.IncomeRangeTypeEnum.IncomeRangeType income_ranges = 1; // Include users whose household income is not determined. @@ -110,7 +111,7 @@ message HouseholdIncomeDimension { message ParentalStatusDimension { // Included parental status demographic segments. repeated - google.ads.googleads.v15.enums.ParentalStatusTypeEnum.ParentalStatusType + google.ads.googleads.v18.enums.ParentalStatusTypeEnum.ParentalStatusType parental_statuses = 1; // Include users whose parental status is undetermined. @@ -146,9 +147,6 @@ message AudienceSegment { } // User list segment. -// The Similar Audiences sunset starts May 2023. Refer to -// https://ads-developers.googleblog.com/2022/11/announcing-deprecation-and-sunset-of.html -// for other options. message UserListSegment { // The user list resource. optional string user_list = 1; @@ -163,13 +161,17 @@ message UserInterestSegment { // Live event segment. message LifeEventSegment { // The life event resource. - optional string life_event = 1; + optional string life_event = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/LifeEvent" + }]; } // Detailed demographic segment. message DetailedDemographicSegment { // The detailed demographic resource. - optional string detailed_demographic = 1; + optional string detailed_demographic = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/DetailedDemographic" + }]; } // Custom audience segment. diff --git a/google/ads/googleads/v15/common/bidding.proto b/google/ads/googleads/v18/common/bidding.proto similarity index 80% rename from google/ads/googleads/v15/common/bidding.proto rename to google/ads/googleads/v18/common/bidding.proto index d84fe57f1..32430d63a 100644 --- a/google/ads/googleads/v15/common/bidding.proto +++ b/google/ads/googleads/v18/common/bidding.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -import "google/ads/googleads/v15/enums/target_frequency_time_unit.proto"; -import "google/ads/googleads/v15/enums/target_impression_share_location.proto"; +import "google/ads/googleads/v18/enums/fixed_cpm_goal.proto"; +import "google/ads/googleads/v18/enums/fixed_cpm_target_frequency_time_unit.proto"; +import "google/ads/googleads/v18/enums/target_frequency_time_unit.proto"; +import "google/ads/googleads/v18/enums/target_impression_share_location.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "BiddingProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing bidding schemes. @@ -144,7 +146,7 @@ message TargetCpmTargetFrequencyGoal { // Time window expressing the period over which you want to reach // the specified target_count. - google.ads.googleads.v15.enums.TargetFrequencyTimeUnitEnum + google.ads.googleads.v18.enums.TargetFrequencyTimeUnitEnum .TargetFrequencyTimeUnit time_unit = 2; } @@ -153,7 +155,7 @@ message TargetCpmTargetFrequencyGoal { // location). message TargetImpressionShare { // The targeted location on the search results page. - google.ads.googleads.v15.enums.TargetImpressionShareLocationEnum + google.ads.googleads.v18.enums.TargetImpressionShareLocationEnum .TargetImpressionShareLocation location = 1; // The chosen fraction of ads to be shown in the targeted location in micros. @@ -187,7 +189,7 @@ message TargetRoas { // An automated bid strategy that sets your bids to help get as many clicks // as possible within your budget. message TargetSpend { - // The spend target under which to maximize clicks. + // Deprecated: The spend target under which to maximize clicks. // A TargetSpend bidder will attempt to spend the smaller of this value // or the natural throttling spend amount. // If not specified, the budget is used as the spend target. @@ -216,3 +218,34 @@ message PercentCpc { // not. optional bool enhanced_cpc_enabled = 4; } + +// Fixed CPM (cost per thousand impression) bidding strategy. A manual bidding +// strategy with a fixed CPM. +message FixedCpm { + // Fixed CPM bidding goal. Determines the exact bidding optimization + // parameters. + google.ads.googleads.v18.enums.FixedCpmGoalEnum.FixedCpmGoal goal = 1; + + // Additional information related to bidding goal. + oneof goal_info { + // Target frequency bidding goal details. + FixedCpmTargetFrequencyGoalInfo target_frequency_info = 2; + } +} + +// Target frequency bidding goal details for Fixed CPM bidding strategy. Only +// relevant if the goal of the bidding strategy is `TARGET_FREQUENCY`. +message FixedCpmTargetFrequencyGoalInfo { + // Target frequency count represents the number of times an advertiser wants + // to show the ad to target a single user. + int64 target_count = 1; + + // Time window expressing the period over which you want to reach + // the specified target_count. + google.ads.googleads.v18.enums.FixedCpmTargetFrequencyTimeUnitEnum + .FixedCpmTargetFrequencyTimeUnit time_unit = 2; +} + +// Target CPV (cost per view) bidding strategy. An automated bidding strategy +// that sets bids to optimize performance given the target CPV you set. +message TargetCpv {} diff --git a/google/ads/googleads/v15/common/click_location.proto b/google/ads/googleads/v18/common/click_location.proto similarity index 80% rename from google/ads/googleads/v15/common/click_location.proto rename to google/ads/googleads/v18/common/click_location.proto index c9664748d..7aa341bf1 100644 --- a/google/ads/googleads/v15/common/click_location.proto +++ b/google/ads/googleads/v18/common/click_location.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "ClickLocationProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing a ClickLocation. diff --git a/google/ads/googleads/v15/common/consent.proto b/google/ads/googleads/v18/common/consent.proto similarity index 66% rename from google/ads/googleads/v15/common/consent.proto rename to google/ads/googleads/v18/common/consent.proto index 4a149c3ff..f0e41d978 100644 --- a/google/ads/googleads/v15/common/consent.proto +++ b/google/ads/googleads/v18/common/consent.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,29 +14,29 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -import "google/ads/googleads/v15/enums/consent_status.proto"; +import "google/ads/googleads/v18/enums/consent_status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "ConsentProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing common consent proto messages. // Consent message Consent { // This represents consent for ad user data. - google.ads.googleads.v15.enums.ConsentStatusEnum.ConsentStatus ad_user_data = + google.ads.googleads.v18.enums.ConsentStatusEnum.ConsentStatus ad_user_data = 1; // This represents consent for ad personalization. // This can only be set for OfflineUserDataJobService and UserDataService. - google.ads.googleads.v15.enums.ConsentStatusEnum.ConsentStatus + google.ads.googleads.v18.enums.ConsentStatusEnum.ConsentStatus ad_personalization = 2; } diff --git a/google/ads/googleads/v15/common/criteria.proto b/google/ads/googleads/v18/common/criteria.proto similarity index 80% rename from google/ads/googleads/v15/common/criteria.proto rename to google/ads/googleads/v18/common/criteria.proto index f889c77bc..3bb0cc314 100644 --- a/google/ads/googleads/v15/common/criteria.proto +++ b/google/ads/googleads/v18/common/criteria.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,41 +14,44 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; - -import "google/ads/googleads/v15/enums/age_range_type.proto"; -import "google/ads/googleads/v15/enums/app_payment_model_type.proto"; -import "google/ads/googleads/v15/enums/content_label_type.proto"; -import "google/ads/googleads/v15/enums/day_of_week.proto"; -import "google/ads/googleads/v15/enums/device.proto"; -import "google/ads/googleads/v15/enums/gender_type.proto"; -import "google/ads/googleads/v15/enums/hotel_date_selection_type.proto"; -import "google/ads/googleads/v15/enums/income_range_type.proto"; -import "google/ads/googleads/v15/enums/interaction_type.proto"; -import "google/ads/googleads/v15/enums/keyword_match_type.proto"; -import "google/ads/googleads/v15/enums/listing_group_type.proto"; -import "google/ads/googleads/v15/enums/location_group_radius_units.proto"; -import "google/ads/googleads/v15/enums/minute_of_hour.proto"; -import "google/ads/googleads/v15/enums/parental_status_type.proto"; -import "google/ads/googleads/v15/enums/product_category_level.proto"; -import "google/ads/googleads/v15/enums/product_channel.proto"; -import "google/ads/googleads/v15/enums/product_channel_exclusivity.proto"; -import "google/ads/googleads/v15/enums/product_condition.proto"; -import "google/ads/googleads/v15/enums/product_custom_attribute_index.proto"; -import "google/ads/googleads/v15/enums/product_type_level.proto"; -import "google/ads/googleads/v15/enums/proximity_radius_units.proto"; -import "google/ads/googleads/v15/enums/webpage_condition_operand.proto"; -import "google/ads/googleads/v15/enums/webpage_condition_operator.proto"; +package google.ads.googleads.v18.common; + +import "google/ads/googleads/v18/enums/age_range_type.proto"; +import "google/ads/googleads/v18/enums/app_payment_model_type.proto"; +import "google/ads/googleads/v18/enums/brand_request_rejection_reason.proto"; +import "google/ads/googleads/v18/enums/brand_state.proto"; +import "google/ads/googleads/v18/enums/content_label_type.proto"; +import "google/ads/googleads/v18/enums/day_of_week.proto"; +import "google/ads/googleads/v18/enums/device.proto"; +import "google/ads/googleads/v18/enums/gender_type.proto"; +import "google/ads/googleads/v18/enums/hotel_date_selection_type.proto"; +import "google/ads/googleads/v18/enums/income_range_type.proto"; +import "google/ads/googleads/v18/enums/interaction_type.proto"; +import "google/ads/googleads/v18/enums/keyword_match_type.proto"; +import "google/ads/googleads/v18/enums/listing_group_type.proto"; +import "google/ads/googleads/v18/enums/location_group_radius_units.proto"; +import "google/ads/googleads/v18/enums/minute_of_hour.proto"; +import "google/ads/googleads/v18/enums/parental_status_type.proto"; +import "google/ads/googleads/v18/enums/product_category_level.proto"; +import "google/ads/googleads/v18/enums/product_channel.proto"; +import "google/ads/googleads/v18/enums/product_channel_exclusivity.proto"; +import "google/ads/googleads/v18/enums/product_condition.proto"; +import "google/ads/googleads/v18/enums/product_custom_attribute_index.proto"; +import "google/ads/googleads/v18/enums/product_type_level.proto"; +import "google/ads/googleads/v18/enums/proximity_radius_units.proto"; +import "google/ads/googleads/v18/enums/webpage_condition_operand.proto"; +import "google/ads/googleads/v18/enums/webpage_condition_operator.proto"; +import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "CriteriaProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing criteria types. @@ -58,7 +61,7 @@ message KeywordInfo { optional string text = 3; // The match type of the keyword. - google.ads.googleads.v15.enums.KeywordMatchTypeEnum.KeywordMatchType + google.ads.googleads.v18.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 2; } @@ -120,13 +123,13 @@ message LocationInfo { // A device criterion. message DeviceInfo { // Type of the device. - google.ads.googleads.v15.enums.DeviceEnum.Device type = 1; + google.ads.googleads.v18.enums.DeviceEnum.Device type = 1; } // A listing group criterion. message ListingGroupInfo { // Type of the listing group. - google.ads.googleads.v15.enums.ListingGroupTypeEnum.ListingGroupType type = 1; + google.ads.googleads.v18.enums.ListingGroupTypeEnum.ListingGroupType type = 1; // Dimension value with which this listing group is refining its parent. // Undefined for the root group. @@ -218,9 +221,15 @@ message ListingDimensionInfo { // Rating of the activity as a number 1 to 5, where 5 is the best. ActivityRatingInfo activity_rating = 22; - // Country the activity is in. + // The country where the travel activity is available. ActivityCountryInfo activity_country = 23; + // The state where the travel activity is available. + ActivityStateInfo activity_state = 25; + + // The city where the travel activity is available. + ActivityCityInfo activity_city = 26; + // Unknown dimension. Set when no other listing dimension is set. UnknownListingDimensionInfo unknown_listing_dimension = 14; } @@ -265,7 +274,7 @@ message ProductCategoryInfo { optional int64 category_id = 1; // Level of the product category. - google.ads.googleads.v15.enums.ProductCategoryLevelEnum.ProductCategoryLevel + google.ads.googleads.v18.enums.ProductCategoryLevelEnum.ProductCategoryLevel level = 2; } @@ -278,20 +287,20 @@ message ProductBrandInfo { // Locality of a product offer. message ProductChannelInfo { // Value of the locality. - google.ads.googleads.v15.enums.ProductChannelEnum.ProductChannel channel = 1; + google.ads.googleads.v18.enums.ProductChannelEnum.ProductChannel channel = 1; } // Availability of a product offer. message ProductChannelExclusivityInfo { // Value of the availability. - google.ads.googleads.v15.enums.ProductChannelExclusivityEnum + google.ads.googleads.v18.enums.ProductChannelExclusivityEnum .ProductChannelExclusivity channel_exclusivity = 1; } // Condition of a product offer. message ProductConditionInfo { // Value of the condition. - google.ads.googleads.v15.enums.ProductConditionEnum.ProductCondition + google.ads.googleads.v18.enums.ProductConditionEnum.ProductCondition condition = 1; } @@ -301,7 +310,7 @@ message ProductCustomAttributeInfo { optional string value = 3; // Indicates the index of the custom attribute. - google.ads.googleads.v15.enums.ProductCustomAttributeIndexEnum + google.ads.googleads.v18.enums.ProductCustomAttributeIndexEnum .ProductCustomAttributeIndex index = 2; } @@ -317,7 +326,7 @@ message ProductTypeInfo { optional string value = 3; // Level of the type. - google.ads.googleads.v15.enums.ProductTypeLevelEnum.ProductTypeLevel level = + google.ads.googleads.v18.enums.ProductTypeLevelEnum.ProductTypeLevel level = 2; } @@ -355,7 +364,7 @@ message UnknownListingDimensionInfo {} // Criterion for hotel date selection (default dates versus user selected). message HotelDateSelectionTypeInfo { // Type of the hotel date selection - google.ads.googleads.v15.enums.HotelDateSelectionTypeEnum + google.ads.googleads.v18.enums.HotelDateSelectionTypeEnum .HotelDateSelectionType type = 1; } @@ -389,7 +398,7 @@ message HotelCheckInDateRangeInfo { // Criterion for day of the week the booking is for. message HotelCheckInDayInfo { // The day of the week. - google.ads.googleads.v15.enums.DayOfWeekEnum.DayOfWeek day_of_week = 1; + google.ads.googleads.v18.enums.DayOfWeekEnum.DayOfWeek day_of_week = 1; } // Advertiser-specific activity ID. @@ -404,17 +413,31 @@ message ActivityRatingInfo { optional int64 value = 1; } -// Country the activity is in. +// The country where the travel activity is available. message ActivityCountryInfo { // String value of the activity country. The Geo Target Constant resource // name. optional string value = 1; } +// The state where the travel activity is available. +message ActivityStateInfo { + // String value of the activity state. The Geo Target Constant resource + // name. + optional string value = 1; +} + +// The city where the travel activity is available. +message ActivityCityInfo { + // String value of the activity city. The Geo Target Constant resource + // name. + optional string value = 1; +} + // Criterion for Interaction Type. message InteractionTypeInfo { // The interaction type. - google.ads.googleads.v15.enums.InteractionTypeEnum.InteractionType type = 1; + google.ads.googleads.v18.enums.InteractionTypeEnum.InteractionType type = 1; } // Represents an AdSchedule criterion. @@ -428,14 +451,14 @@ message AdScheduleInfo { // // This field is required for CREATE operations and is prohibited on UPDATE // operations. - google.ads.googleads.v15.enums.MinuteOfHourEnum.MinuteOfHour start_minute = 1; + google.ads.googleads.v18.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.v15.enums.MinuteOfHourEnum.MinuteOfHour end_minute = 2; + google.ads.googleads.v18.enums.MinuteOfHourEnum.MinuteOfHour end_minute = 2; // Starting hour in 24 hour time. // This field must be between 0 and 23, inclusive. @@ -455,31 +478,31 @@ message AdScheduleInfo { // // This field is required for CREATE operations and is prohibited on UPDATE // operations. - google.ads.googleads.v15.enums.DayOfWeekEnum.DayOfWeek day_of_week = 5; + google.ads.googleads.v18.enums.DayOfWeekEnum.DayOfWeek day_of_week = 5; } // An age range criterion. message AgeRangeInfo { // Type of the age range. - google.ads.googleads.v15.enums.AgeRangeTypeEnum.AgeRangeType type = 1; + google.ads.googleads.v18.enums.AgeRangeTypeEnum.AgeRangeType type = 1; } // A gender criterion. message GenderInfo { // Type of the gender. - google.ads.googleads.v15.enums.GenderTypeEnum.GenderType type = 1; + google.ads.googleads.v18.enums.GenderTypeEnum.GenderType type = 1; } // An income range criterion. message IncomeRangeInfo { // Type of the income range. - google.ads.googleads.v15.enums.IncomeRangeTypeEnum.IncomeRangeType type = 1; + google.ads.googleads.v18.enums.IncomeRangeTypeEnum.IncomeRangeType type = 1; } // A parental status criterion. message ParentalStatusInfo { // Type of the parental status. - google.ads.googleads.v15.enums.ParentalStatusTypeEnum.ParentalStatusType + google.ads.googleads.v18.enums.ParentalStatusTypeEnum.ParentalStatusType type = 1; } @@ -518,7 +541,7 @@ message ProximityInfo { optional double radius = 5; // The unit of measurement of the radius. Default is KILOMETERS. - google.ads.googleads.v15.enums.ProximityRadiusUnitsEnum.ProximityRadiusUnits + google.ads.googleads.v18.enums.ProximityRadiusUnitsEnum.ProximityRadiusUnits radius_units = 3; // Full address. @@ -595,13 +618,15 @@ message IpBlockInfo { // Content Label for category exclusion. message ContentLabelInfo { // Content label type, required for CREATE operations. - google.ads.googleads.v15.enums.ContentLabelTypeEnum.ContentLabelType type = 1; + google.ads.googleads.v18.enums.ContentLabelTypeEnum.ContentLabelType type = 1; } // Represents a Carrier Criterion. message CarrierInfo { // The Carrier constant resource name. - optional string carrier_constant = 2; + optional string carrier_constant = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/CarrierConstant" + }]; } // Represents a particular interest-based topic to be targeted. @@ -643,11 +668,11 @@ message WebpageInfo { // Logical expression for targeting webpages of an advertiser's website. message WebpageConditionInfo { // Operand of webpage targeting condition. - google.ads.googleads.v15.enums.WebpageConditionOperandEnum + google.ads.googleads.v18.enums.WebpageConditionOperandEnum .WebpageConditionOperand operand = 1; // Operator of webpage targeting condition. - google.ads.googleads.v15.enums.WebpageConditionOperatorEnum + google.ads.googleads.v18.enums.WebpageConditionOperatorEnum .WebpageConditionOperator operator = 2; @@ -664,20 +689,26 @@ message WebpageSampleInfo { // Represents an operating system version to be targeted. message OperatingSystemVersionInfo { // The operating system version constant resource name. - optional string operating_system_version_constant = 2; + optional string operating_system_version_constant = 2 + [(google.api.resource_reference) = { + type: "googleads.googleapis.com/OperatingSystemVersionConstant" + }]; } // An app payment model criterion. message AppPaymentModelInfo { // Type of the app payment model. - google.ads.googleads.v15.enums.AppPaymentModelTypeEnum.AppPaymentModelType + google.ads.googleads.v18.enums.AppPaymentModelTypeEnum.AppPaymentModelType type = 1; } // A mobile device criterion. message MobileDeviceInfo { // The mobile device constant resource name. - optional string mobile_device_constant = 2; + optional string mobile_device_constant = 2 + [(google.api.resource_reference) = { + type: "googleads.googleapis.com/MobileDeviceConstant" + }]; } // A custom affinity criterion. @@ -712,7 +743,7 @@ message LocationGroupInfo { // Unit of the radius. Miles and meters are supported for geo target // constants. Milli miles and meters are supported for feed item sets and // asset sets. This is required and must be set in CREATE operations. - google.ads.googleads.v15.enums.LocationGroupRadiusUnitsEnum + google.ads.googleads.v18.enums.LocationGroupRadiusUnitsEnum .LocationGroupRadiusUnits radius_units = 4; // FeedItemSets whose FeedItems are targeted. If multiple IDs are specified, @@ -764,7 +795,9 @@ message KeywordThemeInfo { oneof keyword_theme { // The resource name of a Smart Campaign keyword theme constant. // `keywordThemeConstants/{keyword_theme_id}~{sub_keyword_theme_id}` - string keyword_theme_constant = 1; + string keyword_theme_constant = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/KeywordThemeConstant" + }]; // Free-form text to be matched to a Smart Campaign keyword theme constant // on a best-effort basis. @@ -790,17 +823,29 @@ message SearchThemeInfo { // Represents a Brand Criterion used for targeting based on commercial knowledge // graph. -// See go/brand-control-v2. message BrandInfo { + // Output only. A text representation of a brand. + optional string display_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + // The Commercial KG MID for the brand. optional string entity_id = 1; + + // Output only. The primary url of a brand. + optional string primary_url = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The rejection reason when a brand status is REJECTED. + optional google.ads.googleads.v18.enums.BrandRequestRejectionReasonEnum + .BrandRequestRejectionReason rejection_reason = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status of a brand. + optional google.ads.googleads.v18.enums.BrandStateEnum.BrandState status = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // A Brand List Criterion is used to specify a list of brands. The list is // represented as a SharedSet id type BRAND_HINT. A criterion of this type can // be either targeted or excluded. -// See go/brand-control-v2, go/brand-exclusion-api. -// Next tag: 2 message BrandListInfo { // Shared set resource name of the brand list. optional string shared_set = 1; diff --git a/google/ads/googleads/v15/common/criterion_category_availability.proto b/google/ads/googleads/v18/common/criterion_category_availability.proto similarity index 78% rename from google/ads/googleads/v15/common/criterion_category_availability.proto rename to google/ads/googleads/v18/common/criterion_category_availability.proto index 4b922dca8..221eebd31 100644 --- a/google/ads/googleads/v15/common/criterion_category_availability.proto +++ b/google/ads/googleads/v18/common/criterion_category_availability.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -import "google/ads/googleads/v15/enums/advertising_channel_sub_type.proto"; -import "google/ads/googleads/v15/enums/advertising_channel_type.proto"; -import "google/ads/googleads/v15/enums/criterion_category_channel_availability_mode.proto"; -import "google/ads/googleads/v15/enums/criterion_category_locale_availability_mode.proto"; +import "google/ads/googleads/v18/enums/advertising_channel_sub_type.proto"; +import "google/ads/googleads/v18/enums/advertising_channel_type.proto"; +import "google/ads/googleads/v18/enums/criterion_category_channel_availability_mode.proto"; +import "google/ads/googleads/v18/enums/criterion_category_locale_availability_mode.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "CriterionCategoryAvailabilityProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing criterion category availability information. @@ -50,15 +50,15 @@ message CriterionCategoryChannelAvailability { // CHANNEL_TYPE_AND_SUBTYPES (advertising_channel_type, // advertising_channel_sub_type, and include_default_channel_sub_type will all // be set). - google.ads.googleads.v15.enums.CriterionCategoryChannelAvailabilityModeEnum + google.ads.googleads.v18.enums.CriterionCategoryChannelAvailabilityModeEnum .CriterionCategoryChannelAvailabilityMode availability_mode = 1; // Channel type the category is available to. - google.ads.googleads.v15.enums.AdvertisingChannelTypeEnum + google.ads.googleads.v18.enums.AdvertisingChannelTypeEnum .AdvertisingChannelType advertising_channel_type = 2; // Channel subtypes under the channel type the category is available to. - repeated google.ads.googleads.v15.enums.AdvertisingChannelSubTypeEnum + repeated google.ads.googleads.v18.enums.AdvertisingChannelSubTypeEnum .AdvertisingChannelSubType advertising_channel_sub_type = 3; // Whether default channel sub type is included. For example, @@ -74,7 +74,7 @@ message CriterionCategoryLocaleAvailability { // language will be empty), COUNTRY (only country will be set), LANGUAGE (only // language wil be set), COUNTRY_AND_LANGUAGE (both country and language will // be set). - google.ads.googleads.v15.enums.CriterionCategoryLocaleAvailabilityModeEnum + google.ads.googleads.v18.enums.CriterionCategoryLocaleAvailabilityModeEnum .CriterionCategoryLocaleAvailabilityMode availability_mode = 1; // The ISO-3166-1 alpha-2 country code associated with the category. diff --git a/google/ads/googleads/v15/common/custom_parameter.proto b/google/ads/googleads/v18/common/custom_parameter.proto similarity index 76% rename from google/ads/googleads/v15/common/custom_parameter.proto rename to google/ads/googleads/v18/common/custom_parameter.proto index 418e6a6a2..ed4351653 100644 --- a/google/ads/googleads/v15/common/custom_parameter.proto +++ b/google/ads/googleads/v18/common/custom_parameter.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "CustomParameterProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing CustomParameter and operation diff --git a/google/ads/googleads/v15/common/customizer_value.proto b/google/ads/googleads/v18/common/customizer_value.proto similarity index 76% rename from google/ads/googleads/v15/common/customizer_value.proto rename to google/ads/googleads/v18/common/customizer_value.proto index 00dc65442..4210f24e2 100644 --- a/google/ads/googleads/v15/common/customizer_value.proto +++ b/google/ads/googleads/v18/common/customizer_value.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -import "google/ads/googleads/v15/enums/customizer_attribute_type.proto"; +import "google/ads/googleads/v18/enums/customizer_attribute_type.proto"; import "google/api/field_behavior.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "CustomizerValueProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing common customizer value proto messages. @@ -36,7 +36,7 @@ message CustomizerValue { // Required. The data type for the customizer value. It must match the // attribute type. The string_value content must match the constraints // associated with the type. - google.ads.googleads.v15.enums.CustomizerAttributeTypeEnum + google.ads.googleads.v18.enums.CustomizerAttributeTypeEnum .CustomizerAttributeType type = 1 [(google.api.field_behavior) = REQUIRED]; diff --git a/google/ads/googleads/v15/common/dates.proto b/google/ads/googleads/v18/common/dates.proto similarity index 75% rename from google/ads/googleads/v15/common/dates.proto rename to google/ads/googleads/v18/common/dates.proto index 4efdeca2e..d12e4085e 100644 --- a/google/ads/googleads/v15/common/dates.proto +++ b/google/ads/googleads/v18/common/dates.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,18 +14,18 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -import "google/ads/googleads/v15/enums/month_of_year.proto"; +import "google/ads/googleads/v18/enums/month_of_year.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "DatesProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing date range message. @@ -54,5 +54,5 @@ message YearMonth { int64 year = 1; // The month of the year. (for example, FEBRUARY). - google.ads.googleads.v15.enums.MonthOfYearEnum.MonthOfYear month = 2; + google.ads.googleads.v18.enums.MonthOfYearEnum.MonthOfYear month = 2; } diff --git a/google/ads/googleads/v15/common/extensions.proto b/google/ads/googleads/v18/common/extensions.proto similarity index 89% rename from google/ads/googleads/v15/common/extensions.proto rename to google/ads/googleads/v18/common/extensions.proto index b1d9d2982..b5ff2186e 100644 --- a/google/ads/googleads/v15/common/extensions.proto +++ b/google/ads/googleads/v18/common/extensions.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,28 +14,28 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; - -import "google/ads/googleads/v15/common/custom_parameter.proto"; -import "google/ads/googleads/v15/common/feed_common.proto"; -import "google/ads/googleads/v15/enums/app_store.proto"; -import "google/ads/googleads/v15/enums/call_conversion_reporting_state.proto"; -import "google/ads/googleads/v15/enums/price_extension_price_qualifier.proto"; -import "google/ads/googleads/v15/enums/price_extension_price_unit.proto"; -import "google/ads/googleads/v15/enums/price_extension_type.proto"; -import "google/ads/googleads/v15/enums/promotion_extension_discount_modifier.proto"; -import "google/ads/googleads/v15/enums/promotion_extension_occasion.proto"; +package google.ads.googleads.v18.common; + +import "google/ads/googleads/v18/common/custom_parameter.proto"; +import "google/ads/googleads/v18/common/feed_common.proto"; +import "google/ads/googleads/v18/enums/app_store.proto"; +import "google/ads/googleads/v18/enums/call_conversion_reporting_state.proto"; +import "google/ads/googleads/v18/enums/price_extension_price_qualifier.proto"; +import "google/ads/googleads/v18/enums/price_extension_price_unit.proto"; +import "google/ads/googleads/v18/enums/price_extension_type.proto"; +import "google/ads/googleads/v18/enums/promotion_extension_discount_modifier.proto"; +import "google/ads/googleads/v18/enums/promotion_extension_occasion.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "ExtensionsProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing extension types. @@ -52,7 +52,7 @@ message AppFeedItem { // The application store that the target application belongs to. // This field is required. - google.ads.googleads.v15.enums.AppStoreEnum.AppStore app_store = 3; + google.ads.googleads.v18.enums.AppStoreEnum.AppStore app_store = 3; // A list of possible final URLs after all cross domain redirects. // This list must not be empty. @@ -99,7 +99,7 @@ message CallFeedItem { // Enum value that indicates whether this call extension uses its own call // conversion setting (or just have call conversion disabled), or following // the account level setting. - google.ads.googleads.v15.enums.CallConversionReportingStateEnum + google.ads.googleads.v18.enums.CallConversionReportingStateEnum .CallConversionReportingState call_conversion_reporting_state = 6; } @@ -195,11 +195,11 @@ message TextMessageFeedItem { // Represents a Price extension. message PriceFeedItem { // Price extension type of this extension. - google.ads.googleads.v15.enums.PriceExtensionTypeEnum.PriceExtensionType + google.ads.googleads.v18.enums.PriceExtensionTypeEnum.PriceExtensionType type = 1; // Price qualifier for all offers of this price extension. - google.ads.googleads.v15.enums.PriceExtensionPriceQualifierEnum + google.ads.googleads.v18.enums.PriceExtensionPriceQualifierEnum .PriceExtensionPriceQualifier price_qualifier = 2; // Tracking URL template for all offers of this price extension. @@ -227,7 +227,7 @@ message PriceOffer { Money price = 3; // Price unit for this offer. - google.ads.googleads.v15.enums.PriceExtensionPriceUnitEnum + google.ads.googleads.v18.enums.PriceExtensionPriceUnitEnum .PriceExtensionPriceUnit unit = 4; // A list of possible final URLs after all cross domain redirects. @@ -244,7 +244,7 @@ message PromotionFeedItem { optional string promotion_target = 16; // Enum that modifies the qualification of the discount. - google.ads.googleads.v15.enums.PromotionExtensionDiscountModifierEnum + google.ads.googleads.v18.enums.PromotionExtensionDiscountModifierEnum .PromotionExtensionDiscountModifier discount_modifier = 2; // Start date of when the promotion is eligible to be redeemed. @@ -256,7 +256,7 @@ message PromotionFeedItem { // The occasion the promotion was intended for. // If an occasion is set, the redemption window will need to fall within // the date range associated with the occasion. - google.ads.googleads.v15.enums.PromotionExtensionOccasionEnum + google.ads.googleads.v18.enums.PromotionExtensionOccasionEnum .PromotionExtensionOccasion occasion = 9; // A list of possible final URLs after all cross domain redirects. diff --git a/google/ads/googleads/v15/common/feed_common.proto b/google/ads/googleads/v18/common/feed_common.proto similarity index 75% rename from google/ads/googleads/v15/common/feed_common.proto rename to google/ads/googleads/v18/common/feed_common.proto index bd7f8782d..0655b5547 100644 --- a/google/ads/googleads/v15/common/feed_common.proto +++ b/google/ads/googleads/v18/common/feed_common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "FeedCommonProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing common feed proto messages. diff --git a/google/ads/googleads/v15/common/feed_item_set_filter_type_infos.proto b/google/ads/googleads/v18/common/feed_item_set_filter_type_infos.proto similarity index 79% rename from google/ads/googleads/v15/common/feed_item_set_filter_type_infos.proto rename to google/ads/googleads/v18/common/feed_item_set_filter_type_infos.proto index 2e8289991..87f8a4e55 100644 --- a/google/ads/googleads/v15/common/feed_item_set_filter_type_infos.proto +++ b/google/ads/googleads/v18/common/feed_item_set_filter_type_infos.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,18 +14,18 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -import "google/ads/googleads/v15/enums/feed_item_set_string_filter_type.proto"; +import "google/ads/googleads/v18/enums/feed_item_set_string_filter_type.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "FeedItemSetFilterTypeInfosProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Represents a filter on locations in a feed item set. // Only applicable if the parent Feed of the FeedItemSet is a LOCATION feed. @@ -44,7 +44,7 @@ message BusinessNameFilter { string business_name = 1; // The type of string matching to use when filtering with business_name. - google.ads.googleads.v15.enums.FeedItemSetStringFilterTypeEnum + google.ads.googleads.v18.enums.FeedItemSetStringFilterTypeEnum .FeedItemSetStringFilterType filter_type = 2; } diff --git a/google/ads/googleads/v15/common/final_app_url.proto b/google/ads/googleads/v18/common/final_app_url.proto similarity index 75% rename from google/ads/googleads/v15/common/final_app_url.proto rename to google/ads/googleads/v18/common/final_app_url.proto index 00f5df2c1..d5d7e6cd5 100644 --- a/google/ads/googleads/v15/common/final_app_url.proto +++ b/google/ads/googleads/v18/common/final_app_url.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,25 +14,25 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -import "google/ads/googleads/v15/enums/app_url_operating_system_type.proto"; +import "google/ads/googleads/v18/enums/app_url_operating_system_type.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "FinalAppUrlProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::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.v15.enums.AppUrlOperatingSystemTypeEnum + google.ads.googleads.v18.enums.AppUrlOperatingSystemTypeEnum .AppUrlOperatingSystemType os_type = 1; // The app deep link URL. Deep links specify a location in an app that diff --git a/google/ads/googleads/v15/common/frequency_cap.proto b/google/ads/googleads/v18/common/frequency_cap.proto similarity index 71% rename from google/ads/googleads/v15/common/frequency_cap.proto rename to google/ads/googleads/v18/common/frequency_cap.proto index fed4d2b8e..fe0275b25 100644 --- a/google/ads/googleads/v15/common/frequency_cap.proto +++ b/google/ads/googleads/v18/common/frequency_cap.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -import "google/ads/googleads/v15/enums/frequency_cap_event_type.proto"; -import "google/ads/googleads/v15/enums/frequency_cap_level.proto"; -import "google/ads/googleads/v15/enums/frequency_cap_time_unit.proto"; +import "google/ads/googleads/v18/enums/frequency_cap_event_type.proto"; +import "google/ads/googleads/v18/enums/frequency_cap_level.proto"; +import "google/ads/googleads/v18/enums/frequency_cap_time_unit.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "FrequencyCapProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing frequency caps. @@ -47,15 +47,15 @@ message FrequencyCapEntry { message FrequencyCapKey { // The level on which the cap is to be applied (for example, ad group ad, ad // group). The cap is applied to all the entities of this level. - google.ads.googleads.v15.enums.FrequencyCapLevelEnum.FrequencyCapLevel level = + google.ads.googleads.v18.enums.FrequencyCapLevelEnum.FrequencyCapLevel level = 1; // The type of event that the cap applies to (for example, impression). - google.ads.googleads.v15.enums.FrequencyCapEventTypeEnum.FrequencyCapEventType + google.ads.googleads.v18.enums.FrequencyCapEventTypeEnum.FrequencyCapEventType event_type = 3; // Unit of time the cap is defined at (for example, day, week). - google.ads.googleads.v15.enums.FrequencyCapTimeUnitEnum.FrequencyCapTimeUnit + google.ads.googleads.v18.enums.FrequencyCapTimeUnitEnum.FrequencyCapTimeUnit time_unit = 2; // Number of time units the cap lasts. diff --git a/google/ads/googleads/v15/common/keyword_plan_common.proto b/google/ads/googleads/v18/common/keyword_plan_common.proto similarity index 82% rename from google/ads/googleads/v15/common/keyword_plan_common.proto rename to google/ads/googleads/v18/common/keyword_plan_common.proto index 3f874f873..29e6ca1f8 100644 --- a/google/ads/googleads/v15/common/keyword_plan_common.proto +++ b/google/ads/googleads/v18/common/keyword_plan_common.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -import "google/ads/googleads/v15/common/dates.proto"; -import "google/ads/googleads/v15/enums/device.proto"; -import "google/ads/googleads/v15/enums/keyword_plan_aggregate_metric_type.proto"; -import "google/ads/googleads/v15/enums/keyword_plan_competition_level.proto"; -import "google/ads/googleads/v15/enums/keyword_plan_concept_group_type.proto"; -import "google/ads/googleads/v15/enums/month_of_year.proto"; +import "google/ads/googleads/v18/common/dates.proto"; +import "google/ads/googleads/v18/enums/device.proto"; +import "google/ads/googleads/v18/enums/keyword_plan_aggregate_metric_type.proto"; +import "google/ads/googleads/v18/enums/keyword_plan_competition_level.proto"; +import "google/ads/googleads/v18/enums/keyword_plan_concept_group_type.proto"; +import "google/ads/googleads/v18/enums/month_of_year.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanCommonProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing Keyword Planner messages. @@ -47,7 +47,7 @@ message KeywordPlanHistoricalMetrics { repeated MonthlySearchVolume monthly_search_volumes = 6; // The competition level for the query. - google.ads.googleads.v15.enums.KeywordPlanCompetitionLevelEnum + google.ads.googleads.v18.enums.KeywordPlanCompetitionLevelEnum .KeywordPlanCompetitionLevel competition = 2; // The competition index for the query in the range [0, 100]. @@ -87,7 +87,7 @@ message MonthlySearchVolume { optional int64 year = 4; // The month of the search volume. - google.ads.googleads.v15.enums.MonthOfYearEnum.MonthOfYear month = 2; + google.ads.googleads.v18.enums.MonthOfYearEnum.MonthOfYear month = 2; // Approximate number of searches for the month. // A null value indicates the search volume is unavailable for @@ -98,7 +98,7 @@ message MonthlySearchVolume { // The aggregate metrics specification of the request. message KeywordPlanAggregateMetrics { // The list of aggregate metrics to fetch data. - repeated google.ads.googleads.v15.enums.KeywordPlanAggregateMetricTypeEnum + repeated google.ads.googleads.v18.enums.KeywordPlanAggregateMetricTypeEnum .KeywordPlanAggregateMetricType aggregate_metric_types = 1; } @@ -116,7 +116,7 @@ message KeywordPlanAggregateMetricResults { // The total searches for the device type during the specified time period. message KeywordPlanDeviceSearches { // The device type. - google.ads.googleads.v15.enums.DeviceEnum.Device device = 1; + google.ads.googleads.v18.enums.DeviceEnum.Device device = 1; // The total searches for the device. optional int64 search_count = 2; @@ -143,6 +143,6 @@ message ConceptGroup { string name = 1; // The concept group type. - google.ads.googleads.v15.enums.KeywordPlanConceptGroupTypeEnum + google.ads.googleads.v18.enums.KeywordPlanConceptGroupTypeEnum .KeywordPlanConceptGroupType type = 2; } diff --git a/google/ads/googleads/v15/common/lifecycle_goals.proto b/google/ads/googleads/v18/common/lifecycle_goals.proto similarity index 81% rename from google/ads/googleads/v15/common/lifecycle_goals.proto rename to google/ads/googleads/v18/common/lifecycle_goals.proto index 5aaac8ea1..7b70c9d24 100644 --- a/google/ads/googleads/v15/common/lifecycle_goals.proto +++ b/google/ads/googleads/v18/common/lifecycle_goals.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "LifecycleGoalsProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing lifecycle goal settings. diff --git a/google/ads/googleads/v15/common/local_services.proto b/google/ads/googleads/v18/common/local_services.proto similarity index 75% rename from google/ads/googleads/v15/common/local_services.proto rename to google/ads/googleads/v18/common/local_services.proto index ad27c58c0..d22ffd658 100644 --- a/google/ads/googleads/v15/common/local_services.proto +++ b/google/ads/googleads/v18/common/local_services.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "LocalServicesProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file containing info messages for local services related resources. diff --git a/google/ads/googleads/v15/common/matching_function.proto b/google/ads/googleads/v18/common/matching_function.proto similarity index 87% rename from google/ads/googleads/v15/common/matching_function.proto rename to google/ads/googleads/v18/common/matching_function.proto index ad13a3dcf..a9eceb2f6 100644 --- a/google/ads/googleads/v15/common/matching_function.proto +++ b/google/ads/googleads/v18/common/matching_function.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -import "google/ads/googleads/v15/enums/matching_function_context_type.proto"; -import "google/ads/googleads/v15/enums/matching_function_operator.proto"; +import "google/ads/googleads/v18/enums/matching_function_context_type.proto"; +import "google/ads/googleads/v18/enums/matching_function_operator.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "MatchingFunctionProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing a matching function. @@ -54,7 +54,7 @@ message MatchingFunction { optional string function_string = 5; // Operator for a function. - google.ads.googleads.v15.enums.MatchingFunctionOperatorEnum + google.ads.googleads.v18.enums.MatchingFunctionOperatorEnum .MatchingFunctionOperator operator = 4; @@ -106,7 +106,7 @@ message Operand { // An operand in a function referring to a value in the request context. message RequestContextOperand { // Type of value to be referred in the request context. - google.ads.googleads.v15.enums.MatchingFunctionContextTypeEnum + google.ads.googleads.v18.enums.MatchingFunctionContextTypeEnum .MatchingFunctionContextType context_type = 1; } diff --git a/google/ads/googleads/v15/common/metric_goal.proto b/google/ads/googleads/v18/common/metric_goal.proto similarity index 65% rename from google/ads/googleads/v15/common/metric_goal.proto rename to google/ads/googleads/v18/common/metric_goal.proto index 2cc002f6a..523f8fc1e 100644 --- a/google/ads/googleads/v15/common/metric_goal.proto +++ b/google/ads/googleads/v18/common/metric_goal.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -import "google/ads/googleads/v15/enums/experiment_metric.proto"; -import "google/ads/googleads/v15/enums/experiment_metric_direction.proto"; +import "google/ads/googleads/v18/enums/experiment_metric.proto"; +import "google/ads/googleads/v18/enums/experiment_metric_direction.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "MetricGoalProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing experiment metric goal. @@ -34,11 +34,11 @@ option ruby_package = "Google::Ads::GoogleAds::V15::Common"; message MetricGoal { // The metric of the goal. For example, clicks, impressions, cost, // conversions, etc. - google.ads.googleads.v15.enums.ExperimentMetricEnum.ExperimentMetric metric = + google.ads.googleads.v18.enums.ExperimentMetricEnum.ExperimentMetric metric = 1; // The metric direction of the goal. For example, increase, decrease, no // change. - google.ads.googleads.v15.enums.ExperimentMetricDirectionEnum + google.ads.googleads.v18.enums.ExperimentMetricDirectionEnum .ExperimentMetricDirection direction = 2; } diff --git a/google/ads/googleads/v15/common/metrics.proto b/google/ads/googleads/v18/common/metrics.proto similarity index 81% rename from google/ads/googleads/v15/common/metrics.proto rename to google/ads/googleads/v18/common/metrics.proto index 590b28254..6af627e1b 100644 --- a/google/ads/googleads/v15/common/metrics.proto +++ b/google/ads/googleads/v18/common/metrics.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,26 +14,26 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -import "google/ads/googleads/v15/enums/interaction_event_type.proto"; -import "google/ads/googleads/v15/enums/quality_score_bucket.proto"; +import "google/ads/googleads/v18/enums/interaction_event_type.proto"; +import "google/ads/googleads/v18/enums/quality_score_bucket.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "MetricsProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing metrics. // Metrics data. message Metrics { - // The percent of your ad impressions that are shown as the very first ad - // above the organic search results. + // Search absolute top impression share is the percentage of your Search ad + // impressions that are shown in the most prominent Search position. optional double absolute_top_impression_percentage = 183; // Average cost of viewable impressions (`active_view_impressions`). @@ -75,7 +75,7 @@ message Metrics { // values in date column means the conversion date. Details for the // by_conversion_date columns are available at // https://support.google.com/google-ads/answer/9549009. - double all_conversions_value_by_conversion_date = 240; + optional double all_conversions_value_by_conversion_date = 240; // All of new customers' lifetime conversion value. If you have set up // customer acquisition goal at either account level or campaign level, this @@ -95,7 +95,7 @@ message Metrics { // with date, the values in date column means the conversion date. Details for // the by_conversion_date columns are available at // https://support.google.com/google-ads/answer/9549009. - double all_conversions_by_conversion_date = 241; + optional double all_conversions_by_conversion_date = 241; // The value of all conversions divided by the total cost of ad interactions // (such as clicks for text ads or views for video ads). @@ -147,8 +147,8 @@ message Metrics { optional double all_conversions_from_store_website = 202; // This metric is part of the Auction Insights report, and tells how often - // the ads of another participant showed as the very first ad above the - // organic search results. + // the ads of another participant showed in the most prominent position on the + // search results page. // This percentage is computed only over the auctions that you appeared in // the page. // @@ -188,9 +188,9 @@ message Metrics { optional double auction_insight_search_position_above_rate = 262; // This metric is part of the Auction Insights report, and tells how often - // the ads of another participant showed above the organic search results. - // This percentage is computed only over the auctions that you appeared in - // the page. + // the ads of another participant showed adjacent to the top organic search + // results. This percentage is computed only over the auctions that you + // appeared in the page. // // This metric is not publicly available. optional double auction_insight_search_top_impression_percentage = 263; @@ -308,7 +308,7 @@ message Metrics { // column means the conversion date. Details for the by_conversion_date // columns are available at // https://support.google.com/google-ads/answer/9549009. - double conversions_value_by_conversion_date = 242; + optional double conversions_value_by_conversion_date = 242; // New customers' lifetime conversion value. If you have set up // customer acquisition goal at either account level or campaign level, this @@ -345,7 +345,7 @@ message Metrics { // column means the conversion date. Details for the by_conversion_date // columns are available at // https://support.google.com/google-ads/answer/9549009. - double conversions_by_conversion_date = 243; + optional double conversions_by_conversion_date = 243; // The sum of your cost-per-click (CPC) and cost-per-thousand impressions // (CPM) costs during this period. @@ -446,18 +446,18 @@ message Metrics { optional int64 hotel_eligible_impressions = 215; // The creative historical quality score. - google.ads.googleads.v15.enums.QualityScoreBucketEnum.QualityScoreBucket + google.ads.googleads.v18.enums.QualityScoreBucketEnum.QualityScoreBucket historical_creative_quality_score = 80; // The quality of historical landing page experience. - google.ads.googleads.v15.enums.QualityScoreBucketEnum.QualityScoreBucket + google.ads.googleads.v18.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.v15.enums.QualityScoreBucketEnum.QualityScoreBucket + google.ads.googleads.v18.enums.QualityScoreBucketEnum.QualityScoreBucket historical_search_predicted_ctr = 83; // The number of times the ad was forwarded to someone else as a message. @@ -491,7 +491,7 @@ message Metrics { optional int64 interactions = 223; // The types of payable and free interactions. - repeated google.ads.googleads.v15.enums.InteractionEventTypeEnum + repeated google.ads.googleads.v18.enums.InteractionEventTypeEnum .InteractionEventType interaction_event_types = 100; // The percentage of clicks filtered out of your total number of clicks @@ -501,6 +501,26 @@ message Metrics { // Number of clicks Google considers illegitimate and doesn't charge you for. optional int64 invalid_clicks = 225; + // The percentage of clicks that have been filtered out of your total number + // of clicks (filtered + non-filtered clicks) due to being general invalid + // clicks. These are clicks Google considers illegitimate that are detected + // through routine means of filtration (that is, known invalid data-center + // traffic, bots and spiders or other crawlers, irregular patterns, etc). + // You're not charged for them, and they don't affect your account statistics. + // See the help page at + // https://support.google.com/campaignmanager/answer/6076504 for + // details. + optional double general_invalid_click_rate = 370; + + // Number of general invalid clicks. These are a subset of your invalid clicks + // that are detected through routine means of filtration (such as known + // invalid data-center traffic, bots and spiders or other crawlers, irregular + // patterns, etc.). You're not charged for them, and they don't affect your + // account statistics. See the help page at + // https://support.google.com/campaignmanager/answer/6076504 for + // details. + optional int64 general_invalid_clicks = 371; + // Number of message chats initiated for Click To Message impressions that // were message tracking eligible. optional int64 message_chats = 226; @@ -581,8 +601,8 @@ message Metrics { // for details. Any value below 0.1 is reported as 0.0999. optional double search_absolute_top_impression_share = 136; - // The number estimating how often your ad wasn't the very first ad above the - // organic search results due to a low budget. Note: Search + // The number estimating how often your ad wasn't the very first ad among the + // top ads in the search results due to a low budget. Note: Search // budget lost absolute top impression share is reported in the range of 0 to // 0.9. Any value above 0.9 is reported as 0.9001. optional double search_budget_lost_absolute_top_impression_share = 137; @@ -593,7 +613,7 @@ message Metrics { // value above 0.9 is reported as 0.9001. optional double search_budget_lost_impression_share = 138; - // The number estimating how often your ad didn't show anywhere above the + // The number estimating how often your ad didn't show adjacent to the top // organic search results due to a low budget. Note: Search // budget lost top impression share is reported in the range of 0 to 0.9. Any // value above 0.9 is reported as 0.9001. @@ -619,8 +639,8 @@ message Metrics { // value below 0.1 is reported as 0.0999. optional double search_impression_share = 142; - // The number estimating how often your ad wasn't the very first ad above the - // organic search results due to poor Ad Rank. + // The number estimating how often your ad wasn't the very first ad among the + // top ads in the search results due to poor Ad Rank. // Note: Search rank lost absolute top impression share is reported in the // range of 0 to 0.9. Any value above 0.9 is reported as 0.9001. optional double search_rank_lost_absolute_top_impression_share = 143; @@ -631,17 +651,19 @@ message Metrics { // 0.9. Any value above 0.9 is reported as 0.9001. optional double search_rank_lost_impression_share = 144; - // The number estimating how often your ad didn't show anywhere above the + // The number estimating how often your ad didn't show adjacent to the top // organic search results due to poor Ad Rank. // Note: Search rank lost top impression share is reported in the range of 0 // to 0.9. Any value above 0.9 is reported as 0.9001. optional double search_rank_lost_top_impression_share = 145; - // The impressions you've received in the top location (anywhere above the - // organic search results) compared to the estimated number of impressions you - // were eligible to receive in the top location. + // The impressions you've received among the top ads compared to the estimated + // number of impressions you were eligible to receive among the top ads. // Note: Search top impression share is reported in the range of 0.1 to 1. Any // value below 0.1 is reported as 0.0999. + // + // Top ads are generally above the top organic results, although they may show + // below the top organic results on certain queries. optional double search_top_impression_share = 146; // Search volume range for a search term insight category. @@ -659,7 +681,7 @@ message Metrics { // campaigns that had traffic from portfolio bidding strategies or non-tROAS). optional double average_target_roas = 250; - // The percent of your ad impressions that are shown anywhere above the + // The percent of your ad impressions that are shown adjacent to the top // organic search results. optional double top_impression_percentage = 148; @@ -1036,6 +1058,172 @@ message Metrics { // for date ranges of 92 days or less. This metric is available for following // campaign types - Display, Video, Discovery and App. optional double average_impression_frequency_per_user = 320; + + // Number of linked resources in which the asset is used. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + optional int64 linked_entities_count = 341; + + // A list of up to 20 sample linked resources in which the asset is used. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + repeated string linked_sample_entities = 342; + + // A list of up to 20 sample linked resources with impressions in the last 30 + // days where the asset had the AssetPerformanceLabel.BEST performance label. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + repeated string sample_best_performance_entities = 343; + + // A list of up to 20 sample linked resources with impressions in the last 30 + // days where the asset had the AssetPerformanceLabel.GOOD performance label. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + repeated string sample_good_performance_entities = 344; + + // A list of up to 20 sample linked resources with impressions in the last 30 + // days where the asset had the AssetPerformanceLabel.LOW performance label. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + repeated string sample_low_performance_entities = 345; + + // A list of up to 20 sample linked resources with impressions in the last 30 + // days where the asset had the AssetPerformanceLabel.LEARNING performance + // label. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + repeated string sample_learning_performance_entities = 346; + + // A list of up to 20 sample linked resources with impressions in the last 30 + // days where the assets had AssetPerformanceLabel performance label other + // than BEST, GOOD, LOW, and LEARNING. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + repeated string sample_unrated_performance_entities = 347; + + // Number of total usages in which the asset is pinned. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Search channel. + optional int64 asset_pinned_total_count = 348; + + // Number of entities in which the asset is pinned to headline 1. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Search channel. + optional int64 asset_pinned_as_headline_position_one_count = 349; + + // Number of entities in which the asset is pinned to headline 2. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Search channel. + optional int64 asset_pinned_as_headline_position_two_count = 350; + + // Number of entities in which the asset is pinned to headline 3. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Search channel. + optional int64 asset_pinned_as_headline_position_three_count = 351; + + // Number of entities in which the asset is pinned to description 1. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Search channel. + optional int64 asset_pinned_as_description_position_one_count = 352; + + // Number of entities in which the asset is pinned to description 2. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Search channel. + optional int64 asset_pinned_as_description_position_two_count = 353; + + // Percentage of impressions the asset received in ads with + // AssetPerformanceLabel.BEST. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Search channel. + optional double asset_best_performance_impression_percentage = 354; + + // Percentage of impressions the asset received in ads with + // AssetPerformanceLabel.GOOD. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Search channel. + optional double asset_good_performance_impression_percentage = 355; + + // Percentage of impressions the asset received in ads with + // AssetPerformanceLabel.LOW. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Search channel. + optional double asset_low_performance_impression_percentage = 356; + + // Percentage of impressions the asset received in ads with + // AssetPerformanceLabel.LEARNING. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Search channel. + optional double asset_learning_performance_impression_percentage = 357; + + // Percentage of impressions the asset received in ads with + // AssetPerformanceLabel other than BEST, GOOD, LOW, and LEARNING. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Search channel. + optional double asset_unrated_performance_impression_percentage = 358; + + // Percentage of cost the asset received in ads with + // AssetPerformanceLabel.BEST. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Performance Max channel. + optional double asset_best_performance_cost_percentage = 359; + + // Percentage of cost the asset received in ads with + // AssetPerformanceLabel.GOOD. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Performance Max channel. + optional double asset_good_performance_cost_percentage = 360; + + // Percentage of cost the asset received in ads with + // AssetPerformanceLabel.LOW. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Performance Max channel. + optional double asset_low_performance_cost_percentage = 361; + + // Percentage of cost the asset received in ads with + // AssetPerformanceLabel.LEARNING. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Performance Max channel. + optional double asset_learning_performance_cost_percentage = 362; + + // Percentage of cost the asset received in ads with AssetPerformanceLabel + // other than BEST, GOOD, LOW, and LEARNING. + // This metric can only be selected with ChannelAggregateAssetView and + // CampaignAggregateAssetView. + // This metric is only supported in Performance Max channel. + optional double asset_unrated_performance_cost_percentage = 363; + + // The amount of store visits attributed by the last click model. + optional double store_visits_last_click_model_attributed_conversions = 365; + + // The purchase conversion stats for the unified goals results. + optional double results_conversions_purchase = 366; + + // The number of video views divided by number of impressions that can + // potentially lead to video views for in-feed formats. + optional double video_view_rate_in_feed = 367; + + // The number of video views divided by number of impressions that can + // potentially lead to video views for in-stream formats. + optional double video_view_rate_in_stream = 368; + + // The number of video views divided by number of impressions that can + // potentially lead to video views for in shorts formats. + optional double video_view_rate_shorts = 369; } // Search volume range. diff --git a/google/ads/googleads/v15/common/offline_user_data.proto b/google/ads/googleads/v18/common/offline_user_data.proto similarity index 95% rename from google/ads/googleads/v15/common/offline_user_data.proto rename to google/ads/googleads/v18/common/offline_user_data.proto index 1c267bb29..82d3ba63b 100644 --- a/google/ads/googleads/v15/common/offline_user_data.proto +++ b/google/ads/googleads/v18/common/offline_user_data.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -import "google/ads/googleads/v15/common/consent.proto"; -import "google/ads/googleads/v15/enums/user_identifier_source.proto"; +import "google/ads/googleads/v18/common/consent.proto"; +import "google/ads/googleads/v18/enums/user_identifier_source.proto"; import "google/api/field_behavior.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "OfflineUserDataProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing offline user data. @@ -66,7 +66,7 @@ message OfflineUserAddressInfo { message UserIdentifier { // Source of the user identifier when the upload is from Store Sales, // ConversionUploadService, or ConversionAdjustmentUploadService. - google.ads.googleads.v15.enums.UserIdentifierSourceEnum.UserIdentifierSource + google.ads.googleads.v18.enums.UserIdentifierSourceEnum.UserIdentifierSource user_identifier_source = 6; // Exactly one must be specified. For OfflineUserDataJobService, Customer @@ -183,8 +183,8 @@ message UserData { // customer match attributes. These have an expiration of 540 days. UserAttribute user_attribute = 3; - // The consent setting for the user. Customer match will ignore this field - // and return a warning. + // The consent setting for the user. If set, will override the job level + // consent for this user. optional Consent consent = 4; } diff --git a/google/ads/googleads/v15/common/policy.proto b/google/ads/googleads/v18/common/policy.proto similarity index 91% rename from google/ads/googleads/v15/common/policy.proto rename to google/ads/googleads/v18/common/policy.proto index ccbbbd6bb..b4f45ca3b 100644 --- a/google/ads/googleads/v15/common/policy.proto +++ b/google/ads/googleads/v18/common/policy.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -import "google/ads/googleads/v15/enums/policy_topic_entry_type.proto"; -import "google/ads/googleads/v15/enums/policy_topic_evidence_destination_mismatch_url_type.proto"; -import "google/ads/googleads/v15/enums/policy_topic_evidence_destination_not_working_device.proto"; -import "google/ads/googleads/v15/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto"; +import "google/ads/googleads/v18/enums/policy_topic_entry_type.proto"; +import "google/ads/googleads/v18/enums/policy_topic_evidence_destination_mismatch_url_type.proto"; +import "google/ads/googleads/v18/enums/policy_topic_evidence_destination_not_working_device.proto"; +import "google/ads/googleads/v18/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "PolicyProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing policy information. @@ -86,7 +86,7 @@ message PolicyTopicEntry { optional string topic = 5; // Describes the negative or positive effect this policy will have on serving. - google.ads.googleads.v15.enums.PolicyTopicEntryTypeEnum.PolicyTopicEntryType + google.ads.googleads.v18.enums.PolicyTopicEntryTypeEnum.PolicyTopicEntryType type = 2; // Additional information that explains policy finding @@ -125,7 +125,7 @@ message PolicyTopicEvidence { // Evidence of mismatches between the URLs of a resource. message DestinationMismatch { // The set of URLs that did not match each other. - repeated google.ads.googleads.v15.enums + repeated google.ads.googleads.v18.enums .PolicyTopicEvidenceDestinationMismatchUrlTypeEnum .PolicyTopicEvidenceDestinationMismatchUrlType url_types = 1; } @@ -137,7 +137,7 @@ message PolicyTopicEvidence { optional string expanded_url = 7; // The type of device that failed to load the URL. - google.ads.googleads.v15.enums + google.ads.googleads.v18.enums .PolicyTopicEvidenceDestinationNotWorkingDeviceEnum .PolicyTopicEvidenceDestinationNotWorkingDevice device = 4; @@ -149,7 +149,7 @@ message PolicyTopicEvidence { // Indicates the reason of the DESTINATION_NOT_WORKING policy finding. oneof reason { // The type of DNS error. - google.ads.googleads.v15.enums + google.ads.googleads.v18.enums .PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeEnum .PolicyTopicEvidenceDestinationNotWorkingDnsErrorType dns_error_type = 1; diff --git a/google/ads/googleads/v15/common/policy_summary.proto b/google/ads/googleads/v18/common/policy_summary.proto similarity index 65% rename from google/ads/googleads/v15/common/policy_summary.proto rename to google/ads/googleads/v18/common/policy_summary.proto index 3ac226713..471dfda36 100644 --- a/google/ads/googleads/v15/common/policy_summary.proto +++ b/google/ads/googleads/v18/common/policy_summary.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -import "google/ads/googleads/v15/common/policy.proto"; -import "google/ads/googleads/v15/enums/policy_approval_status.proto"; -import "google/ads/googleads/v15/enums/policy_review_status.proto"; +import "google/ads/googleads/v18/common/policy.proto"; +import "google/ads/googleads/v18/enums/policy_approval_status.proto"; +import "google/ads/googleads/v18/enums/policy_review_status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "PolicySummaryProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing policy summary. @@ -37,11 +37,11 @@ message PolicySummary { repeated PolicyTopicEntry policy_topic_entries = 1; // Where in the review process the resource is. - google.ads.googleads.v15.enums.PolicyReviewStatusEnum.PolicyReviewStatus + google.ads.googleads.v18.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.v15.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus + google.ads.googleads.v18.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3; } diff --git a/google/ads/googleads/v15/common/real_time_bidding_setting.proto b/google/ads/googleads/v18/common/real_time_bidding_setting.proto similarity index 75% rename from google/ads/googleads/v15/common/real_time_bidding_setting.proto rename to google/ads/googleads/v18/common/real_time_bidding_setting.proto index ddc75d9b4..a1ab57cf5 100644 --- a/google/ads/googleads/v15/common/real_time_bidding_setting.proto +++ b/google/ads/googleads/v18/common/real_time_bidding_setting.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "RealTimeBiddingSettingProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing RealTimeBiddingSetting diff --git a/google/ads/googleads/v15/common/segments.proto b/google/ads/googleads/v18/common/segments.proto similarity index 71% rename from google/ads/googleads/v15/common/segments.proto rename to google/ads/googleads/v18/common/segments.proto index d63972b4a..48272e94b 100644 --- a/google/ads/googleads/v15/common/segments.proto +++ b/google/ads/googleads/v18/common/segments.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,49 +14,50 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; - -import "google/ads/googleads/v15/common/criteria.proto"; -import "google/ads/googleads/v15/enums/ad_destination_type.proto"; -import "google/ads/googleads/v15/enums/ad_network_type.proto"; -import "google/ads/googleads/v15/enums/budget_campaign_association_status.proto"; -import "google/ads/googleads/v15/enums/click_type.proto"; -import "google/ads/googleads/v15/enums/conversion_action_category.proto"; -import "google/ads/googleads/v15/enums/conversion_attribution_event_type.proto"; -import "google/ads/googleads/v15/enums/conversion_lag_bucket.proto"; -import "google/ads/googleads/v15/enums/conversion_or_adjustment_lag_bucket.proto"; -import "google/ads/googleads/v15/enums/conversion_value_rule_primary_dimension.proto"; -import "google/ads/googleads/v15/enums/converting_user_prior_engagement_type_and_ltv_bucket.proto"; -import "google/ads/googleads/v15/enums/day_of_week.proto"; -import "google/ads/googleads/v15/enums/device.proto"; -import "google/ads/googleads/v15/enums/external_conversion_source.proto"; -import "google/ads/googleads/v15/enums/hotel_date_selection_type.proto"; -import "google/ads/googleads/v15/enums/hotel_price_bucket.proto"; -import "google/ads/googleads/v15/enums/hotel_rate_type.proto"; -import "google/ads/googleads/v15/enums/month_of_year.proto"; -import "google/ads/googleads/v15/enums/placeholder_type.proto"; -import "google/ads/googleads/v15/enums/product_channel.proto"; -import "google/ads/googleads/v15/enums/product_channel_exclusivity.proto"; -import "google/ads/googleads/v15/enums/product_condition.proto"; -import "google/ads/googleads/v15/enums/recommendation_type.proto"; -import "google/ads/googleads/v15/enums/search_engine_results_page_type.proto"; -import "google/ads/googleads/v15/enums/search_term_match_type.proto"; -import "google/ads/googleads/v15/enums/sk_ad_network_ad_event_type.proto"; -import "google/ads/googleads/v15/enums/sk_ad_network_attribution_credit.proto"; -import "google/ads/googleads/v15/enums/sk_ad_network_coarse_conversion_value.proto"; -import "google/ads/googleads/v15/enums/sk_ad_network_source_type.proto"; -import "google/ads/googleads/v15/enums/sk_ad_network_user_type.proto"; -import "google/ads/googleads/v15/enums/slot.proto"; +package google.ads.googleads.v18.common; + +import "google/ads/googleads/v18/common/criteria.proto"; +import "google/ads/googleads/v18/enums/ad_destination_type.proto"; +import "google/ads/googleads/v18/enums/ad_format_type.proto"; +import "google/ads/googleads/v18/enums/ad_network_type.proto"; +import "google/ads/googleads/v18/enums/budget_campaign_association_status.proto"; +import "google/ads/googleads/v18/enums/click_type.proto"; +import "google/ads/googleads/v18/enums/conversion_action_category.proto"; +import "google/ads/googleads/v18/enums/conversion_attribution_event_type.proto"; +import "google/ads/googleads/v18/enums/conversion_lag_bucket.proto"; +import "google/ads/googleads/v18/enums/conversion_or_adjustment_lag_bucket.proto"; +import "google/ads/googleads/v18/enums/conversion_value_rule_primary_dimension.proto"; +import "google/ads/googleads/v18/enums/converting_user_prior_engagement_type_and_ltv_bucket.proto"; +import "google/ads/googleads/v18/enums/day_of_week.proto"; +import "google/ads/googleads/v18/enums/device.proto"; +import "google/ads/googleads/v18/enums/external_conversion_source.proto"; +import "google/ads/googleads/v18/enums/hotel_date_selection_type.proto"; +import "google/ads/googleads/v18/enums/hotel_price_bucket.proto"; +import "google/ads/googleads/v18/enums/hotel_rate_type.proto"; +import "google/ads/googleads/v18/enums/month_of_year.proto"; +import "google/ads/googleads/v18/enums/placeholder_type.proto"; +import "google/ads/googleads/v18/enums/product_channel.proto"; +import "google/ads/googleads/v18/enums/product_channel_exclusivity.proto"; +import "google/ads/googleads/v18/enums/product_condition.proto"; +import "google/ads/googleads/v18/enums/recommendation_type.proto"; +import "google/ads/googleads/v18/enums/search_engine_results_page_type.proto"; +import "google/ads/googleads/v18/enums/search_term_match_type.proto"; +import "google/ads/googleads/v18/enums/sk_ad_network_ad_event_type.proto"; +import "google/ads/googleads/v18/enums/sk_ad_network_attribution_credit.proto"; +import "google/ads/googleads/v18/enums/sk_ad_network_coarse_conversion_value.proto"; +import "google/ads/googleads/v18/enums/sk_ad_network_source_type.proto"; +import "google/ads/googleads/v18/enums/sk_ad_network_user_type.proto"; +import "google/ads/googleads/v18/enums/slot.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "SegmentsProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing segment only fields. @@ -65,18 +66,31 @@ message Segments { // Activity account ID. optional int64 activity_account_id = 148; + // The city where the travel activity is available. + optional string activity_city = 185; + + // The country where the travel activity is available. + optional string activity_country = 186; + // Activity rating. optional int64 activity_rating = 149; + // The state where the travel activity is available. + optional string activity_state = 187; + // Advertiser supplied activity ID. optional string external_activity_id = 150; // Ad Destination type. - google.ads.googleads.v15.enums.AdDestinationTypeEnum.AdDestinationType + google.ads.googleads.v18.enums.AdDestinationTypeEnum.AdDestinationType ad_destination_type = 136; + // Ad Format type. + google.ads.googleads.v18.enums.AdFormatTypeEnum.AdFormatType ad_format_type = + 191; + // Ad network type. - google.ads.googleads.v15.enums.AdNetworkTypeEnum.AdNetworkType + google.ads.googleads.v18.enums.AdNetworkTypeEnum.AdNetworkType ad_network_type = 3; // Resource name of the ad group. @@ -95,7 +109,7 @@ message Segments { optional string campaign = 157; // Click type. - google.ads.googleads.v15.enums.ClickTypeEnum.ClickType click_type = 26; + google.ads.googleads.v18.enums.ClickTypeEnum.ClickType click_type = 26; // Resource name of the conversion action. optional string conversion_action = 113 [(google.api.resource_reference) = { @@ -103,7 +117,7 @@ message Segments { }]; // Conversion action category. - google.ads.googleads.v15.enums.ConversionActionCategoryEnum + google.ads.googleads.v18.enums.ConversionActionCategoryEnum .ConversionActionCategory conversion_action_category = 53; // Conversion action name. @@ -117,17 +131,17 @@ message Segments { optional bool conversion_adjustment = 115; // Conversion attribution event type. - google.ads.googleads.v15.enums.ConversionAttributionEventTypeEnum + google.ads.googleads.v18.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.v15.enums.ConversionLagBucketEnum.ConversionLagBucket + google.ads.googleads.v18.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.v15.enums.ConversionOrAdjustmentLagBucketEnum + google.ads.googleads.v18.enums.ConversionOrAdjustmentLagBucketEnum .ConversionOrAdjustmentLagBucket conversion_or_adjustment_lag_bucket = 51; // Date to which metrics apply. @@ -135,13 +149,13 @@ message Segments { optional string date = 79; // Day of the week, for example, MONDAY. - google.ads.googleads.v15.enums.DayOfWeekEnum.DayOfWeek day_of_week = 5; + google.ads.googleads.v18.enums.DayOfWeekEnum.DayOfWeek day_of_week = 5; // Device to which metrics apply. - google.ads.googleads.v15.enums.DeviceEnum.Device device = 1; + google.ads.googleads.v18.enums.DeviceEnum.Device device = 1; // External conversion source. - google.ads.googleads.v15.enums.ExternalConversionSourceEnum + google.ads.googleads.v18.enums.ExternalConversionSourceEnum .ExternalConversionSource external_conversion_source = 55; // Resource name of the geo target constant that represents an airport. @@ -191,7 +205,7 @@ message Segments { optional string hotel_check_in_date = 81; // Hotel check-in day of week. - google.ads.googleads.v15.enums.DayOfWeekEnum.DayOfWeek + google.ads.googleads.v18.enums.DayOfWeekEnum.DayOfWeek hotel_check_in_day_of_week = 9; // Hotel city. @@ -204,7 +218,7 @@ message Segments { optional string hotel_country = 84; // Hotel date selection type. - google.ads.googleads.v15.enums.HotelDateSelectionTypeEnum + google.ads.googleads.v18.enums.HotelDateSelectionTypeEnum .HotelDateSelectionType hotel_date_selection_type = 13; // Hotel length of stay. @@ -214,11 +228,11 @@ message Segments { optional string hotel_rate_rule_id = 86; // Hotel rate type. - google.ads.googleads.v15.enums.HotelRateTypeEnum.HotelRateType + google.ads.googleads.v18.enums.HotelRateTypeEnum.HotelRateType hotel_rate_type = 74; // Hotel price bucket. - google.ads.googleads.v15.enums.HotelPriceBucketEnum.HotelPriceBucket + google.ads.googleads.v18.enums.HotelPriceBucketEnum.HotelPriceBucket hotel_price_bucket = 78; // Hotel state. @@ -240,13 +254,13 @@ message Segments { optional string month = 90; // Month of the year, for example, January. - google.ads.googleads.v15.enums.MonthOfYearEnum.MonthOfYear month_of_year = 18; + google.ads.googleads.v18.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.v15.enums.PlaceholderTypeEnum.PlaceholderType + google.ads.googleads.v18.enums.PlaceholderTypeEnum.PlaceholderType placeholder_type = 20; // Aggregator ID of the product. @@ -271,15 +285,15 @@ message Segments { optional string product_brand = 97; // Channel of the product. - google.ads.googleads.v15.enums.ProductChannelEnum.ProductChannel + google.ads.googleads.v18.enums.ProductChannelEnum.ProductChannel product_channel = 30; // Channel exclusivity of the product. - google.ads.googleads.v15.enums.ProductChannelExclusivityEnum + google.ads.googleads.v18.enums.ProductChannelExclusivityEnum .ProductChannelExclusivity product_channel_exclusivity = 31; // Condition of the product. - google.ads.googleads.v15.enums.ProductConditionEnum.ProductCondition + google.ads.googleads.v18.enums.ProductConditionEnum.ProductCondition product_condition = 32; // Resource name of the geo target constant for the country of sale of the @@ -339,12 +353,21 @@ message Segments { // 2018 starts on 2018-04-01. Formatted as yyyy-MM-dd. optional string quarter = 128; + // The city the user is searching for at query time. + optional string travel_destination_city = 193; + + // The country the user is searching for at query time. + optional string travel_destination_country = 194; + + // The region the user is searching for at query time. + optional string travel_destination_region = 195; + // Recommendation type. - google.ads.googleads.v15.enums.RecommendationTypeEnum.RecommendationType + google.ads.googleads.v18.enums.RecommendationTypeEnum.RecommendationType recommendation_type = 140; // Type of the search engine results page. - google.ads.googleads.v15.enums.SearchEngineResultsPageTypeEnum + google.ads.googleads.v18.enums.SearchEngineResultsPageTypeEnum .SearchEngineResultsPageType search_engine_results_page_type = 70; // A search term subcategory. An empty string denotes the catch-all @@ -355,20 +378,20 @@ message Segments { optional string search_term = 156; // Match type of the keyword that triggered the ad, including variants. - google.ads.googleads.v15.enums.SearchTermMatchTypeEnum.SearchTermMatchType + google.ads.googleads.v18.enums.SearchTermMatchTypeEnum.SearchTermMatchType search_term_match_type = 22; // Position of the ad. - google.ads.googleads.v15.enums.SlotEnum.Slot slot = 23; + google.ads.googleads.v18.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.v15.enums.ConversionValueRulePrimaryDimensionEnum + // GEO_LOCATION, DEVICE, AUDIENCE, ITINERARY show the net adjustment after + // value rules were applied. + google.ads.googleads.v18.enums.ConversionValueRulePrimaryDimensionEnum .ConversionValueRulePrimaryDimension conversion_value_rule_primary_dimension = 138; @@ -385,14 +408,24 @@ message Segments { // iOS Store Kit Ad Network conversion value. // Null value means this segment is not applicable, for example, non-iOS // campaign. - optional int64 sk_ad_network_conversion_value = 137; + optional int64 sk_ad_network_fine_conversion_value = 137; + + // iOS Store Kit Ad Network redistributed fine conversion value. + // + // Google uses modeling on observed conversion values(obtained + // from Apple) to calculate conversions from SKAN postbacks where + // NULLs are returned. This column represents the sum of the modeled + // conversion values and the observed conversion values. See + // https://support.google.com/google-ads/answer/14892597 + // to lean more. + optional int64 sk_ad_network_redistributed_fine_conversion_value = 190; // iOS Store Kit Ad Network user type. - google.ads.googleads.v15.enums.SkAdNetworkUserTypeEnum.SkAdNetworkUserType + google.ads.googleads.v18.enums.SkAdNetworkUserTypeEnum.SkAdNetworkUserType sk_ad_network_user_type = 141; // iOS Store Kit Ad Network ad event type. - google.ads.googleads.v15.enums.SkAdNetworkAdEventTypeEnum + google.ads.googleads.v18.enums.SkAdNetworkAdEventTypeEnum .SkAdNetworkAdEventType sk_ad_network_ad_event_type = 142; // App where the ad that drove the iOS Store Kit Ad Network install was @@ -401,11 +434,11 @@ message Segments { optional SkAdNetworkSourceApp sk_ad_network_source_app = 143; // iOS Store Kit Ad Network attribution credit - google.ads.googleads.v15.enums.SkAdNetworkAttributionCreditEnum + google.ads.googleads.v18.enums.SkAdNetworkAttributionCreditEnum .SkAdNetworkAttributionCredit sk_ad_network_attribution_credit = 144; // iOS Store Kit Ad Network coarse conversion value. - google.ads.googleads.v15.enums.SkAdNetworkCoarseConversionValueEnum + google.ads.googleads.v18.enums.SkAdNetworkCoarseConversionValueEnum .SkAdNetworkCoarseConversionValue sk_ad_network_coarse_conversion_value = 151; @@ -418,12 +451,15 @@ message Segments { // install was shown. Null value means this segment is not applicable, for // example, non-iOS campaign, or neither source domain nor source app were // present in any postbacks sent by Apple. - google.ads.googleads.v15.enums.SkAdNetworkSourceTypeEnum.SkAdNetworkSourceType + google.ads.googleads.v18.enums.SkAdNetworkSourceTypeEnum.SkAdNetworkSourceType sk_ad_network_source_type = 153; // iOS Store Kit Ad Network postback sequence index. optional int64 sk_ad_network_postback_sequence_index = 154; + // The version of the SKAdNetwork API used. + optional string sk_ad_network_version = 192; + // 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. @@ -439,7 +475,7 @@ message Segments { // This is for segmenting conversions by whether the user is a new customer // or a returning customer. This segmentation is typically used to measure // the impact of customer acquisition goal. - google.ads.googleads.v15.enums + google.ads.googleads.v18.enums .ConvertingUserPriorEngagementTypeAndLtvBucketEnum .ConvertingUserPriorEngagementTypeAndLtvBucket new_versus_returning_customers = 160; @@ -460,7 +496,7 @@ message BudgetCampaignAssociationStatus { optional string campaign = 1; // Budget campaign association status. - google.ads.googleads.v15.enums.BudgetCampaignAssociationStatusEnum + google.ads.googleads.v18.enums.BudgetCampaignAssociationStatusEnum .BudgetCampaignAssociationStatus status = 2; } diff --git a/google/ads/googleads/v15/common/simulation.proto b/google/ads/googleads/v18/common/simulation.proto similarity index 96% rename from google/ads/googleads/v15/common/simulation.proto rename to google/ads/googleads/v18/common/simulation.proto index f65a7d787..33ad8e86b 100644 --- a/google/ads/googleads/v15/common/simulation.proto +++ b/google/ads/googleads/v18/common/simulation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "SimulationProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing simulation points. diff --git a/google/ads/googleads/v15/common/tag_snippet.proto b/google/ads/googleads/v18/common/tag_snippet.proto similarity index 70% rename from google/ads/googleads/v15/common/tag_snippet.proto rename to google/ads/googleads/v18/common/tag_snippet.proto index 7410cede6..3c8fdc486 100644 --- a/google/ads/googleads/v15/common/tag_snippet.proto +++ b/google/ads/googleads/v18/common/tag_snippet.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,30 +14,30 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -import "google/ads/googleads/v15/enums/tracking_code_page_format.proto"; -import "google/ads/googleads/v15/enums/tracking_code_type.proto"; +import "google/ads/googleads/v18/enums/tracking_code_page_format.proto"; +import "google/ads/googleads/v18/enums/tracking_code_type.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "TagSnippetProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::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.v15.enums.TrackingCodeTypeEnum.TrackingCodeType type = 1; + google.ads.googleads.v18.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.v15.enums.TrackingCodePageFormatEnum + google.ads.googleads.v18.enums.TrackingCodePageFormatEnum .TrackingCodePageFormat page_format = 2; // The site tag that adds visitors to your basic remarketing lists and sets diff --git a/google/ads/googleads/v15/common/targeting_setting.proto b/google/ads/googleads/v18/common/targeting_setting.proto similarity index 85% rename from google/ads/googleads/v15/common/targeting_setting.proto rename to google/ads/googleads/v18/common/targeting_setting.proto index 9b3d027a9..7e74d7cfd 100644 --- a/google/ads/googleads/v15/common/targeting_setting.proto +++ b/google/ads/googleads/v18/common/targeting_setting.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,18 +14,18 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -import "google/ads/googleads/v15/enums/targeting_dimension.proto"; +import "google/ads/googleads/v18/enums/targeting_dimension.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "TargetingSettingProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing TargetingSetting @@ -47,7 +47,7 @@ message TargetingSetting { // The list of per-targeting-dimension targeting settings. message TargetRestriction { // The targeting dimension that these settings apply to. - google.ads.googleads.v15.enums.TargetingDimensionEnum.TargetingDimension + google.ads.googleads.v18.enums.TargetingDimensionEnum.TargetingDimension targeting_dimension = 1; // Indicates whether to restrict your ads to show only for the criteria you diff --git a/google/ads/googleads/v15/common/text_label.proto b/google/ads/googleads/v18/common/text_label.proto similarity index 73% rename from google/ads/googleads/v15/common/text_label.proto rename to google/ads/googleads/v18/common/text_label.proto index 1436e2649..d043cd4e2 100644 --- a/google/ads/googleads/v15/common/text_label.proto +++ b/google/ads/googleads/v18/common/text_label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "TextLabelProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::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 + // Background color of the label in HEX 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; diff --git a/google/ads/googleads/v15/common/url_collection.proto b/google/ads/googleads/v18/common/url_collection.proto similarity index 78% rename from google/ads/googleads/v15/common/url_collection.proto rename to google/ads/googleads/v18/common/url_collection.proto index bd4f774e3..d51b038f8 100644 --- a/google/ads/googleads/v15/common/url_collection.proto +++ b/google/ads/googleads/v18/common/url_collection.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "UrlCollectionProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file UrlCollection type. diff --git a/google/ads/googleads/v15/common/user_lists.proto b/google/ads/googleads/v18/common/user_lists.proto similarity index 86% rename from google/ads/googleads/v15/common/user_lists.proto rename to google/ads/googleads/v18/common/user_lists.proto index beb502113..9aee71397 100644 --- a/google/ads/googleads/v15/common/user_lists.proto +++ b/google/ads/googleads/v18/common/user_lists.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,27 +14,27 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; - -import "google/ads/googleads/v15/enums/customer_match_upload_key_type.proto"; -import "google/ads/googleads/v15/enums/lookalike_expansion_level.proto"; -import "google/ads/googleads/v15/enums/user_list_crm_data_source_type.proto"; -import "google/ads/googleads/v15/enums/user_list_date_rule_item_operator.proto"; -import "google/ads/googleads/v15/enums/user_list_flexible_rule_operator.proto"; -import "google/ads/googleads/v15/enums/user_list_logical_rule_operator.proto"; -import "google/ads/googleads/v15/enums/user_list_number_rule_item_operator.proto"; -import "google/ads/googleads/v15/enums/user_list_prepopulation_status.proto"; -import "google/ads/googleads/v15/enums/user_list_rule_type.proto"; -import "google/ads/googleads/v15/enums/user_list_string_rule_item_operator.proto"; - -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +package google.ads.googleads.v18.common; + +import "google/ads/googleads/v18/enums/customer_match_upload_key_type.proto"; +import "google/ads/googleads/v18/enums/lookalike_expansion_level.proto"; +import "google/ads/googleads/v18/enums/user_list_crm_data_source_type.proto"; +import "google/ads/googleads/v18/enums/user_list_date_rule_item_operator.proto"; +import "google/ads/googleads/v18/enums/user_list_flexible_rule_operator.proto"; +import "google/ads/googleads/v18/enums/user_list_logical_rule_operator.proto"; +import "google/ads/googleads/v18/enums/user_list_number_rule_item_operator.proto"; +import "google/ads/googleads/v18/enums/user_list_prepopulation_status.proto"; +import "google/ads/googleads/v18/enums/user_list_rule_type.proto"; +import "google/ads/googleads/v18/enums/user_list_string_rule_item_operator.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "UserListsProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing user list types. @@ -45,7 +45,7 @@ message LookalikeUserListInfo { repeated int64 seed_user_list_ids = 1; // Expansion level, reflecting the size of the lookalike audience - google.ads.googleads.v15.enums.LookalikeExpansionLevelEnum + google.ads.googleads.v18.enums.LookalikeExpansionLevelEnum .LookalikeExpansionLevel expansion_level = 2; // Countries targeted by the Lookalike. Two-letter country code as defined by @@ -77,12 +77,12 @@ message CrmBasedUserListInfo { // Matching key type of the list. // Mixed data types are not allowed on the same list. // This field is required for an ADD operation. - google.ads.googleads.v15.enums.CustomerMatchUploadKeyTypeEnum + google.ads.googleads.v18.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.v15.enums.UserListCrmDataSourceTypeEnum + google.ads.googleads.v18.enums.UserListCrmDataSourceTypeEnum .UserListCrmDataSourceType data_source_type = 3; } @@ -96,7 +96,7 @@ message UserListRuleInfo { // groups themselves will be ORed together. // // OR of ANDs is the only supported type for FlexibleRuleUserList. - google.ads.googleads.v15.enums.UserListRuleTypeEnum.UserListRuleType + google.ads.googleads.v18.enums.UserListRuleTypeEnum.UserListRuleType rule_type = 1; // List of rule item groups that defines this rule. @@ -140,7 +140,7 @@ message UserListDateRuleItemInfo { // Date comparison operator. // This field is required and must be populated when creating new date // rule item. - google.ads.googleads.v15.enums.UserListDateRuleItemOperatorEnum + google.ads.googleads.v18.enums.UserListDateRuleItemOperatorEnum .UserListDateRuleItemOperator operator = 1; @@ -160,7 +160,7 @@ message UserListNumberRuleItemInfo { // Number comparison operator. // This field is required and must be populated when creating a new number // rule item. - google.ads.googleads.v15.enums.UserListNumberRuleItemOperatorEnum + google.ads.googleads.v18.enums.UserListNumberRuleItemOperatorEnum .UserListNumberRuleItemOperator operator = 1; @@ -175,7 +175,7 @@ message UserListStringRuleItemInfo { // String comparison operator. // This field is required and must be populated when creating a new string // rule item. - google.ads.googleads.v15.enums.UserListStringRuleItemOperatorEnum + google.ads.googleads.v18.enums.UserListStringRuleItemOperatorEnum .UserListStringRuleItemOperator operator = 1; @@ -205,7 +205,7 @@ message FlexibleRuleOperandInfo { // exclusive operands. message FlexibleRuleUserListInfo { // Operator that defines how the inclusive operands are combined. - google.ads.googleads.v15.enums.UserListFlexibleRuleOperatorEnum + google.ads.googleads.v18.enums.UserListFlexibleRuleOperatorEnum .UserListFlexibleRuleOperator inclusive_rule_operator = 1; // Rules representing users that should be included in the user list. These @@ -229,7 +229,7 @@ message RuleBasedUserListInfo { // list's membership duration and the date when the remarketing tag is added. // The status will be updated to FINISHED once request is processed, or FAILED // if the request fails. - google.ads.googleads.v15.enums.UserListPrepopulationStatusEnum + google.ads.googleads.v18.enums.UserListPrepopulationStatusEnum .UserListPrepopulationStatus prepopulation_status = 1; // Flexible rule representation of visitors with one or multiple actions. The @@ -256,7 +256,7 @@ message LogicalUserListInfo { // list of user lists as operands. message UserListLogicalRuleInfo { // The logical operator of the rule. - google.ads.googleads.v15.enums.UserListLogicalRuleOperatorEnum + google.ads.googleads.v18.enums.UserListLogicalRuleOperatorEnum .UserListLogicalRuleOperator operator = 1; diff --git a/google/ads/googleads/v15/common/value.proto b/google/ads/googleads/v18/common/value.proto similarity index 76% rename from google/ads/googleads/v15/common/value.proto rename to google/ads/googleads/v18/common/value.proto index 5bc16fa00..6ccb62784 100644 --- a/google/ads/googleads/v15/common/value.proto +++ b/google/ads/googleads/v18/common/value.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.common; +package google.ads.googleads.v18.common; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Common"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/common;common"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/common;common"; option java_multiple_files = true; option java_outer_classname = "ValueProto"; -option java_package = "com.google.ads.googleads.v15.common"; +option java_package = "com.google.ads.googleads.v18.common"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Common"; -option ruby_package = "Google::Ads::GoogleAds::V15::Common"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Common"; +option ruby_package = "Google::Ads::GoogleAds::V18::Common"; // Proto file describing value types. diff --git a/google/ads/googleads/v15/enums/BUILD.bazel b/google/ads/googleads/v18/enums/BUILD.bazel similarity index 100% rename from google/ads/googleads/v15/enums/BUILD.bazel rename to google/ads/googleads/v18/enums/BUILD.bazel diff --git a/google/ads/googleads/v15/enums/access_invitation_status.proto b/google/ads/googleads/v18/enums/access_invitation_status.proto similarity index 81% rename from google/ads/googleads/v15/enums/access_invitation_status.proto rename to google/ads/googleads/v18/enums/access_invitation_status.proto index ed9847940..67a50b873 100644 --- a/google/ads/googleads/v15/enums/access_invitation_status.proto +++ b/google/ads/googleads/v18/enums/access_invitation_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AccessInvitationStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing AccessInvitationStatus enum. diff --git a/google/ads/googleads/v15/enums/access_reason.proto b/google/ads/googleads/v18/enums/access_reason.proto similarity index 80% rename from google/ads/googleads/v15/enums/access_reason.proto rename to google/ads/googleads/v18/enums/access_reason.proto index eca5cb7f6..5a51610dc 100644 --- a/google/ads/googleads/v15/enums/access_reason.proto +++ b/google/ads/googleads/v18/enums/access_reason.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AccessReasonProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Indicates the way the resource such as user list is related to a user. message AccessReasonEnum { diff --git a/google/ads/googleads/v15/enums/access_role.proto b/google/ads/googleads/v18/enums/access_role.proto similarity index 80% rename from google/ads/googleads/v15/enums/access_role.proto rename to google/ads/googleads/v18/enums/access_role.proto index ea8c25de6..8b8fcd326 100644 --- a/google/ads/googleads/v15/enums/access_role.proto +++ b/google/ads/googleads/v18/enums/access_role.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AccessRoleProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum describing possible access role for user. message AccessRoleEnum { diff --git a/google/ads/googleads/v15/enums/account_budget_proposal_status.proto b/google/ads/googleads/v18/enums/account_budget_proposal_status.proto similarity index 83% rename from google/ads/googleads/v15/enums/account_budget_proposal_status.proto rename to google/ads/googleads/v18/enums/account_budget_proposal_status.proto index a64946953..78db1b4bb 100644 --- a/google/ads/googleads/v15/enums/account_budget_proposal_status.proto +++ b/google/ads/googleads/v18/enums/account_budget_proposal_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AccountBudgetProposalStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing AccountBudgetProposal statuses. diff --git a/google/ads/googleads/v15/enums/account_budget_proposal_type.proto b/google/ads/googleads/v18/enums/account_budget_proposal_type.proto similarity index 81% rename from google/ads/googleads/v15/enums/account_budget_proposal_type.proto rename to google/ads/googleads/v18/enums/account_budget_proposal_type.proto index 83cb0a6c6..8f9b6cba6 100644 --- a/google/ads/googleads/v15/enums/account_budget_proposal_type.proto +++ b/google/ads/googleads/v18/enums/account_budget_proposal_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AccountBudgetProposalTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing AccountBudgetProposal types. diff --git a/google/ads/googleads/v15/enums/account_budget_status.proto b/google/ads/googleads/v18/enums/account_budget_status.proto similarity index 79% rename from google/ads/googleads/v15/enums/account_budget_status.proto rename to google/ads/googleads/v18/enums/account_budget_status.proto index 3d1d50417..7954fb03a 100644 --- a/google/ads/googleads/v15/enums/account_budget_status.proto +++ b/google/ads/googleads/v18/enums/account_budget_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AccountBudgetStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing AccountBudget statuses. diff --git a/google/ads/googleads/v15/enums/account_link_status.proto b/google/ads/googleads/v18/enums/account_link_status.proto similarity index 83% rename from google/ads/googleads/v15/enums/account_link_status.proto rename to google/ads/googleads/v18/enums/account_link_status.proto index 1993fa685..b69162e40 100644 --- a/google/ads/googleads/v15/enums/account_link_status.proto +++ b/google/ads/googleads/v18/enums/account_link_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AccountLinkStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum describing possible statuses of an account link. message AccountLinkStatusEnum { diff --git a/google/ads/googleads/v15/enums/ad_customizer_placeholder_field.proto b/google/ads/googleads/v18/enums/ad_customizer_placeholder_field.proto similarity index 81% rename from google/ads/googleads/v15/enums/ad_customizer_placeholder_field.proto rename to google/ads/googleads/v18/enums/ad_customizer_placeholder_field.proto index 1ded3566b..73ec291e6 100644 --- a/google/ads/googleads/v15/enums/ad_customizer_placeholder_field.proto +++ b/google/ads/googleads/v18/enums/ad_customizer_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdCustomizerPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Ad Customizer placeholder fields. diff --git a/google/ads/googleads/v15/enums/ad_destination_type.proto b/google/ads/googleads/v18/enums/ad_destination_type.proto similarity index 83% rename from google/ads/googleads/v15/enums/ad_destination_type.proto rename to google/ads/googleads/v18/enums/ad_destination_type.proto index 96d76959b..3f65d9d85 100644 --- a/google/ads/googleads/v15/enums/ad_destination_type.proto +++ b/google/ads/googleads/v18/enums/ad_destination_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdDestinationTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing ad destination types. diff --git a/google/ads/googleads/v18/enums/ad_format_type.proto b/google/ads/googleads/v18/enums/ad_format_type.proto new file mode 100644 index 000000000..723449d50 --- /dev/null +++ b/google/ads/googleads/v18/enums/ad_format_type.proto @@ -0,0 +1,85 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdFormatTypeProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Proto file describing ad format types. + +// Container for enumeration of Google Ads format types. +message AdFormatTypeEnum { + // Enumerates Google Ads format types. + // + // Note that this segmentation is available only for Video and Discovery + // campaigns. For assets, only video assets are supported. + enum AdFormatType { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Value assigned to formats (such as experimental formats) which don't + // support format segmentation in Video and Discovery campaigns. + // + // Note that these formats may change categories in the future, for example + // if an experimental format is exposed or a new format is added. We + // strongly recommend to not rely on this field for long term decisions. + OTHER = 2; + + // Value assigned for Video TrueView for Action campaigns statistics. + // + // Note that statistics with this value may change categories in the future, + // for example if format segmentation support is added for new campaign + // types. We strongly recommend to not rely on this field for long term + // decisions. + UNSEGMENTED = 3; + + // Skippable in-stream ads. + INSTREAM_SKIPPABLE = 4; + + // Non-skippable in-stream ads. + INSTREAM_NON_SKIPPABLE = 5; + + // In-feed YouTube or discovery image ads served on feed surfaces (e.g. + // Discover Feed, YouTube Home, etc.). + INFEED = 6; + + // Short (<7 secs) in-stream non-skippable YouTube ads. + BUMPER = 7; + + // Outstream ads. + OUTSTREAM = 8; + + // Masthead ads. + MASTHEAD = 9; + + // Audio ads. + AUDIO = 10; + + // Vertical full-screen video or discovery image ad served on YouTube Shorts + // or BrandConnect ads served as organic YouTube Shorts. + SHORTS = 11; + } +} diff --git a/google/ads/googleads/v18/enums/ad_group_ad_primary_status.proto b/google/ads/googleads/v18/enums/ad_group_ad_primary_status.proto new file mode 100644 index 000000000..cc1d6cadd --- /dev/null +++ b/google/ads/googleads/v18/enums/ad_group_ad_primary_status.proto @@ -0,0 +1,59 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAdPrimaryStatusProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Proto file describing ad group ad primary status. + +// Ad Group Ad Primary Status. Provides insight into why an ad group ad is not +// serving or not serving optimally. +message AdGroupAdPrimaryStatusEnum { + // The possible statuses of an AdGroupAd. + enum AdGroupAdPrimaryStatus { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The ad group ad is eligible to serve. + ELIGIBLE = 2; + + // The ad group ad is paused. + PAUSED = 3; + + // The ad group ad is removed. + REMOVED = 4; + + // The ad cannot serve now, but may serve later without advertiser action. + PENDING = 5; + + // The ad group ad is serving in a limited capacity. + LIMITED = 6; + + // The ad group ad is not eligible to serve. + NOT_ELIGIBLE = 7; + } +} diff --git a/google/ads/googleads/v18/enums/ad_group_ad_primary_status_reason.proto b/google/ads/googleads/v18/enums/ad_group_ad_primary_status_reason.proto new file mode 100644 index 000000000..41cd37401 --- /dev/null +++ b/google/ads/googleads/v18/enums/ad_group_ad_primary_status_reason.proto @@ -0,0 +1,101 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupAdPrimaryStatusReasonProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Proto file describing ad_group_ad primary status reasons. + +// AdGroupAd Primary Status Reason. Provides insight into why an ad group ad is +// not serving or not serving optimally. These reasons are aggregated to +// determine an overall AdGroupAdPrimaryStatus. +message AdGroupAdPrimaryStatusReasonEnum { + // Possible ad group ad status reasons. + enum AdGroupAdPrimaryStatusReason { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The user-specified campaign status is removed. Contributes to + // AdGroupAdPrimaryStatus.REMOVED. + CAMPAIGN_REMOVED = 2; + + // The user-specified campaign status is paused. Contributes to + // AdGroupAdPrimaryStatus.PAUSED. + CAMPAIGN_PAUSED = 3; + + // The user-specified time for this campaign to start is in the future. + // Contributes to AdGroupAdPrimaryStatus.PENDING. + CAMPAIGN_PENDING = 4; + + // The user-specified time for this campaign to end has passed. Contributes + // to AdGroupAdPrimaryStatus.ENDED. + CAMPAIGN_ENDED = 5; + + // The user-specified ad group status is paused. Contributes to + // AdGroupAdPrimaryStatus.PAUSED. + AD_GROUP_PAUSED = 6; + + // The user-specified ad group status is removed. Contributes to + // AdGroupAdPrimaryStatus.REMOVED. + AD_GROUP_REMOVED = 7; + + // The user-specified ad status is paused. Contributes to + // AdGroupAdPrimaryStatus.PAUSED. + AD_GROUP_AD_PAUSED = 8; + + // The user-specified ad status is removed. Contributes to + // AdGroupAdPrimaryStatus.REMOVED. + AD_GROUP_AD_REMOVED = 9; + + // The ad is disapproved. Contributes to + // AdGroupAdPrimaryStatus.NOT_ELIGIBLE. + AD_GROUP_AD_DISAPPROVED = 10; + + // The ad is under review. Contributes to AdGroupAdPrimaryStatus.PENDING. + AD_GROUP_AD_UNDER_REVIEW = 11; + + // The ad is poor quality. This is determined by the serving stack that + // served the Ad. Contributes to AdGroupAdPrimaryStatus.LIMITED. + AD_GROUP_AD_POOR_QUALITY = 12; + + // No eligible ads instances could be generated. Contributes to + // AdGroupAdPrimaryStatus.PENDING. + AD_GROUP_AD_NO_ADS = 13; + + // The ad is internally labeled with a limiting label. Contributes to + // AdGroupAdPrimaryStatus.LIMITED. + AD_GROUP_AD_APPROVED_LABELED = 14; + + // The ad is only serving in the user-specified area of interest. + // Contributes to AdGroupAdPrimaryStatus.LIMITED. + AD_GROUP_AD_AREA_OF_INTEREST_ONLY = 15; + + // The ad is part of an ongoing appeal. This reason does not impact + // AdGroupAdPrimaryStatus. + AD_GROUP_AD_UNDER_APPEAL = 16; + } +} diff --git a/google/ads/googleads/v15/enums/ad_group_ad_rotation_mode.proto b/google/ads/googleads/v18/enums/ad_group_ad_rotation_mode.proto similarity index 80% rename from google/ads/googleads/v15/enums/ad_group_ad_rotation_mode.proto rename to google/ads/googleads/v18/enums/ad_group_ad_rotation_mode.proto index d34810e0a..af7780cff 100644 --- a/google/ads/googleads/v15/enums/ad_group_ad_rotation_mode.proto +++ b/google/ads/googleads/v18/enums/ad_group_ad_rotation_mode.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdGroupAdRotationModeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing ad group ad rotation mode. diff --git a/google/ads/googleads/v15/enums/ad_group_ad_status.proto b/google/ads/googleads/v18/enums/ad_group_ad_status.proto similarity index 79% rename from google/ads/googleads/v15/enums/ad_group_ad_status.proto rename to google/ads/googleads/v18/enums/ad_group_ad_status.proto index b87deb8ab..1860c468a 100644 --- a/google/ads/googleads/v15/enums/ad_group_ad_status.proto +++ b/google/ads/googleads/v18/enums/ad_group_ad_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdGroupAdStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing ad group status. diff --git a/google/ads/googleads/v15/enums/ad_group_criterion_approval_status.proto b/google/ads/googleads/v18/enums/ad_group_criterion_approval_status.proto similarity index 79% rename from google/ads/googleads/v15/enums/ad_group_criterion_approval_status.proto rename to google/ads/googleads/v18/enums/ad_group_criterion_approval_status.proto index 95b0f4691..af859bcf8 100644 --- a/google/ads/googleads/v15/enums/ad_group_criterion_approval_status.proto +++ b/google/ads/googleads/v18/enums/ad_group_criterion_approval_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdGroupCriterionApprovalStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing approval status for the criterion. diff --git a/google/ads/googleads/v18/enums/ad_group_criterion_primary_status.proto b/google/ads/googleads/v18/enums/ad_group_criterion_primary_status.proto new file mode 100644 index 000000000..c5591610d --- /dev/null +++ b/google/ads/googleads/v18/enums/ad_group_criterion_primary_status.proto @@ -0,0 +1,57 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionPrimaryStatusProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Proto file describing Ad Group Criterion primary statuses. + +// Container for enum describing possible ad group criterion primary status. +message AdGroupCriterionPrimaryStatusEnum { + // Enum describing the possible ad group criterion primary status. Provides + // insight into why an ad group criterion is not serving or not serving + // optimally. + enum AdGroupCriterionPrimaryStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The ad group criterion is eligible to serve. + ELIGIBLE = 2; + + // The ad group criterion is paused. + PAUSED = 3; + + // The ad group criterion is removed. + REMOVED = 4; + + // The ad group criterion is pending. + PENDING = 5; + + // The ad group criterion is not eligible to serve. + NOT_ELIGIBLE = 6; + } +} diff --git a/google/ads/googleads/v18/enums/ad_group_criterion_primary_status_reason.proto b/google/ads/googleads/v18/enums/ad_group_criterion_primary_status_reason.proto new file mode 100644 index 000000000..3b547118b --- /dev/null +++ b/google/ads/googleads/v18/enums/ad_group_criterion_primary_status_reason.proto @@ -0,0 +1,116 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupCriterionPrimaryStatusReasonProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Proto file describing AdGroupCriterionPrimaryStatusReasons. + +// Container for enum describing possible ad group criterion primary status +// reasons. +message AdGroupCriterionPrimaryStatusReasonEnum { + // Enum describing the possible Ad Group Criterion primary status reasons. + // Provides insight into why an Ad Group Criterion is not serving or not + // serving optimally. These reasons are aggregated to determine an overall + // Ad Group Criterion primary status. + enum AdGroupCriterionPrimaryStatusReason { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents unknown value in this version. + UNKNOWN = 1; + + // The user-specified time for this campaign to start is in the future. + // Contributes to AdGroupCriterionPrimaryStatus.PENDING. + CAMPAIGN_PENDING = 2; + + // The ad group criterion is overridden by negative campaign criterion. + // Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE. + CAMPAIGN_CRITERION_NEGATIVE = 3; + + // The user-specified campaign status is paused. Contributes to + // AdGroupCriterionPrimaryStatus.PAUSED. + CAMPAIGN_PAUSED = 4; + + // The user-specified campaign status is removed. Contributes to + // AdGroupCriterionPrimaryStatus.REMOVED. + CAMPAIGN_REMOVED = 5; + + // The user-specified time for this campaign to end has passed. Contributes + // to AdGroupCriterionPrimaryStatus.ENDED. + CAMPAIGN_ENDED = 6; + + // The user-specified ad group status is paused. Contributes to + // AdGroupCriterionPrimaryStatus.PAUSED. + AD_GROUP_PAUSED = 7; + + // The user-specified ad group status is removed. Contributes to + // AdGroupCriterionPrimaryStatus.REMOVED. + AD_GROUP_REMOVED = 8; + + // The ad group criterion is disapproved by the ads approval system. + // Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE. + AD_GROUP_CRITERION_DISAPPROVED = 9; + + // The ad group criterion is rarely served. Contributes to + // AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE. + AD_GROUP_CRITERION_RARELY_SERVED = 10; + + // The ad group criterion has a low quality score. Contributes to + // AdGroupCriterionPrimaryStatus.LIMITED. + AD_GROUP_CRITERION_LOW_QUALITY = 11; + + // The ad group criterion is under review. Contributes to + // AdGroupCriterionPrimaryStatus.PENDING. + AD_GROUP_CRITERION_UNDER_REVIEW = 12; + + // The ad group criterion is pending review. Contributes to + // AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE. + AD_GROUP_CRITERION_PENDING_REVIEW = 13; + + // The ad group criterion's bid is below the value necessary to serve on the + // first page. Contributes to AdGroupCriterionPrimaryStatus.LIMITED. + AD_GROUP_CRITERION_BELOW_FIRST_PAGE_BID = 14; + + // The ad group criterion is negative. Contributes to + // AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE. + AD_GROUP_CRITERION_NEGATIVE = 15; + + // The ad group criterion is restricted. Contributes to + // AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE. + AD_GROUP_CRITERION_RESTRICTED = 16; + + // The user-specified ad group criterion status is paused. Contributes to + // AdGroupCriterionPrimaryStatus.PAUSED. + AD_GROUP_CRITERION_PAUSED = 17; + + // The ad group criterion has been paused due to prolonged low activity in + // serving. Contributes to AdGroupCriterionPrimaryStatus.PAUSED. + AD_GROUP_CRITERION_PAUSED_DUE_TO_LOW_ACTIVITY = 18; + + // The user-specified ad group criterion status is removed. Contributes to + // AdGroupCriterionPrimaryStatus.REMOVED. + AD_GROUP_CRITERION_REMOVED = 19; + } +} diff --git a/google/ads/googleads/v15/enums/ad_group_criterion_status.proto b/google/ads/googleads/v18/enums/ad_group_criterion_status.proto similarity index 80% rename from google/ads/googleads/v15/enums/ad_group_criterion_status.proto rename to google/ads/googleads/v18/enums/ad_group_criterion_status.proto index 07647daef..95428b3d3 100644 --- a/google/ads/googleads/v15/enums/ad_group_criterion_status.proto +++ b/google/ads/googleads/v18/enums/ad_group_criterion_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdGroupCriterionStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing AdGroupCriterion statuses. diff --git a/google/ads/googleads/v18/enums/ad_group_primary_status.proto b/google/ads/googleads/v18/enums/ad_group_primary_status.proto new file mode 100644 index 000000000..f671d42ec --- /dev/null +++ b/google/ads/googleads/v18/enums/ad_group_primary_status.proto @@ -0,0 +1,59 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupPrimaryStatusProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Proto file describing ad group primary status. + +// Ad Group Primary Status. Provides insight into why an ad group is not serving +// or not serving optimally. +message AdGroupPrimaryStatusEnum { + // The possible statuses of an AdGroup. + enum AdGroupPrimaryStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The ad group is eligible to serve. + ELIGIBLE = 2; + + // The ad group is paused. + PAUSED = 3; + + // The ad group is removed. + REMOVED = 4; + + // The ad group may serve in the future. + PENDING = 5; + + // The ad group is not eligible to serve. + NOT_ELIGIBLE = 6; + + // The ad group has limited servability. + LIMITED = 7; + } +} diff --git a/google/ads/googleads/v18/enums/ad_group_primary_status_reason.proto b/google/ads/googleads/v18/enums/ad_group_primary_status_reason.proto new file mode 100644 index 000000000..d224eeebf --- /dev/null +++ b/google/ads/googleads/v18/enums/ad_group_primary_status_reason.proto @@ -0,0 +1,106 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupPrimaryStatusReasonProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Proto file describing ad group source. + +// Ad Group Primary Status Reason. Provides insight into why an ad group is not +// serving or not serving optimally. These reasons are aggregated to determine +// an overall AdGroupPrimaryStatus. +message AdGroupPrimaryStatusReasonEnum { + // Possible ad group status reasons. + enum AdGroupPrimaryStatusReason { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The user-specified campaign status is removed. Contributes to + // AdGroupPrimaryStatus.NOT_ELIGIBLE. + CAMPAIGN_REMOVED = 2; + + // The user-specified campaign status is paused. Contributes to + // AdGroupPrimaryStatus.NOT_ELIGIBLE. + CAMPAIGN_PAUSED = 3; + + // The user-specified time for this campaign to start is in the future. + // Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE + CAMPAIGN_PENDING = 4; + + // The user-specified time for this campaign to end has passed. Contributes + // to AdGroupPrimaryStatus.NOT_ELIGIBLE. + CAMPAIGN_ENDED = 5; + + // The user-specified ad group status is paused. Contributes to + // AdGroupPrimaryStatus.PAUSED. + AD_GROUP_PAUSED = 6; + + // The user-specified ad group status is removed. Contributes to + // AdGroupPrimaryStatus.REMOVED. + AD_GROUP_REMOVED = 7; + + // The construction of this ad group is not yet complete. Contributes to + // AdGroupPrimaryStatus.NOT_ELIGIBLE. + AD_GROUP_INCOMPLETE = 8; + + // The user-specified keyword statuses in this ad group are all paused. + // Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE. + KEYWORDS_PAUSED = 9; + + // No eligible keywords exist in this ad group. Contributes to + // AdGroupPrimaryStatus.NOT_ELIGIBLE. + NO_KEYWORDS = 10; + + // The user-specified ad group ads statuses in this ad group are all paused. + // Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE. + AD_GROUP_ADS_PAUSED = 11; + + // No eligible ad group ads exist in this ad group. Contributes to + // AdGroupPrimaryStatus.NOT_ELIGIBLE. + NO_AD_GROUP_ADS = 12; + + // Policy status reason when at least one ad is disapproved. Contributes to + // multiple AdGroupPrimaryStatus. + HAS_ADS_DISAPPROVED = 13; + + // Policy status reason when at least one ad is limited by policy. + // Contributes to multiple AdGroupPrimaryStatus. + HAS_ADS_LIMITED_BY_POLICY = 14; + + // Policy status reason when most ads are pending review. Contributes to + // AdGroupPrimaryStatus.PENDING. + MOST_ADS_UNDER_REVIEW = 15; + + // The AdGroup belongs to a Draft campaign. Contributes to + // AdGroupPrimaryStatus.NOT_ELIGIBLE. + CAMPAIGN_DRAFT = 16; + + // Ad group has been paused due to prolonged low activity in serving. + // Contributes to AdGroupPrimaryStatus.PAUSED. + AD_GROUP_PAUSED_DUE_TO_LOW_ACTIVITY = 19; + } +} diff --git a/google/ads/googleads/v15/enums/ad_group_status.proto b/google/ads/googleads/v18/enums/ad_group_status.proto similarity index 79% rename from google/ads/googleads/v15/enums/ad_group_status.proto rename to google/ads/googleads/v18/enums/ad_group_status.proto index 5185579ef..5df5e72b5 100644 --- a/google/ads/googleads/v15/enums/ad_group_status.proto +++ b/google/ads/googleads/v18/enums/ad_group_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdGroupStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing ad group status. diff --git a/google/ads/googleads/v15/enums/ad_group_type.proto b/google/ads/googleads/v18/enums/ad_group_type.proto similarity index 88% rename from google/ads/googleads/v15/enums/ad_group_type.proto rename to google/ads/googleads/v18/enums/ad_group_type.proto index ad1c403b3..9c94def09 100644 --- a/google/ads/googleads/v15/enums/ad_group_type.proto +++ b/google/ads/googleads/v18/enums/ad_group_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdGroupTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing ad group types. diff --git a/google/ads/googleads/v15/enums/ad_network_type.proto b/google/ads/googleads/v18/enums/ad_network_type.proto similarity index 72% rename from google/ads/googleads/v15/enums/ad_network_type.proto rename to google/ads/googleads/v18/enums/ad_network_type.proto index 93d5b5d52..35d78d28c 100644 --- a/google/ads/googleads/v15/enums/ad_network_type.proto +++ b/google/ads/googleads/v18/enums/ad_network_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdNetworkTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing ad network types. @@ -54,5 +54,9 @@ message AdNetworkTypeEnum { // Google TV GOOGLE_TV = 9; + + // Google Owned Channels such as Discover feed, Gmail, YouTube. This network + // is only used by Demand Gen campaigns. + GOOGLE_OWNED_CHANNELS = 10; } } diff --git a/google/ads/googleads/v15/enums/ad_serving_optimization_status.proto b/google/ads/googleads/v18/enums/ad_serving_optimization_status.proto similarity index 84% rename from google/ads/googleads/v15/enums/ad_serving_optimization_status.proto rename to google/ads/googleads/v18/enums/ad_serving_optimization_status.proto index b2cccfd27..b91c9a332 100644 --- a/google/ads/googleads/v15/enums/ad_serving_optimization_status.proto +++ b/google/ads/googleads/v18/enums/ad_serving_optimization_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdServingOptimizationStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing ad serving statuses. diff --git a/google/ads/googleads/v15/enums/ad_strength.proto b/google/ads/googleads/v18/enums/ad_strength.proto similarity index 80% rename from google/ads/googleads/v15/enums/ad_strength.proto rename to google/ads/googleads/v18/enums/ad_strength.proto index 19c7e255c..4cea9eec3 100644 --- a/google/ads/googleads/v15/enums/ad_strength.proto +++ b/google/ads/googleads/v18/enums/ad_strength.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdStrengthProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing ad strengths. diff --git a/google/ads/googleads/v15/enums/ad_type.proto b/google/ads/googleads/v18/enums/ad_type.proto similarity index 82% rename from google/ads/googleads/v15/enums/ad_type.proto rename to google/ads/googleads/v18/enums/ad_type.proto index 96256b1fb..4f2cb6651 100644 --- a/google/ads/googleads/v15/enums/ad_type.proto +++ b/google/ads/googleads/v18/enums/ad_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing the ad type. @@ -121,16 +121,19 @@ message AdTypeEnum { // In-feed video ad. IN_FEED_VIDEO_AD = 34; - // Discovery multi asset ad. - DISCOVERY_MULTI_ASSET_AD = 35; + // Demand Gen multi asset ad. + DEMAND_GEN_MULTI_ASSET_AD = 40; - // Discovery carousel ad. - DISCOVERY_CAROUSEL_AD = 36; + // Demand Gen carousel ad. + DEMAND_GEN_CAROUSEL_AD = 41; // Travel ad. TRAVEL_AD = 37; - // Discovery video responsive ad. - DISCOVERY_VIDEO_RESPONSIVE_AD = 38; + // Demand Gen video responsive ad. + DEMAND_GEN_VIDEO_RESPONSIVE_AD = 42; + + // Demand Gen product ad. + DEMAND_GEN_PRODUCT_AD = 39; } } diff --git a/google/ads/googleads/v15/enums/advertising_channel_sub_type.proto b/google/ads/googleads/v18/enums/advertising_channel_sub_type.proto similarity index 90% rename from google/ads/googleads/v15/enums/advertising_channel_sub_type.proto rename to google/ads/googleads/v18/enums/advertising_channel_sub_type.proto index 6551ab6a7..42d8718c6 100644 --- a/google/ads/googleads/v15/enums/advertising_channel_sub_type.proto +++ b/google/ads/googleads/v18/enums/advertising_channel_sub_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdvertisingChannelSubTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing advertising channel subtypes. diff --git a/google/ads/googleads/v15/enums/advertising_channel_type.proto b/google/ads/googleads/v18/enums/advertising_channel_type.proto similarity index 82% rename from google/ads/googleads/v15/enums/advertising_channel_type.proto rename to google/ads/googleads/v18/enums/advertising_channel_type.proto index 212982033..46a7c08e9 100644 --- a/google/ads/googleads/v15/enums/advertising_channel_type.proto +++ b/google/ads/googleads/v18/enums/advertising_channel_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AdvertisingChannelTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing advertising channel types @@ -69,10 +69,10 @@ message AdvertisingChannelTypeEnum { // Local services campaigns. LOCAL_SERVICES = 11; - // Discovery campaigns. - DISCOVERY = 12; - // Travel campaigns. TRAVEL = 13; + + // Demand Gen campaigns. + DEMAND_GEN = 14; } } diff --git a/google/ads/googleads/v15/enums/affiliate_location_feed_relationship_type.proto b/google/ads/googleads/v18/enums/affiliate_location_feed_relationship_type.proto similarity index 80% rename from google/ads/googleads/v15/enums/affiliate_location_feed_relationship_type.proto rename to google/ads/googleads/v18/enums/affiliate_location_feed_relationship_type.proto index 8e9e3ab73..49e25f583 100644 --- a/google/ads/googleads/v15/enums/affiliate_location_feed_relationship_type.proto +++ b/google/ads/googleads/v18/enums/affiliate_location_feed_relationship_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AffiliateLocationFeedRelationshipTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing relation type for affiliate location feeds. diff --git a/google/ads/googleads/v15/enums/affiliate_location_placeholder_field.proto b/google/ads/googleads/v18/enums/affiliate_location_placeholder_field.proto similarity index 85% rename from google/ads/googleads/v15/enums/affiliate_location_placeholder_field.proto rename to google/ads/googleads/v18/enums/affiliate_location_placeholder_field.proto index 54a537a7e..4c8a41caa 100644 --- a/google/ads/googleads/v15/enums/affiliate_location_placeholder_field.proto +++ b/google/ads/googleads/v18/enums/affiliate_location_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AffiliateLocationPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Affiliate Location placeholder fields. diff --git a/google/ads/googleads/v15/enums/age_range_type.proto b/google/ads/googleads/v18/enums/age_range_type.proto similarity index 82% rename from google/ads/googleads/v15/enums/age_range_type.proto rename to google/ads/googleads/v18/enums/age_range_type.proto index 33696ddf1..aa0637615 100644 --- a/google/ads/googleads/v15/enums/age_range_type.proto +++ b/google/ads/googleads/v18/enums/age_range_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AgeRangeTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing age range types. diff --git a/google/ads/googleads/v15/enums/android_privacy_interaction_type.proto b/google/ads/googleads/v18/enums/android_privacy_interaction_type.proto similarity index 79% rename from google/ads/googleads/v15/enums/android_privacy_interaction_type.proto rename to google/ads/googleads/v18/enums/android_privacy_interaction_type.proto index 68b61b8c2..e42ce1202 100644 --- a/google/ads/googleads/v15/enums/android_privacy_interaction_type.proto +++ b/google/ads/googleads/v18/enums/android_privacy_interaction_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AndroidPrivacyInteractionTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Android privacy interaction types. diff --git a/google/ads/googleads/v15/enums/android_privacy_network_type.proto b/google/ads/googleads/v18/enums/android_privacy_network_type.proto similarity index 78% rename from google/ads/googleads/v15/enums/android_privacy_network_type.proto rename to google/ads/googleads/v18/enums/android_privacy_network_type.proto index 207280d6d..9bee4b070 100644 --- a/google/ads/googleads/v15/enums/android_privacy_network_type.proto +++ b/google/ads/googleads/v18/enums/android_privacy_network_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AndroidPrivacyNetworkTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Android privacy network types. diff --git a/google/ads/googleads/v15/enums/app_bidding_goal.proto b/google/ads/googleads/v18/enums/app_bidding_goal.proto similarity index 88% rename from google/ads/googleads/v15/enums/app_bidding_goal.proto rename to google/ads/googleads/v18/enums/app_bidding_goal.proto index 2d9ca935b..da95cc916 100644 --- a/google/ads/googleads/v15/enums/app_bidding_goal.proto +++ b/google/ads/googleads/v18/enums/app_bidding_goal.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AppBiddingGoalProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum describing an app bidding goal for raise Target CPA // recommendation. diff --git a/google/ads/googleads/v15/enums/app_campaign_app_store.proto b/google/ads/googleads/v18/enums/app_campaign_app_store.proto similarity index 78% rename from google/ads/googleads/v15/enums/app_campaign_app_store.proto rename to google/ads/googleads/v18/enums/app_campaign_app_store.proto index 6454cf6ec..407be4ab0 100644 --- a/google/ads/googleads/v15/enums/app_campaign_app_store.proto +++ b/google/ads/googleads/v18/enums/app_campaign_app_store.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AppCampaignAppStoreProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing App Campaign app store. diff --git a/google/ads/googleads/v15/enums/app_campaign_bidding_strategy_goal_type.proto b/google/ads/googleads/v18/enums/app_campaign_bidding_strategy_goal_type.proto similarity index 87% rename from google/ads/googleads/v15/enums/app_campaign_bidding_strategy_goal_type.proto rename to google/ads/googleads/v18/enums/app_campaign_bidding_strategy_goal_type.proto index 904792d70..a118fc056 100644 --- a/google/ads/googleads/v15/enums/app_campaign_bidding_strategy_goal_type.proto +++ b/google/ads/googleads/v18/enums/app_campaign_bidding_strategy_goal_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AppCampaignBiddingStrategyGoalTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing App Campaign bidding strategy goal types. diff --git a/google/ads/googleads/v15/enums/app_payment_model_type.proto b/google/ads/googleads/v18/enums/app_payment_model_type.proto similarity index 77% rename from google/ads/googleads/v15/enums/app_payment_model_type.proto rename to google/ads/googleads/v18/enums/app_payment_model_type.proto index a478a2c3f..d775b762b 100644 --- a/google/ads/googleads/v15/enums/app_payment_model_type.proto +++ b/google/ads/googleads/v18/enums/app_payment_model_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AppPaymentModelTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing criteria types. diff --git a/google/ads/googleads/v15/enums/app_placeholder_field.proto b/google/ads/googleads/v18/enums/app_placeholder_field.proto similarity index 85% rename from google/ads/googleads/v15/enums/app_placeholder_field.proto rename to google/ads/googleads/v18/enums/app_placeholder_field.proto index 0c31b609c..ce5f2f1eb 100644 --- a/google/ads/googleads/v15/enums/app_placeholder_field.proto +++ b/google/ads/googleads/v18/enums/app_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AppPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing App placeholder fields. diff --git a/google/ads/googleads/v15/enums/app_store.proto b/google/ads/googleads/v18/enums/app_store.proto similarity index 78% rename from google/ads/googleads/v15/enums/app_store.proto rename to google/ads/googleads/v18/enums/app_store.proto index 37123e5c4..94e06f0bb 100644 --- a/google/ads/googleads/v15/enums/app_store.proto +++ b/google/ads/googleads/v18/enums/app_store.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AppStoreProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing app store types for an app extension. diff --git a/google/ads/googleads/v15/enums/app_url_operating_system_type.proto b/google/ads/googleads/v18/enums/app_url_operating_system_type.proto similarity index 78% rename from google/ads/googleads/v15/enums/app_url_operating_system_type.proto rename to google/ads/googleads/v18/enums/app_url_operating_system_type.proto index 14bed8aef..fa2671c1d 100644 --- a/google/ads/googleads/v15/enums/app_url_operating_system_type.proto +++ b/google/ads/googleads/v18/enums/app_url_operating_system_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AppUrlOperatingSystemTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing operating system for a deeplink app URL. diff --git a/google/ads/googleads/v15/enums/asset_automation_status.proto b/google/ads/googleads/v18/enums/asset_automation_status.proto similarity index 79% rename from google/ads/googleads/v15/enums/asset_automation_status.proto rename to google/ads/googleads/v18/enums/asset_automation_status.proto index 83a3fa3be..d6c007141 100644 --- a/google/ads/googleads/v15/enums/asset_automation_status.proto +++ b/google/ads/googleads/v18/enums/asset_automation_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetAutomationStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing asset automation status diff --git a/google/ads/googleads/v15/enums/asset_automation_type.proto b/google/ads/googleads/v18/enums/asset_automation_type.proto similarity index 64% rename from google/ads/googleads/v15/enums/asset_automation_type.proto rename to google/ads/googleads/v18/enums/asset_automation_type.proto index 3c215b867..4bdd7336d 100644 --- a/google/ads/googleads/v15/enums/asset_automation_type.proto +++ b/google/ads/googleads/v18/enums/asset_automation_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetAutomationTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing asset automation type @@ -41,5 +41,14 @@ message AssetAutomationTypeEnum { // By default, advertisers are opted-in for Performance Max and // opted-out for Search. TEXT_ASSET_AUTOMATION = 2; + + // Converts horizontal video assets to vertical orientation using + // content-aware technology. By default, advertisers are opted in for + // DemandGenVideoResponsiveAd. + GENERATE_VERTICAL_YOUTUBE_VIDEOS = 3; + + // Shortens video assets to better capture user attention using + // content-aware technology. By default, advertisers are opted out. + GENERATE_SHORTER_YOUTUBE_VIDEOS = 4; } } diff --git a/google/ads/googleads/v15/enums/asset_field_type.proto b/google/ads/googleads/v18/enums/asset_field_type.proto similarity index 88% rename from google/ads/googleads/v15/enums/asset_field_type.proto rename to google/ads/googleads/v18/enums/asset_field_type.proto index 5754d9ec0..cd143a3b9 100644 --- a/google/ads/googleads/v15/enums/asset_field_type.proto +++ b/google/ads/googleads/v18/enums/asset_field_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetFieldTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing asset type. @@ -119,5 +119,8 @@ message AssetFieldTypeEnum { // The asset is linked for use as a hotel property in a Performance Max for // travel goals campaign. HOTEL_PROPERTY = 28; + + // The asset is linked for use as a Demand Gen carousel card. + DEMAND_GEN_CAROUSEL_CARD = 30; } } diff --git a/google/ads/googleads/v15/enums/asset_group_primary_status.proto b/google/ads/googleads/v18/enums/asset_group_primary_status.proto similarity index 83% rename from google/ads/googleads/v15/enums/asset_group_primary_status.proto rename to google/ads/googleads/v18/enums/asset_group_primary_status.proto index e398904a0..eed08e697 100644 --- a/google/ads/googleads/v15/enums/asset_group_primary_status.proto +++ b/google/ads/googleads/v18/enums/asset_group_primary_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetGroupPrimaryStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing asset group primary statuses. diff --git a/google/ads/googleads/v15/enums/asset_group_primary_status_reason.proto b/google/ads/googleads/v18/enums/asset_group_primary_status_reason.proto similarity index 60% rename from google/ads/googleads/v15/enums/asset_group_primary_status_reason.proto rename to google/ads/googleads/v18/enums/asset_group_primary_status_reason.proto index 4f348e542..2cd492ccb 100644 --- a/google/ads/googleads/v15/enums/asset_group_primary_status_reason.proto +++ b/google/ads/googleads/v18/enums/asset_group_primary_status_reason.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetGroupPrimaryStatusReasonProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing asset group primary statuses. @@ -39,32 +39,40 @@ message AssetGroupPrimaryStatusReasonEnum { // Used for return value only. Represents value unknown in this version. UNKNOWN = 1; - // The user-specified asset group status is paused. + // The user-specified asset group status is paused. Contributes to + // AssetGroupPrimaryStatus.PAUSED ASSET_GROUP_PAUSED = 2; - // The user-specified asset group status is removed. + // The user-specified asset group status is removed. Contributes to + // AssetGroupPrimaryStatus.REMOVED. ASSET_GROUP_REMOVED = 3; - // The user-specified campaign status is removed. + // The user-specified campaign status is removed. Contributes to + // AssetGroupPrimaryStatus.NOT_ELIGIBLE. CAMPAIGN_REMOVED = 4; - // The user-specified campaign status is paused. + // The user-specified campaign status is paused. Contributes to + // AssetGroupPrimaryStatus.NOT_ELIGIBLE. CAMPAIGN_PAUSED = 5; // The user-specified time for this campaign to start is in the future. + // Contributes to AssetGroupPrimaryStatus.NOT_ELIGIBLE. CAMPAIGN_PENDING = 6; - // The user-specified time for this campaign to end has passed. + // The user-specified time for this campaign to end has passed. Contributes + // to AssetGroupPrimaryStatus.NOT_ELIGIBLE. CAMPAIGN_ENDED = 7; // The asset group is approved but only serves in limited capacity due to - // policies. + // policies. Contributes to AssetGroupPrimaryStatus.LIMITED. ASSET_GROUP_LIMITED = 8; - // The asset group has been marked as disapproved. + // The asset group has been marked as disapproved. Contributes to + // AssetGroupPrimaryStatus.NOT_ELIGIBLE. ASSET_GROUP_DISAPPROVED = 9; - // The asset group has not completed policy review. + // The asset group has not completed policy review. Contributes to + // AssetGroupPrimaryStatus.PENDING. ASSET_GROUP_UNDER_REVIEW = 10; } } diff --git a/google/ads/googleads/v15/enums/asset_group_signal_approval_status.proto b/google/ads/googleads/v18/enums/asset_group_signal_approval_status.proto similarity index 83% rename from google/ads/googleads/v15/enums/asset_group_signal_approval_status.proto rename to google/ads/googleads/v18/enums/asset_group_signal_approval_status.proto index fdafadf38..9e65a13c6 100644 --- a/google/ads/googleads/v15/enums/asset_group_signal_approval_status.proto +++ b/google/ads/googleads/v18/enums/asset_group_signal_approval_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetGroupSignalApprovalStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing approval status for the signal. diff --git a/google/ads/googleads/v15/enums/asset_group_status.proto b/google/ads/googleads/v18/enums/asset_group_status.proto similarity index 79% rename from google/ads/googleads/v15/enums/asset_group_status.proto rename to google/ads/googleads/v18/enums/asset_group_status.proto index 867b1eae1..70968f87a 100644 --- a/google/ads/googleads/v15/enums/asset_group_status.proto +++ b/google/ads/googleads/v18/enums/asset_group_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetGroupStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing asset group status. diff --git a/google/ads/googleads/v15/enums/asset_link_primary_status.proto b/google/ads/googleads/v18/enums/asset_link_primary_status.proto similarity index 85% rename from google/ads/googleads/v15/enums/asset_link_primary_status.proto rename to google/ads/googleads/v18/enums/asset_link_primary_status.proto index c2d4a6f8b..3e0e59fd0 100644 --- a/google/ads/googleads/v15/enums/asset_link_primary_status.proto +++ b/google/ads/googleads/v18/enums/asset_link_primary_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetLinkPrimaryStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing asset source. diff --git a/google/ads/googleads/v15/enums/asset_link_primary_status_reason.proto b/google/ads/googleads/v18/enums/asset_link_primary_status_reason.proto similarity index 87% rename from google/ads/googleads/v15/enums/asset_link_primary_status_reason.proto rename to google/ads/googleads/v18/enums/asset_link_primary_status_reason.proto index 2dbe692b1..9490c6817 100644 --- a/google/ads/googleads/v15/enums/asset_link_primary_status_reason.proto +++ b/google/ads/googleads/v18/enums/asset_link_primary_status_reason.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetLinkPrimaryStatusReasonProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing asset source. diff --git a/google/ads/googleads/v15/enums/asset_link_status.proto b/google/ads/googleads/v18/enums/asset_link_status.proto similarity index 79% rename from google/ads/googleads/v15/enums/asset_link_status.proto rename to google/ads/googleads/v18/enums/asset_link_status.proto index 1f05e537d..65f9d90cb 100644 --- a/google/ads/googleads/v15/enums/asset_link_status.proto +++ b/google/ads/googleads/v18/enums/asset_link_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetLinkStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing status of an asset link. diff --git a/google/ads/googleads/v15/enums/asset_offline_evaluation_error_reasons.proto b/google/ads/googleads/v18/enums/asset_offline_evaluation_error_reasons.proto similarity index 86% rename from google/ads/googleads/v15/enums/asset_offline_evaluation_error_reasons.proto rename to google/ads/googleads/v18/enums/asset_offline_evaluation_error_reasons.proto index 198d1ca5e..0177e9561 100644 --- a/google/ads/googleads/v15/enums/asset_offline_evaluation_error_reasons.proto +++ b/google/ads/googleads/v18/enums/asset_offline_evaluation_error_reasons.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetOfflineEvaluationErrorReasonsProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing asset source. diff --git a/google/ads/googleads/v15/enums/asset_performance_label.proto b/google/ads/googleads/v18/enums/asset_performance_label.proto similarity index 83% rename from google/ads/googleads/v15/enums/asset_performance_label.proto rename to google/ads/googleads/v18/enums/asset_performance_label.proto index 7cfebf5fe..64fe098bc 100644 --- a/google/ads/googleads/v15/enums/asset_performance_label.proto +++ b/google/ads/googleads/v18/enums/asset_performance_label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetPerformanceLabelProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing the performance label of an asset. diff --git a/google/ads/googleads/v15/enums/asset_set_asset_status.proto b/google/ads/googleads/v18/enums/asset_set_asset_status.proto similarity index 79% rename from google/ads/googleads/v15/enums/asset_set_asset_status.proto rename to google/ads/googleads/v18/enums/asset_set_asset_status.proto index 5c2dd4594..6a98883db 100644 --- a/google/ads/googleads/v15/enums/asset_set_asset_status.proto +++ b/google/ads/googleads/v18/enums/asset_set_asset_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetSetAssetStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing asset set status. diff --git a/google/ads/googleads/v15/enums/asset_set_link_status.proto b/google/ads/googleads/v18/enums/asset_set_link_status.proto similarity index 80% rename from google/ads/googleads/v15/enums/asset_set_link_status.proto rename to google/ads/googleads/v18/enums/asset_set_link_status.proto index edd5e972d..a87ec53c7 100644 --- a/google/ads/googleads/v15/enums/asset_set_link_status.proto +++ b/google/ads/googleads/v18/enums/asset_set_link_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetSetLinkStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing asset set status. diff --git a/google/ads/googleads/v15/enums/asset_set_status.proto b/google/ads/googleads/v18/enums/asset_set_status.proto similarity index 78% rename from google/ads/googleads/v15/enums/asset_set_status.proto rename to google/ads/googleads/v18/enums/asset_set_status.proto index c34039cfd..666b2fef4 100644 --- a/google/ads/googleads/v15/enums/asset_set_status.proto +++ b/google/ads/googleads/v18/enums/asset_set_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetSetStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing asset set status. diff --git a/google/ads/googleads/v15/enums/asset_set_type.proto b/google/ads/googleads/v18/enums/asset_set_type.proto similarity index 83% rename from google/ads/googleads/v15/enums/asset_set_type.proto rename to google/ads/googleads/v18/enums/asset_set_type.proto index 8a14a0271..930488544 100644 --- a/google/ads/googleads/v15/enums/asset_set_type.proto +++ b/google/ads/googleads/v18/enums/asset_set_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetSetTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing asset set type. @@ -84,5 +84,9 @@ message AssetSetTypeEnum { // Hotel Property asset set which is used to link a hotel property feed to // Performance Max for travel goals campaigns. HOTEL_PROPERTY = 16; + + // Travel Feed asset set type. Can represent either a Hotel feed or a Things + // to Do (activities) feed. + TRAVEL_FEED = 17; } } diff --git a/google/ads/googleads/v15/enums/asset_source.proto b/google/ads/googleads/v18/enums/asset_source.proto similarity index 79% rename from google/ads/googleads/v15/enums/asset_source.proto rename to google/ads/googleads/v18/enums/asset_source.proto index 5e966ccbe..e2a7dac15 100644 --- a/google/ads/googleads/v15/enums/asset_source.proto +++ b/google/ads/googleads/v18/enums/asset_source.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetSourceProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing asset source. diff --git a/google/ads/googleads/v15/enums/asset_type.proto b/google/ads/googleads/v18/enums/asset_type.proto similarity index 85% rename from google/ads/googleads/v15/enums/asset_type.proto rename to google/ads/googleads/v18/enums/asset_type.proto index 2c01865de..00b467549 100644 --- a/google/ads/googleads/v15/enums/asset_type.proto +++ b/google/ads/googleads/v18/enums/asset_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AssetTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing asset type. @@ -100,9 +100,6 @@ message AssetTypeEnum { // Dynamic flights asset. DYNAMIC_FLIGHTS = 22; - // Discovery Carousel Card asset. - DISCOVERY_CAROUSEL_CARD = 23; - // Dynamic travel asset. DYNAMIC_TRAVEL = 24; @@ -117,5 +114,8 @@ message AssetTypeEnum { // Hotel property asset. HOTEL_PROPERTY = 28; + + // Demand Gen Carousel Card asset. + DEMAND_GEN_CAROUSEL_CARD = 29; } } diff --git a/google/ads/googleads/v15/enums/async_action_status.proto b/google/ads/googleads/v18/enums/async_action_status.proto similarity index 80% rename from google/ads/googleads/v15/enums/async_action_status.proto rename to google/ads/googleads/v18/enums/async_action_status.proto index 4707486e4..d015efbb8 100644 --- a/google/ads/googleads/v15/enums/async_action_status.proto +++ b/google/ads/googleads/v18/enums/async_action_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AsyncActionStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing experiment async action status. diff --git a/google/ads/googleads/v15/enums/attribution_model.proto b/google/ads/googleads/v18/enums/attribution_model.proto similarity index 87% rename from google/ads/googleads/v15/enums/attribution_model.proto rename to google/ads/googleads/v18/enums/attribution_model.proto index 0191bf651..7dde44a19 100644 --- a/google/ads/googleads/v15/enums/attribution_model.proto +++ b/google/ads/googleads/v18/enums/attribution_model.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AttributionModelProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum representing the attribution model that describes how to // distribute credit for a particular conversion across potentially many prior diff --git a/google/ads/googleads/v15/enums/audience_insights_dimension.proto b/google/ads/googleads/v18/enums/audience_insights_dimension.proto similarity index 84% rename from google/ads/googleads/v15/enums/audience_insights_dimension.proto rename to google/ads/googleads/v18/enums/audience_insights_dimension.proto index de32a264f..7f05f2936 100644 --- a/google/ads/googleads/v15/enums/audience_insights_dimension.proto +++ b/google/ads/googleads/v18/enums/audience_insights_dimension.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AudienceInsightsDimensionProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing audience insights dimensions. diff --git a/google/ads/googleads/v18/enums/audience_insights_marketing_objective.proto b/google/ads/googleads/v18/enums/audience_insights_marketing_objective.proto new file mode 100644 index 000000000..61a63fa16 --- /dev/null +++ b/google/ads/googleads/v18/enums/audience_insights_marketing_objective.proto @@ -0,0 +1,48 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "AudienceInsightsMarketingObjectiveProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Proto file describing a marketing objective for insights. + +// Container for enum describing marketing objectives. +message AudienceInsightsMarketingObjectiveEnum { + // Describes the overall objective for defining an audience for insights. + enum AudienceInsightsMarketingObjective { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // The objective is to increase awareness of a brand or product among + // relevant audiences. + AWARENESS = 2; + + // The objective is to encourage potential customers to consider your brand + // or products when they're researching or shopping for product. + CONSIDERATION = 3; + } +} diff --git a/google/ads/googleads/v15/enums/audience_scope.proto b/google/ads/googleads/v18/enums/audience_scope.proto similarity index 78% rename from google/ads/googleads/v15/enums/audience_scope.proto rename to google/ads/googleads/v18/enums/audience_scope.proto index 45b37ba1a..5ff4d0f91 100644 --- a/google/ads/googleads/v15/enums/audience_scope.proto +++ b/google/ads/googleads/v18/enums/audience_scope.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AudienceScopeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing audience scope. diff --git a/google/ads/googleads/v15/enums/audience_status.proto b/google/ads/googleads/v18/enums/audience_status.proto similarity index 79% rename from google/ads/googleads/v15/enums/audience_status.proto rename to google/ads/googleads/v18/enums/audience_status.proto index a1d3f1e0e..2c96b1ed8 100644 --- a/google/ads/googleads/v15/enums/audience_status.proto +++ b/google/ads/googleads/v18/enums/audience_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "AudienceStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing audience status. diff --git a/google/ads/googleads/v15/enums/batch_job_status.proto b/google/ads/googleads/v18/enums/batch_job_status.proto similarity index 78% rename from google/ads/googleads/v15/enums/batch_job_status.proto rename to google/ads/googleads/v18/enums/batch_job_status.proto index 748a17c24..6c8b18a23 100644 --- a/google/ads/googleads/v15/enums/batch_job_status.proto +++ b/google/ads/googleads/v18/enums/batch_job_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BatchJobStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing batch job statuses. diff --git a/google/ads/googleads/v15/enums/bid_modifier_source.proto b/google/ads/googleads/v18/enums/bid_modifier_source.proto similarity index 79% rename from google/ads/googleads/v15/enums/bid_modifier_source.proto rename to google/ads/googleads/v18/enums/bid_modifier_source.proto index 4d5d95475..fb57e5b9e 100644 --- a/google/ads/googleads/v15/enums/bid_modifier_source.proto +++ b/google/ads/googleads/v18/enums/bid_modifier_source.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BidModifierSourceProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing bid modifier source. diff --git a/google/ads/googleads/v15/enums/bidding_source.proto b/google/ads/googleads/v18/enums/bidding_source.proto similarity index 81% rename from google/ads/googleads/v15/enums/bidding_source.proto rename to google/ads/googleads/v18/enums/bidding_source.proto index 0b7a0548a..3654ff312 100644 --- a/google/ads/googleads/v15/enums/bidding_source.proto +++ b/google/ads/googleads/v18/enums/bidding_source.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BiddingSourceProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing bidding sources. diff --git a/google/ads/googleads/v15/enums/bidding_strategy_status.proto b/google/ads/googleads/v18/enums/bidding_strategy_status.proto similarity index 79% rename from google/ads/googleads/v15/enums/bidding_strategy_status.proto rename to google/ads/googleads/v18/enums/bidding_strategy_status.proto index 6e897110d..2338fd6ad 100644 --- a/google/ads/googleads/v15/enums/bidding_strategy_status.proto +++ b/google/ads/googleads/v18/enums/bidding_strategy_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BiddingStrategyStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing BiddingStrategy statuses. diff --git a/google/ads/googleads/v15/enums/bidding_strategy_system_status.proto b/google/ads/googleads/v18/enums/bidding_strategy_system_status.proto similarity index 93% rename from google/ads/googleads/v15/enums/bidding_strategy_system_status.proto rename to google/ads/googleads/v18/enums/bidding_strategy_system_status.proto index 261fd0159..7c420b087 100644 --- a/google/ads/googleads/v15/enums/bidding_strategy_system_status.proto +++ b/google/ads/googleads/v18/enums/bidding_strategy_system_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BiddingStrategySystemStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing BiddingStrategy statuses. diff --git a/google/ads/googleads/v15/enums/bidding_strategy_type.proto b/google/ads/googleads/v18/enums/bidding_strategy_type.proto similarity index 88% rename from google/ads/googleads/v15/enums/bidding_strategy_type.proto rename to google/ads/googleads/v18/enums/bidding_strategy_type.proto index 50287c5d4..65bbeb1f7 100644 --- a/google/ads/googleads/v15/enums/bidding_strategy_type.proto +++ b/google/ads/googleads/v18/enums/bidding_strategy_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BiddingStrategyTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing bidding schemes. @@ -46,6 +46,9 @@ message BiddingStrategyTypeEnum { // them for clicks where they seem less likely. ENHANCED_CPC = 2; + // Fixed CPM is a manual bidding strategy with a fixed CPM. + FIXED_CPM = 19; + // 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 @@ -96,6 +99,10 @@ message BiddingStrategyTypeEnum { // impressions (CPM) you set. TARGET_CPM = 14; + // Target CPV is an automated bidding strategy that sets bids to optimize + // performance given the average target cost per view. + TARGET_CPV = 20; + // 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). diff --git a/google/ads/googleads/v15/enums/billing_setup_status.proto b/google/ads/googleads/v18/enums/billing_setup_status.proto similarity index 81% rename from google/ads/googleads/v15/enums/billing_setup_status.proto rename to google/ads/googleads/v18/enums/billing_setup_status.proto index f345e892d..cea792ee9 100644 --- a/google/ads/googleads/v15/enums/billing_setup_status.proto +++ b/google/ads/googleads/v18/enums/billing_setup_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BillingSetupStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing BillingSetup statuses. diff --git a/google/ads/googleads/v18/enums/brand_request_rejection_reason.proto b/google/ads/googleads/v18/enums/brand_request_rejection_reason.proto new file mode 100644 index 000000000..79d02caa5 --- /dev/null +++ b/google/ads/googleads/v18/enums/brand_request_rejection_reason.proto @@ -0,0 +1,53 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "BrandRequestRejectionReasonProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Proto file describing the brand request rejection reason for the criterion. + +// Container for enum describing rejection reasons for the customer brand +// requests. +message BrandRequestRejectionReasonEnum { + // Enumeration of different brand request rejection reasons. + enum BrandRequestRejectionReason { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Brand is already present in the commercial brand set. + EXISTING_BRAND = 2; + + // Brand is already present in the commercial brand set, but is a variant. + EXISTING_BRAND_VARIANT = 3; + + // Brand information is not correct (eg: URL and name don't match). + INCORRECT_INFORMATION = 4; + + // Not a valid brand as per Google policy. + NOT_A_BRAND = 5; + } +} diff --git a/google/ads/googleads/v15/enums/brand_safety_suitability.proto b/google/ads/googleads/v18/enums/brand_safety_suitability.proto similarity index 89% rename from google/ads/googleads/v15/enums/brand_safety_suitability.proto rename to google/ads/googleads/v18/enums/brand_safety_suitability.proto index 7f76931e4..406822d67 100644 --- a/google/ads/googleads/v15/enums/brand_safety_suitability.proto +++ b/google/ads/googleads/v18/enums/brand_safety_suitability.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BrandSafetySuitabilityProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing brand safety suitability settings. diff --git a/google/ads/googleads/v15/enums/brand_state.proto b/google/ads/googleads/v18/enums/brand_state.proto similarity index 85% rename from google/ads/googleads/v15/enums/brand_state.proto rename to google/ads/googleads/v18/enums/brand_state.proto index f72e786af..af7fab338 100644 --- a/google/ads/googleads/v15/enums/brand_state.proto +++ b/google/ads/googleads/v18/enums/brand_state.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BrandStateProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing approval status for the criterion. diff --git a/google/ads/googleads/v15/enums/budget_campaign_association_status.proto b/google/ads/googleads/v18/enums/budget_campaign_association_status.proto similarity index 80% rename from google/ads/googleads/v15/enums/budget_campaign_association_status.proto rename to google/ads/googleads/v18/enums/budget_campaign_association_status.proto index 0d933e5b0..9378d17b4 100644 --- a/google/ads/googleads/v15/enums/budget_campaign_association_status.proto +++ b/google/ads/googleads/v18/enums/budget_campaign_association_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BudgetCampaignAssociationStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Budget and Campaign association status. diff --git a/google/ads/googleads/v15/enums/budget_delivery_method.proto b/google/ads/googleads/v18/enums/budget_delivery_method.proto similarity index 80% rename from google/ads/googleads/v15/enums/budget_delivery_method.proto rename to google/ads/googleads/v18/enums/budget_delivery_method.proto index 83394e6f6..f9cb8690b 100644 --- a/google/ads/googleads/v15/enums/budget_delivery_method.proto +++ b/google/ads/googleads/v18/enums/budget_delivery_method.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BudgetDeliveryMethodProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Budget delivery methods. diff --git a/google/ads/googleads/v15/enums/budget_period.proto b/google/ads/googleads/v18/enums/budget_period.proto similarity index 80% rename from google/ads/googleads/v15/enums/budget_period.proto rename to google/ads/googleads/v18/enums/budget_period.proto index 0676458aa..4e2a3d71d 100644 --- a/google/ads/googleads/v15/enums/budget_period.proto +++ b/google/ads/googleads/v18/enums/budget_period.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BudgetPeriodProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Budget delivery methods. diff --git a/google/ads/googleads/v15/enums/budget_status.proto b/google/ads/googleads/v18/enums/budget_status.proto similarity index 77% rename from google/ads/googleads/v15/enums/budget_status.proto rename to google/ads/googleads/v18/enums/budget_status.proto index 0f14c2312..9c0c6e3cb 100644 --- a/google/ads/googleads/v15/enums/budget_status.proto +++ b/google/ads/googleads/v18/enums/budget_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BudgetStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Budget statuses diff --git a/google/ads/googleads/v15/enums/budget_type.proto b/google/ads/googleads/v18/enums/budget_type.proto similarity index 86% rename from google/ads/googleads/v15/enums/budget_type.proto rename to google/ads/googleads/v18/enums/budget_type.proto index e634d8bf3..4e6363edf 100644 --- a/google/ads/googleads/v15/enums/budget_type.proto +++ b/google/ads/googleads/v18/enums/budget_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "BudgetTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Budget types. diff --git a/google/ads/googleads/v15/enums/call_conversion_reporting_state.proto b/google/ads/googleads/v18/enums/call_conversion_reporting_state.proto similarity index 82% rename from google/ads/googleads/v15/enums/call_conversion_reporting_state.proto rename to google/ads/googleads/v18/enums/call_conversion_reporting_state.proto index 3b8824c0b..a24420519 100644 --- a/google/ads/googleads/v15/enums/call_conversion_reporting_state.proto +++ b/google/ads/googleads/v18/enums/call_conversion_reporting_state.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CallConversionReportingStateProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing call conversion reporting state. diff --git a/google/ads/googleads/v15/enums/call_placeholder_field.proto b/google/ads/googleads/v18/enums/call_placeholder_field.proto similarity index 85% rename from google/ads/googleads/v15/enums/call_placeholder_field.proto rename to google/ads/googleads/v18/enums/call_placeholder_field.proto index b408cfa9f..45a1a61da 100644 --- a/google/ads/googleads/v15/enums/call_placeholder_field.proto +++ b/google/ads/googleads/v18/enums/call_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CallPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Call placeholder fields. diff --git a/google/ads/googleads/v15/enums/call_to_action_type.proto b/google/ads/googleads/v18/enums/call_to_action_type.proto similarity index 86% rename from google/ads/googleads/v15/enums/call_to_action_type.proto rename to google/ads/googleads/v18/enums/call_to_action_type.proto index 7e406960a..efb1827e5 100644 --- a/google/ads/googleads/v15/enums/call_to_action_type.proto +++ b/google/ads/googleads/v18/enums/call_to_action_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CallToActionTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing call to action type. diff --git a/google/ads/googleads/v15/enums/call_tracking_display_location.proto b/google/ads/googleads/v18/enums/call_tracking_display_location.proto similarity index 79% rename from google/ads/googleads/v15/enums/call_tracking_display_location.proto rename to google/ads/googleads/v18/enums/call_tracking_display_location.proto index 172e9e69d..28e0a6d2b 100644 --- a/google/ads/googleads/v15/enums/call_tracking_display_location.proto +++ b/google/ads/googleads/v18/enums/call_tracking_display_location.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CallTrackingDisplayLocationProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing call tracking display location. diff --git a/google/ads/googleads/v15/enums/call_type.proto b/google/ads/googleads/v18/enums/call_type.proto similarity index 79% rename from google/ads/googleads/v15/enums/call_type.proto rename to google/ads/googleads/v18/enums/call_type.proto index b390528d8..ee4b89615 100644 --- a/google/ads/googleads/v15/enums/call_type.proto +++ b/google/ads/googleads/v18/enums/call_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CallTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing call types. diff --git a/google/ads/googleads/v15/enums/callout_placeholder_field.proto b/google/ads/googleads/v18/enums/callout_placeholder_field.proto similarity index 78% rename from google/ads/googleads/v15/enums/callout_placeholder_field.proto rename to google/ads/googleads/v18/enums/callout_placeholder_field.proto index 7a674eecd..f3f1c81af 100644 --- a/google/ads/googleads/v15/enums/callout_placeholder_field.proto +++ b/google/ads/googleads/v18/enums/callout_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CalloutPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Callout placeholder fields. diff --git a/google/ads/googleads/v15/enums/campaign_criterion_status.proto b/google/ads/googleads/v18/enums/campaign_criterion_status.proto similarity index 80% rename from google/ads/googleads/v15/enums/campaign_criterion_status.proto rename to google/ads/googleads/v18/enums/campaign_criterion_status.proto index 9c1ed85ed..9cc87cd41 100644 --- a/google/ads/googleads/v15/enums/campaign_criterion_status.proto +++ b/google/ads/googleads/v18/enums/campaign_criterion_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CampaignCriterionStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing CampaignCriterion statuses. diff --git a/google/ads/googleads/v15/enums/campaign_draft_status.proto b/google/ads/googleads/v18/enums/campaign_draft_status.proto similarity index 85% rename from google/ads/googleads/v15/enums/campaign_draft_status.proto rename to google/ads/googleads/v18/enums/campaign_draft_status.proto index b6ee76fef..1b8136f7a 100644 --- a/google/ads/googleads/v15/enums/campaign_draft_status.proto +++ b/google/ads/googleads/v18/enums/campaign_draft_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CampaignDraftStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing campaign draft status. diff --git a/google/ads/googleads/v15/enums/campaign_experiment_type.proto b/google/ads/googleads/v18/enums/campaign_experiment_type.proto similarity index 83% rename from google/ads/googleads/v15/enums/campaign_experiment_type.proto rename to google/ads/googleads/v18/enums/campaign_experiment_type.proto index 79ea42487..fd604bd55 100644 --- a/google/ads/googleads/v15/enums/campaign_experiment_type.proto +++ b/google/ads/googleads/v18/enums/campaign_experiment_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CampaignExperimentTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing campaign experiment type. diff --git a/google/ads/googleads/v15/enums/campaign_group_status.proto b/google/ads/googleads/v18/enums/campaign_group_status.proto similarity index 78% rename from google/ads/googleads/v15/enums/campaign_group_status.proto rename to google/ads/googleads/v18/enums/campaign_group_status.proto index 4b20216ad..a15915fb4 100644 --- a/google/ads/googleads/v15/enums/campaign_group_status.proto +++ b/google/ads/googleads/v18/enums/campaign_group_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CampaignGroupStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing CampaignGroup statuses. diff --git a/google/ads/googleads/v18/enums/campaign_keyword_match_type.proto b/google/ads/googleads/v18/enums/campaign_keyword_match_type.proto new file mode 100644 index 000000000..f3e15a953 --- /dev/null +++ b/google/ads/googleads/v18/enums/campaign_keyword_match_type.proto @@ -0,0 +1,43 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CampaignKeywordMatchTypeProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Proto file describing CampaignKeywordMatchType. + +// Container for enum describing keyword match type. +message CampaignKeywordMatchTypeEnum { + // Enum describing keyword match type of Campaign. + enum CampaignKeywordMatchType { + // No value has been specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Campaign level broad match. + BROAD = 2; + } +} diff --git a/google/ads/googleads/v15/enums/campaign_primary_status.proto b/google/ads/googleads/v18/enums/campaign_primary_status.proto similarity index 86% rename from google/ads/googleads/v15/enums/campaign_primary_status.proto rename to google/ads/googleads/v18/enums/campaign_primary_status.proto index 4e8ebed3e..ccbeacf6f 100644 --- a/google/ads/googleads/v15/enums/campaign_primary_status.proto +++ b/google/ads/googleads/v18/enums/campaign_primary_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CampaignPrimaryStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Campaign primary statuses. diff --git a/google/ads/googleads/v15/enums/campaign_primary_status_reason.proto b/google/ads/googleads/v18/enums/campaign_primary_status_reason.proto similarity index 93% rename from google/ads/googleads/v15/enums/campaign_primary_status_reason.proto rename to google/ads/googleads/v18/enums/campaign_primary_status_reason.proto index e61628068..71b457b82 100644 --- a/google/ads/googleads/v15/enums/campaign_primary_status_reason.proto +++ b/google/ads/googleads/v18/enums/campaign_primary_status_reason.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CampaignPrimaryStatusReasonProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing CampaignPrimaryStatusReasons. diff --git a/google/ads/googleads/v15/enums/campaign_serving_status.proto b/google/ads/googleads/v18/enums/campaign_serving_status.proto similarity index 79% rename from google/ads/googleads/v15/enums/campaign_serving_status.proto rename to google/ads/googleads/v18/enums/campaign_serving_status.proto index 74cde1b33..6733cf50c 100644 --- a/google/ads/googleads/v15/enums/campaign_serving_status.proto +++ b/google/ads/googleads/v18/enums/campaign_serving_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CampaignServingStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Campaign serving statuses. diff --git a/google/ads/googleads/v15/enums/campaign_shared_set_status.proto b/google/ads/googleads/v18/enums/campaign_shared_set_status.proto similarity index 79% rename from google/ads/googleads/v15/enums/campaign_shared_set_status.proto rename to google/ads/googleads/v18/enums/campaign_shared_set_status.proto index f036a88dd..e96208b87 100644 --- a/google/ads/googleads/v15/enums/campaign_shared_set_status.proto +++ b/google/ads/googleads/v18/enums/campaign_shared_set_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CampaignSharedSetStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing campaign shared set statuses. diff --git a/google/ads/googleads/v15/enums/campaign_status.proto b/google/ads/googleads/v18/enums/campaign_status.proto similarity index 79% rename from google/ads/googleads/v15/enums/campaign_status.proto rename to google/ads/googleads/v18/enums/campaign_status.proto index a1ccaa10c..c89f3d9bb 100644 --- a/google/ads/googleads/v15/enums/campaign_status.proto +++ b/google/ads/googleads/v18/enums/campaign_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CampaignStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing campaign status. diff --git a/google/ads/googleads/v15/enums/chain_relationship_type.proto b/google/ads/googleads/v18/enums/chain_relationship_type.proto similarity index 78% rename from google/ads/googleads/v15/enums/chain_relationship_type.proto rename to google/ads/googleads/v18/enums/chain_relationship_type.proto index a56ae4eb2..e74f077e5 100644 --- a/google/ads/googleads/v15/enums/chain_relationship_type.proto +++ b/google/ads/googleads/v18/enums/chain_relationship_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ChainRelationshipTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing relationship type. diff --git a/google/ads/googleads/v15/enums/change_client_type.proto b/google/ads/googleads/v18/enums/change_client_type.proto similarity index 88% rename from google/ads/googleads/v15/enums/change_client_type.proto rename to google/ads/googleads/v18/enums/change_client_type.proto index 10967d65e..7000d6454 100644 --- a/google/ads/googleads/v15/enums/change_client_type.proto +++ b/google/ads/googleads/v18/enums/change_client_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ChangeClientTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing the sources that the change event resource was // made through. diff --git a/google/ads/googleads/v15/enums/change_event_resource_type.proto b/google/ads/googleads/v18/enums/change_event_resource_type.proto similarity index 87% rename from google/ads/googleads/v15/enums/change_event_resource_type.proto rename to google/ads/googleads/v18/enums/change_event_resource_type.proto index ba38ee707..9b8e3f381 100644 --- a/google/ads/googleads/v15/enums/change_event_resource_type.proto +++ b/google/ads/googleads/v18/enums/change_event_resource_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ChangeEventResourceTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing the resource types the ChangeEvent resource supports. diff --git a/google/ads/googleads/v15/enums/change_status_operation.proto b/google/ads/googleads/v18/enums/change_status_operation.proto similarity index 79% rename from google/ads/googleads/v15/enums/change_status_operation.proto rename to google/ads/googleads/v18/enums/change_status_operation.proto index 6beaa6015..53cddb255 100644 --- a/google/ads/googleads/v15/enums/change_status_operation.proto +++ b/google/ads/googleads/v18/enums/change_status_operation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ChangeStatusOperationProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing the change status operations. diff --git a/google/ads/googleads/v15/enums/change_status_resource_type.proto b/google/ads/googleads/v18/enums/change_status_resource_type.proto similarity index 85% rename from google/ads/googleads/v15/enums/change_status_resource_type.proto rename to google/ads/googleads/v18/enums/change_status_resource_type.proto index e630fa7ac..c799a4e75 100644 --- a/google/ads/googleads/v15/enums/change_status_resource_type.proto +++ b/google/ads/googleads/v18/enums/change_status_resource_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ChangeStatusResourceTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing the resource types the ChangeStatus resource supports. @@ -89,5 +89,8 @@ message ChangeStatusResourceTypeEnum { // A CombinedAudience resource change. COMBINED_AUDIENCE = 20; + + // An AssetGroup resource change. + ASSET_GROUP = 21; } } diff --git a/google/ads/googleads/v15/enums/click_type.proto b/google/ads/googleads/v18/enums/click_type.proto similarity index 91% rename from google/ads/googleads/v15/enums/click_type.proto rename to google/ads/googleads/v18/enums/click_type.proto index c1f30b3d0..b009183df 100644 --- a/google/ads/googleads/v15/enums/click_type.proto +++ b/google/ads/googleads/v18/enums/click_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ClickTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing click types. @@ -198,5 +198,11 @@ message ClickTypeEnum { // Cross-network. From Performance Max and Discovery Campaigns. CROSS_NETWORK = 57; + + // AD Images. + AD_IMAGE = 58; + + // Travel Feed Assets. + TRAVEL_ASSETS = 59; } } diff --git a/google/ads/googleads/v15/enums/combined_audience_status.proto b/google/ads/googleads/v18/enums/combined_audience_status.proto similarity index 79% rename from google/ads/googleads/v15/enums/combined_audience_status.proto rename to google/ads/googleads/v18/enums/combined_audience_status.proto index d575b1e11..dae19b115 100644 --- a/google/ads/googleads/v15/enums/combined_audience_status.proto +++ b/google/ads/googleads/v18/enums/combined_audience_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CombinedAudienceStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing combined audience status. diff --git a/google/ads/googleads/v15/enums/consent_status.proto b/google/ads/googleads/v18/enums/consent_status.proto similarity index 76% rename from google/ads/googleads/v15/enums/consent_status.proto rename to google/ads/googleads/v18/enums/consent_status.proto index ea5cf0a1c..2441b0a36 100644 --- a/google/ads/googleads/v15/enums/consent_status.proto +++ b/google/ads/googleads/v18/enums/consent_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConsentStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing the consent status. diff --git a/google/ads/googleads/v18/enums/content_label_type.proto b/google/ads/googleads/v18/enums/content_label_type.proto new file mode 100644 index 000000000..9c43cd26f --- /dev/null +++ b/google/ads/googleads/v18/enums/content_label_type.proto @@ -0,0 +1,130 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ContentLabelTypeProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Proto file describing content label types. + +// Container for enum describing content label types in ContentLabel. +message ContentLabelTypeEnum { + // Enum listing the content label types supported by ContentLabel criterion. + enum ContentLabelType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Sexually suggestive content. + SEXUALLY_SUGGESTIVE = 2; + + // Below the fold placement. + BELOW_THE_FOLD = 3; + + // Parked domain. + PARKED_DOMAIN = 4; + + // Juvenile, gross & bizarre content. + JUVENILE = 6; + + // Profanity & rough language. + PROFANITY = 7; + + // Death & tragedy. + TRAGEDY = 8; + + // Video. + VIDEO = 9; + + // Content rating: G. + VIDEO_RATING_DV_G = 10; + + // Content rating: PG. + VIDEO_RATING_DV_PG = 11; + + // Content rating: T. + VIDEO_RATING_DV_T = 12; + + // Content rating: MA. + VIDEO_RATING_DV_MA = 13; + + // Content rating: not yet rated. + VIDEO_NOT_YET_RATED = 14; + + // Embedded video. + EMBEDDED_VIDEO = 15; + + // Live streaming video. + LIVE_STREAMING_VIDEO = 16; + + // Sensitive social issues. + SOCIAL_ISSUES = 17; + + // Content that's suitable for families to view together, including Made for + // Kids videos on YouTube. + BRAND_SUITABILITY_CONTENT_FOR_FAMILIES = 18; + + // Video games that simulate hand-to-hand fighting or combat with the use of + // modern or medieval weapons. + BRAND_SUITABILITY_GAMES_FIGHTING = 19; + + // Video games that feature mature content, such as violence, inappropriate + // language, or sexual suggestiveness. + BRAND_SUITABILITY_GAMES_MATURE = 20; + + // Health content that people might find sensitive or upsetting, such as + // medical procedures or images and descriptions of various medical + // conditions. + BRAND_SUITABILITY_HEALTH_SENSITIVE = 21; + + // Health content from sources that may provide accurate information but + // aren't as commonly cited as other, more well-known sources. + BRAND_SUITABILITY_HEALTH_SOURCE_UNDETERMINED = 22; + + // News content that's been recently announced, regardless of the themes or + // people being reported on. + BRAND_SUITABILITY_NEWS_RECENT = 23; + + // News content that people might find sensitive or upsetting, such as + // crimes, accidents, and natural incidents, or commentary on potentially + // controversial social and political issues. + BRAND_SUITABILITY_NEWS_SENSITIVE = 24; + + // News content from sources that aren't featured on Google News or YouTube + // News. + BRAND_SUITABILITY_NEWS_SOURCE_NOT_FEATURED = 25; + + // Political content, such as political statements made by well-known + // politicians, political elections, or events widely perceived to be + // political in nature. + BRAND_SUITABILITY_POLITICS = 26; + + // Content with religious themes, such as religious teachings or customs, + // holy sites or places of worship, well-known religious figures or people + // dressed in religious attire, or religious opinions on social and + // political issues. + BRAND_SUITABILITY_RELIGION = 27; + } +} diff --git a/google/ads/googleads/v15/enums/conversion_action_category.proto b/google/ads/googleads/v18/enums/conversion_action_category.proto similarity index 91% rename from google/ads/googleads/v15/enums/conversion_action_category.proto rename to google/ads/googleads/v18/enums/conversion_action_category.proto index 9aefa97a2..d1b2c3cc6 100644 --- a/google/ads/googleads/v15/enums/conversion_action_category.proto +++ b/google/ads/googleads/v18/enums/conversion_action_category.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionActionCategoryProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum describing the category of conversions that are associated // with a ConversionAction. diff --git a/google/ads/googleads/v15/enums/conversion_action_counting_type.proto b/google/ads/googleads/v18/enums/conversion_action_counting_type.proto similarity index 81% rename from google/ads/googleads/v15/enums/conversion_action_counting_type.proto rename to google/ads/googleads/v18/enums/conversion_action_counting_type.proto index 67b523f47..5127d930b 100644 --- a/google/ads/googleads/v15/enums/conversion_action_counting_type.proto +++ b/google/ads/googleads/v18/enums/conversion_action_counting_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionActionCountingTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing conversion action counting type. diff --git a/google/ads/googleads/v15/enums/conversion_action_status.proto b/google/ads/googleads/v18/enums/conversion_action_status.proto similarity index 80% rename from google/ads/googleads/v15/enums/conversion_action_status.proto rename to google/ads/googleads/v18/enums/conversion_action_status.proto index dacff4257..0f7225d1b 100644 --- a/google/ads/googleads/v15/enums/conversion_action_status.proto +++ b/google/ads/googleads/v18/enums/conversion_action_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionActionStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing conversion action status. diff --git a/google/ads/googleads/v15/enums/conversion_action_type.proto b/google/ads/googleads/v18/enums/conversion_action_type.proto similarity index 95% rename from google/ads/googleads/v15/enums/conversion_action_type.proto rename to google/ads/googleads/v18/enums/conversion_action_type.proto index b42ccf716..4dd189134 100644 --- a/google/ads/googleads/v15/enums/conversion_action_type.proto +++ b/google/ads/googleads/v18/enums/conversion_action_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionActionTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing conversion action type. diff --git a/google/ads/googleads/v15/enums/conversion_adjustment_type.proto b/google/ads/googleads/v18/enums/conversion_adjustment_type.proto similarity index 82% rename from google/ads/googleads/v15/enums/conversion_adjustment_type.proto rename to google/ads/googleads/v18/enums/conversion_adjustment_type.proto index 711999c60..e968a80d7 100644 --- a/google/ads/googleads/v15/enums/conversion_adjustment_type.proto +++ b/google/ads/googleads/v18/enums/conversion_adjustment_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionAdjustmentTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing conversion adjustment type. diff --git a/google/ads/googleads/v15/enums/conversion_attribution_event_type.proto b/google/ads/googleads/v18/enums/conversion_attribution_event_type.proto similarity index 79% rename from google/ads/googleads/v15/enums/conversion_attribution_event_type.proto rename to google/ads/googleads/v18/enums/conversion_attribution_event_type.proto index 4f8e8084d..acc6abde5 100644 --- a/google/ads/googleads/v15/enums/conversion_attribution_event_type.proto +++ b/google/ads/googleads/v18/enums/conversion_attribution_event_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionAttributionEventTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum indicating the event type the conversion is attributed to. message ConversionAttributionEventTypeEnum { diff --git a/google/ads/googleads/v15/enums/conversion_custom_variable_status.proto b/google/ads/googleads/v18/enums/conversion_custom_variable_status.proto similarity index 83% rename from google/ads/googleads/v15/enums/conversion_custom_variable_status.proto rename to google/ads/googleads/v18/enums/conversion_custom_variable_status.proto index ea804a2f3..a0c317283 100644 --- a/google/ads/googleads/v15/enums/conversion_custom_variable_status.proto +++ b/google/ads/googleads/v18/enums/conversion_custom_variable_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionCustomVariableStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing conversion custom variable status. diff --git a/google/ads/googleads/v15/enums/conversion_environment_enum.proto b/google/ads/googleads/v18/enums/conversion_environment_enum.proto similarity index 79% rename from google/ads/googleads/v15/enums/conversion_environment_enum.proto rename to google/ads/googleads/v18/enums/conversion_environment_enum.proto index 240a62e56..ef930f6ab 100644 --- a/google/ads/googleads/v15/enums/conversion_environment_enum.proto +++ b/google/ads/googleads/v18/enums/conversion_environment_enum.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionEnvironmentEnumProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum representing the conversion environment an uploaded // conversion was recorded on, for example, App or Web. diff --git a/google/ads/googleads/v15/enums/conversion_lag_bucket.proto b/google/ads/googleads/v18/enums/conversion_lag_bucket.proto similarity index 91% rename from google/ads/googleads/v15/enums/conversion_lag_bucket.proto rename to google/ads/googleads/v18/enums/conversion_lag_bucket.proto index f7d5ba81a..5892a7588 100644 --- a/google/ads/googleads/v15/enums/conversion_lag_bucket.proto +++ b/google/ads/googleads/v18/enums/conversion_lag_bucket.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionLagBucketProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum representing the number of days between impression and // conversion. diff --git a/google/ads/googleads/v15/enums/conversion_or_adjustment_lag_bucket.proto b/google/ads/googleads/v18/enums/conversion_or_adjustment_lag_bucket.proto similarity index 95% rename from google/ads/googleads/v15/enums/conversion_or_adjustment_lag_bucket.proto rename to google/ads/googleads/v18/enums/conversion_or_adjustment_lag_bucket.proto index 078234bfd..5d07f990a 100644 --- a/google/ads/googleads/v15/enums/conversion_or_adjustment_lag_bucket.proto +++ b/google/ads/googleads/v18/enums/conversion_or_adjustment_lag_bucket.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionOrAdjustmentLagBucketProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum representing the number of days between the impression and // the conversion or between the impression and adjustments to the conversion. diff --git a/google/ads/googleads/v15/enums/conversion_origin.proto b/google/ads/googleads/v18/enums/conversion_origin.proto similarity index 84% rename from google/ads/googleads/v15/enums/conversion_origin.proto rename to google/ads/googleads/v18/enums/conversion_origin.proto index ef57fd6af..d52b77d6d 100644 --- a/google/ads/googleads/v15/enums/conversion_origin.proto +++ b/google/ads/googleads/v18/enums/conversion_origin.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionOriginProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing conversion origin. diff --git a/google/ads/googleads/v15/enums/conversion_tracking_status_enum.proto b/google/ads/googleads/v18/enums/conversion_tracking_status_enum.proto similarity index 83% rename from google/ads/googleads/v15/enums/conversion_tracking_status_enum.proto rename to google/ads/googleads/v18/enums/conversion_tracking_status_enum.proto index 0fd164382..b2d2db719 100644 --- a/google/ads/googleads/v15/enums/conversion_tracking_status_enum.proto +++ b/google/ads/googleads/v18/enums/conversion_tracking_status_enum.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionTrackingStatusEnumProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum representing the conversion tracking status of the // customer. diff --git a/google/ads/googleads/v15/enums/conversion_value_rule_primary_dimension.proto b/google/ads/googleads/v18/enums/conversion_value_rule_primary_dimension.proto similarity index 81% rename from google/ads/googleads/v15/enums/conversion_value_rule_primary_dimension.proto rename to google/ads/googleads/v18/enums/conversion_value_rule_primary_dimension.proto index 25d763755..dbf859c18 100644 --- a/google/ads/googleads/v15/enums/conversion_value_rule_primary_dimension.proto +++ b/google/ads/googleads/v18/enums/conversion_value_rule_primary_dimension.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionValueRulePrimaryDimensionProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing conversion value rule primary dimension. @@ -58,5 +58,8 @@ message ConversionValueRulePrimaryDimensionEnum { // When multiple rules are applied. MULTIPLE = 8; + + // When a query-time itinerary condition is satisfied. + ITINERARY = 9; } } diff --git a/google/ads/googleads/v15/enums/conversion_value_rule_set_status.proto b/google/ads/googleads/v18/enums/conversion_value_rule_set_status.proto similarity index 81% rename from google/ads/googleads/v15/enums/conversion_value_rule_set_status.proto rename to google/ads/googleads/v18/enums/conversion_value_rule_set_status.proto index 0c91f7e38..e2ce05a7e 100644 --- a/google/ads/googleads/v15/enums/conversion_value_rule_set_status.proto +++ b/google/ads/googleads/v18/enums/conversion_value_rule_set_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionValueRuleSetStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing conversion value rule set status. diff --git a/google/ads/googleads/v15/enums/conversion_value_rule_status.proto b/google/ads/googleads/v18/enums/conversion_value_rule_status.proto similarity index 80% rename from google/ads/googleads/v15/enums/conversion_value_rule_status.proto rename to google/ads/googleads/v18/enums/conversion_value_rule_status.proto index 3093bc4dd..9f1c433de 100644 --- a/google/ads/googleads/v15/enums/conversion_value_rule_status.proto +++ b/google/ads/googleads/v18/enums/conversion_value_rule_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConversionValueRuleStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing conversion value rule status. diff --git a/google/ads/googleads/v15/enums/converting_user_prior_engagement_type_and_ltv_bucket.proto b/google/ads/googleads/v18/enums/converting_user_prior_engagement_type_and_ltv_bucket.proto similarity index 83% rename from google/ads/googleads/v15/enums/converting_user_prior_engagement_type_and_ltv_bucket.proto rename to google/ads/googleads/v18/enums/converting_user_prior_engagement_type_and_ltv_bucket.proto index 75946d2b5..8960df660 100644 --- a/google/ads/googleads/v15/enums/converting_user_prior_engagement_type_and_ltv_bucket.proto +++ b/google/ads/googleads/v18/enums/converting_user_prior_engagement_type_and_ltv_bucket.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ConvertingUserPriorEngagementTypeAndLtvBucketProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing converting user prior engagement types and lifetime // value bucket. diff --git a/google/ads/googleads/v15/enums/criterion_category_channel_availability_mode.proto b/google/ads/googleads/v18/enums/criterion_category_channel_availability_mode.proto similarity index 84% rename from google/ads/googleads/v15/enums/criterion_category_channel_availability_mode.proto rename to google/ads/googleads/v18/enums/criterion_category_channel_availability_mode.proto index ae4a89740..e0cdc92f4 100644 --- a/google/ads/googleads/v15/enums/criterion_category_channel_availability_mode.proto +++ b/google/ads/googleads/v18/enums/criterion_category_channel_availability_mode.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CriterionCategoryChannelAvailabilityModeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing the criterion category channel availability mode. diff --git a/google/ads/googleads/v15/enums/criterion_category_locale_availability_mode.proto b/google/ads/googleads/v18/enums/criterion_category_locale_availability_mode.proto similarity index 84% rename from google/ads/googleads/v15/enums/criterion_category_locale_availability_mode.proto rename to google/ads/googleads/v18/enums/criterion_category_locale_availability_mode.proto index e9def8e22..7aaf74493 100644 --- a/google/ads/googleads/v15/enums/criterion_category_locale_availability_mode.proto +++ b/google/ads/googleads/v18/enums/criterion_category_locale_availability_mode.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CriterionCategoryLocaleAvailabilityModeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing the criterion category locale availability mode. diff --git a/google/ads/googleads/v15/enums/criterion_system_serving_status.proto b/google/ads/googleads/v18/enums/criterion_system_serving_status.proto similarity index 78% rename from google/ads/googleads/v15/enums/criterion_system_serving_status.proto rename to google/ads/googleads/v18/enums/criterion_system_serving_status.proto index 6c0a940fd..3ee585786 100644 --- a/google/ads/googleads/v15/enums/criterion_system_serving_status.proto +++ b/google/ads/googleads/v18/enums/criterion_system_serving_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CriterionSystemServingStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing approval status for the criterion. diff --git a/google/ads/googleads/v15/enums/criterion_type.proto b/google/ads/googleads/v18/enums/criterion_type.proto similarity index 89% rename from google/ads/googleads/v15/enums/criterion_type.proto rename to google/ads/googleads/v18/enums/criterion_type.proto index f171fd6ea..b16cb81ff 100644 --- a/google/ads/googleads/v15/enums/criterion_type.proto +++ b/google/ads/googleads/v18/enums/criterion_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CriterionTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing criteria types. @@ -153,5 +153,8 @@ message CriterionTypeEnum { // Brand List BRAND_LIST = 40; + + // Life Event + LIFE_EVENT = 41; } } diff --git a/google/ads/googleads/v15/enums/custom_audience_member_type.proto b/google/ads/googleads/v18/enums/custom_audience_member_type.proto similarity index 81% rename from google/ads/googleads/v15/enums/custom_audience_member_type.proto rename to google/ads/googleads/v18/enums/custom_audience_member_type.proto index d62458e78..6fec794c7 100644 --- a/google/ads/googleads/v15/enums/custom_audience_member_type.proto +++ b/google/ads/googleads/v18/enums/custom_audience_member_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomAudienceMemberTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing custom audience member type. diff --git a/google/ads/googleads/v15/enums/custom_audience_status.proto b/google/ads/googleads/v18/enums/custom_audience_status.proto similarity index 79% rename from google/ads/googleads/v15/enums/custom_audience_status.proto rename to google/ads/googleads/v18/enums/custom_audience_status.proto index 64ddca879..63034e393 100644 --- a/google/ads/googleads/v15/enums/custom_audience_status.proto +++ b/google/ads/googleads/v18/enums/custom_audience_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomAudienceStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing custom audience status. diff --git a/google/ads/googleads/v15/enums/custom_audience_type.proto b/google/ads/googleads/v18/enums/custom_audience_type.proto similarity index 81% rename from google/ads/googleads/v15/enums/custom_audience_type.proto rename to google/ads/googleads/v18/enums/custom_audience_type.proto index 25a9c5846..aca6b5d7d 100644 --- a/google/ads/googleads/v15/enums/custom_audience_type.proto +++ b/google/ads/googleads/v18/enums/custom_audience_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomAudienceTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing custom audience type. diff --git a/google/ads/googleads/v15/enums/custom_conversion_goal_status.proto b/google/ads/googleads/v18/enums/custom_conversion_goal_status.proto similarity index 79% rename from google/ads/googleads/v15/enums/custom_conversion_goal_status.proto rename to google/ads/googleads/v18/enums/custom_conversion_goal_status.proto index 3c44c0433..18a210125 100644 --- a/google/ads/googleads/v15/enums/custom_conversion_goal_status.proto +++ b/google/ads/googleads/v18/enums/custom_conversion_goal_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomConversionGoalStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing custom conversion goal status. diff --git a/google/ads/googleads/v15/enums/custom_interest_member_type.proto b/google/ads/googleads/v18/enums/custom_interest_member_type.proto similarity index 79% rename from google/ads/googleads/v15/enums/custom_interest_member_type.proto rename to google/ads/googleads/v18/enums/custom_interest_member_type.proto index d3efd8643..72e0b0e14 100644 --- a/google/ads/googleads/v15/enums/custom_interest_member_type.proto +++ b/google/ads/googleads/v18/enums/custom_interest_member_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomInterestMemberTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing custom interest member type. diff --git a/google/ads/googleads/v15/enums/custom_interest_status.proto b/google/ads/googleads/v18/enums/custom_interest_status.proto similarity index 79% rename from google/ads/googleads/v15/enums/custom_interest_status.proto rename to google/ads/googleads/v18/enums/custom_interest_status.proto index c8d017f26..118910506 100644 --- a/google/ads/googleads/v15/enums/custom_interest_status.proto +++ b/google/ads/googleads/v18/enums/custom_interest_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomInterestStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing custom interest status. diff --git a/google/ads/googleads/v15/enums/custom_interest_type.proto b/google/ads/googleads/v18/enums/custom_interest_type.proto similarity index 79% rename from google/ads/googleads/v15/enums/custom_interest_type.proto rename to google/ads/googleads/v18/enums/custom_interest_type.proto index 44d1b3a8f..97b0bdf99 100644 --- a/google/ads/googleads/v15/enums/custom_interest_type.proto +++ b/google/ads/googleads/v18/enums/custom_interest_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomInterestTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing custom interest type. diff --git a/google/ads/googleads/v15/enums/custom_placeholder_field.proto b/google/ads/googleads/v18/enums/custom_placeholder_field.proto similarity index 92% rename from google/ads/googleads/v15/enums/custom_placeholder_field.proto rename to google/ads/googleads/v18/enums/custom_placeholder_field.proto index b7c72d269..306aa1f44 100644 --- a/google/ads/googleads/v15/enums/custom_placeholder_field.proto +++ b/google/ads/googleads/v18/enums/custom_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Custom placeholder fields. diff --git a/google/ads/googleads/v15/enums/customer_acquisition_optimization_mode.proto b/google/ads/googleads/v18/enums/customer_acquisition_optimization_mode.proto similarity index 83% rename from google/ads/googleads/v15/enums/customer_acquisition_optimization_mode.proto rename to google/ads/googleads/v18/enums/customer_acquisition_optimization_mode.proto index 19d4aaefd..c31a87f10 100644 --- a/google/ads/googleads/v15/enums/customer_acquisition_optimization_mode.proto +++ b/google/ads/googleads/v18/enums/customer_acquisition_optimization_mode.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomerAcquisitionOptimizationModeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing customer acquisition goal optimization mode. diff --git a/google/ads/googleads/v15/enums/customer_match_upload_key_type.proto b/google/ads/googleads/v18/enums/customer_match_upload_key_type.proto similarity index 81% rename from google/ads/googleads/v15/enums/customer_match_upload_key_type.proto rename to google/ads/googleads/v18/enums/customer_match_upload_key_type.proto index 879998476..543b0d8ff 100644 --- a/google/ads/googleads/v15/enums/customer_match_upload_key_type.proto +++ b/google/ads/googleads/v18/enums/customer_match_upload_key_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomerMatchUploadKeyTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Indicates what type of data are the user list's members matched from. message CustomerMatchUploadKeyTypeEnum { diff --git a/google/ads/googleads/v15/enums/customer_pay_per_conversion_eligibility_failure_reason.proto b/google/ads/googleads/v18/enums/customer_pay_per_conversion_eligibility_failure_reason.proto similarity index 85% rename from google/ads/googleads/v15/enums/customer_pay_per_conversion_eligibility_failure_reason.proto rename to google/ads/googleads/v18/enums/customer_pay_per_conversion_eligibility_failure_reason.proto index 0b41efac2..266330a4b 100644 --- a/google/ads/googleads/v15/enums/customer_pay_per_conversion_eligibility_failure_reason.proto +++ b/google/ads/googleads/v18/enums/customer_pay_per_conversion_eligibility_failure_reason.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomerPayPerConversionEligibilityFailureReasonProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing pay per conversion eligibility failure reasons. diff --git a/google/ads/googleads/v15/enums/customer_status.proto b/google/ads/googleads/v18/enums/customer_status.proto similarity index 82% rename from google/ads/googleads/v15/enums/customer_status.proto rename to google/ads/googleads/v18/enums/customer_status.proto index 2b4ed7d45..43a5ec5b4 100644 --- a/google/ads/googleads/v15/enums/customer_status.proto +++ b/google/ads/googleads/v18/enums/customer_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomerStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum describing possible statuses of a customer. message CustomerStatusEnum { diff --git a/google/ads/googleads/v15/enums/customizer_attribute_status.proto b/google/ads/googleads/v18/enums/customizer_attribute_status.proto similarity index 79% rename from google/ads/googleads/v15/enums/customizer_attribute_status.proto rename to google/ads/googleads/v18/enums/customizer_attribute_status.proto index 4375d7dd9..2c099c1db 100644 --- a/google/ads/googleads/v15/enums/customizer_attribute_status.proto +++ b/google/ads/googleads/v18/enums/customizer_attribute_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomizerAttributeStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing customizer attribute status. diff --git a/google/ads/googleads/v15/enums/customizer_attribute_type.proto b/google/ads/googleads/v18/enums/customizer_attribute_type.proto similarity index 80% rename from google/ads/googleads/v15/enums/customizer_attribute_type.proto rename to google/ads/googleads/v18/enums/customizer_attribute_type.proto index 2a6ca291b..18077ad86 100644 --- a/google/ads/googleads/v15/enums/customizer_attribute_type.proto +++ b/google/ads/googleads/v18/enums/customizer_attribute_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomizerAttributeTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing customizer attribute type. diff --git a/google/ads/googleads/v15/enums/customizer_value_status.proto b/google/ads/googleads/v18/enums/customizer_value_status.proto similarity index 79% rename from google/ads/googleads/v15/enums/customizer_value_status.proto rename to google/ads/googleads/v18/enums/customizer_value_status.proto index 709ae40dc..1482c263a 100644 --- a/google/ads/googleads/v15/enums/customizer_value_status.proto +++ b/google/ads/googleads/v18/enums/customizer_value_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "CustomizerValueStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing customizer value status. diff --git a/google/ads/googleads/v15/enums/data_driven_model_status.proto b/google/ads/googleads/v18/enums/data_driven_model_status.proto similarity index 84% rename from google/ads/googleads/v15/enums/data_driven_model_status.proto rename to google/ads/googleads/v18/enums/data_driven_model_status.proto index 346fe4260..61691dd13 100644 --- a/google/ads/googleads/v15/enums/data_driven_model_status.proto +++ b/google/ads/googleads/v18/enums/data_driven_model_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "DataDrivenModelStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing data-driven model status. diff --git a/google/ads/googleads/v18/enums/data_link_status.proto b/google/ads/googleads/v18/enums/data_link_status.proto new file mode 100644 index 000000000..88f5c7dc0 --- /dev/null +++ b/google/ads/googleads/v18/enums/data_link_status.proto @@ -0,0 +1,58 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "DataLinkStatusProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Container for enum describing different types of data links. +message DataLinkStatusEnum { + // Describes the possible data link statuses. + enum DataLinkStatus { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Link has been requested by one party, but not confirmed by the other + // party. + REQUESTED = 2; + + // Link is waiting for the customer to approve. + PENDING_APPROVAL = 3; + + // Link is established and can be used as needed. + ENABLED = 4; + + // Link is no longer valid and should be ignored. + DISABLED = 5; + + // Link request has been cancelled by the requester and further cleanup may + // be needed. + REVOKED = 6; + + // Link request has been rejected by the approver. + REJECTED = 7; + } +} diff --git a/google/ads/googleads/v18/enums/data_link_type.proto b/google/ads/googleads/v18/enums/data_link_type.proto new file mode 100644 index 000000000..7b378dafc --- /dev/null +++ b/google/ads/googleads/v18/enums/data_link_type.proto @@ -0,0 +1,41 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "DataLinkTypeProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Container for enum describing different types of data links. +message DataLinkTypeEnum { + // Describes the possible data link types. + enum DataLinkType { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // A data link to YouTube video. + VIDEO = 2; + } +} diff --git a/google/ads/googleads/v15/enums/day_of_week.proto b/google/ads/googleads/v18/enums/day_of_week.proto similarity index 79% rename from google/ads/googleads/v15/enums/day_of_week.proto rename to google/ads/googleads/v18/enums/day_of_week.proto index 8d2054709..3f6f3424a 100644 --- a/google/ads/googleads/v15/enums/day_of_week.proto +++ b/google/ads/googleads/v18/enums/day_of_week.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "DayOfWeekProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing days of week. diff --git a/google/ads/googleads/v15/enums/device.proto b/google/ads/googleads/v18/enums/device.proto similarity index 79% rename from google/ads/googleads/v15/enums/device.proto rename to google/ads/googleads/v18/enums/device.proto index 4312d7b87..fb4d1c353 100644 --- a/google/ads/googleads/v15/enums/device.proto +++ b/google/ads/googleads/v18/enums/device.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "DeviceProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing devices. diff --git a/google/ads/googleads/v15/enums/display_ad_format_setting.proto b/google/ads/googleads/v18/enums/display_ad_format_setting.proto similarity index 79% rename from google/ads/googleads/v15/enums/display_ad_format_setting.proto rename to google/ads/googleads/v18/enums/display_ad_format_setting.proto index 06fca910f..4e1601ea1 100644 --- a/google/ads/googleads/v15/enums/display_ad_format_setting.proto +++ b/google/ads/googleads/v18/enums/display_ad_format_setting.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "DisplayAdFormatSettingProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing display ad format settings. diff --git a/google/ads/googleads/v15/enums/display_upload_product_type.proto b/google/ads/googleads/v18/enums/display_upload_product_type.proto similarity index 91% rename from google/ads/googleads/v15/enums/display_upload_product_type.proto rename to google/ads/googleads/v18/enums/display_upload_product_type.proto index 752711441..0b6ad8aa6 100644 --- a/google/ads/googleads/v15/enums/display_upload_product_type.proto +++ b/google/ads/googleads/v18/enums/display_upload_product_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "DisplayUploadProductTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing display upload product types. diff --git a/google/ads/googleads/v15/enums/distance_bucket.proto b/google/ads/googleads/v18/enums/distance_bucket.proto similarity index 90% rename from google/ads/googleads/v15/enums/distance_bucket.proto rename to google/ads/googleads/v18/enums/distance_bucket.proto index 170f5dc24..1d8d1ef8c 100644 --- a/google/ads/googleads/v15/enums/distance_bucket.proto +++ b/google/ads/googleads/v18/enums/distance_bucket.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "DistanceBucketProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing distance buckets. diff --git a/google/ads/googleads/v15/enums/dsa_page_feed_criterion_field.proto b/google/ads/googleads/v18/enums/dsa_page_feed_criterion_field.proto similarity index 80% rename from google/ads/googleads/v15/enums/dsa_page_feed_criterion_field.proto rename to google/ads/googleads/v18/enums/dsa_page_feed_criterion_field.proto index c35affe43..825b25fd3 100644 --- a/google/ads/googleads/v15/enums/dsa_page_feed_criterion_field.proto +++ b/google/ads/googleads/v18/enums/dsa_page_feed_criterion_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "DsaPageFeedCriterionFieldProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Dynamic Search Ad Page Feed criterion fields. diff --git a/google/ads/googleads/v15/enums/education_placeholder_field.proto b/google/ads/googleads/v18/enums/education_placeholder_field.proto similarity index 91% rename from google/ads/googleads/v15/enums/education_placeholder_field.proto rename to google/ads/googleads/v18/enums/education_placeholder_field.proto index dcc899910..41dc49cbb 100644 --- a/google/ads/googleads/v15/enums/education_placeholder_field.proto +++ b/google/ads/googleads/v18/enums/education_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "EducationPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Education placeholder fields. diff --git a/google/ads/googleads/v15/enums/experiment_metric.proto b/google/ads/googleads/v18/enums/experiment_metric.proto similarity index 86% rename from google/ads/googleads/v15/enums/experiment_metric.proto rename to google/ads/googleads/v18/enums/experiment_metric.proto index 2e3328f1f..df78c5c80 100644 --- a/google/ads/googleads/v15/enums/experiment_metric.proto +++ b/google/ads/googleads/v18/enums/experiment_metric.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ExperimentMetricProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing experiment metric. diff --git a/google/ads/googleads/v15/enums/experiment_metric_direction.proto b/google/ads/googleads/v18/enums/experiment_metric_direction.proto similarity index 82% rename from google/ads/googleads/v15/enums/experiment_metric_direction.proto rename to google/ads/googleads/v18/enums/experiment_metric_direction.proto index efe67ac82..5636cca8b 100644 --- a/google/ads/googleads/v15/enums/experiment_metric_direction.proto +++ b/google/ads/googleads/v18/enums/experiment_metric_direction.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ExperimentMetricDirectionProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing experiment metric direction. diff --git a/google/ads/googleads/v15/enums/experiment_status.proto b/google/ads/googleads/v18/enums/experiment_status.proto similarity index 83% rename from google/ads/googleads/v15/enums/experiment_status.proto rename to google/ads/googleads/v18/enums/experiment_status.proto index 2cc9408df..31e97a145 100644 --- a/google/ads/googleads/v15/enums/experiment_status.proto +++ b/google/ads/googleads/v18/enums/experiment_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ExperimentStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing experiment status. diff --git a/google/ads/googleads/v15/enums/experiment_type.proto b/google/ads/googleads/v18/enums/experiment_type.proto similarity index 85% rename from google/ads/googleads/v15/enums/experiment_type.proto rename to google/ads/googleads/v18/enums/experiment_type.proto index 3b7cf76aa..05a06cbea 100644 --- a/google/ads/googleads/v15/enums/experiment_type.proto +++ b/google/ads/googleads/v18/enums/experiment_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ExperimentTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing experiment type. diff --git a/google/ads/googleads/v15/enums/extension_setting_device.proto b/google/ads/googleads/v18/enums/extension_setting_device.proto similarity index 80% rename from google/ads/googleads/v15/enums/extension_setting_device.proto rename to google/ads/googleads/v18/enums/extension_setting_device.proto index acc5983bd..9e7d9d311 100644 --- a/google/ads/googleads/v15/enums/extension_setting_device.proto +++ b/google/ads/googleads/v18/enums/extension_setting_device.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ExtensionSettingDeviceProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing extension setting device type. diff --git a/google/ads/googleads/v15/enums/extension_type.proto b/google/ads/googleads/v18/enums/extension_type.proto similarity index 83% rename from google/ads/googleads/v15/enums/extension_type.proto rename to google/ads/googleads/v18/enums/extension_type.proto index 9ff770105..87c3a48f1 100644 --- a/google/ads/googleads/v15/enums/extension_type.proto +++ b/google/ads/googleads/v18/enums/extension_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ExtensionTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing extension type. diff --git a/google/ads/googleads/v15/enums/external_conversion_source.proto b/google/ads/googleads/v18/enums/external_conversion_source.proto similarity index 94% rename from google/ads/googleads/v15/enums/external_conversion_source.proto rename to google/ads/googleads/v18/enums/external_conversion_source.proto index f9be05e71..087cccfd5 100644 --- a/google/ads/googleads/v15/enums/external_conversion_source.proto +++ b/google/ads/googleads/v18/enums/external_conversion_source.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ExternalConversionSourceProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum describing the external conversion source that is // associated with a ConversionAction. diff --git a/google/ads/googleads/v15/enums/feed_attribute_type.proto b/google/ads/googleads/v18/enums/feed_attribute_type.proto similarity index 82% rename from google/ads/googleads/v15/enums/feed_attribute_type.proto rename to google/ads/googleads/v18/enums/feed_attribute_type.proto index 231f51f82..bd5c68baf 100644 --- a/google/ads/googleads/v15/enums/feed_attribute_type.proto +++ b/google/ads/googleads/v18/enums/feed_attribute_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedAttributeTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing feed attribute type. diff --git a/google/ads/googleads/v15/enums/feed_item_quality_approval_status.proto b/google/ads/googleads/v18/enums/feed_item_quality_approval_status.proto similarity index 81% rename from google/ads/googleads/v15/enums/feed_item_quality_approval_status.proto rename to google/ads/googleads/v18/enums/feed_item_quality_approval_status.proto index 498d8cd10..5fc0845d3 100644 --- a/google/ads/googleads/v15/enums/feed_item_quality_approval_status.proto +++ b/google/ads/googleads/v18/enums/feed_item_quality_approval_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedItemQualityApprovalStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing feed item quality evaluation approval statuses. diff --git a/google/ads/googleads/v15/enums/feed_item_quality_disapproval_reason.proto b/google/ads/googleads/v18/enums/feed_item_quality_disapproval_reason.proto similarity index 90% rename from google/ads/googleads/v15/enums/feed_item_quality_disapproval_reason.proto rename to google/ads/googleads/v18/enums/feed_item_quality_disapproval_reason.proto index 45ed8d2c6..4cd9c86c4 100644 --- a/google/ads/googleads/v15/enums/feed_item_quality_disapproval_reason.proto +++ b/google/ads/googleads/v18/enums/feed_item_quality_disapproval_reason.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedItemQualityDisapprovalReasonProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing feed item quality disapproval reasons. diff --git a/google/ads/googleads/v15/enums/feed_item_set_status.proto b/google/ads/googleads/v18/enums/feed_item_set_status.proto similarity index 78% rename from google/ads/googleads/v15/enums/feed_item_set_status.proto rename to google/ads/googleads/v18/enums/feed_item_set_status.proto index db8476cb0..78fc4a2a5 100644 --- a/google/ads/googleads/v15/enums/feed_item_set_status.proto +++ b/google/ads/googleads/v18/enums/feed_item_set_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedItemSetStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing feed item set status. diff --git a/google/ads/googleads/v15/enums/feed_item_set_string_filter_type.proto b/google/ads/googleads/v18/enums/feed_item_set_string_filter_type.proto similarity index 78% rename from google/ads/googleads/v15/enums/feed_item_set_string_filter_type.proto rename to google/ads/googleads/v18/enums/feed_item_set_string_filter_type.proto index e7dc4fd90..5804576eb 100644 --- a/google/ads/googleads/v15/enums/feed_item_set_string_filter_type.proto +++ b/google/ads/googleads/v18/enums/feed_item_set_string_filter_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedItemSetStringFilterTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // The type of string matching to be used for a dynamic FeedItemSet filter. message FeedItemSetStringFilterTypeEnum { diff --git a/google/ads/googleads/v15/enums/feed_item_status.proto b/google/ads/googleads/v18/enums/feed_item_status.proto similarity index 78% rename from google/ads/googleads/v15/enums/feed_item_status.proto rename to google/ads/googleads/v18/enums/feed_item_status.proto index db8a3d703..b1837b285 100644 --- a/google/ads/googleads/v15/enums/feed_item_status.proto +++ b/google/ads/googleads/v18/enums/feed_item_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedItemStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing feed item status. diff --git a/google/ads/googleads/v15/enums/feed_item_target_device.proto b/google/ads/googleads/v18/enums/feed_item_target_device.proto similarity index 78% rename from google/ads/googleads/v15/enums/feed_item_target_device.proto rename to google/ads/googleads/v18/enums/feed_item_target_device.proto index 95af73f39..7bbc7ca92 100644 --- a/google/ads/googleads/v15/enums/feed_item_target_device.proto +++ b/google/ads/googleads/v18/enums/feed_item_target_device.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedItemTargetDeviceProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing feed item target device type. diff --git a/google/ads/googleads/v15/enums/feed_item_target_status.proto b/google/ads/googleads/v18/enums/feed_item_target_status.proto similarity index 78% rename from google/ads/googleads/v15/enums/feed_item_target_status.proto rename to google/ads/googleads/v18/enums/feed_item_target_status.proto index 7852fd9bc..8a4d838e2 100644 --- a/google/ads/googleads/v15/enums/feed_item_target_status.proto +++ b/google/ads/googleads/v18/enums/feed_item_target_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedItemTargetStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing feed item target status. diff --git a/google/ads/googleads/v15/enums/feed_item_target_type.proto b/google/ads/googleads/v18/enums/feed_item_target_type.proto similarity index 79% rename from google/ads/googleads/v15/enums/feed_item_target_type.proto rename to google/ads/googleads/v18/enums/feed_item_target_type.proto index ada834960..ca939562c 100644 --- a/google/ads/googleads/v15/enums/feed_item_target_type.proto +++ b/google/ads/googleads/v18/enums/feed_item_target_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedItemTargetTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing feed item target type status. diff --git a/google/ads/googleads/v15/enums/feed_item_validation_status.proto b/google/ads/googleads/v18/enums/feed_item_validation_status.proto similarity index 80% rename from google/ads/googleads/v15/enums/feed_item_validation_status.proto rename to google/ads/googleads/v18/enums/feed_item_validation_status.proto index 797e465fc..82b9d0157 100644 --- a/google/ads/googleads/v15/enums/feed_item_validation_status.proto +++ b/google/ads/googleads/v18/enums/feed_item_validation_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedItemValidationStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing feed item validation statuses. diff --git a/google/ads/googleads/v15/enums/feed_link_status.proto b/google/ads/googleads/v18/enums/feed_link_status.proto similarity index 78% rename from google/ads/googleads/v15/enums/feed_link_status.proto rename to google/ads/googleads/v18/enums/feed_link_status.proto index ec493f7e2..e2588eb16 100644 --- a/google/ads/googleads/v15/enums/feed_link_status.proto +++ b/google/ads/googleads/v18/enums/feed_link_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedLinkStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing status of a feed link. diff --git a/google/ads/googleads/v15/enums/feed_mapping_criterion_type.proto b/google/ads/googleads/v18/enums/feed_mapping_criterion_type.proto similarity index 80% rename from google/ads/googleads/v15/enums/feed_mapping_criterion_type.proto rename to google/ads/googleads/v18/enums/feed_mapping_criterion_type.proto index 9f0cf836f..afc013861 100644 --- a/google/ads/googleads/v15/enums/feed_mapping_criterion_type.proto +++ b/google/ads/googleads/v18/enums/feed_mapping_criterion_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedMappingCriterionTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing criterion types for feed mappings. diff --git a/google/ads/googleads/v15/enums/feed_mapping_status.proto b/google/ads/googleads/v18/enums/feed_mapping_status.proto similarity index 78% rename from google/ads/googleads/v15/enums/feed_mapping_status.proto rename to google/ads/googleads/v18/enums/feed_mapping_status.proto index 55018bf3f..7a316e59a 100644 --- a/google/ads/googleads/v15/enums/feed_mapping_status.proto +++ b/google/ads/googleads/v18/enums/feed_mapping_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedMappingStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing feed mapping status. diff --git a/google/ads/googleads/v15/enums/feed_origin.proto b/google/ads/googleads/v18/enums/feed_origin.proto similarity index 81% rename from google/ads/googleads/v15/enums/feed_origin.proto rename to google/ads/googleads/v18/enums/feed_origin.proto index 722fbee08..2cc4d769a 100644 --- a/google/ads/googleads/v15/enums/feed_origin.proto +++ b/google/ads/googleads/v18/enums/feed_origin.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedOriginProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing feed origin. diff --git a/google/ads/googleads/v15/enums/feed_status.proto b/google/ads/googleads/v18/enums/feed_status.proto similarity index 77% rename from google/ads/googleads/v15/enums/feed_status.proto rename to google/ads/googleads/v18/enums/feed_status.proto index aa075171b..83c91f94b 100644 --- a/google/ads/googleads/v15/enums/feed_status.proto +++ b/google/ads/googleads/v18/enums/feed_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FeedStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing feed status. diff --git a/google/ads/googleads/v18/enums/fixed_cpm_goal.proto b/google/ads/googleads/v18/enums/fixed_cpm_goal.proto new file mode 100644 index 000000000..738c1b435 --- /dev/null +++ b/google/ads/googleads/v18/enums/fixed_cpm_goal.proto @@ -0,0 +1,48 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FixedCpmGoalProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Proto file describing the goal of the Fixed CPM bidding strategy. + +// Container for describing the goal of the Fixed CPM bidding strategy. +message FixedCpmGoalEnum { + // Enum describing the goal of the Fixed CPM bidding strategy. + enum FixedCpmGoal { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Maximize reach, that is the number of users who saw the ads in this + // campaign. + REACH = 2; + + // Target Frequency CPM bidder. Optimize bidding to reach a single user with + // the requested frequency. + TARGET_FREQUENCY = 3; + } +} diff --git a/google/ads/googleads/v18/enums/fixed_cpm_target_frequency_time_unit.proto b/google/ads/googleads/v18/enums/fixed_cpm_target_frequency_time_unit.proto new file mode 100644 index 000000000..51ec5017e --- /dev/null +++ b/google/ads/googleads/v18/enums/fixed_cpm_target_frequency_time_unit.proto @@ -0,0 +1,45 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "FixedCpmTargetFrequencyTimeUnitProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Proto file describing bidding goal target frequency time units for Fixed +// CPM bidding strategy. + +// Container for enum describing bidding goal target frequency time units. +message FixedCpmTargetFrequencyTimeUnitEnum { + // An enum describing the time window over which the bidding is optimized to + // meet the target frequency when using Fixed CPM bidding strategy. + enum FixedCpmTargetFrequencyTimeUnit { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Optimize bidding to reach target frequency in 30 days. + MONTHLY = 2; + } +} diff --git a/google/ads/googleads/v15/enums/flight_placeholder_field.proto b/google/ads/googleads/v18/enums/flight_placeholder_field.proto similarity index 91% rename from google/ads/googleads/v15/enums/flight_placeholder_field.proto rename to google/ads/googleads/v18/enums/flight_placeholder_field.proto index e7315ebbc..8ebfa568b 100644 --- a/google/ads/googleads/v15/enums/flight_placeholder_field.proto +++ b/google/ads/googleads/v18/enums/flight_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FlightsPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Flight placeholder fields. diff --git a/google/ads/googleads/v15/enums/frequency_cap_event_type.proto b/google/ads/googleads/v18/enums/frequency_cap_event_type.proto similarity index 79% rename from google/ads/googleads/v15/enums/frequency_cap_event_type.proto rename to google/ads/googleads/v18/enums/frequency_cap_event_type.proto index eb181e2a5..bf4ecbb16 100644 --- a/google/ads/googleads/v15/enums/frequency_cap_event_type.proto +++ b/google/ads/googleads/v18/enums/frequency_cap_event_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FrequencyCapEventTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing frequency caps. diff --git a/google/ads/googleads/v15/enums/frequency_cap_level.proto b/google/ads/googleads/v18/enums/frequency_cap_level.proto similarity index 81% rename from google/ads/googleads/v15/enums/frequency_cap_level.proto rename to google/ads/googleads/v18/enums/frequency_cap_level.proto index 01b411f01..7bf2074b4 100644 --- a/google/ads/googleads/v15/enums/frequency_cap_level.proto +++ b/google/ads/googleads/v18/enums/frequency_cap_level.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FrequencyCapLevelProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing frequency caps. diff --git a/google/ads/googleads/v15/enums/frequency_cap_time_unit.proto b/google/ads/googleads/v18/enums/frequency_cap_time_unit.proto similarity index 80% rename from google/ads/googleads/v15/enums/frequency_cap_time_unit.proto rename to google/ads/googleads/v18/enums/frequency_cap_time_unit.proto index 8c2ec0d55..22b095bdb 100644 --- a/google/ads/googleads/v15/enums/frequency_cap_time_unit.proto +++ b/google/ads/googleads/v18/enums/frequency_cap_time_unit.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "FrequencyCapTimeUnitProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing frequency caps. diff --git a/google/ads/googleads/v15/enums/gender_type.proto b/google/ads/googleads/v18/enums/gender_type.proto similarity index 78% rename from google/ads/googleads/v15/enums/gender_type.proto rename to google/ads/googleads/v18/enums/gender_type.proto index 7f55f1600..90070ea72 100644 --- a/google/ads/googleads/v15/enums/gender_type.proto +++ b/google/ads/googleads/v18/enums/gender_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "GenderTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing gender types. diff --git a/google/ads/googleads/v15/enums/geo_target_constant_status.proto b/google/ads/googleads/v18/enums/geo_target_constant_status.proto similarity index 80% rename from google/ads/googleads/v15/enums/geo_target_constant_status.proto rename to google/ads/googleads/v18/enums/geo_target_constant_status.proto index 706f2c597..07fea1a3f 100644 --- a/google/ads/googleads/v15/enums/geo_target_constant_status.proto +++ b/google/ads/googleads/v18/enums/geo_target_constant_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "GeoTargetConstantStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing geo target constant statuses. diff --git a/google/ads/googleads/v15/enums/geo_targeting_restriction.proto b/google/ads/googleads/v18/enums/geo_targeting_restriction.proto similarity index 79% rename from google/ads/googleads/v15/enums/geo_targeting_restriction.proto rename to google/ads/googleads/v18/enums/geo_targeting_restriction.proto index 99734e7bc..eff9b1fc4 100644 --- a/google/ads/googleads/v15/enums/geo_targeting_restriction.proto +++ b/google/ads/googleads/v18/enums/geo_targeting_restriction.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "GeoTargetingRestrictionProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing GeoTargetingRestriction. diff --git a/google/ads/googleads/v15/enums/geo_targeting_type.proto b/google/ads/googleads/v18/enums/geo_targeting_type.proto similarity index 78% rename from google/ads/googleads/v15/enums/geo_targeting_type.proto rename to google/ads/googleads/v18/enums/geo_targeting_type.proto index 3b5a3b8c9..641401f41 100644 --- a/google/ads/googleads/v15/enums/geo_targeting_type.proto +++ b/google/ads/googleads/v18/enums/geo_targeting_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "GeoTargetingTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing geo targeting types. diff --git a/google/ads/googleads/v15/enums/goal_config_level.proto b/google/ads/googleads/v18/enums/goal_config_level.proto similarity index 81% rename from google/ads/googleads/v15/enums/goal_config_level.proto rename to google/ads/googleads/v18/enums/goal_config_level.proto index 49f65c480..8bf2cf9cb 100644 --- a/google/ads/googleads/v15/enums/goal_config_level.proto +++ b/google/ads/googleads/v18/enums/goal_config_level.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "GoalConfigLevelProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing goal config level. diff --git a/google/ads/googleads/v15/enums/google_ads_field_category.proto b/google/ads/googleads/v18/enums/google_ads_field_category.proto similarity index 83% rename from google/ads/googleads/v15/enums/google_ads_field_category.proto rename to google/ads/googleads/v18/enums/google_ads_field_category.proto index 1b8c164cf..f4fb2d027 100644 --- a/google/ads/googleads/v15/enums/google_ads_field_category.proto +++ b/google/ads/googleads/v18/enums/google_ads_field_category.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "GoogleAdsFieldCategoryProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing GoogleAdsField categories. diff --git a/google/ads/googleads/v15/enums/google_ads_field_data_type.proto b/google/ads/googleads/v18/enums/google_ads_field_data_type.proto similarity index 89% rename from google/ads/googleads/v15/enums/google_ads_field_data_type.proto rename to google/ads/googleads/v18/enums/google_ads_field_data_type.proto index f563b5732..a2f3751b9 100644 --- a/google/ads/googleads/v15/enums/google_ads_field_data_type.proto +++ b/google/ads/googleads/v18/enums/google_ads_field_data_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "GoogleAdsFieldDataTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing GoogleAdsField data types. diff --git a/google/ads/googleads/v15/enums/google_voice_call_status.proto b/google/ads/googleads/v18/enums/google_voice_call_status.proto similarity index 78% rename from google/ads/googleads/v15/enums/google_voice_call_status.proto rename to google/ads/googleads/v18/enums/google_voice_call_status.proto index 30574a60c..0dc124d03 100644 --- a/google/ads/googleads/v15/enums/google_voice_call_status.proto +++ b/google/ads/googleads/v18/enums/google_voice_call_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "GoogleVoiceCallStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing google voice call status. diff --git a/google/ads/googleads/v15/enums/hotel_asset_suggestion_status.proto b/google/ads/googleads/v18/enums/hotel_asset_suggestion_status.proto similarity index 80% rename from google/ads/googleads/v15/enums/hotel_asset_suggestion_status.proto rename to google/ads/googleads/v18/enums/hotel_asset_suggestion_status.proto index 029e00af5..21048eb30 100644 --- a/google/ads/googleads/v15/enums/hotel_asset_suggestion_status.proto +++ b/google/ads/googleads/v18/enums/hotel_asset_suggestion_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "HotelAssetSuggestionStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing hotel asset suggestion status. diff --git a/google/ads/googleads/v15/enums/hotel_date_selection_type.proto b/google/ads/googleads/v18/enums/hotel_date_selection_type.proto similarity index 79% rename from google/ads/googleads/v15/enums/hotel_date_selection_type.proto rename to google/ads/googleads/v18/enums/hotel_date_selection_type.proto index 4adabffe9..02b49a4de 100644 --- a/google/ads/googleads/v15/enums/hotel_date_selection_type.proto +++ b/google/ads/googleads/v18/enums/hotel_date_selection_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "HotelDateSelectionTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing hotel date selection types. diff --git a/google/ads/googleads/v15/enums/hotel_placeholder_field.proto b/google/ads/googleads/v18/enums/hotel_placeholder_field.proto similarity index 92% rename from google/ads/googleads/v15/enums/hotel_placeholder_field.proto rename to google/ads/googleads/v18/enums/hotel_placeholder_field.proto index fd549c053..4c4dcd30e 100644 --- a/google/ads/googleads/v15/enums/hotel_placeholder_field.proto +++ b/google/ads/googleads/v18/enums/hotel_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "HotelsPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Hotel placeholder fields. diff --git a/google/ads/googleads/v15/enums/hotel_price_bucket.proto b/google/ads/googleads/v18/enums/hotel_price_bucket.proto similarity index 82% rename from google/ads/googleads/v15/enums/hotel_price_bucket.proto rename to google/ads/googleads/v18/enums/hotel_price_bucket.proto index fc2fd1344..0bab5a9f3 100644 --- a/google/ads/googleads/v15/enums/hotel_price_bucket.proto +++ b/google/ads/googleads/v18/enums/hotel_price_bucket.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "HotelPriceBucketProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing hotel price buckets. diff --git a/google/ads/googleads/v15/enums/hotel_rate_type.proto b/google/ads/googleads/v18/enums/hotel_rate_type.proto similarity index 84% rename from google/ads/googleads/v15/enums/hotel_rate_type.proto rename to google/ads/googleads/v18/enums/hotel_rate_type.proto index 670874ca1..f5914b5cb 100644 --- a/google/ads/googleads/v15/enums/hotel_rate_type.proto +++ b/google/ads/googleads/v18/enums/hotel_rate_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "HotelRateTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing hotel rate types. diff --git a/google/ads/googleads/v15/enums/hotel_reconciliation_status.proto b/google/ads/googleads/v18/enums/hotel_reconciliation_status.proto similarity index 85% rename from google/ads/googleads/v15/enums/hotel_reconciliation_status.proto rename to google/ads/googleads/v18/enums/hotel_reconciliation_status.proto index 6eac8c3db..6c9e4a80e 100644 --- a/google/ads/googleads/v15/enums/hotel_reconciliation_status.proto +++ b/google/ads/googleads/v18/enums/hotel_reconciliation_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "HotelReconciliationStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing hotel reconciliation row status. diff --git a/google/ads/googleads/v18/enums/identity_verification_program.proto b/google/ads/googleads/v18/enums/identity_verification_program.proto new file mode 100644 index 000000000..ad378ff55 --- /dev/null +++ b/google/ads/googleads/v18/enums/identity_verification_program.proto @@ -0,0 +1,43 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "IdentityVerificationProgramProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Proto file describing type of identity verification program. + +// Container for IdentityVerificationProgram. +message IdentityVerificationProgramEnum { + // Type of identity verification program. + enum IdentityVerificationProgram { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Advertiser submits documents to verify their identity. + ADVERTISER_IDENTITY_VERIFICATION = 2; + } +} diff --git a/google/ads/googleads/v18/enums/identity_verification_program_status.proto b/google/ads/googleads/v18/enums/identity_verification_program_status.proto new file mode 100644 index 000000000..565386b81 --- /dev/null +++ b/google/ads/googleads/v18/enums/identity_verification_program_status.proto @@ -0,0 +1,52 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "IdentityVerificationProgramStatusProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Proto file describing programs status of identity verification. + +// Container for IdentityVerificationProgramStatus. +message IdentityVerificationProgramStatusEnum { + // Program status of identity verification. + enum IdentityVerificationProgramStatus { + // Not specified. + UNSPECIFIED = 0; + + // The value is unknown in this version. + UNKNOWN = 1; + + // Verification is pending on user action to proceed. + PENDING_USER_ACTION = 2; + + // Verification is pending on review. + PENDING_REVIEW = 3; + + // Verification succeeded. + SUCCESS = 4; + + // Verification failed. + FAILURE = 5; + } +} diff --git a/google/ads/googleads/v15/enums/image_placeholder_field.proto b/google/ads/googleads/v18/enums/image_placeholder_field.proto similarity index 78% rename from google/ads/googleads/v15/enums/image_placeholder_field.proto rename to google/ads/googleads/v18/enums/image_placeholder_field.proto index db003f9f3..2218fd295 100644 --- a/google/ads/googleads/v15/enums/image_placeholder_field.proto +++ b/google/ads/googleads/v18/enums/image_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ImagePlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Advertiser Provided Image placeholder fields. diff --git a/google/ads/googleads/v15/enums/income_range_type.proto b/google/ads/googleads/v18/enums/income_range_type.proto similarity index 82% rename from google/ads/googleads/v15/enums/income_range_type.proto rename to google/ads/googleads/v18/enums/income_range_type.proto index 00c9040d0..410202ca7 100644 --- a/google/ads/googleads/v15/enums/income_range_type.proto +++ b/google/ads/googleads/v18/enums/income_range_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "IncomeRangeTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing income range types. diff --git a/google/ads/googleads/v15/enums/interaction_event_type.proto b/google/ads/googleads/v18/enums/interaction_event_type.proto similarity index 84% rename from google/ads/googleads/v15/enums/interaction_event_type.proto rename to google/ads/googleads/v18/enums/interaction_event_type.proto index 3eb2a2e50..e587d927e 100644 --- a/google/ads/googleads/v15/enums/interaction_event_type.proto +++ b/google/ads/googleads/v18/enums/interaction_event_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "InteractionEventTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing types of payable and free interactions. diff --git a/google/ads/googleads/v15/enums/interaction_type.proto b/google/ads/googleads/v18/enums/interaction_type.proto similarity index 77% rename from google/ads/googleads/v15/enums/interaction_type.proto rename to google/ads/googleads/v18/enums/interaction_type.proto index 1bf280f0d..5b1e28f15 100644 --- a/google/ads/googleads/v15/enums/interaction_type.proto +++ b/google/ads/googleads/v18/enums/interaction_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "InteractionTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing interaction types. diff --git a/google/ads/googleads/v15/enums/invoice_type.proto b/google/ads/googleads/v18/enums/invoice_type.proto similarity index 79% rename from google/ads/googleads/v15/enums/invoice_type.proto rename to google/ads/googleads/v18/enums/invoice_type.proto index cc0e9004c..139b9b616 100644 --- a/google/ads/googleads/v15/enums/invoice_type.proto +++ b/google/ads/googleads/v18/enums/invoice_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "InvoiceTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing invoice types. diff --git a/google/ads/googleads/v15/enums/job_placeholder_field.proto b/google/ads/googleads/v18/enums/job_placeholder_field.proto similarity index 91% rename from google/ads/googleads/v15/enums/job_placeholder_field.proto rename to google/ads/googleads/v18/enums/job_placeholder_field.proto index 267c9f7b3..8facd4106 100644 --- a/google/ads/googleads/v15/enums/job_placeholder_field.proto +++ b/google/ads/googleads/v18/enums/job_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "JobsPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Job placeholder fields. diff --git a/google/ads/googleads/v15/enums/keyword_match_type.proto b/google/ads/googleads/v18/enums/keyword_match_type.proto similarity index 78% rename from google/ads/googleads/v15/enums/keyword_match_type.proto rename to google/ads/googleads/v18/enums/keyword_match_type.proto index cc4fe32c3..1c99973cf 100644 --- a/google/ads/googleads/v15/enums/keyword_match_type.proto +++ b/google/ads/googleads/v18/enums/keyword_match_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "KeywordMatchTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Keyword match types. diff --git a/google/ads/googleads/v15/enums/keyword_plan_aggregate_metric_type.proto b/google/ads/googleads/v18/enums/keyword_plan_aggregate_metric_type.proto similarity index 78% rename from google/ads/googleads/v15/enums/keyword_plan_aggregate_metric_type.proto rename to google/ads/googleads/v18/enums/keyword_plan_aggregate_metric_type.proto index 5909fffec..dbb792438 100644 --- a/google/ads/googleads/v15/enums/keyword_plan_aggregate_metric_type.proto +++ b/google/ads/googleads/v18/enums/keyword_plan_aggregate_metric_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanAggregateMetricTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing keyword plan aggregate metric types. diff --git a/google/ads/googleads/v15/enums/keyword_plan_competition_level.proto b/google/ads/googleads/v18/enums/keyword_plan_competition_level.proto similarity index 83% rename from google/ads/googleads/v15/enums/keyword_plan_competition_level.proto rename to google/ads/googleads/v18/enums/keyword_plan_competition_level.proto index ea9d9e6f0..8a9f1aafe 100644 --- a/google/ads/googleads/v15/enums/keyword_plan_competition_level.proto +++ b/google/ads/googleads/v18/enums/keyword_plan_competition_level.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanCompetitionLevelProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Keyword Planner competition levels. diff --git a/google/ads/googleads/v15/enums/keyword_plan_concept_group_type.proto b/google/ads/googleads/v18/enums/keyword_plan_concept_group_type.proto similarity index 84% rename from google/ads/googleads/v15/enums/keyword_plan_concept_group_type.proto rename to google/ads/googleads/v18/enums/keyword_plan_concept_group_type.proto index 000d33f2f..4a64a935e 100644 --- a/google/ads/googleads/v15/enums/keyword_plan_concept_group_type.proto +++ b/google/ads/googleads/v18/enums/keyword_plan_concept_group_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanConceptGroupTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Keyword Planner Concept Group types. diff --git a/google/ads/googleads/v15/enums/keyword_plan_forecast_interval.proto b/google/ads/googleads/v18/enums/keyword_plan_forecast_interval.proto similarity index 81% rename from google/ads/googleads/v15/enums/keyword_plan_forecast_interval.proto rename to google/ads/googleads/v18/enums/keyword_plan_forecast_interval.proto index 22ee08a06..d57739dca 100644 --- a/google/ads/googleads/v15/enums/keyword_plan_forecast_interval.proto +++ b/google/ads/googleads/v18/enums/keyword_plan_forecast_interval.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanForecastIntervalProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing keyword plan forecast intervals. diff --git a/google/ads/googleads/v15/enums/keyword_plan_keyword_annotation.proto b/google/ads/googleads/v18/enums/keyword_plan_keyword_annotation.proto similarity index 78% rename from google/ads/googleads/v15/enums/keyword_plan_keyword_annotation.proto rename to google/ads/googleads/v18/enums/keyword_plan_keyword_annotation.proto index e9dd02a80..953ee58fd 100644 --- a/google/ads/googleads/v15/enums/keyword_plan_keyword_annotation.proto +++ b/google/ads/googleads/v18/enums/keyword_plan_keyword_annotation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanKeywordAnnotationProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Keyword Planner Keyword annotation types. diff --git a/google/ads/googleads/v15/enums/keyword_plan_network.proto b/google/ads/googleads/v18/enums/keyword_plan_network.proto similarity index 78% rename from google/ads/googleads/v15/enums/keyword_plan_network.proto rename to google/ads/googleads/v18/enums/keyword_plan_network.proto index eda332765..af976fe73 100644 --- a/google/ads/googleads/v15/enums/keyword_plan_network.proto +++ b/google/ads/googleads/v18/enums/keyword_plan_network.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanNetworkProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Keyword Planner forecastable network types. diff --git a/google/ads/googleads/v15/enums/label_status.proto b/google/ads/googleads/v18/enums/label_status.proto similarity index 77% rename from google/ads/googleads/v15/enums/label_status.proto rename to google/ads/googleads/v18/enums/label_status.proto index ff2e7a640..20bba148a 100644 --- a/google/ads/googleads/v15/enums/label_status.proto +++ b/google/ads/googleads/v18/enums/label_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LabelStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum describing possible status of a label. message LabelStatusEnum { diff --git a/google/ads/googleads/v15/enums/lead_form_call_to_action_type.proto b/google/ads/googleads/v18/enums/lead_form_call_to_action_type.proto similarity index 83% rename from google/ads/googleads/v15/enums/lead_form_call_to_action_type.proto rename to google/ads/googleads/v18/enums/lead_form_call_to_action_type.proto index 3e99b443d..e51b64dc0 100644 --- a/google/ads/googleads/v15/enums/lead_form_call_to_action_type.proto +++ b/google/ads/googleads/v18/enums/lead_form_call_to_action_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LeadFormCallToActionTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Describes the type of call-to-action phrases in a lead form. message LeadFormCallToActionTypeEnum { diff --git a/google/ads/googleads/v15/enums/lead_form_desired_intent.proto b/google/ads/googleads/v18/enums/lead_form_desired_intent.proto similarity index 78% rename from google/ads/googleads/v15/enums/lead_form_desired_intent.proto rename to google/ads/googleads/v18/enums/lead_form_desired_intent.proto index e2231f32c..732fed7e5 100644 --- a/google/ads/googleads/v15/enums/lead_form_desired_intent.proto +++ b/google/ads/googleads/v18/enums/lead_form_desired_intent.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LeadFormDesiredIntentProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Describes the chosen level of intent of generated leads. message LeadFormDesiredIntentEnum { diff --git a/google/ads/googleads/v15/enums/lead_form_field_user_input_type.proto b/google/ads/googleads/v18/enums/lead_form_field_user_input_type.proto similarity index 98% rename from google/ads/googleads/v15/enums/lead_form_field_user_input_type.proto rename to google/ads/googleads/v18/enums/lead_form_field_user_input_type.proto index 1531f99e0..5b627bb6a 100644 --- a/google/ads/googleads/v15/enums/lead_form_field_user_input_type.proto +++ b/google/ads/googleads/v18/enums/lead_form_field_user_input_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LeadFormFieldUserInputTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Describes the input type of a lead form field. message LeadFormFieldUserInputTypeEnum { diff --git a/google/ads/googleads/v15/enums/lead_form_post_submit_call_to_action_type.proto b/google/ads/googleads/v18/enums/lead_form_post_submit_call_to_action_type.proto similarity index 79% rename from google/ads/googleads/v15/enums/lead_form_post_submit_call_to_action_type.proto rename to google/ads/googleads/v18/enums/lead_form_post_submit_call_to_action_type.proto index 393ce9ac4..0ab9ceb4e 100644 --- a/google/ads/googleads/v15/enums/lead_form_post_submit_call_to_action_type.proto +++ b/google/ads/googleads/v18/enums/lead_form_post_submit_call_to_action_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LeadFormPostSubmitCallToActionTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Describes the type of post-submit call-to-action phrases for a lead form. message LeadFormPostSubmitCallToActionTypeEnum { diff --git a/google/ads/googleads/v15/enums/legacy_app_install_ad_app_store.proto b/google/ads/googleads/v18/enums/legacy_app_install_ad_app_store.proto similarity index 81% rename from google/ads/googleads/v15/enums/legacy_app_install_ad_app_store.proto rename to google/ads/googleads/v18/enums/legacy_app_install_ad_app_store.proto index 0edbd692a..a686a9fb8 100644 --- a/google/ads/googleads/v15/enums/legacy_app_install_ad_app_store.proto +++ b/google/ads/googleads/v18/enums/legacy_app_install_ad_app_store.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LegacyAppInstallAdAppStoreProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing app store types for a legacy app install ad. diff --git a/google/ads/googleads/v15/enums/linked_account_type.proto b/google/ads/googleads/v18/enums/linked_account_type.proto similarity index 65% rename from google/ads/googleads/v15/enums/linked_account_type.proto rename to google/ads/googleads/v18/enums/linked_account_type.proto index 180a457fc..b11ba554c 100644 --- a/google/ads/googleads/v15/enums/linked_account_type.proto +++ b/google/ads/googleads/v18/enums/linked_account_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LinkedAccountTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum describing different types of Linked accounts. message LinkedAccountTypeEnum { @@ -38,16 +38,5 @@ message LinkedAccountTypeEnum { // A link to provide third party app analytics data. THIRD_PARTY_APP_ANALYTICS = 2; - - // A link to Data partner. - DATA_PARTNER = 3; - - // A link to Google Ads. - GOOGLE_ADS = 4; - - // A link to Google Ads account of the partner advertiser. - // Increase performance and share data by partnering with businesses that - // advertise the same items. - ADVERTISING_PARTNER = 6; } } diff --git a/google/ads/googleads/v15/enums/linked_product_type.proto b/google/ads/googleads/v18/enums/linked_product_type.proto similarity index 75% rename from google/ads/googleads/v15/enums/linked_product_type.proto rename to google/ads/googleads/v18/enums/linked_product_type.proto index 060f67d8e..27f34a955 100644 --- a/google/ads/googleads/v15/enums/linked_product_type.proto +++ b/google/ads/googleads/v18/enums/linked_product_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LinkedProductTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum describing different types of linked products. message LinkedProductTypeEnum { @@ -47,5 +47,8 @@ message LinkedProductTypeEnum { // A link to Google Merchant Center. MERCHANT_CENTER = 8; + + // A link to the Google Ads account of the advertising partner. + ADVERTISING_PARTNER = 9; } } diff --git a/google/ads/googleads/v15/enums/listing_group_filter_custom_attribute_index.proto b/google/ads/googleads/v18/enums/listing_group_filter_custom_attribute_index.proto similarity index 82% rename from google/ads/googleads/v15/enums/listing_group_filter_custom_attribute_index.proto rename to google/ads/googleads/v18/enums/listing_group_filter_custom_attribute_index.proto index 432cb487e..7ed64b7ea 100644 --- a/google/ads/googleads/v15/enums/listing_group_filter_custom_attribute_index.proto +++ b/google/ads/googleads/v18/enums/listing_group_filter_custom_attribute_index.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ListingGroupFilterCustomAttributeIndexProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing listing groups. diff --git a/google/ads/googleads/v15/enums/listing_group_filter_listing_source.proto b/google/ads/googleads/v18/enums/listing_group_filter_listing_source.proto similarity index 81% rename from google/ads/googleads/v15/enums/listing_group_filter_listing_source.proto rename to google/ads/googleads/v18/enums/listing_group_filter_listing_source.proto index 3b1bda0c1..f1112589a 100644 --- a/google/ads/googleads/v15/enums/listing_group_filter_listing_source.proto +++ b/google/ads/googleads/v18/enums/listing_group_filter_listing_source.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ListingGroupFilterListingSourceProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing listing group filter listing source. diff --git a/google/ads/googleads/v15/enums/listing_group_filter_product_category_level.proto b/google/ads/googleads/v18/enums/listing_group_filter_product_category_level.proto similarity index 80% rename from google/ads/googleads/v15/enums/listing_group_filter_product_category_level.proto rename to google/ads/googleads/v18/enums/listing_group_filter_product_category_level.proto index c9708832c..8955e6907 100644 --- a/google/ads/googleads/v15/enums/listing_group_filter_product_category_level.proto +++ b/google/ads/googleads/v18/enums/listing_group_filter_product_category_level.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ListingGroupFilterProductCategoryLevelProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing listing groups. diff --git a/google/ads/googleads/v15/enums/listing_group_filter_product_channel.proto b/google/ads/googleads/v18/enums/listing_group_filter_product_channel.proto similarity index 78% rename from google/ads/googleads/v15/enums/listing_group_filter_product_channel.proto rename to google/ads/googleads/v18/enums/listing_group_filter_product_channel.proto index c02118d75..36656cc00 100644 --- a/google/ads/googleads/v15/enums/listing_group_filter_product_channel.proto +++ b/google/ads/googleads/v18/enums/listing_group_filter_product_channel.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ListingGroupFilterProductChannelProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing listing groups. diff --git a/google/ads/googleads/v15/enums/listing_group_filter_product_condition.proto b/google/ads/googleads/v18/enums/listing_group_filter_product_condition.proto similarity index 79% rename from google/ads/googleads/v15/enums/listing_group_filter_product_condition.proto rename to google/ads/googleads/v18/enums/listing_group_filter_product_condition.proto index 03a95181b..c5560e1b1 100644 --- a/google/ads/googleads/v15/enums/listing_group_filter_product_condition.proto +++ b/google/ads/googleads/v18/enums/listing_group_filter_product_condition.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ListingGroupFilterProductConditionProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing listing groups. diff --git a/google/ads/googleads/v15/enums/listing_group_filter_product_type_level.proto b/google/ads/googleads/v18/enums/listing_group_filter_product_type_level.proto similarity index 79% rename from google/ads/googleads/v15/enums/listing_group_filter_product_type_level.proto rename to google/ads/googleads/v18/enums/listing_group_filter_product_type_level.proto index 526608d10..4ec6590b9 100644 --- a/google/ads/googleads/v15/enums/listing_group_filter_product_type_level.proto +++ b/google/ads/googleads/v18/enums/listing_group_filter_product_type_level.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ListingGroupFilterProductTypeLevelProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing listing groups. diff --git a/google/ads/googleads/v15/enums/listing_group_filter_type_enum.proto b/google/ads/googleads/v18/enums/listing_group_filter_type_enum.proto similarity index 80% rename from google/ads/googleads/v15/enums/listing_group_filter_type_enum.proto rename to google/ads/googleads/v18/enums/listing_group_filter_type_enum.proto index 7c9f2b93b..dbe073637 100644 --- a/google/ads/googleads/v15/enums/listing_group_filter_type_enum.proto +++ b/google/ads/googleads/v18/enums/listing_group_filter_type_enum.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ListingGroupFilterTypeEnumProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing listing groups. diff --git a/google/ads/googleads/v15/enums/listing_group_type.proto b/google/ads/googleads/v18/enums/listing_group_type.proto similarity index 80% rename from google/ads/googleads/v15/enums/listing_group_type.proto rename to google/ads/googleads/v18/enums/listing_group_type.proto index 5cf0e9043..1776e42a7 100644 --- a/google/ads/googleads/v15/enums/listing_group_type.proto +++ b/google/ads/googleads/v18/enums/listing_group_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ListingGroupTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing listing groups. diff --git a/google/ads/googleads/v15/enums/listing_type.proto b/google/ads/googleads/v18/enums/listing_type.proto similarity index 77% rename from google/ads/googleads/v15/enums/listing_type.proto rename to google/ads/googleads/v18/enums/listing_type.proto index b8e5a4496..447d0103d 100644 --- a/google/ads/googleads/v15/enums/listing_type.proto +++ b/google/ads/googleads/v18/enums/listing_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ListingTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing listing type. diff --git a/google/ads/googleads/v15/enums/local_placeholder_field.proto b/google/ads/googleads/v18/enums/local_placeholder_field.proto similarity index 91% rename from google/ads/googleads/v15/enums/local_placeholder_field.proto rename to google/ads/googleads/v18/enums/local_placeholder_field.proto index 01b0dd62a..38f5733b4 100644 --- a/google/ads/googleads/v15/enums/local_placeholder_field.proto +++ b/google/ads/googleads/v18/enums/local_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LocalPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Local placeholder fields. diff --git a/google/ads/googleads/v18/enums/local_services_business_registration_check_rejection_reason.proto b/google/ads/googleads/v18/enums/local_services_business_registration_check_rejection_reason.proto new file mode 100644 index 000000000..5ff80db07 --- /dev/null +++ b/google/ads/googleads/v18/enums/local_services_business_registration_check_rejection_reason.proto @@ -0,0 +1,68 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesBusinessRegistrationCheckRejectionReasonProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Container for enum describing the rejection reason of a local services +// business registration check verification artifact. +message LocalServicesBusinessRegistrationCheckRejectionReasonEnum { + // Enums describing possible rejection reasons of a local services business + // registration check verification artifact. + enum LocalServicesBusinessRegistrationCheckRejectionReason { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Business name doesn't match business name for the Local Services Ad. + BUSINESS_NAME_MISMATCH = 2; + + // Business details mismatch. + BUSINESS_DETAILS_MISMATCH = 3; + + // Business registration ID not found. + ID_NOT_FOUND = 4; + + // Uploaded document not clear, blurry, etc. + POOR_DOCUMENT_IMAGE_QUALITY = 5; + + // Uploaded document has expired. + DOCUMENT_EXPIRED = 6; + + // Document revoked or annuled. + DOCUMENT_INVALID = 7; + + // Document type mismatch. + DOCUMENT_TYPE_MISMATCH = 8; + + // Uploaded document could not be verified as legitimate. + DOCUMENT_UNVERIFIABLE = 9; + + // The business registration process could not be completed due to an issue. + // Contact https://support.google.com/localservices to learn more. + OTHER = 10; + } +} diff --git a/google/ads/googleads/v18/enums/local_services_business_registration_type.proto b/google/ads/googleads/v18/enums/local_services_business_registration_type.proto new file mode 100644 index 000000000..43e7d384e --- /dev/null +++ b/google/ads/googleads/v18/enums/local_services_business_registration_type.proto @@ -0,0 +1,46 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesBusinessRegistrationTypeProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Container for enum describing the type of business registration check +// verification artifact. +message LocalServicesBusinessRegistrationTypeEnum { + // Enums describing possible registration types of a local services business + // registration check verification artifact. + enum LocalServicesBusinessRegistrationType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Registration number check type. + NUMBER = 2; + + // Registration document check type. + DOCUMENT = 3; + } +} diff --git a/google/ads/googleads/v15/enums/local_services_conversation_type.proto b/google/ads/googleads/v18/enums/local_services_conversation_type.proto similarity index 75% rename from google/ads/googleads/v15/enums/local_services_conversation_type.proto rename to google/ads/googleads/v18/enums/local_services_conversation_type.proto index 9943a2184..d11f772ee 100644 --- a/google/ads/googleads/v15/enums/local_services_conversation_type.proto +++ b/google/ads/googleads/v18/enums/local_services_conversation_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LocalServicesConversationTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing the local services lead resource. @@ -51,5 +51,11 @@ message LocalServicesLeadConversationTypeEnum { // Booking lead conversation. BOOKING = 6; + + // WhatsApp lead conversation. + WHATSAPP = 7; + + // Lead conversation created through Google Ads API. + ADS_API = 8; } } diff --git a/google/ads/googleads/v18/enums/local_services_employee_status.proto b/google/ads/googleads/v18/enums/local_services_employee_status.proto new file mode 100644 index 000000000..2608f2a25 --- /dev/null +++ b/google/ads/googleads/v18/enums/local_services_employee_status.proto @@ -0,0 +1,44 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesEmployeeStatusProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Container for enum describing the status of local services employee. +message LocalServicesEmployeeStatusEnum { + // Enums describing statuses of a local services employee. + enum LocalServicesEmployeeStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Employee is not removed, and employee status is active. + ENABLED = 2; + + // Employee is removed. Used to delete an employee from the business. + REMOVED = 3; + } +} diff --git a/google/ads/googleads/v18/enums/local_services_employee_type.proto b/google/ads/googleads/v18/enums/local_services_employee_type.proto new file mode 100644 index 000000000..c73f32a82 --- /dev/null +++ b/google/ads/googleads/v18/enums/local_services_employee_type.proto @@ -0,0 +1,44 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesEmployeeTypeProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Container for enum describing the types of local services employee. +message LocalServicesEmployeeTypeEnum { + // Enums describing types of a local services employee. + enum LocalServicesEmployeeType { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // Represents the owner of the business. + BUSINESS_OWNER = 2; + + // Represents an employee of the business. + EMPLOYEE = 3; + } +} diff --git a/google/ads/googleads/v15/enums/local_services_insurance_rejection_reason.proto b/google/ads/googleads/v18/enums/local_services_insurance_rejection_reason.proto similarity index 88% rename from google/ads/googleads/v15/enums/local_services_insurance_rejection_reason.proto rename to google/ads/googleads/v18/enums/local_services_insurance_rejection_reason.proto index 8eab02413..5a7cbf7f0 100644 --- a/google/ads/googleads/v15/enums/local_services_insurance_rejection_reason.proto +++ b/google/ads/googleads/v18/enums/local_services_insurance_rejection_reason.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LocalServicesInsuranceRejectionReasonProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum describing the rejection reason of a local services // insurance verification artifact. diff --git a/google/ads/googleads/v18/enums/local_services_lead_credit_state.proto b/google/ads/googleads/v18/enums/local_services_lead_credit_state.proto new file mode 100644 index 000000000..0ff9eab0f --- /dev/null +++ b/google/ads/googleads/v18/enums/local_services_lead_credit_state.proto @@ -0,0 +1,45 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesLeadCreditStateProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Container for enum describing possible credit states of a lead. +message LocalServicesCreditStateEnum { + // Possible credit states of a lead. + enum CreditState { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // A credit has been filed and is being processed by Ads backend, but has + // not been applied to the account yet. + PENDING = 2; + + // The credit has been issued to the Ads account. + CREDITED = 3; + } +} diff --git a/google/ads/googleads/v15/enums/local_services_lead_status.proto b/google/ads/googleads/v18/enums/local_services_lead_status.proto similarity index 83% rename from google/ads/googleads/v15/enums/local_services_lead_status.proto rename to google/ads/googleads/v18/enums/local_services_lead_status.proto index 9676070f8..af9296d6a 100644 --- a/google/ads/googleads/v15/enums/local_services_lead_status.proto +++ b/google/ads/googleads/v18/enums/local_services_lead_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LocalServicesLeadStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing the local services lead resource. diff --git a/google/ads/googleads/v15/enums/local_services_lead_type.proto b/google/ads/googleads/v18/enums/local_services_lead_type.proto similarity index 78% rename from google/ads/googleads/v15/enums/local_services_lead_type.proto rename to google/ads/googleads/v18/enums/local_services_lead_type.proto index 43e84f264..9f4d9b756 100644 --- a/google/ads/googleads/v15/enums/local_services_lead_type.proto +++ b/google/ads/googleads/v18/enums/local_services_lead_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LocalServicesLeadTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing the local services lead resource. diff --git a/google/ads/googleads/v15/enums/local_services_license_rejection_reason.proto b/google/ads/googleads/v18/enums/local_services_license_rejection_reason.proto similarity index 84% rename from google/ads/googleads/v15/enums/local_services_license_rejection_reason.proto rename to google/ads/googleads/v18/enums/local_services_license_rejection_reason.proto index 483fa5957..a5700b160 100644 --- a/google/ads/googleads/v15/enums/local_services_license_rejection_reason.proto +++ b/google/ads/googleads/v18/enums/local_services_license_rejection_reason.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LocalServicesLicenseRejectionReasonProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum describing the rejection reason of a local services // license verification artifact. diff --git a/google/ads/googleads/v15/enums/local_services_participant_type.proto b/google/ads/googleads/v18/enums/local_services_participant_type.proto similarity index 79% rename from google/ads/googleads/v15/enums/local_services_participant_type.proto rename to google/ads/googleads/v18/enums/local_services_participant_type.proto index e2b2e482f..dc9c6261b 100644 --- a/google/ads/googleads/v15/enums/local_services_participant_type.proto +++ b/google/ads/googleads/v18/enums/local_services_participant_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LocalServicesParticipantTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing the local services lead resource. diff --git a/google/ads/googleads/v15/enums/local_services_verification_artifact_status.proto b/google/ads/googleads/v18/enums/local_services_verification_artifact_status.proto similarity index 82% rename from google/ads/googleads/v15/enums/local_services_verification_artifact_status.proto rename to google/ads/googleads/v18/enums/local_services_verification_artifact_status.proto index e469afd2e..d5c225fe1 100644 --- a/google/ads/googleads/v15/enums/local_services_verification_artifact_status.proto +++ b/google/ads/googleads/v18/enums/local_services_verification_artifact_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LocalServicesVerificationArtifactStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum describing the status of local services verification // artifact. diff --git a/google/ads/googleads/v15/enums/local_services_verification_artifact_type.proto b/google/ads/googleads/v18/enums/local_services_verification_artifact_type.proto similarity index 76% rename from google/ads/googleads/v15/enums/local_services_verification_artifact_type.proto rename to google/ads/googleads/v18/enums/local_services_verification_artifact_type.proto index e727b8d1f..dc57e912c 100644 --- a/google/ads/googleads/v15/enums/local_services_verification_artifact_type.proto +++ b/google/ads/googleads/v18/enums/local_services_verification_artifact_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LocalServicesVerificationArtifactTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum describing the type of local services verification // artifact. @@ -44,5 +44,8 @@ message LocalServicesVerificationArtifactTypeEnum { // License verification artifact. LICENSE = 4; + + // Business registration check verification artifact. + BUSINESS_REGISTRATION_CHECK = 5; } } diff --git a/google/ads/googleads/v15/enums/local_services_verification_status.proto b/google/ads/googleads/v18/enums/local_services_verification_status.proto similarity index 83% rename from google/ads/googleads/v15/enums/local_services_verification_status.proto rename to google/ads/googleads/v18/enums/local_services_verification_status.proto index 7067204db..0b747761a 100644 --- a/google/ads/googleads/v15/enums/local_services_verification_status.proto +++ b/google/ads/googleads/v18/enums/local_services_verification_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LocalServicesVerificationStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Local Services Ads granular verification statuses. diff --git a/google/ads/googleads/v15/enums/location_extension_targeting_criterion_field.proto b/google/ads/googleads/v18/enums/location_extension_targeting_criterion_field.proto similarity index 83% rename from google/ads/googleads/v15/enums/location_extension_targeting_criterion_field.proto rename to google/ads/googleads/v18/enums/location_extension_targeting_criterion_field.proto index d79eed036..db6fbbfa7 100644 --- a/google/ads/googleads/v15/enums/location_extension_targeting_criterion_field.proto +++ b/google/ads/googleads/v18/enums/location_extension_targeting_criterion_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LocationExtensionTargetingCriterionFieldProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Location Extension Targeting criterion fields. diff --git a/google/ads/googleads/v15/enums/location_group_radius_units.proto b/google/ads/googleads/v18/enums/location_group_radius_units.proto similarity index 79% rename from google/ads/googleads/v15/enums/location_group_radius_units.proto rename to google/ads/googleads/v18/enums/location_group_radius_units.proto index 4c4197357..a13aea1ca 100644 --- a/google/ads/googleads/v15/enums/location_group_radius_units.proto +++ b/google/ads/googleads/v18/enums/location_group_radius_units.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LocationGroupRadiusUnitsProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing location group radius units. diff --git a/google/ads/googleads/v15/enums/location_ownership_type.proto b/google/ads/googleads/v18/enums/location_ownership_type.proto similarity index 79% rename from google/ads/googleads/v15/enums/location_ownership_type.proto rename to google/ads/googleads/v18/enums/location_ownership_type.proto index decdfd447..f5bf6d3f6 100644 --- a/google/ads/googleads/v15/enums/location_ownership_type.proto +++ b/google/ads/googleads/v18/enums/location_ownership_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LocationOwnershipTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing location ownership type. diff --git a/google/ads/googleads/v15/enums/location_placeholder_field.proto b/google/ads/googleads/v18/enums/location_placeholder_field.proto similarity index 84% rename from google/ads/googleads/v15/enums/location_placeholder_field.proto rename to google/ads/googleads/v18/enums/location_placeholder_field.proto index c6d13057e..f333b7f6d 100644 --- a/google/ads/googleads/v15/enums/location_placeholder_field.proto +++ b/google/ads/googleads/v18/enums/location_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LocationPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Location placeholder fields. diff --git a/google/ads/googleads/v15/enums/location_source_type.proto b/google/ads/googleads/v18/enums/location_source_type.proto similarity index 79% rename from google/ads/googleads/v15/enums/location_source_type.proto rename to google/ads/googleads/v18/enums/location_source_type.proto index 015ab0fb8..e7aefe500 100644 --- a/google/ads/googleads/v15/enums/location_source_type.proto +++ b/google/ads/googleads/v18/enums/location_source_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LocationSourceTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing location source types. diff --git a/google/ads/googleads/v15/enums/location_string_filter_type.proto b/google/ads/googleads/v18/enums/location_string_filter_type.proto similarity index 78% rename from google/ads/googleads/v15/enums/location_string_filter_type.proto rename to google/ads/googleads/v18/enums/location_string_filter_type.proto index 351570e65..c33e96073 100644 --- a/google/ads/googleads/v15/enums/location_string_filter_type.proto +++ b/google/ads/googleads/v18/enums/location_string_filter_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LocationStringFilterTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing location string filter type. diff --git a/google/ads/googleads/v15/enums/lookalike_expansion_level.proto b/google/ads/googleads/v18/enums/lookalike_expansion_level.proto similarity index 81% rename from google/ads/googleads/v15/enums/lookalike_expansion_level.proto rename to google/ads/googleads/v18/enums/lookalike_expansion_level.proto index 2c2df17e4..21e5d99d0 100644 --- a/google/ads/googleads/v15/enums/lookalike_expansion_level.proto +++ b/google/ads/googleads/v18/enums/lookalike_expansion_level.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "LookalikeExpansionLevelProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Lookalike Expansion level proto message LookalikeExpansionLevelEnum { diff --git a/google/ads/googleads/v15/enums/manager_link_status.proto b/google/ads/googleads/v18/enums/manager_link_status.proto similarity index 82% rename from google/ads/googleads/v15/enums/manager_link_status.proto rename to google/ads/googleads/v18/enums/manager_link_status.proto index b5112869c..7e40351cc 100644 --- a/google/ads/googleads/v15/enums/manager_link_status.proto +++ b/google/ads/googleads/v18/enums/manager_link_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ManagerLinkStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum describing possible status of a manager and client link. message ManagerLinkStatusEnum { diff --git a/google/ads/googleads/v15/enums/matching_function_context_type.proto b/google/ads/googleads/v18/enums/matching_function_context_type.proto similarity index 81% rename from google/ads/googleads/v15/enums/matching_function_context_type.proto rename to google/ads/googleads/v18/enums/matching_function_context_type.proto index 729946439..35de9b83e 100644 --- a/google/ads/googleads/v15/enums/matching_function_context_type.proto +++ b/google/ads/googleads/v18/enums/matching_function_context_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "MatchingFunctionContextTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing matching function context types. diff --git a/google/ads/googleads/v15/enums/matching_function_operator.proto b/google/ads/googleads/v18/enums/matching_function_operator.proto similarity index 84% rename from google/ads/googleads/v15/enums/matching_function_operator.proto rename to google/ads/googleads/v18/enums/matching_function_operator.proto index 09bd8f461..eaf914314 100644 --- a/google/ads/googleads/v15/enums/matching_function_operator.proto +++ b/google/ads/googleads/v18/enums/matching_function_operator.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "MatchingFunctionOperatorProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing matching function operators. diff --git a/google/ads/googleads/v15/enums/media_type.proto b/google/ads/googleads/v18/enums/media_type.proto similarity index 80% rename from google/ads/googleads/v15/enums/media_type.proto rename to google/ads/googleads/v18/enums/media_type.proto index bbdeee3e9..96346224c 100644 --- a/google/ads/googleads/v15/enums/media_type.proto +++ b/google/ads/googleads/v18/enums/media_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "MediaTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing media types. diff --git a/google/ads/googleads/v15/enums/message_placeholder_field.proto b/google/ads/googleads/v18/enums/message_placeholder_field.proto similarity index 83% rename from google/ads/googleads/v15/enums/message_placeholder_field.proto rename to google/ads/googleads/v18/enums/message_placeholder_field.proto index f1d4fa003..81deddbb1 100644 --- a/google/ads/googleads/v15/enums/message_placeholder_field.proto +++ b/google/ads/googleads/v18/enums/message_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "MessagePlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Message placeholder fields. diff --git a/google/ads/googleads/v15/enums/mime_type.proto b/google/ads/googleads/v18/enums/mime_type.proto similarity index 84% rename from google/ads/googleads/v15/enums/mime_type.proto rename to google/ads/googleads/v18/enums/mime_type.proto index daad1cdbd..c8b280d5b 100644 --- a/google/ads/googleads/v15/enums/mime_type.proto +++ b/google/ads/googleads/v18/enums/mime_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "MimeTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing mime types. diff --git a/google/ads/googleads/v15/enums/minute_of_hour.proto b/google/ads/googleads/v18/enums/minute_of_hour.proto similarity index 79% rename from google/ads/googleads/v15/enums/minute_of_hour.proto rename to google/ads/googleads/v18/enums/minute_of_hour.proto index 9ef33793f..2ac1206c3 100644 --- a/google/ads/googleads/v15/enums/minute_of_hour.proto +++ b/google/ads/googleads/v18/enums/minute_of_hour.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "MinuteOfHourProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing days of week. diff --git a/google/ads/googleads/v15/enums/mobile_app_vendor.proto b/google/ads/googleads/v18/enums/mobile_app_vendor.proto similarity index 78% rename from google/ads/googleads/v15/enums/mobile_app_vendor.proto rename to google/ads/googleads/v18/enums/mobile_app_vendor.proto index 49cdf6dea..3eecb6c49 100644 --- a/google/ads/googleads/v15/enums/mobile_app_vendor.proto +++ b/google/ads/googleads/v18/enums/mobile_app_vendor.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "MobileAppVendorProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum describing different types of mobile app vendors. message MobileAppVendorEnum { diff --git a/google/ads/googleads/v15/enums/mobile_device_type.proto b/google/ads/googleads/v18/enums/mobile_device_type.proto similarity index 77% rename from google/ads/googleads/v15/enums/mobile_device_type.proto rename to google/ads/googleads/v18/enums/mobile_device_type.proto index a660b5de5..7daa7c1fe 100644 --- a/google/ads/googleads/v15/enums/mobile_device_type.proto +++ b/google/ads/googleads/v18/enums/mobile_device_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "MobileDeviceTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing mobile device types. diff --git a/google/ads/googleads/v15/enums/month_of_year.proto b/google/ads/googleads/v18/enums/month_of_year.proto similarity index 81% rename from google/ads/googleads/v15/enums/month_of_year.proto rename to google/ads/googleads/v18/enums/month_of_year.proto index 2ad9f14a9..5c805a3a7 100644 --- a/google/ads/googleads/v15/enums/month_of_year.proto +++ b/google/ads/googleads/v18/enums/month_of_year.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "MonthOfYearProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing days of week. diff --git a/google/ads/googleads/v15/enums/negative_geo_target_type.proto b/google/ads/googleads/v18/enums/negative_geo_target_type.proto similarity index 80% rename from google/ads/googleads/v15/enums/negative_geo_target_type.proto rename to google/ads/googleads/v18/enums/negative_geo_target_type.proto index 8335ce325..72c7b8d84 100644 --- a/google/ads/googleads/v15/enums/negative_geo_target_type.proto +++ b/google/ads/googleads/v18/enums/negative_geo_target_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "NegativeGeoTargetTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing negative geo target types. diff --git a/google/ads/googleads/v15/enums/offline_conversion_diagnostic_status_enum.proto b/google/ads/googleads/v18/enums/offline_conversion_diagnostic_status_enum.proto similarity index 83% rename from google/ads/googleads/v15/enums/offline_conversion_diagnostic_status_enum.proto rename to google/ads/googleads/v18/enums/offline_conversion_diagnostic_status_enum.proto index 8df7ee1c0..5ac92189d 100644 --- a/google/ads/googleads/v15/enums/offline_conversion_diagnostic_status_enum.proto +++ b/google/ads/googleads/v18/enums/offline_conversion_diagnostic_status_enum.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "OfflineConversionDiagnosticStatusEnumProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // All possible statuses for oci diagnostics. message OfflineConversionDiagnosticStatusEnum { diff --git a/google/ads/googleads/v15/enums/offline_event_upload_client_enum.proto b/google/ads/googleads/v18/enums/offline_event_upload_client_enum.proto similarity index 79% rename from google/ads/googleads/v15/enums/offline_event_upload_client_enum.proto rename to google/ads/googleads/v18/enums/offline_event_upload_client_enum.proto index bc4c832dd..b7a120709 100644 --- a/google/ads/googleads/v15/enums/offline_event_upload_client_enum.proto +++ b/google/ads/googleads/v18/enums/offline_event_upload_client_enum.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "OfflineEventUploadClientEnumProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // All possible clients for an offline upload event. message OfflineEventUploadClientEnum { diff --git a/google/ads/googleads/v15/enums/offline_user_data_job_failure_reason.proto b/google/ads/googleads/v18/enums/offline_user_data_job_failure_reason.proto similarity index 86% rename from google/ads/googleads/v15/enums/offline_user_data_job_failure_reason.proto rename to google/ads/googleads/v18/enums/offline_user_data_job_failure_reason.proto index 8d9731e35..3e291eaa6 100644 --- a/google/ads/googleads/v15/enums/offline_user_data_job_failure_reason.proto +++ b/google/ads/googleads/v18/enums/offline_user_data_job_failure_reason.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "OfflineUserDataJobFailureReasonProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing offline user data job failure reasons. diff --git a/google/ads/googleads/v15/enums/offline_user_data_job_match_rate_range.proto b/google/ads/googleads/v18/enums/offline_user_data_job_match_rate_range.proto similarity index 86% rename from google/ads/googleads/v15/enums/offline_user_data_job_match_rate_range.proto rename to google/ads/googleads/v18/enums/offline_user_data_job_match_rate_range.proto index 91ce984f0..8f5af3a8f 100644 --- a/google/ads/googleads/v15/enums/offline_user_data_job_match_rate_range.proto +++ b/google/ads/googleads/v18/enums/offline_user_data_job_match_rate_range.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "OfflineUserDataJobMatchRateRangeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum describing reasons match rate ranges for a customer match // list upload. diff --git a/google/ads/googleads/v15/enums/offline_user_data_job_status.proto b/google/ads/googleads/v18/enums/offline_user_data_job_status.proto similarity index 81% rename from google/ads/googleads/v15/enums/offline_user_data_job_status.proto rename to google/ads/googleads/v18/enums/offline_user_data_job_status.proto index b0231f2bd..af7a573c5 100644 --- a/google/ads/googleads/v15/enums/offline_user_data_job_status.proto +++ b/google/ads/googleads/v18/enums/offline_user_data_job_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "OfflineUserDataJobStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing offline user data job status. diff --git a/google/ads/googleads/v15/enums/offline_user_data_job_type.proto b/google/ads/googleads/v18/enums/offline_user_data_job_type.proto similarity index 81% rename from google/ads/googleads/v15/enums/offline_user_data_job_type.proto rename to google/ads/googleads/v18/enums/offline_user_data_job_type.proto index 4a3b199b3..3b2293d83 100644 --- a/google/ads/googleads/v15/enums/offline_user_data_job_type.proto +++ b/google/ads/googleads/v18/enums/offline_user_data_job_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "OfflineUserDataJobTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing offline user data job types. diff --git a/google/ads/googleads/v15/enums/operating_system_version_operator_type.proto b/google/ads/googleads/v18/enums/operating_system_version_operator_type.proto similarity index 79% rename from google/ads/googleads/v15/enums/operating_system_version_operator_type.proto rename to google/ads/googleads/v18/enums/operating_system_version_operator_type.proto index d00df734a..d4f13289e 100644 --- a/google/ads/googleads/v15/enums/operating_system_version_operator_type.proto +++ b/google/ads/googleads/v18/enums/operating_system_version_operator_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "OperatingSystemVersionOperatorTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing operating system version operator types. diff --git a/google/ads/googleads/v15/enums/optimization_goal_type.proto b/google/ads/googleads/v18/enums/optimization_goal_type.proto similarity index 83% rename from google/ads/googleads/v15/enums/optimization_goal_type.proto rename to google/ads/googleads/v18/enums/optimization_goal_type.proto index 64503f782..6b4fb5e87 100644 --- a/google/ads/googleads/v15/enums/optimization_goal_type.proto +++ b/google/ads/googleads/v18/enums/optimization_goal_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "OptimizationGoalTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing optimization goal type. diff --git a/google/ads/googleads/v15/enums/parental_status_type.proto b/google/ads/googleads/v18/enums/parental_status_type.proto similarity index 79% rename from google/ads/googleads/v15/enums/parental_status_type.proto rename to google/ads/googleads/v18/enums/parental_status_type.proto index 390ecad81..62a32c7c8 100644 --- a/google/ads/googleads/v15/enums/parental_status_type.proto +++ b/google/ads/googleads/v18/enums/parental_status_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ParentalStatusTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing parenal status types. diff --git a/google/ads/googleads/v15/enums/payment_mode.proto b/google/ads/googleads/v18/enums/payment_mode.proto similarity index 85% rename from google/ads/googleads/v15/enums/payment_mode.proto rename to google/ads/googleads/v18/enums/payment_mode.proto index ed6b5108e..a743b37b7 100644 --- a/google/ads/googleads/v15/enums/payment_mode.proto +++ b/google/ads/googleads/v18/enums/payment_mode.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PaymentModeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing payment modes. diff --git a/google/ads/googleads/v15/enums/performance_max_upgrade_status.proto b/google/ads/googleads/v18/enums/performance_max_upgrade_status.proto similarity index 82% rename from google/ads/googleads/v15/enums/performance_max_upgrade_status.proto rename to google/ads/googleads/v18/enums/performance_max_upgrade_status.proto index 5d2919d10..646ec7949 100644 --- a/google/ads/googleads/v15/enums/performance_max_upgrade_status.proto +++ b/google/ads/googleads/v18/enums/performance_max_upgrade_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PerformanceMaxUpgradeStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing advertising channel types diff --git a/google/ads/googleads/v15/enums/placeholder_type.proto b/google/ads/googleads/v18/enums/placeholder_type.proto similarity index 92% rename from google/ads/googleads/v15/enums/placeholder_type.proto rename to google/ads/googleads/v18/enums/placeholder_type.proto index 978d3aa80..72308412d 100644 --- a/google/ads/googleads/v15/enums/placeholder_type.proto +++ b/google/ads/googleads/v18/enums/placeholder_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PlaceholderTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing feed placeholder types. diff --git a/google/ads/googleads/v15/enums/placement_type.proto b/google/ads/googleads/v18/enums/placement_type.proto similarity index 83% rename from google/ads/googleads/v15/enums/placement_type.proto rename to google/ads/googleads/v18/enums/placement_type.proto index 9c84209fe..41b318022 100644 --- a/google/ads/googleads/v15/enums/placement_type.proto +++ b/google/ads/googleads/v18/enums/placement_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PlacementTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing placement types. diff --git a/google/ads/googleads/v15/enums/policy_approval_status.proto b/google/ads/googleads/v18/enums/policy_approval_status.proto similarity index 83% rename from google/ads/googleads/v15/enums/policy_approval_status.proto rename to google/ads/googleads/v18/enums/policy_approval_status.proto index 0f2b7b3b1..e16264eed 100644 --- a/google/ads/googleads/v15/enums/policy_approval_status.proto +++ b/google/ads/googleads/v18/enums/policy_approval_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PolicyApprovalStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing policy approval statuses. diff --git a/google/ads/googleads/v15/enums/policy_review_status.proto b/google/ads/googleads/v18/enums/policy_review_status.proto similarity index 82% rename from google/ads/googleads/v15/enums/policy_review_status.proto rename to google/ads/googleads/v18/enums/policy_review_status.proto index 1c065aed3..056e2d281 100644 --- a/google/ads/googleads/v15/enums/policy_review_status.proto +++ b/google/ads/googleads/v18/enums/policy_review_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PolicyReviewStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing policy review statuses. diff --git a/google/ads/googleads/v15/enums/policy_topic_entry_type.proto b/google/ads/googleads/v18/enums/policy_topic_entry_type.proto similarity index 83% rename from google/ads/googleads/v15/enums/policy_topic_entry_type.proto rename to google/ads/googleads/v18/enums/policy_topic_entry_type.proto index 86e52f3c8..59a39dd56 100644 --- a/google/ads/googleads/v15/enums/policy_topic_entry_type.proto +++ b/google/ads/googleads/v18/enums/policy_topic_entry_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PolicyTopicEntryTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing policy topic entry types. diff --git a/google/ads/googleads/v15/enums/policy_topic_evidence_destination_mismatch_url_type.proto b/google/ads/googleads/v18/enums/policy_topic_evidence_destination_mismatch_url_type.proto similarity index 83% rename from google/ads/googleads/v15/enums/policy_topic_evidence_destination_mismatch_url_type.proto rename to google/ads/googleads/v18/enums/policy_topic_evidence_destination_mismatch_url_type.proto index 829839652..635b44182 100644 --- a/google/ads/googleads/v15/enums/policy_topic_evidence_destination_mismatch_url_type.proto +++ b/google/ads/googleads/v18/enums/policy_topic_evidence_destination_mismatch_url_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PolicyTopicEvidenceDestinationMismatchUrlTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing policy topic evidence destination mismatch url types. diff --git a/google/ads/googleads/v15/enums/policy_topic_evidence_destination_not_working_device.proto b/google/ads/googleads/v18/enums/policy_topic_evidence_destination_not_working_device.proto similarity index 82% rename from google/ads/googleads/v15/enums/policy_topic_evidence_destination_not_working_device.proto rename to google/ads/googleads/v18/enums/policy_topic_evidence_destination_not_working_device.proto index 5d5f7306c..6f3f80b3e 100644 --- a/google/ads/googleads/v15/enums/policy_topic_evidence_destination_not_working_device.proto +++ b/google/ads/googleads/v18/enums/policy_topic_evidence_destination_not_working_device.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PolicyTopicEvidenceDestinationNotWorkingDeviceProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing device of destination not working policy topic // evidence. diff --git a/google/ads/googleads/v15/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto b/google/ads/googleads/v18/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto similarity index 83% rename from google/ads/googleads/v15/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto rename to google/ads/googleads/v18/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto index b53e18c92..8dd559e7f 100644 --- a/google/ads/googleads/v15/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto +++ b/google/ads/googleads/v18/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PolicyTopicEvidenceDestinationNotWorkingDnsErrorTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing DNS error types of destination not working policy topic // evidence. diff --git a/google/ads/googleads/v15/enums/positive_geo_target_type.proto b/google/ads/googleads/v18/enums/positive_geo_target_type.proto similarity index 82% rename from google/ads/googleads/v15/enums/positive_geo_target_type.proto rename to google/ads/googleads/v18/enums/positive_geo_target_type.proto index 2f6f9996b..98830279d 100644 --- a/google/ads/googleads/v15/enums/positive_geo_target_type.proto +++ b/google/ads/googleads/v18/enums/positive_geo_target_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PositiveGeoTargetTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing positive geo target types. diff --git a/google/ads/googleads/v15/enums/price_extension_price_qualifier.proto b/google/ads/googleads/v18/enums/price_extension_price_qualifier.proto similarity index 80% rename from google/ads/googleads/v15/enums/price_extension_price_qualifier.proto rename to google/ads/googleads/v18/enums/price_extension_price_qualifier.proto index e3a497038..f902d54db 100644 --- a/google/ads/googleads/v15/enums/price_extension_price_qualifier.proto +++ b/google/ads/googleads/v18/enums/price_extension_price_qualifier.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PriceExtensionPriceQualifierProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing price extension price qualifier type. diff --git a/google/ads/googleads/v15/enums/price_extension_price_unit.proto b/google/ads/googleads/v18/enums/price_extension_price_unit.proto similarity index 80% rename from google/ads/googleads/v15/enums/price_extension_price_unit.proto rename to google/ads/googleads/v18/enums/price_extension_price_unit.proto index 1060d2f61..b16c9d42a 100644 --- a/google/ads/googleads/v15/enums/price_extension_price_unit.proto +++ b/google/ads/googleads/v18/enums/price_extension_price_unit.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PriceExtensionPriceUnitProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing price extension price unit. diff --git a/google/ads/googleads/v15/enums/price_extension_type.proto b/google/ads/googleads/v18/enums/price_extension_type.proto similarity index 84% rename from google/ads/googleads/v15/enums/price_extension_type.proto rename to google/ads/googleads/v18/enums/price_extension_type.proto index d8d6e5123..6e73e2c83 100644 --- a/google/ads/googleads/v15/enums/price_extension_type.proto +++ b/google/ads/googleads/v18/enums/price_extension_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PriceExtensionTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing price extension type. diff --git a/google/ads/googleads/v15/enums/price_placeholder_field.proto b/google/ads/googleads/v18/enums/price_placeholder_field.proto similarity index 96% rename from google/ads/googleads/v15/enums/price_placeholder_field.proto rename to google/ads/googleads/v18/enums/price_placeholder_field.proto index 646963b0b..2b929da64 100644 --- a/google/ads/googleads/v15/enums/price_placeholder_field.proto +++ b/google/ads/googleads/v18/enums/price_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PricePlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Price placeholder fields. diff --git a/google/ads/googleads/v18/enums/product_availability.proto b/google/ads/googleads/v18/enums/product_availability.proto new file mode 100644 index 000000000..d1789af63 --- /dev/null +++ b/google/ads/googleads/v18/enums/product_availability.proto @@ -0,0 +1,49 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ProductAvailabilityProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Proto file describing the availability of a shopping product. + +// The availability of a product. +message ProductAvailabilityEnum { + // Product availability. + enum ProductAvailability { + // Enum unspecified. + UNSPECIFIED = 0; + + // Used for return value only. Represents values unknown in this version. + UNKNOWN = 1; + + // The product is in stock. + IN_STOCK = 2; + + // The product is out of stock. + OUT_OF_STOCK = 3; + + // The product can be preordered. + PREORDER = 4; + } +} diff --git a/google/ads/googleads/v15/enums/product_category_level.proto b/google/ads/googleads/v18/enums/product_category_level.proto similarity index 78% rename from google/ads/googleads/v15/enums/product_category_level.proto rename to google/ads/googleads/v18/enums/product_category_level.proto index 8fa9d86ea..f0fd5f6b9 100644 --- a/google/ads/googleads/v15/enums/product_category_level.proto +++ b/google/ads/googleads/v18/enums/product_category_level.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ProductCategoryLevelProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Level of a product category. message ProductCategoryLevelEnum { diff --git a/google/ads/googleads/v15/enums/product_category_state.proto b/google/ads/googleads/v18/enums/product_category_state.proto similarity index 78% rename from google/ads/googleads/v15/enums/product_category_state.proto rename to google/ads/googleads/v18/enums/product_category_state.proto index bbd03d835..9359598f9 100644 --- a/google/ads/googleads/v15/enums/product_category_state.proto +++ b/google/ads/googleads/v18/enums/product_category_state.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ProductCategoryStateProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // State of the product category. message ProductCategoryStateEnum { diff --git a/google/ads/googleads/v15/enums/product_channel.proto b/google/ads/googleads/v18/enums/product_channel.proto similarity index 78% rename from google/ads/googleads/v15/enums/product_channel.proto rename to google/ads/googleads/v18/enums/product_channel.proto index fcba153f1..36b8c4c58 100644 --- a/google/ads/googleads/v15/enums/product_channel.proto +++ b/google/ads/googleads/v18/enums/product_channel.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ProductChannelProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing bidding schemes. diff --git a/google/ads/googleads/v15/enums/product_channel_exclusivity.proto b/google/ads/googleads/v18/enums/product_channel_exclusivity.proto similarity index 81% rename from google/ads/googleads/v15/enums/product_channel_exclusivity.proto rename to google/ads/googleads/v18/enums/product_channel_exclusivity.proto index 580e5b970..c383cec60 100644 --- a/google/ads/googleads/v15/enums/product_channel_exclusivity.proto +++ b/google/ads/googleads/v18/enums/product_channel_exclusivity.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ProductChannelExclusivityProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing bidding schemes. diff --git a/google/ads/googleads/v15/enums/product_condition.proto b/google/ads/googleads/v18/enums/product_condition.proto similarity index 79% rename from google/ads/googleads/v15/enums/product_condition.proto rename to google/ads/googleads/v18/enums/product_condition.proto index 5478eb14e..70c1bb070 100644 --- a/google/ads/googleads/v15/enums/product_condition.proto +++ b/google/ads/googleads/v18/enums/product_condition.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ProductConditionProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing bidding schemes. diff --git a/google/ads/googleads/v15/enums/product_custom_attribute_index.proto b/google/ads/googleads/v18/enums/product_custom_attribute_index.proto similarity index 81% rename from google/ads/googleads/v15/enums/product_custom_attribute_index.proto rename to google/ads/googleads/v18/enums/product_custom_attribute_index.proto index 65b457395..535f358d0 100644 --- a/google/ads/googleads/v15/enums/product_custom_attribute_index.proto +++ b/google/ads/googleads/v18/enums/product_custom_attribute_index.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ProductCustomAttributeIndexProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing product custom attributes. diff --git a/google/ads/googleads/v18/enums/product_issue_severity.proto b/google/ads/googleads/v18/enums/product_issue_severity.proto new file mode 100644 index 000000000..ebd5ff6b2 --- /dev/null +++ b/google/ads/googleads/v18/enums/product_issue_severity.proto @@ -0,0 +1,46 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ProductIssueSeverityProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Proto file describing shopping product issue severity. + +// The severity of a product issue. +message ProductIssueSeverityEnum { + // Product issue severity. + enum ProductIssueSeverity { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The issue limits the performance of the product in ads. + WARNING = 2; + + // The issue prevents the product from showing in ads. + ERROR = 3; + } +} diff --git a/google/ads/googleads/v15/enums/product_link_invitation_status.proto b/google/ads/googleads/v18/enums/product_link_invitation_status.proto similarity index 84% rename from google/ads/googleads/v15/enums/product_link_invitation_status.proto rename to google/ads/googleads/v18/enums/product_link_invitation_status.proto index b442f2b9e..28d13a131 100644 --- a/google/ads/googleads/v15/enums/product_link_invitation_status.proto +++ b/google/ads/googleads/v18/enums/product_link_invitation_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ProductLinkInvitationStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum describing possible statuses of a product link // invitation. diff --git a/google/ads/googleads/v18/enums/product_status.proto b/google/ads/googleads/v18/enums/product_status.proto new file mode 100644 index 000000000..479f91eda --- /dev/null +++ b/google/ads/googleads/v18/enums/product_status.proto @@ -0,0 +1,50 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "ProductStatusProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Proto file describing shopping product status. + +// The status of a product indicating whether it can show in ads. +message ProductStatusEnum { + // Enum describing the status of a product. + enum ProductStatus { + // Not specified. + UNSPECIFIED = 0; + + // Used for return value only. Represents values unknown in this version. + UNKNOWN = 1; + + // The product cannot show in ads. + NOT_ELIGIBLE = 2; + + // The product can show in ads but may be limited in where and when it can + // show due to identified issues. + ELIGIBLE_LIMITED = 3; + + // The product can show in ads. + ELIGIBLE = 4; + } +} diff --git a/google/ads/googleads/v15/enums/product_type_level.proto b/google/ads/googleads/v18/enums/product_type_level.proto similarity index 79% rename from google/ads/googleads/v15/enums/product_type_level.proto rename to google/ads/googleads/v18/enums/product_type_level.proto index ac1d1d234..29af87409 100644 --- a/google/ads/googleads/v15/enums/product_type_level.proto +++ b/google/ads/googleads/v18/enums/product_type_level.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ProductTypeLevelProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing bidding schemes. diff --git a/google/ads/googleads/v15/enums/promotion_extension_discount_modifier.proto b/google/ads/googleads/v18/enums/promotion_extension_discount_modifier.proto similarity index 78% rename from google/ads/googleads/v15/enums/promotion_extension_discount_modifier.proto rename to google/ads/googleads/v18/enums/promotion_extension_discount_modifier.proto index 64d709754..1b1584ae8 100644 --- a/google/ads/googleads/v15/enums/promotion_extension_discount_modifier.proto +++ b/google/ads/googleads/v18/enums/promotion_extension_discount_modifier.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PromotionExtensionDiscountModifierProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing promotion extension discount modifier. diff --git a/google/ads/googleads/v15/enums/promotion_extension_occasion.proto b/google/ads/googleads/v18/enums/promotion_extension_occasion.proto similarity index 89% rename from google/ads/googleads/v15/enums/promotion_extension_occasion.proto rename to google/ads/googleads/v18/enums/promotion_extension_occasion.proto index 6d0b2bcab..ef286279c 100644 --- a/google/ads/googleads/v15/enums/promotion_extension_occasion.proto +++ b/google/ads/googleads/v18/enums/promotion_extension_occasion.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PromotionExtensionOccasionProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing promotion extension occasion. diff --git a/google/ads/googleads/v15/enums/promotion_placeholder_field.proto b/google/ads/googleads/v18/enums/promotion_placeholder_field.proto similarity index 89% rename from google/ads/googleads/v15/enums/promotion_placeholder_field.proto rename to google/ads/googleads/v18/enums/promotion_placeholder_field.proto index e84c79d0d..95d221df5 100644 --- a/google/ads/googleads/v15/enums/promotion_placeholder_field.proto +++ b/google/ads/googleads/v18/enums/promotion_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "PromotionPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Promotion placeholder fields. diff --git a/google/ads/googleads/v15/enums/proximity_radius_units.proto b/google/ads/googleads/v18/enums/proximity_radius_units.proto similarity index 78% rename from google/ads/googleads/v15/enums/proximity_radius_units.proto rename to google/ads/googleads/v18/enums/proximity_radius_units.proto index e20e46c75..de8bb6aae 100644 --- a/google/ads/googleads/v15/enums/proximity_radius_units.proto +++ b/google/ads/googleads/v18/enums/proximity_radius_units.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ProximityRadiusUnitsProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing proximity radius units. diff --git a/google/ads/googleads/v15/enums/quality_score_bucket.proto b/google/ads/googleads/v18/enums/quality_score_bucket.proto similarity index 79% rename from google/ads/googleads/v15/enums/quality_score_bucket.proto rename to google/ads/googleads/v18/enums/quality_score_bucket.proto index 9dc188597..39a0264f7 100644 --- a/google/ads/googleads/v15/enums/quality_score_bucket.proto +++ b/google/ads/googleads/v18/enums/quality_score_bucket.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "QualityScoreBucketProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing quality score buckets. diff --git a/google/ads/googleads/v15/enums/reach_plan_age_range.proto b/google/ads/googleads/v18/enums/reach_plan_age_range.proto similarity index 89% rename from google/ads/googleads/v15/enums/reach_plan_age_range.proto rename to google/ads/googleads/v18/enums/reach_plan_age_range.proto index 3febbf69a..91839b8a9 100644 --- a/google/ads/googleads/v15/enums/reach_plan_age_range.proto +++ b/google/ads/googleads/v18/enums/reach_plan_age_range.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ReachPlanAgeRangeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing a plannable age range. diff --git a/google/ads/googleads/v15/enums/reach_plan_network.proto b/google/ads/googleads/v18/enums/reach_plan_network.proto similarity index 80% rename from google/ads/googleads/v15/enums/reach_plan_network.proto rename to google/ads/googleads/v18/enums/reach_plan_network.proto index 87f0821d3..0e4bff2af 100644 --- a/google/ads/googleads/v15/enums/reach_plan_network.proto +++ b/google/ads/googleads/v18/enums/reach_plan_network.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ReachPlanNetworkProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing a plannable network. diff --git a/google/ads/googleads/v15/enums/reach_plan_surface.proto b/google/ads/googleads/v18/enums/reach_plan_surface.proto similarity index 81% rename from google/ads/googleads/v15/enums/reach_plan_surface.proto rename to google/ads/googleads/v18/enums/reach_plan_surface.proto index fcdd2d3cb..d8d380aa1 100644 --- a/google/ads/googleads/v15/enums/reach_plan_surface.proto +++ b/google/ads/googleads/v18/enums/reach_plan_surface.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ReachPlanSurfaceProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum describing surfaces available for targeting in forecasts. // Surfaces refer to the available types of ad inventories such as In-Feed, diff --git a/google/ads/googleads/v15/enums/real_estate_placeholder_field.proto b/google/ads/googleads/v18/enums/real_estate_placeholder_field.proto similarity index 91% rename from google/ads/googleads/v15/enums/real_estate_placeholder_field.proto rename to google/ads/googleads/v18/enums/real_estate_placeholder_field.proto index 5f6641bb0..de8d703b7 100644 --- a/google/ads/googleads/v15/enums/real_estate_placeholder_field.proto +++ b/google/ads/googleads/v18/enums/real_estate_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "RealEstatePlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Real Estate placeholder fields. diff --git a/google/ads/googleads/v15/enums/recommendation_subscription_status.proto b/google/ads/googleads/v18/enums/recommendation_subscription_status.proto similarity index 82% rename from google/ads/googleads/v15/enums/recommendation_subscription_status.proto rename to google/ads/googleads/v18/enums/recommendation_subscription_status.proto index 9ee7de93c..f0624740a 100644 --- a/google/ads/googleads/v15/enums/recommendation_subscription_status.proto +++ b/google/ads/googleads/v18/enums/recommendation_subscription_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "RecommendationSubscriptionStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Recommendation Subscription status. diff --git a/google/ads/googleads/v15/enums/recommendation_type.proto b/google/ads/googleads/v18/enums/recommendation_type.proto similarity index 87% rename from google/ads/googleads/v15/enums/recommendation_type.proto rename to google/ads/googleads/v18/enums/recommendation_type.proto index c7e3f3f95..0932ae14f 100644 --- a/google/ads/googleads/v15/enums/recommendation_type.proto +++ b/google/ads/googleads/v18/enums/recommendation_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "RecommendationTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Recommendation types. @@ -218,5 +218,30 @@ message RecommendationTypeEnum { // Recommendation to set a target ROAS for campaigns that do not have one // specified. SET_TARGET_ROAS = 51; + + // Recommendation to update a campaign to use the Maximize Conversion Value + // bidding strategy. + MAXIMIZE_CONVERSION_VALUE_OPT_IN = 52; + + // Recommendation to deploy Google Tag on more pages. + IMPROVE_GOOGLE_TAG_COVERAGE = 53; + + // Recommendation to turn on Final URL expansion for your Performance Max + // campaigns. + PERFORMANCE_MAX_FINAL_URL_OPT_IN = 54; + + // Recommendation to update a customer list that hasn't been updated + // in the last 90 days. + REFRESH_CUSTOMER_MATCH_LIST = 55; + + // Recommendation to create a custom audience. + CUSTOM_AUDIENCE_OPT_IN = 56; + + // Recommendation to add lead form assets to campaign or customer level. + LEAD_FORM_ASSET = 57; + + // Recommendation to improve the strength of ads in + // Demand Gen campaigns. + IMPROVE_DEMAND_GEN_AD_STRENGTH = 58; } } diff --git a/google/ads/googleads/v15/enums/resource_change_operation.proto b/google/ads/googleads/v18/enums/resource_change_operation.proto similarity index 80% rename from google/ads/googleads/v15/enums/resource_change_operation.proto rename to google/ads/googleads/v18/enums/resource_change_operation.proto index 39c42468f..83203bce3 100644 --- a/google/ads/googleads/v15/enums/resource_change_operation.proto +++ b/google/ads/googleads/v18/enums/resource_change_operation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ResourceChangeOperationProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing the resource change operations in change event. diff --git a/google/ads/googleads/v15/enums/resource_limit_type.proto b/google/ads/googleads/v18/enums/resource_limit_type.proto similarity index 96% rename from google/ads/googleads/v15/enums/resource_limit_type.proto rename to google/ads/googleads/v18/enums/resource_limit_type.proto index 13225bdc7..6e42ea921 100644 --- a/google/ads/googleads/v15/enums/resource_limit_type.proto +++ b/google/ads/googleads/v18/enums/resource_limit_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ResourceLimitTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum describing possible resource limit types. message ResourceLimitTypeEnum { @@ -489,5 +489,12 @@ message ResourceLimitTypeEnum { // Maximum number of shared sets of brand type for an account. SHARED_SETS_PER_ACCOUNT_FOR_BRAND = 185; + + // Maximum number of lookalike lists per customer. + LOOKALIKE_USER_LISTS_PER_CUSTOMER = 186; + + // Total number of enabled IMAGE CampaignAssets with LOGO and LANDSCAPE_LOGO + // field types per campaign. + LOGO_CAMPAIGN_ASSETS_PER_CAMPAIGN = 187; } } diff --git a/google/ads/googleads/v15/enums/response_content_type.proto b/google/ads/googleads/v18/enums/response_content_type.proto similarity index 70% rename from google/ads/googleads/v15/enums/response_content_type.proto rename to google/ads/googleads/v18/enums/response_content_type.proto index 9e4d9a31c..51435ed5c 100644 --- a/google/ads/googleads/v15/enums/response_content_type.proto +++ b/google/ads/googleads/v18/enums/response_content_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ResponseContentTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing the response content types used in mutate operations. @@ -37,8 +37,9 @@ message ResponseContentTypeEnum { // The mutate response will be the resource name. RESOURCE_NAME_ONLY = 1; - // The mutate response will be the resource name and the resource with - // all mutable fields. + // The mutate response will contain the resource name and the resource with + // mutable fields if possible. Otherwise, only the resource name will be + // returned. MUTABLE_RESOURCE = 2; } } diff --git a/google/ads/googleads/v15/enums/search_engine_results_page_type.proto b/google/ads/googleads/v18/enums/search_engine_results_page_type.proto similarity index 81% rename from google/ads/googleads/v15/enums/search_engine_results_page_type.proto rename to google/ads/googleads/v18/enums/search_engine_results_page_type.proto index f80282dc1..a1797d44d 100644 --- a/google/ads/googleads/v15/enums/search_engine_results_page_type.proto +++ b/google/ads/googleads/v18/enums/search_engine_results_page_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SearchEngineResultsPageTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing search engine results page types. diff --git a/google/ads/googleads/v15/enums/search_term_match_type.proto b/google/ads/googleads/v18/enums/search_term_match_type.proto similarity index 80% rename from google/ads/googleads/v15/enums/search_term_match_type.proto rename to google/ads/googleads/v18/enums/search_term_match_type.proto index 10aa8664b..e08d05c2a 100644 --- a/google/ads/googleads/v15/enums/search_term_match_type.proto +++ b/google/ads/googleads/v18/enums/search_term_match_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SearchTermMatchTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing search term match types. diff --git a/google/ads/googleads/v15/enums/search_term_targeting_status.proto b/google/ads/googleads/v18/enums/search_term_targeting_status.proto similarity index 81% rename from google/ads/googleads/v15/enums/search_term_targeting_status.proto rename to google/ads/googleads/v18/enums/search_term_targeting_status.proto index b40b12076..c28667f47 100644 --- a/google/ads/googleads/v15/enums/search_term_targeting_status.proto +++ b/google/ads/googleads/v18/enums/search_term_targeting_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SearchTermTargetingStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing search term targeting statuses. diff --git a/google/ads/googleads/v15/enums/seasonality_event_scope.proto b/google/ads/googleads/v18/enums/seasonality_event_scope.proto similarity index 83% rename from google/ads/googleads/v15/enums/seasonality_event_scope.proto rename to google/ads/googleads/v18/enums/seasonality_event_scope.proto index c981fc7e9..a540b6ed7 100644 --- a/google/ads/googleads/v15/enums/seasonality_event_scope.proto +++ b/google/ads/googleads/v18/enums/seasonality_event_scope.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SeasonalityEventScopeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing seasonality event status. diff --git a/google/ads/googleads/v15/enums/seasonality_event_status.proto b/google/ads/googleads/v18/enums/seasonality_event_status.proto similarity index 80% rename from google/ads/googleads/v15/enums/seasonality_event_status.proto rename to google/ads/googleads/v18/enums/seasonality_event_status.proto index 7e9d5b11a..53be2cdf6 100644 --- a/google/ads/googleads/v15/enums/seasonality_event_status.proto +++ b/google/ads/googleads/v18/enums/seasonality_event_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SeasonalityEventStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing seasonality event status. diff --git a/google/ads/googleads/v15/enums/served_asset_field_type.proto b/google/ads/googleads/v18/enums/served_asset_field_type.proto similarity index 91% rename from google/ads/googleads/v15/enums/served_asset_field_type.proto rename to google/ads/googleads/v18/enums/served_asset_field_type.proto index dd426b678..820373762 100644 --- a/google/ads/googleads/v15/enums/served_asset_field_type.proto +++ b/google/ads/googleads/v18/enums/served_asset_field_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ServedAssetFieldTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing policy review statuses. diff --git a/google/ads/googleads/v15/enums/shared_set_status.proto b/google/ads/googleads/v18/enums/shared_set_status.proto similarity index 78% rename from google/ads/googleads/v15/enums/shared_set_status.proto rename to google/ads/googleads/v18/enums/shared_set_status.proto index 28aa07a1c..213808d83 100644 --- a/google/ads/googleads/v15/enums/shared_set_status.proto +++ b/google/ads/googleads/v18/enums/shared_set_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SharedSetStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing shared set statuses. diff --git a/google/ads/googleads/v15/enums/shared_set_type.proto b/google/ads/googleads/v18/enums/shared_set_type.proto similarity index 81% rename from google/ads/googleads/v15/enums/shared_set_type.proto rename to google/ads/googleads/v18/enums/shared_set_type.proto index 3a93dfc50..271ae9d48 100644 --- a/google/ads/googleads/v15/enums/shared_set_type.proto +++ b/google/ads/googleads/v18/enums/shared_set_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SharedSetTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing shared set types. diff --git a/google/ads/googleads/v15/enums/shopping_add_products_to_campaign_recommendation_enum.proto b/google/ads/googleads/v18/enums/shopping_add_products_to_campaign_recommendation_enum.proto similarity index 84% rename from google/ads/googleads/v15/enums/shopping_add_products_to_campaign_recommendation_enum.proto rename to google/ads/googleads/v18/enums/shopping_add_products_to_campaign_recommendation_enum.proto index ed1f3cc73..08df6c844 100644 --- a/google/ads/googleads/v15/enums/shopping_add_products_to_campaign_recommendation_enum.proto +++ b/google/ads/googleads/v18/enums/shopping_add_products_to_campaign_recommendation_enum.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ShoppingAddProductsToCampaignRecommendationEnumProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing ShoppingAddProductsToCampaignRecommendationEnum enum. diff --git a/google/ads/googleads/v15/enums/simulation_modification_method.proto b/google/ads/googleads/v18/enums/simulation_modification_method.proto similarity index 84% rename from google/ads/googleads/v15/enums/simulation_modification_method.proto rename to google/ads/googleads/v18/enums/simulation_modification_method.proto index cf875caa6..76a3453ab 100644 --- a/google/ads/googleads/v15/enums/simulation_modification_method.proto +++ b/google/ads/googleads/v18/enums/simulation_modification_method.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SimulationModificationMethodProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing simulation modification methods. diff --git a/google/ads/googleads/v15/enums/simulation_type.proto b/google/ads/googleads/v18/enums/simulation_type.proto similarity index 83% rename from google/ads/googleads/v15/enums/simulation_type.proto rename to google/ads/googleads/v18/enums/simulation_type.proto index d7504a5a4..ab2200040 100644 --- a/google/ads/googleads/v15/enums/simulation_type.proto +++ b/google/ads/googleads/v18/enums/simulation_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SimulationTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing simulation types. diff --git a/google/ads/googleads/v15/enums/sitelink_placeholder_field.proto b/google/ads/googleads/v18/enums/sitelink_placeholder_field.proto similarity index 84% rename from google/ads/googleads/v15/enums/sitelink_placeholder_field.proto rename to google/ads/googleads/v18/enums/sitelink_placeholder_field.proto index b33492466..2f5e193d5 100644 --- a/google/ads/googleads/v15/enums/sitelink_placeholder_field.proto +++ b/google/ads/googleads/v18/enums/sitelink_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SitelinkPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Sitelink placeholder fields. diff --git a/google/ads/googleads/v15/enums/sk_ad_network_ad_event_type.proto b/google/ads/googleads/v18/enums/sk_ad_network_ad_event_type.proto similarity index 79% rename from google/ads/googleads/v15/enums/sk_ad_network_ad_event_type.proto rename to google/ads/googleads/v18/enums/sk_ad_network_ad_event_type.proto index 0c51196f4..6ffa1228d 100644 --- a/google/ads/googleads/v15/enums/sk_ad_network_ad_event_type.proto +++ b/google/ads/googleads/v18/enums/sk_ad_network_ad_event_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SkAdNetworkAdEventTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing SkAdNetwork Ad Event Types. diff --git a/google/ads/googleads/v15/enums/sk_ad_network_attribution_credit.proto b/google/ads/googleads/v18/enums/sk_ad_network_attribution_credit.proto similarity index 82% rename from google/ads/googleads/v15/enums/sk_ad_network_attribution_credit.proto rename to google/ads/googleads/v18/enums/sk_ad_network_attribution_credit.proto index eb0383713..641e646aa 100644 --- a/google/ads/googleads/v15/enums/sk_ad_network_attribution_credit.proto +++ b/google/ads/googleads/v18/enums/sk_ad_network_attribution_credit.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SkAdNetworkAttributionCreditProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing SkAdNetwork attribution credits. diff --git a/google/ads/googleads/v15/enums/sk_ad_network_coarse_conversion_value.proto b/google/ads/googleads/v18/enums/sk_ad_network_coarse_conversion_value.proto similarity index 81% rename from google/ads/googleads/v15/enums/sk_ad_network_coarse_conversion_value.proto rename to google/ads/googleads/v18/enums/sk_ad_network_coarse_conversion_value.proto index 075e05340..b262d83d9 100644 --- a/google/ads/googleads/v15/enums/sk_ad_network_coarse_conversion_value.proto +++ b/google/ads/googleads/v18/enums/sk_ad_network_coarse_conversion_value.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SkAdNetworkCoarseConversionValueProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing SkAdNetwork coarse conversion values. diff --git a/google/ads/googleads/v15/enums/sk_ad_network_source_type.proto b/google/ads/googleads/v18/enums/sk_ad_network_source_type.proto similarity index 80% rename from google/ads/googleads/v15/enums/sk_ad_network_source_type.proto rename to google/ads/googleads/v18/enums/sk_ad_network_source_type.proto index 60edb866e..ce56606bd 100644 --- a/google/ads/googleads/v15/enums/sk_ad_network_source_type.proto +++ b/google/ads/googleads/v18/enums/sk_ad_network_source_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SkAdNetworkSourceTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing SkAdNetwork source types. diff --git a/google/ads/googleads/v15/enums/sk_ad_network_user_type.proto b/google/ads/googleads/v18/enums/sk_ad_network_user_type.proto similarity index 80% rename from google/ads/googleads/v15/enums/sk_ad_network_user_type.proto rename to google/ads/googleads/v18/enums/sk_ad_network_user_type.proto index 7fb0a9f53..b753b0b1c 100644 --- a/google/ads/googleads/v15/enums/sk_ad_network_user_type.proto +++ b/google/ads/googleads/v18/enums/sk_ad_network_user_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SkAdNetworkUserTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing SkAdNetwork user types. diff --git a/google/ads/googleads/v15/enums/slot.proto b/google/ads/googleads/v18/enums/slot.proto similarity index 80% rename from google/ads/googleads/v15/enums/slot.proto rename to google/ads/googleads/v18/enums/slot.proto index 624b47002..ee57c2ef8 100644 --- a/google/ads/googleads/v15/enums/slot.proto +++ b/google/ads/googleads/v18/enums/slot.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SlotProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing slots. diff --git a/google/ads/googleads/v15/enums/smart_campaign_not_eligible_reason.proto b/google/ads/googleads/v18/enums/smart_campaign_not_eligible_reason.proto similarity index 84% rename from google/ads/googleads/v15/enums/smart_campaign_not_eligible_reason.proto rename to google/ads/googleads/v18/enums/smart_campaign_not_eligible_reason.proto index df0d38894..f920e0c9d 100644 --- a/google/ads/googleads/v15/enums/smart_campaign_not_eligible_reason.proto +++ b/google/ads/googleads/v18/enums/smart_campaign_not_eligible_reason.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SmartCampaignNotEligibleReasonProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing reasons for why a Smart campaign is not eligible to // serve. diff --git a/google/ads/googleads/v15/enums/smart_campaign_status.proto b/google/ads/googleads/v18/enums/smart_campaign_status.proto similarity index 82% rename from google/ads/googleads/v15/enums/smart_campaign_status.proto rename to google/ads/googleads/v18/enums/smart_campaign_status.proto index 0cd1a5903..1dcfc1868 100644 --- a/google/ads/googleads/v15/enums/smart_campaign_status.proto +++ b/google/ads/googleads/v18/enums/smart_campaign_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SmartCampaignStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Smart campaign statuses. diff --git a/google/ads/googleads/v15/enums/spending_limit_type.proto b/google/ads/googleads/v18/enums/spending_limit_type.proto similarity index 78% rename from google/ads/googleads/v15/enums/spending_limit_type.proto rename to google/ads/googleads/v18/enums/spending_limit_type.proto index a25121f8a..2594f80be 100644 --- a/google/ads/googleads/v15/enums/spending_limit_type.proto +++ b/google/ads/googleads/v18/enums/spending_limit_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SpendingLimitTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing SpendingLimit types. diff --git a/google/ads/googleads/v15/enums/structured_snippet_placeholder_field.proto b/google/ads/googleads/v18/enums/structured_snippet_placeholder_field.proto similarity index 83% rename from google/ads/googleads/v15/enums/structured_snippet_placeholder_field.proto rename to google/ads/googleads/v18/enums/structured_snippet_placeholder_field.proto index c21058903..4ebd99966 100644 --- a/google/ads/googleads/v15/enums/structured_snippet_placeholder_field.proto +++ b/google/ads/googleads/v18/enums/structured_snippet_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "StructuredSnippetPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Structured Snippet placeholder fields. diff --git a/google/ads/googleads/v15/enums/summary_row_setting.proto b/google/ads/googleads/v18/enums/summary_row_setting.proto similarity index 80% rename from google/ads/googleads/v15/enums/summary_row_setting.proto rename to google/ads/googleads/v18/enums/summary_row_setting.proto index 88e44bf07..7f534b0d5 100644 --- a/google/ads/googleads/v15/enums/summary_row_setting.proto +++ b/google/ads/googleads/v18/enums/summary_row_setting.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SummaryRowSettingProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing summary row setting. diff --git a/google/ads/googleads/v15/enums/system_managed_entity_source.proto b/google/ads/googleads/v18/enums/system_managed_entity_source.proto similarity index 78% rename from google/ads/googleads/v15/enums/system_managed_entity_source.proto rename to google/ads/googleads/v18/enums/system_managed_entity_source.proto index cc25ad9f5..afe350c58 100644 --- a/google/ads/googleads/v15/enums/system_managed_entity_source.proto +++ b/google/ads/googleads/v18/enums/system_managed_entity_source.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "SystemManagedEntitySourceProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing system managed entity sources. diff --git a/google/ads/googleads/v15/enums/target_cpa_opt_in_recommendation_goal.proto b/google/ads/googleads/v18/enums/target_cpa_opt_in_recommendation_goal.proto similarity index 82% rename from google/ads/googleads/v15/enums/target_cpa_opt_in_recommendation_goal.proto rename to google/ads/googleads/v18/enums/target_cpa_opt_in_recommendation_goal.proto index 4efe39c88..a6da1b3cb 100644 --- a/google/ads/googleads/v15/enums/target_cpa_opt_in_recommendation_goal.proto +++ b/google/ads/googleads/v18/enums/target_cpa_opt_in_recommendation_goal.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "TargetCpaOptInRecommendationGoalProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing TargetCpaOptIn recommendation goals. diff --git a/google/ads/googleads/v15/enums/target_frequency_time_unit.proto b/google/ads/googleads/v18/enums/target_frequency_time_unit.proto similarity index 79% rename from google/ads/googleads/v15/enums/target_frequency_time_unit.proto rename to google/ads/googleads/v18/enums/target_frequency_time_unit.proto index 16373641a..ea49c76a4 100644 --- a/google/ads/googleads/v15/enums/target_frequency_time_unit.proto +++ b/google/ads/googleads/v18/enums/target_frequency_time_unit.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "TargetFrequencyTimeUnitProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing bidding goal Target Frequency time units. diff --git a/google/ads/googleads/v15/enums/target_impression_share_location.proto b/google/ads/googleads/v18/enums/target_impression_share_location.proto similarity index 81% rename from google/ads/googleads/v15/enums/target_impression_share_location.proto rename to google/ads/googleads/v18/enums/target_impression_share_location.proto index 4e53e6dea..47595d64f 100644 --- a/google/ads/googleads/v15/enums/target_impression_share_location.proto +++ b/google/ads/googleads/v18/enums/target_impression_share_location.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "TargetImpressionShareLocationProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing target impression share goal. diff --git a/google/ads/googleads/v15/enums/targeting_dimension.proto b/google/ads/googleads/v18/enums/targeting_dimension.proto similarity index 86% rename from google/ads/googleads/v15/enums/targeting_dimension.proto rename to google/ads/googleads/v18/enums/targeting_dimension.proto index e0a912073..9e09e9727 100644 --- a/google/ads/googleads/v15/enums/targeting_dimension.proto +++ b/google/ads/googleads/v18/enums/targeting_dimension.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "TargetingDimensionProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing criteria types. diff --git a/google/ads/googleads/v15/enums/time_type.proto b/google/ads/googleads/v18/enums/time_type.proto similarity index 78% rename from google/ads/googleads/v15/enums/time_type.proto rename to google/ads/googleads/v18/enums/time_type.proto index 268424b70..55885874f 100644 --- a/google/ads/googleads/v15/enums/time_type.proto +++ b/google/ads/googleads/v18/enums/time_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "TimeTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing TimeType types. diff --git a/google/ads/googleads/v15/enums/tracking_code_page_format.proto b/google/ads/googleads/v18/enums/tracking_code_page_format.proto similarity index 79% rename from google/ads/googleads/v15/enums/tracking_code_page_format.proto rename to google/ads/googleads/v18/enums/tracking_code_page_format.proto index ec8703402..1afbb32c5 100644 --- a/google/ads/googleads/v15/enums/tracking_code_page_format.proto +++ b/google/ads/googleads/v18/enums/tracking_code_page_format.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "TrackingCodePageFormatProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum describing the format of the web page where the tracking // tag and snippet will be installed. diff --git a/google/ads/googleads/v15/enums/tracking_code_type.proto b/google/ads/googleads/v18/enums/tracking_code_type.proto similarity index 83% rename from google/ads/googleads/v15/enums/tracking_code_type.proto rename to google/ads/googleads/v18/enums/tracking_code_type.proto index 17a791c5d..12686f353 100644 --- a/google/ads/googleads/v15/enums/tracking_code_type.proto +++ b/google/ads/googleads/v18/enums/tracking_code_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "TrackingCodeTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Container for enum describing the type of the generated tag snippets for // tracking conversions. diff --git a/google/ads/googleads/v15/enums/travel_placeholder_field.proto b/google/ads/googleads/v18/enums/travel_placeholder_field.proto similarity index 92% rename from google/ads/googleads/v15/enums/travel_placeholder_field.proto rename to google/ads/googleads/v18/enums/travel_placeholder_field.proto index c75cbe479..dadbab4cf 100644 --- a/google/ads/googleads/v15/enums/travel_placeholder_field.proto +++ b/google/ads/googleads/v18/enums/travel_placeholder_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "TravelPlaceholderFieldProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing Travel placeholder fields. diff --git a/google/ads/googleads/v15/enums/user_identifier_source.proto b/google/ads/googleads/v18/enums/user_identifier_source.proto similarity index 81% rename from google/ads/googleads/v15/enums/user_identifier_source.proto rename to google/ads/googleads/v18/enums/user_identifier_source.proto index 3ac4fd181..9ba7224b5 100644 --- a/google/ads/googleads/v15/enums/user_identifier_source.proto +++ b/google/ads/googleads/v18/enums/user_identifier_source.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserIdentifierSourceProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing user identifier source diff --git a/google/ads/googleads/v15/enums/user_interest_taxonomy_type.proto b/google/ads/googleads/v18/enums/user_interest_taxonomy_type.proto similarity index 82% rename from google/ads/googleads/v15/enums/user_interest_taxonomy_type.proto rename to google/ads/googleads/v18/enums/user_interest_taxonomy_type.proto index 9f539d5bd..7e32b6383 100644 --- a/google/ads/googleads/v15/enums/user_interest_taxonomy_type.proto +++ b/google/ads/googleads/v18/enums/user_interest_taxonomy_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserInterestTaxonomyTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing the UserInterest taxonomy type diff --git a/google/ads/googleads/v15/enums/user_list_access_status.proto b/google/ads/googleads/v18/enums/user_list_access_status.proto similarity index 78% rename from google/ads/googleads/v15/enums/user_list_access_status.proto rename to google/ads/googleads/v18/enums/user_list_access_status.proto index 4fc277d53..066819419 100644 --- a/google/ads/googleads/v15/enums/user_list_access_status.proto +++ b/google/ads/googleads/v18/enums/user_list_access_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListAccessStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing user list access status. diff --git a/google/ads/googleads/v15/enums/user_list_closing_reason.proto b/google/ads/googleads/v18/enums/user_list_closing_reason.proto similarity index 79% rename from google/ads/googleads/v15/enums/user_list_closing_reason.proto rename to google/ads/googleads/v18/enums/user_list_closing_reason.proto index 8112dd25b..00f30dc19 100644 --- a/google/ads/googleads/v15/enums/user_list_closing_reason.proto +++ b/google/ads/googleads/v18/enums/user_list_closing_reason.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListClosingReasonProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing user list closing reason. diff --git a/google/ads/googleads/v15/enums/user_list_crm_data_source_type.proto b/google/ads/googleads/v18/enums/user_list_crm_data_source_type.proto similarity index 80% rename from google/ads/googleads/v15/enums/user_list_crm_data_source_type.proto rename to google/ads/googleads/v18/enums/user_list_crm_data_source_type.proto index 8df9c121e..0ad30489a 100644 --- a/google/ads/googleads/v15/enums/user_list_crm_data_source_type.proto +++ b/google/ads/googleads/v18/enums/user_list_crm_data_source_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListCrmDataSourceTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Indicates source of Crm upload data. message UserListCrmDataSourceTypeEnum { diff --git a/google/ads/googleads/v18/enums/user_list_customer_type_category.proto b/google/ads/googleads/v18/enums/user_list_customer_type_category.proto new file mode 100644 index 000000000..041ad6184 --- /dev/null +++ b/google/ads/googleads/v18/enums/user_list_customer_type_category.proto @@ -0,0 +1,88 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.enums; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "UserListCustomerTypeCategoryProto"; +option java_package = "com.google.ads.googleads.v18.enums"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; + +// Proto file describing user list customer type category. + +// The user list customer type categories. +message UserListCustomerTypeCategoryEnum { + // Enum containing possible user list customer type categories. + enum UserListCustomerTypeCategory { + // Not specified. + UNSPECIFIED = 0; + + // Unknown type. + UNKNOWN = 1; + + // Customer type category for all customers. + ALL_CUSTOMERS = 2; + + // Customer type category for all purchasers. + PURCHASERS = 3; + + // Customer type category for high value purchasers. + HIGH_VALUE_CUSTOMERS = 4; + + // Customer type category for disengaged purchasers. + DISENGAGED_CUSTOMERS = 5; + + // Customer type category for qualified leads. + QUALIFIED_LEADS = 6; + + // Customer type category for converted leads. + CONVERTED_LEADS = 7; + + // Customer type category for paid subscribers. + PAID_SUBSCRIBERS = 8; + + // Customer type category for loyalty signups. + LOYALTY_SIGN_UPS = 9; + + // Customer type category for cart abandoners. + CART_ABANDONERS = 10; + + // Customer type category for loyalty tier 1 members. + LOYALTY_TIER_1_MEMBERS = 11; + + // Customer type category for loyalty tier 2 members. + LOYALTY_TIER_2_MEMBERS = 12; + + // Customer type category for loyalty tier 3 members. + LOYALTY_TIER_3_MEMBERS = 13; + + // Customer type category for loyalty tier 4 members. + LOYALTY_TIER_4_MEMBERS = 14; + + // Customer type category for loyalty tier 5 members. + LOYALTY_TIER_5_MEMBERS = 15; + + // Customer type category for loyalty tier 6 members. + LOYALTY_TIER_6_MEMBERS = 16; + + // Customer type category for loyalty tier 7 members. + LOYALTY_TIER_7_MEMBERS = 17; + } +} diff --git a/google/ads/googleads/v15/enums/user_list_date_rule_item_operator.proto b/google/ads/googleads/v18/enums/user_list_date_rule_item_operator.proto similarity index 78% rename from google/ads/googleads/v15/enums/user_list_date_rule_item_operator.proto rename to google/ads/googleads/v18/enums/user_list_date_rule_item_operator.proto index 46bdb16ce..2feec6952 100644 --- a/google/ads/googleads/v15/enums/user_list_date_rule_item_operator.proto +++ b/google/ads/googleads/v18/enums/user_list_date_rule_item_operator.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListDateRuleItemOperatorProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Supported rule operator for date type. message UserListDateRuleItemOperatorEnum { diff --git a/google/ads/googleads/v15/enums/user_list_flexible_rule_operator.proto b/google/ads/googleads/v18/enums/user_list_flexible_rule_operator.proto similarity index 77% rename from google/ads/googleads/v15/enums/user_list_flexible_rule_operator.proto rename to google/ads/googleads/v18/enums/user_list_flexible_rule_operator.proto index 5feeab096..aded3f343 100644 --- a/google/ads/googleads/v15/enums/user_list_flexible_rule_operator.proto +++ b/google/ads/googleads/v18/enums/user_list_flexible_rule_operator.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListFlexibleRuleOperatorProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Logical operator connecting two rules. message UserListFlexibleRuleOperatorEnum { diff --git a/google/ads/googleads/v15/enums/user_list_logical_rule_operator.proto b/google/ads/googleads/v18/enums/user_list_logical_rule_operator.proto similarity index 78% rename from google/ads/googleads/v15/enums/user_list_logical_rule_operator.proto rename to google/ads/googleads/v18/enums/user_list_logical_rule_operator.proto index 34e4fb1d0..9bef1b8f5 100644 --- a/google/ads/googleads/v15/enums/user_list_logical_rule_operator.proto +++ b/google/ads/googleads/v18/enums/user_list_logical_rule_operator.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListLogicalRuleOperatorProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // The logical operator of the rule. message UserListLogicalRuleOperatorEnum { diff --git a/google/ads/googleads/v15/enums/user_list_membership_status.proto b/google/ads/googleads/v18/enums/user_list_membership_status.proto similarity index 81% rename from google/ads/googleads/v15/enums/user_list_membership_status.proto rename to google/ads/googleads/v18/enums/user_list_membership_status.proto index 302cb2d5b..6228f06f4 100644 --- a/google/ads/googleads/v15/enums/user_list_membership_status.proto +++ b/google/ads/googleads/v18/enums/user_list_membership_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListMembershipStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing user list membership status. diff --git a/google/ads/googleads/v15/enums/user_list_number_rule_item_operator.proto b/google/ads/googleads/v18/enums/user_list_number_rule_item_operator.proto similarity index 80% rename from google/ads/googleads/v15/enums/user_list_number_rule_item_operator.proto rename to google/ads/googleads/v18/enums/user_list_number_rule_item_operator.proto index ce32bbc49..598d6db21 100644 --- a/google/ads/googleads/v15/enums/user_list_number_rule_item_operator.proto +++ b/google/ads/googleads/v18/enums/user_list_number_rule_item_operator.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListNumberRuleItemOperatorProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Supported rule operator for number type. message UserListNumberRuleItemOperatorEnum { diff --git a/google/ads/googleads/v15/enums/user_list_prepopulation_status.proto b/google/ads/googleads/v18/enums/user_list_prepopulation_status.proto similarity index 79% rename from google/ads/googleads/v15/enums/user_list_prepopulation_status.proto rename to google/ads/googleads/v18/enums/user_list_prepopulation_status.proto index d34bcd779..e7c5c1c64 100644 --- a/google/ads/googleads/v15/enums/user_list_prepopulation_status.proto +++ b/google/ads/googleads/v18/enums/user_list_prepopulation_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListPrepopulationStatusProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Indicates status of prepopulation based on the rule. message UserListPrepopulationStatusEnum { diff --git a/google/ads/googleads/v15/enums/user_list_rule_type.proto b/google/ads/googleads/v18/enums/user_list_rule_type.proto similarity index 77% rename from google/ads/googleads/v15/enums/user_list_rule_type.proto rename to google/ads/googleads/v18/enums/user_list_rule_type.proto index c44d4d7e3..efaac9303 100644 --- a/google/ads/googleads/v15/enums/user_list_rule_type.proto +++ b/google/ads/googleads/v18/enums/user_list_rule_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListRuleTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Rule based user list rule type. message UserListRuleTypeEnum { diff --git a/google/ads/googleads/v15/enums/user_list_size_range.proto b/google/ads/googleads/v18/enums/user_list_size_range.proto similarity index 89% rename from google/ads/googleads/v15/enums/user_list_size_range.proto rename to google/ads/googleads/v18/enums/user_list_size_range.proto index 2c4258d3f..d14eb7825 100644 --- a/google/ads/googleads/v15/enums/user_list_size_range.proto +++ b/google/ads/googleads/v18/enums/user_list_size_range.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListSizeRangeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing user list size range. diff --git a/google/ads/googleads/v15/enums/user_list_string_rule_item_operator.proto b/google/ads/googleads/v18/enums/user_list_string_rule_item_operator.proto similarity index 81% rename from google/ads/googleads/v15/enums/user_list_string_rule_item_operator.proto rename to google/ads/googleads/v18/enums/user_list_string_rule_item_operator.proto index 39acf39eb..c9cdb332e 100644 --- a/google/ads/googleads/v15/enums/user_list_string_rule_item_operator.proto +++ b/google/ads/googleads/v18/enums/user_list_string_rule_item_operator.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListStringRuleItemOperatorProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Supported rule operator for string type. message UserListStringRuleItemOperatorEnum { diff --git a/google/ads/googleads/v15/enums/user_list_type.proto b/google/ads/googleads/v18/enums/user_list_type.proto similarity index 83% rename from google/ads/googleads/v15/enums/user_list_type.proto rename to google/ads/googleads/v18/enums/user_list_type.proto index c5acd7ba0..431ec674a 100644 --- a/google/ads/googleads/v15/enums/user_list_type.proto +++ b/google/ads/googleads/v18/enums/user_list_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "UserListTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing user list type. diff --git a/google/ads/googleads/v15/enums/value_rule_device_type.proto b/google/ads/googleads/v18/enums/value_rule_device_type.proto similarity index 79% rename from google/ads/googleads/v15/enums/value_rule_device_type.proto rename to google/ads/googleads/v18/enums/value_rule_device_type.proto index 1c3812566..6d0b080b5 100644 --- a/google/ads/googleads/v15/enums/value_rule_device_type.proto +++ b/google/ads/googleads/v18/enums/value_rule_device_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ValueRuleDeviceTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing conversion value rule device type. diff --git a/google/ads/googleads/v15/enums/value_rule_geo_location_match_type.proto b/google/ads/googleads/v18/enums/value_rule_geo_location_match_type.proto similarity index 80% rename from google/ads/googleads/v15/enums/value_rule_geo_location_match_type.proto rename to google/ads/googleads/v18/enums/value_rule_geo_location_match_type.proto index f72fcea02..4cb50de84 100644 --- a/google/ads/googleads/v15/enums/value_rule_geo_location_match_type.proto +++ b/google/ads/googleads/v18/enums/value_rule_geo_location_match_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ValueRuleGeoLocationMatchTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing conversion value rule geo location match type. diff --git a/google/ads/googleads/v15/enums/value_rule_operation.proto b/google/ads/googleads/v18/enums/value_rule_operation.proto similarity index 80% rename from google/ads/googleads/v15/enums/value_rule_operation.proto rename to google/ads/googleads/v18/enums/value_rule_operation.proto index 5ac9c7668..b7b7fb387 100644 --- a/google/ads/googleads/v15/enums/value_rule_operation.proto +++ b/google/ads/googleads/v18/enums/value_rule_operation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ValueRuleOperationProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing conversion value rule operation. diff --git a/google/ads/googleads/v15/enums/value_rule_set_attachment_type.proto b/google/ads/googleads/v18/enums/value_rule_set_attachment_type.proto similarity index 79% rename from google/ads/googleads/v15/enums/value_rule_set_attachment_type.proto rename to google/ads/googleads/v18/enums/value_rule_set_attachment_type.proto index c78f0f040..2d8a99f8c 100644 --- a/google/ads/googleads/v15/enums/value_rule_set_attachment_type.proto +++ b/google/ads/googleads/v18/enums/value_rule_set_attachment_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ValueRuleSetAttachmentTypeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing where the conversion value rule is attached. diff --git a/google/ads/googleads/v15/enums/value_rule_set_dimension.proto b/google/ads/googleads/v18/enums/value_rule_set_dimension.proto similarity index 78% rename from google/ads/googleads/v15/enums/value_rule_set_dimension.proto rename to google/ads/googleads/v18/enums/value_rule_set_dimension.proto index 37f7dbe54..8e8c073f2 100644 --- a/google/ads/googleads/v15/enums/value_rule_set_dimension.proto +++ b/google/ads/googleads/v18/enums/value_rule_set_dimension.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "ValueRuleSetDimensionProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing conversion value rule set dimension. @@ -49,5 +49,8 @@ message ValueRuleSetDimensionEnum { // This dimension implies the rule will always apply. NO_CONDITION = 5; + + // Dimension for itinerary. + ITINERARY = 6; } } diff --git a/google/ads/googleads/v15/enums/vanity_pharma_display_url_mode.proto b/google/ads/googleads/v18/enums/vanity_pharma_display_url_mode.proto similarity index 80% rename from google/ads/googleads/v15/enums/vanity_pharma_display_url_mode.proto rename to google/ads/googleads/v18/enums/vanity_pharma_display_url_mode.proto index 079a6146f..2bf6150cf 100644 --- a/google/ads/googleads/v15/enums/vanity_pharma_display_url_mode.proto +++ b/google/ads/googleads/v18/enums/vanity_pharma_display_url_mode.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "VanityPharmaDisplayUrlModeProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing vanity pharma display url modes. diff --git a/google/ads/googleads/v15/enums/vanity_pharma_text.proto b/google/ads/googleads/v18/enums/vanity_pharma_text.proto similarity index 89% rename from google/ads/googleads/v15/enums/vanity_pharma_text.proto rename to google/ads/googleads/v18/enums/vanity_pharma_text.proto index 4b2e0e221..7a35a848b 100644 --- a/google/ads/googleads/v15/enums/vanity_pharma_text.proto +++ b/google/ads/googleads/v18/enums/vanity_pharma_text.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "VanityPharmaTextProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing vanity pharma texts. diff --git a/google/ads/googleads/v15/enums/video_thumbnail.proto b/google/ads/googleads/v18/enums/video_thumbnail.proto similarity index 82% rename from google/ads/googleads/v15/enums/video_thumbnail.proto rename to google/ads/googleads/v18/enums/video_thumbnail.proto index d9bd2ddd0..b57602ec2 100644 --- a/google/ads/googleads/v15/enums/video_thumbnail.proto +++ b/google/ads/googleads/v18/enums/video_thumbnail.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "VideoThumbnailProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing video thumbnails. diff --git a/google/ads/googleads/v15/enums/webpage_condition_operand.proto b/google/ads/googleads/v18/enums/webpage_condition_operand.proto similarity index 82% rename from google/ads/googleads/v15/enums/webpage_condition_operand.proto rename to google/ads/googleads/v18/enums/webpage_condition_operand.proto index 2c01d4a33..3efa23bca 100644 --- a/google/ads/googleads/v15/enums/webpage_condition_operand.proto +++ b/google/ads/googleads/v18/enums/webpage_condition_operand.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "WebpageConditionOperandProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing webpage condition operand. diff --git a/google/ads/googleads/v15/enums/webpage_condition_operator.proto b/google/ads/googleads/v18/enums/webpage_condition_operator.proto similarity index 80% rename from google/ads/googleads/v15/enums/webpage_condition_operator.proto rename to google/ads/googleads/v18/enums/webpage_condition_operator.proto index ca200f676..5cd26315e 100644 --- a/google/ads/googleads/v15/enums/webpage_condition_operator.proto +++ b/google/ads/googleads/v18/enums/webpage_condition_operator.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.enums; +package google.ads.googleads.v18.enums; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Enums"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/enums;enums"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/enums;enums"; option java_multiple_files = true; option java_outer_classname = "WebpageConditionOperatorProto"; -option java_package = "com.google.ads.googleads.v15.enums"; +option java_package = "com.google.ads.googleads.v18.enums"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Enums"; -option ruby_package = "Google::Ads::GoogleAds::V15::Enums"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Enums"; +option ruby_package = "Google::Ads::GoogleAds::V18::Enums"; // Proto file describing webpage condition operator. diff --git a/google/ads/googleads/v15/errors/BUILD.bazel b/google/ads/googleads/v18/errors/BUILD.bazel similarity index 96% rename from google/ads/googleads/v15/errors/BUILD.bazel rename to google/ads/googleads/v18/errors/BUILD.bazel index 2d13f447d..f76c4c63b 100644 --- a/google/ads/googleads/v15/errors/BUILD.bazel +++ b/google/ads/googleads/v18/errors/BUILD.bazel @@ -26,8 +26,8 @@ proto_library( name = "errors_proto", srcs = glob(["*.proto"]), deps = [ - "//google/ads/googleads/v15/common:common_proto", - "//google/ads/googleads/v15/enums:enums_proto", + "//google/ads/googleads/v18/common:common_proto", + "//google/ads/googleads/v18/enums:enums_proto", "//google/api:annotations_proto", "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:wrappers_proto", diff --git a/google/ads/googleads/v15/errors/access_invitation_error.proto b/google/ads/googleads/v18/errors/access_invitation_error.proto similarity index 85% rename from google/ads/googleads/v15/errors/access_invitation_error.proto rename to google/ads/googleads/v18/errors/access_invitation_error.proto index 1b2efae9e..0e8230d52 100644 --- a/google/ads/googleads/v15/errors/access_invitation_error.proto +++ b/google/ads/googleads/v18/errors/access_invitation_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AccessInvitationErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing AccessInvitation errors. diff --git a/google/ads/googleads/v15/errors/account_budget_proposal_error.proto b/google/ads/googleads/v18/errors/account_budget_proposal_error.proto similarity index 92% rename from google/ads/googleads/v15/errors/account_budget_proposal_error.proto rename to google/ads/googleads/v18/errors/account_budget_proposal_error.proto index 05487e768..0144605a7 100644 --- a/google/ads/googleads/v15/errors/account_budget_proposal_error.proto +++ b/google/ads/googleads/v18/errors/account_budget_proposal_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AccountBudgetProposalErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing account budget proposal errors. diff --git a/google/ads/googleads/v15/errors/account_link_error.proto b/google/ads/googleads/v18/errors/account_link_error.proto similarity index 78% rename from google/ads/googleads/v15/errors/account_link_error.proto rename to google/ads/googleads/v18/errors/account_link_error.proto index 795baacf1..e6114e549 100644 --- a/google/ads/googleads/v15/errors/account_link_error.proto +++ b/google/ads/googleads/v18/errors/account_link_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AccountLinkErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing AccountLink errors. diff --git a/google/ads/googleads/v15/errors/ad_customizer_error.proto b/google/ads/googleads/v18/errors/ad_customizer_error.proto similarity index 82% rename from google/ads/googleads/v15/errors/ad_customizer_error.proto rename to google/ads/googleads/v18/errors/ad_customizer_error.proto index 1b777000d..e927b3ad6 100644 --- a/google/ads/googleads/v15/errors/ad_customizer_error.proto +++ b/google/ads/googleads/v18/errors/ad_customizer_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AdCustomizerErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing ad customizer errors. diff --git a/google/ads/googleads/v15/errors/ad_error.proto b/google/ads/googleads/v18/errors/ad_error.proto similarity index 98% rename from google/ads/googleads/v15/errors/ad_error.proto rename to google/ads/googleads/v18/errors/ad_error.proto index f583c02e5..becce7b1f 100644 --- a/google/ads/googleads/v15/errors/ad_error.proto +++ b/google/ads/googleads/v18/errors/ad_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AdErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing ad errors. diff --git a/google/ads/googleads/v15/errors/ad_group_ad_error.proto b/google/ads/googleads/v18/errors/ad_group_ad_error.proto similarity index 86% rename from google/ads/googleads/v15/errors/ad_group_ad_error.proto rename to google/ads/googleads/v18/errors/ad_group_ad_error.proto index cd9a8358b..031aa1261 100644 --- a/google/ads/googleads/v15/errors/ad_group_ad_error.proto +++ b/google/ads/googleads/v18/errors/ad_group_ad_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AdGroupAdErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing ad group ad errors. diff --git a/google/ads/googleads/v15/errors/ad_group_bid_modifier_error.proto b/google/ads/googleads/v18/errors/ad_group_bid_modifier_error.proto similarity index 80% rename from google/ads/googleads/v15/errors/ad_group_bid_modifier_error.proto rename to google/ads/googleads/v18/errors/ad_group_bid_modifier_error.proto index 354a6e37f..94ee81957 100644 --- a/google/ads/googleads/v15/errors/ad_group_bid_modifier_error.proto +++ b/google/ads/googleads/v18/errors/ad_group_bid_modifier_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AdGroupBidModifierErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing ad group bid modifier errors. diff --git a/google/ads/googleads/v15/errors/ad_group_criterion_customizer_error.proto b/google/ads/googleads/v18/errors/ad_group_criterion_customizer_error.proto similarity index 79% rename from google/ads/googleads/v15/errors/ad_group_criterion_customizer_error.proto rename to google/ads/googleads/v18/errors/ad_group_criterion_customizer_error.proto index 9338db32a..79ee9d35d 100644 --- a/google/ads/googleads/v15/errors/ad_group_criterion_customizer_error.proto +++ b/google/ads/googleads/v18/errors/ad_group_criterion_customizer_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AdGroupCriterionCustomizerErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing ad group criterion customizer errors. diff --git a/google/ads/googleads/v15/errors/ad_group_criterion_error.proto b/google/ads/googleads/v18/errors/ad_group_criterion_error.proto similarity index 93% rename from google/ads/googleads/v15/errors/ad_group_criterion_error.proto rename to google/ads/googleads/v18/errors/ad_group_criterion_error.proto index d1c22b1f2..26878680b 100644 --- a/google/ads/googleads/v15/errors/ad_group_criterion_error.proto +++ b/google/ads/googleads/v18/errors/ad_group_criterion_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AdGroupCriterionErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing ad group criterion errors. diff --git a/google/ads/googleads/v15/errors/ad_group_customizer_error.proto b/google/ads/googleads/v18/errors/ad_group_customizer_error.proto similarity index 77% rename from google/ads/googleads/v15/errors/ad_group_customizer_error.proto rename to google/ads/googleads/v18/errors/ad_group_customizer_error.proto index 55f067fcb..8dba073ca 100644 --- a/google/ads/googleads/v15/errors/ad_group_customizer_error.proto +++ b/google/ads/googleads/v18/errors/ad_group_customizer_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AdGroupCustomizerErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing ad group customizer errors. diff --git a/google/ads/googleads/v15/errors/ad_group_error.proto b/google/ads/googleads/v18/errors/ad_group_error.proto similarity index 85% rename from google/ads/googleads/v15/errors/ad_group_error.proto rename to google/ads/googleads/v18/errors/ad_group_error.proto index 7aec6067d..1f69decab 100644 --- a/google/ads/googleads/v15/errors/ad_group_error.proto +++ b/google/ads/googleads/v18/errors/ad_group_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AdGroupErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing ad group errors. @@ -87,5 +87,11 @@ message AdGroupErrorEnum { // The asset set type is invalid for setting the // excluded_parent_asset_set_types field. INVALID_EXCLUDED_PARENT_ASSET_SET_TYPE = 17; + + // Cannot add ad groups for the campaign type. + CANNOT_ADD_AD_GROUP_FOR_CAMPAIGN_TYPE = 18; + + // Invalid status for the ad group. + INVALID_STATUS = 19; } } diff --git a/google/ads/googleads/v15/errors/ad_group_feed_error.proto b/google/ads/googleads/v18/errors/ad_group_feed_error.proto similarity index 84% rename from google/ads/googleads/v15/errors/ad_group_feed_error.proto rename to google/ads/googleads/v18/errors/ad_group_feed_error.proto index 3ea47cba2..98f4dc474 100644 --- a/google/ads/googleads/v15/errors/ad_group_feed_error.proto +++ b/google/ads/googleads/v18/errors/ad_group_feed_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AdGroupFeedErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing ad group feed errors. diff --git a/google/ads/googleads/v15/errors/ad_parameter_error.proto b/google/ads/googleads/v18/errors/ad_parameter_error.proto similarity index 79% rename from google/ads/googleads/v15/errors/ad_parameter_error.proto rename to google/ads/googleads/v18/errors/ad_parameter_error.proto index 01a31cc4a..c31251087 100644 --- a/google/ads/googleads/v15/errors/ad_parameter_error.proto +++ b/google/ads/googleads/v18/errors/ad_parameter_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AdParameterErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing ad parameter errors. diff --git a/google/ads/googleads/v15/errors/ad_sharing_error.proto b/google/ads/googleads/v18/errors/ad_sharing_error.proto similarity index 80% rename from google/ads/googleads/v15/errors/ad_sharing_error.proto rename to google/ads/googleads/v18/errors/ad_sharing_error.proto index 685f56596..9b5ca3a64 100644 --- a/google/ads/googleads/v15/errors/ad_sharing_error.proto +++ b/google/ads/googleads/v18/errors/ad_sharing_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AdSharingErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing ad sharing errors. diff --git a/google/ads/googleads/v15/errors/adx_error.proto b/google/ads/googleads/v18/errors/adx_error.proto similarity index 77% rename from google/ads/googleads/v15/errors/adx_error.proto rename to google/ads/googleads/v18/errors/adx_error.proto index f065fb91c..d25fc603c 100644 --- a/google/ads/googleads/v15/errors/adx_error.proto +++ b/google/ads/googleads/v18/errors/adx_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AdxErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing adx errors. diff --git a/google/ads/googleads/v15/errors/asset_error.proto b/google/ads/googleads/v18/errors/asset_error.proto similarity index 93% rename from google/ads/googleads/v15/errors/asset_error.proto rename to google/ads/googleads/v18/errors/asset_error.proto index cce0712db..0513cb6a7 100644 --- a/google/ads/googleads/v15/errors/asset_error.proto +++ b/google/ads/googleads/v18/errors/asset_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AssetErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing asset errors. diff --git a/google/ads/googleads/v15/errors/asset_group_asset_error.proto b/google/ads/googleads/v18/errors/asset_group_asset_error.proto similarity index 82% rename from google/ads/googleads/v15/errors/asset_group_asset_error.proto rename to google/ads/googleads/v18/errors/asset_group_asset_error.proto index 71cd79ee0..8b3dc64b6 100644 --- a/google/ads/googleads/v15/errors/asset_group_asset_error.proto +++ b/google/ads/googleads/v18/errors/asset_group_asset_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AssetGroupAssetErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing asset group asset errors. diff --git a/google/ads/googleads/v15/errors/asset_group_error.proto b/google/ads/googleads/v18/errors/asset_group_error.proto similarity index 89% rename from google/ads/googleads/v15/errors/asset_group_error.proto rename to google/ads/googleads/v18/errors/asset_group_error.proto index 04f5e6c71..86d9397e8 100644 --- a/google/ads/googleads/v15/errors/asset_group_error.proto +++ b/google/ads/googleads/v18/errors/asset_group_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AssetGroupErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing asset group errors. diff --git a/google/ads/googleads/v15/errors/asset_group_listing_group_filter_error.proto b/google/ads/googleads/v18/errors/asset_group_listing_group_filter_error.proto similarity index 64% rename from google/ads/googleads/v15/errors/asset_group_listing_group_filter_error.proto rename to google/ads/googleads/v18/errors/asset_group_listing_group_filter_error.proto index 5d6a83057..da287fc4d 100644 --- a/google/ads/googleads/v15/errors/asset_group_listing_group_filter_error.proto +++ b/google/ads/googleads/v18/errors/asset_group_listing_group_filter_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AssetGroupListingGroupFilterErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing asset group asset errors. @@ -78,8 +78,38 @@ message AssetGroupListingGroupFilterErrorEnum { // Dimension can't subdivide everything-else node in its own hierarchy. CANNOT_REFINE_HIERARCHICAL_EVERYTHING_ELSE = 14; + // This dimension type is not allowed in this context. + DIMENSION_TYPE_NOT_ALLOWED = 15; + + // All the webpage filters under an AssetGroup should be distinct. + DUPLICATE_WEBPAGE_FILTER_UNDER_ASSET_GROUP = 16; + + // Filter of the listing source type is not allowed in the context. + LISTING_SOURCE_NOT_ALLOWED = 17; + + // Exclusion filters are not allowed in the context. + FILTER_EXCLUSION_NOT_ALLOWED = 18; + + // All the filters under an AssetGroup should have the same listing source. + MULTIPLE_LISTING_SOURCES = 19; + + // All the conditions in a webpage needs to be of same type. + MULTIPLE_WEBPAGE_CONDITION_TYPES_NOT_ALLOWED = 20; + + // All the webpage types of the filters under an AssetGroup should be of + // same type. Example: All the webpage types can be of type custom_label or + // url_contains but not both. + MULTIPLE_WEBPAGE_TYPES_PER_ASSET_GROUP = 21; + + // All page feed filter nodes are root nodes and they can't have a parent. + PAGE_FEED_FILTER_HAS_PARENT = 22; + // There cannot be more than one mutate operation per request that targets a // single asset group listing group filter. MULTIPLE_OPERATIONS_ON_ONE_NODE = 23; + + // The tree is in an invalid state in the database. Any changes that don't + // fix its issues will fail validation. + TREE_WAS_INVALID_BEFORE_MUTATION = 24; } } diff --git a/google/ads/googleads/v15/errors/asset_group_signal_error.proto b/google/ads/googleads/v18/errors/asset_group_signal_error.proto similarity index 83% rename from google/ads/googleads/v15/errors/asset_group_signal_error.proto rename to google/ads/googleads/v18/errors/asset_group_signal_error.proto index 8fc49a1ce..0b020b639 100644 --- a/google/ads/googleads/v15/errors/asset_group_signal_error.proto +++ b/google/ads/googleads/v18/errors/asset_group_signal_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AssetGroupSignalErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing asset group signal errors. diff --git a/google/ads/googleads/v15/errors/asset_link_error.proto b/google/ads/googleads/v18/errors/asset_link_error.proto similarity index 86% rename from google/ads/googleads/v15/errors/asset_link_error.proto rename to google/ads/googleads/v18/errors/asset_link_error.proto index cbe57f80b..493ef15b9 100644 --- a/google/ads/googleads/v15/errors/asset_link_error.proto +++ b/google/ads/googleads/v18/errors/asset_link_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AssetLinkErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing asset link errors. @@ -123,5 +123,13 @@ message AssetLinkErrorEnum { // Call to action value is not supported. UNSUPPORTED_CALL_TO_ACTION = 24; + + // For Performance Max campaigns where brand_guidelines_enabled is false, + // business name and logo assets must be linked as AssetGroupAssets. + BRAND_ASSETS_NOT_LINKED_AT_ASSET_GROUP_LEVEL = 25; + + // For Performance Max campaigns where brand_guidelines_enabled is true, + // business name and logo assets must be linked as CampaignAssets. + BRAND_ASSETS_NOT_LINKED_AT_CAMPAIGN_LEVEL = 26; } } diff --git a/google/ads/googleads/v15/errors/asset_set_asset_error.proto b/google/ads/googleads/v18/errors/asset_set_asset_error.proto similarity index 83% rename from google/ads/googleads/v15/errors/asset_set_asset_error.proto rename to google/ads/googleads/v18/errors/asset_set_asset_error.proto index f80171750..ccfd91ff4 100644 --- a/google/ads/googleads/v15/errors/asset_set_asset_error.proto +++ b/google/ads/googleads/v18/errors/asset_set_asset_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AssetSetAssetErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing asset set asset errors. diff --git a/google/ads/googleads/v15/errors/asset_set_error.proto b/google/ads/googleads/v18/errors/asset_set_error.proto similarity index 88% rename from google/ads/googleads/v15/errors/asset_set_error.proto rename to google/ads/googleads/v18/errors/asset_set_error.proto index cb7634a76..351320566 100644 --- a/google/ads/googleads/v15/errors/asset_set_error.proto +++ b/google/ads/googleads/v18/errors/asset_set_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AssetSetErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing asset set errors. diff --git a/google/ads/googleads/v15/errors/asset_set_link_error.proto b/google/ads/googleads/v18/errors/asset_set_link_error.proto similarity index 84% rename from google/ads/googleads/v15/errors/asset_set_link_error.proto rename to google/ads/googleads/v18/errors/asset_set_link_error.proto index 2e46a3286..45920da25 100644 --- a/google/ads/googleads/v15/errors/asset_set_link_error.proto +++ b/google/ads/googleads/v18/errors/asset_set_link_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AssetSetLinkErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing asset set link errors. diff --git a/google/ads/googleads/v15/errors/audience_error.proto b/google/ads/googleads/v18/errors/audience_error.proto similarity index 86% rename from google/ads/googleads/v15/errors/audience_error.proto rename to google/ads/googleads/v18/errors/audience_error.proto index c05752086..8b0626140 100644 --- a/google/ads/googleads/v15/errors/audience_error.proto +++ b/google/ads/googleads/v18/errors/audience_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AudienceErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing audience errors. diff --git a/google/ads/googleads/v15/errors/audience_insights_error.proto b/google/ads/googleads/v18/errors/audience_insights_error.proto similarity index 79% rename from google/ads/googleads/v15/errors/audience_insights_error.proto rename to google/ads/googleads/v18/errors/audience_insights_error.proto index e62a3e144..8e47de193 100644 --- a/google/ads/googleads/v15/errors/audience_insights_error.proto +++ b/google/ads/googleads/v18/errors/audience_insights_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AudienceInsightsErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing errors generated from AudienceInsightsService. diff --git a/google/ads/googleads/v15/errors/authentication_error.proto b/google/ads/googleads/v18/errors/authentication_error.proto similarity index 86% rename from google/ads/googleads/v15/errors/authentication_error.proto rename to google/ads/googleads/v18/errors/authentication_error.proto index 08f2e27fc..1b56d3794 100644 --- a/google/ads/googleads/v15/errors/authentication_error.proto +++ b/google/ads/googleads/v18/errors/authentication_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AuthenticationErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing authentication errors. @@ -62,7 +62,9 @@ message AuthenticationErrorEnum { // Login cookie is required for authentication. LOGIN_COOKIE_REQUIRED = 13; - // User in the cookie is not a valid Ads user. + // The Google account that generated the OAuth access + // token is not associated with a Google Ads account. Create a new + // account, or add the Google account to an existing Google Ads account. NOT_ADS_USER = 14; // OAuth token in the header is not valid. diff --git a/google/ads/googleads/v15/errors/authorization_error.proto b/google/ads/googleads/v18/errors/authorization_error.proto similarity index 85% rename from google/ads/googleads/v15/errors/authorization_error.proto rename to google/ads/googleads/v18/errors/authorization_error.proto index d90da3ad7..5c8683ef4 100644 --- a/google/ads/googleads/v15/errors/authorization_error.proto +++ b/google/ads/googleads/v18/errors/authorization_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "AuthorizationErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing authorization errors. @@ -91,5 +91,9 @@ message AuthorizationErrorEnum { // The Google Cloud project is not under the required organization. CLOUD_PROJECT_NOT_UNDER_ORGANIZATION = 27; + + // The user does not have permission to perform this action on the resource + // or method because the Google Ads account is suspended. + ACTION_NOT_PERMITTED_FOR_SUSPENDED_ACCOUNT = 28; } } diff --git a/google/ads/googleads/v18/errors/automatically_created_asset_removal_error.proto b/google/ads/googleads/v18/errors/automatically_created_asset_removal_error.proto new file mode 100644 index 000000000..a62230fcf --- /dev/null +++ b/google/ads/googleads/v18/errors/automatically_created_asset_removal_error.proto @@ -0,0 +1,56 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "AutomaticallyCreatedAssetRemovalErrorProto"; +option java_package = "com.google.ads.googleads.v18.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; + +// Proto file describing automatically created asset removal errors. + +// Container for enum describing possible automatically created asset removal +// errors. +message AutomaticallyCreatedAssetRemovalErrorEnum { + // Enum describing possible automatically created asset removal errors. + enum AutomaticallyCreatedAssetRemovalError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // The ad does not exist. + AD_DOES_NOT_EXIST = 2; + + // Ad type is not supported. Only Responsive Search Ad type is supported. + INVALID_AD_TYPE = 3; + + // The asset does not exist. + ASSET_DOES_NOT_EXIST = 4; + + // The asset field type does not match. + ASSET_FIELD_TYPE_DOES_NOT_MATCH = 5; + + // Not an automatically created asset. + NOT_AN_AUTOMATICALLY_CREATED_ASSET = 6; + } +} diff --git a/google/ads/googleads/v15/errors/batch_job_error.proto b/google/ads/googleads/v18/errors/batch_job_error.proto similarity index 50% rename from google/ads/googleads/v15/errors/batch_job_error.proto rename to google/ads/googleads/v18/errors/batch_job_error.proto index f126c9dbc..05de31ff8 100644 --- a/google/ads/googleads/v15/errors/batch_job_error.proto +++ b/google/ads/googleads/v18/errors/batch_job_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "BatchJobErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing batch job errors. @@ -59,5 +59,29 @@ message BatchJobErrorEnum { // The batch job cannot be listed due to unexpected errors such as duplicate // checkpoints. CANNOT_LIST_RESULTS = 8; + + // The request contains interdependent AssetGroup and AssetGroupAsset + // operations that are treated atomically as a single transaction, and one + // or more of the operations in that transaction failed, which caused the + // entire transaction, and therefore this mutate operation, to fail. The + // operations that caused the transaction to fail can be found in the + // consecutive AssetGroup or AssetGroupAsset results with the same asset + // group id. The mutate operation will be successful once the remaining + // errors in the transaction are fixed. + ASSET_GROUP_AND_ASSET_GROUP_ASSET_TRANSACTION_FAILURE = 9; + + // The request contains interdependent AssetGroupListingGroupFilter + // operations that are treated atomically as a single transaction, and one + // or more of the operations in that transaction failed, which caused the + // entire transaction, and therefore this mutate operation, to fail. The + // operations that caused the transaction to fail can be found in the + // consecutive AssetGroupListingGroupFilter results with the same asset + // group id. The mutate operation will be successful once the remaining + // errors in the transaction are fixed. + ASSET_GROUP_LISTING_GROUP_FILTER_TRANSACTION_FAILURE = 10; + + // The AddBatchJobOperationsRequest is too large. Split the request into + // smaller requests. The maximum allowed request size is 10484504 bytes. + REQUEST_TOO_LARGE = 11; } } diff --git a/google/ads/googleads/v15/errors/bidding_error.proto b/google/ads/googleads/v18/errors/bidding_error.proto similarity index 92% rename from google/ads/googleads/v15/errors/bidding_error.proto rename to google/ads/googleads/v18/errors/bidding_error.proto index 615878f24..8de81bf7e 100644 --- a/google/ads/googleads/v15/errors/bidding_error.proto +++ b/google/ads/googleads/v18/errors/bidding_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "BiddingErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing bidding errors. diff --git a/google/ads/googleads/v15/errors/bidding_strategy_error.proto b/google/ads/googleads/v18/errors/bidding_strategy_error.proto similarity index 83% rename from google/ads/googleads/v15/errors/bidding_strategy_error.proto rename to google/ads/googleads/v18/errors/bidding_strategy_error.proto index 9c829b5b8..545b9b6d3 100644 --- a/google/ads/googleads/v15/errors/bidding_strategy_error.proto +++ b/google/ads/googleads/v18/errors/bidding_strategy_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "BiddingStrategyErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing bidding strategy errors. diff --git a/google/ads/googleads/v15/errors/billing_setup_error.proto b/google/ads/googleads/v18/errors/billing_setup_error.proto similarity index 91% rename from google/ads/googleads/v15/errors/billing_setup_error.proto rename to google/ads/googleads/v18/errors/billing_setup_error.proto index 8e00a0344..5bb17c5a9 100644 --- a/google/ads/googleads/v15/errors/billing_setup_error.proto +++ b/google/ads/googleads/v18/errors/billing_setup_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "BillingSetupErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing billing setup errors. diff --git a/google/ads/googleads/v15/errors/campaign_budget_error.proto b/google/ads/googleads/v18/errors/campaign_budget_error.proto similarity index 90% rename from google/ads/googleads/v15/errors/campaign_budget_error.proto rename to google/ads/googleads/v18/errors/campaign_budget_error.proto index 46b72cb5b..5dcfaebed 100644 --- a/google/ads/googleads/v15/errors/campaign_budget_error.proto +++ b/google/ads/googleads/v18/errors/campaign_budget_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CampaignBudgetErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing campaign budget errors. diff --git a/google/ads/googleads/v15/errors/campaign_conversion_goal_error.proto b/google/ads/googleads/v18/errors/campaign_conversion_goal_error.proto similarity index 81% rename from google/ads/googleads/v15/errors/campaign_conversion_goal_error.proto rename to google/ads/googleads/v18/errors/campaign_conversion_goal_error.proto index c046984bf..6198efc94 100644 --- a/google/ads/googleads/v15/errors/campaign_conversion_goal_error.proto +++ b/google/ads/googleads/v18/errors/campaign_conversion_goal_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CampaignConversionGoalErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing campaign conversion goal errors. diff --git a/google/ads/googleads/v15/errors/campaign_criterion_error.proto b/google/ads/googleads/v18/errors/campaign_criterion_error.proto similarity index 86% rename from google/ads/googleads/v15/errors/campaign_criterion_error.proto rename to google/ads/googleads/v18/errors/campaign_criterion_error.proto index 9f856d5a4..c04906252 100644 --- a/google/ads/googleads/v15/errors/campaign_criterion_error.proto +++ b/google/ads/googleads/v18/errors/campaign_criterion_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CampaignCriterionErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing campaign criterion errors. @@ -124,5 +124,12 @@ message CampaignCriterionErrorEnum { // exclusive targeting, broad match campaigns for inclusive targeting or // PMax generated campaigns. CANNOT_ATTACH_BRAND_LIST_TO_NON_QUALIFIED_SEARCH_CAMPAIGN = 26; + + // Campaigns that target all countries and territories are limited to a + // certain number of top-level location exclusions. If removing a criterion + // causes the campaign to target all countries and territories and the + // campaign has more top-level location exclusions than the limit allows, + // then this error is returned. + CANNOT_REMOVE_ALL_LOCATIONS_DUE_TO_TOO_MANY_COUNTRY_EXCLUSIONS = 27; } } diff --git a/google/ads/googleads/v15/errors/campaign_customizer_error.proto b/google/ads/googleads/v18/errors/campaign_customizer_error.proto similarity index 77% rename from google/ads/googleads/v15/errors/campaign_customizer_error.proto rename to google/ads/googleads/v18/errors/campaign_customizer_error.proto index a489c1d02..cb7e6a0de 100644 --- a/google/ads/googleads/v15/errors/campaign_customizer_error.proto +++ b/google/ads/googleads/v18/errors/campaign_customizer_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CampaignCustomizerErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing campaign customizer errors. diff --git a/google/ads/googleads/v15/errors/campaign_draft_error.proto b/google/ads/googleads/v18/errors/campaign_draft_error.proto similarity index 87% rename from google/ads/googleads/v15/errors/campaign_draft_error.proto rename to google/ads/googleads/v18/errors/campaign_draft_error.proto index da4d0bef5..1cc5b0f9b 100644 --- a/google/ads/googleads/v15/errors/campaign_draft_error.proto +++ b/google/ads/googleads/v18/errors/campaign_draft_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CampaignDraftErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing campaign draft errors. diff --git a/google/ads/googleads/v15/errors/campaign_error.proto b/google/ads/googleads/v18/errors/campaign_error.proto similarity index 78% rename from google/ads/googleads/v15/errors/campaign_error.proto rename to google/ads/googleads/v18/errors/campaign_error.proto index 5de382047..2214ea959 100644 --- a/google/ads/googleads/v15/errors/campaign_error.proto +++ b/google/ads/googleads/v18/errors/campaign_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CampaignErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing campaign errors. @@ -286,5 +286,56 @@ message CampaignErrorEnum { // Cannot target the display network without also targeting YouTube. CANNOT_TARGET_DISPLAY_NETWORK_WITHOUT_YOUTUBE = 85; + + // This campaign type cannot be linked to a Comparison Shopping Service + // account. + CANNOT_LINK_TO_COMPARISON_SHOPPING_SERVICE_ACCOUNT = 86; + + // Standard Shopping campaigns that are linked to a Comparison Shopping + // Service account cannot target this network. + CANNOT_TARGET_NETWORK_FOR_COMPARISON_SHOPPING_SERVICE_LINKED_ACCOUNTS = 87; + + // Text asset automation settings can not be modified when there is an + // active Performance Max optimization automatically created assets + // experiment. End the experiment to modify these settings. + CANNOT_MODIFY_TEXT_ASSET_AUTOMATION_WITH_ENABLED_TRIAL = 88; + + // Dynamic text asset cannot be opted out when final URL expansion is opted + // in. + DYNAMIC_TEXT_ASSET_CANNOT_OPT_OUT_WITH_FINAL_URL_EXPANSION_OPT_IN = 89; + + // Can not set a campaign level match type. + CANNOT_SET_CAMPAIGN_KEYWORD_MATCH_TYPE = 90; + + // The campaign level keyword match type cannot be switched to non-broad + // when keyword conversion to broad match is in process. + CANNOT_DISABLE_BROAD_MATCH_WHEN_KEYWORD_CONVERSION_IN_PROCESS = 91; + + // The campaign level keyword match type cannot be switched to non-broad + // when the campaign has any attached brand list or when a brand hint shared + // set is attached to the campaign. + CANNOT_DISABLE_BROAD_MATCH_WHEN_TARGETING_BRANDS = 92; + + // Cannot set campaign level keyword match type to BROAD if the campaign is + // a base campaign with an associated trial that is currently promoting. + CANNOT_ENABLE_BROAD_MATCH_FOR_BASE_CAMPAIGN_WITH_PROMOTING_TRIAL = 93; + + // Cannot set campaign level keyword match type to BROAD if the campaign is + // a trial currently promoting. + CANNOT_ENABLE_BROAD_MATCH_FOR_PROMOTING_TRIAL_CAMPAIGN = 94; + + // Performance Max campaigns with Brand Guidelines enabled require at least + // one business name to be linked as a CampaignAsset. Performance Max + // campaigns for online sales with a product feed must meet this requirement + // only when there are assets that are linked to the campaign's asset + // groups. + REQUIRED_BUSINESS_NAME_ASSET_NOT_LINKED = 95; + + // Performance Max campaigns with Brand Guidelines enabled require at least + // one square logo to be linked as a CampaignAsset. Performance Max + // campaigns for online sales with a product feed must meet this requirement + // only when there are assets that are linked to the campaign's asset + // groups. + REQUIRED_LOGO_ASSET_NOT_LINKED = 96; } } diff --git a/google/ads/googleads/v15/errors/campaign_experiment_error.proto b/google/ads/googleads/v18/errors/campaign_experiment_error.proto similarity index 88% rename from google/ads/googleads/v15/errors/campaign_experiment_error.proto rename to google/ads/googleads/v18/errors/campaign_experiment_error.proto index 931e86dba..a46e30eb0 100644 --- a/google/ads/googleads/v15/errors/campaign_experiment_error.proto +++ b/google/ads/googleads/v18/errors/campaign_experiment_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CampaignExperimentErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing campaign experiment errors. diff --git a/google/ads/googleads/v15/errors/campaign_feed_error.proto b/google/ads/googleads/v18/errors/campaign_feed_error.proto similarity index 85% rename from google/ads/googleads/v15/errors/campaign_feed_error.proto rename to google/ads/googleads/v18/errors/campaign_feed_error.proto index 3a2e2be54..40dc1770f 100644 --- a/google/ads/googleads/v15/errors/campaign_feed_error.proto +++ b/google/ads/googleads/v18/errors/campaign_feed_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CampaignFeedErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing campaign feed errors. diff --git a/google/ads/googleads/v15/errors/campaign_lifecycle_goal_error.proto b/google/ads/googleads/v18/errors/campaign_lifecycle_goal_error.proto similarity index 93% rename from google/ads/googleads/v15/errors/campaign_lifecycle_goal_error.proto rename to google/ads/googleads/v18/errors/campaign_lifecycle_goal_error.proto index 1fdaf9ba3..f95460805 100644 --- a/google/ads/googleads/v15/errors/campaign_lifecycle_goal_error.proto +++ b/google/ads/googleads/v18/errors/campaign_lifecycle_goal_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CampaignLifecycleGoalErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing CampaignLifecycleGoal errors. diff --git a/google/ads/googleads/v15/errors/campaign_shared_set_error.proto b/google/ads/googleads/v18/errors/campaign_shared_set_error.proto similarity index 78% rename from google/ads/googleads/v15/errors/campaign_shared_set_error.proto rename to google/ads/googleads/v18/errors/campaign_shared_set_error.proto index 5fea60bc2..77b35af48 100644 --- a/google/ads/googleads/v15/errors/campaign_shared_set_error.proto +++ b/google/ads/googleads/v18/errors/campaign_shared_set_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CampaignSharedSetErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing campaign shared set errors. diff --git a/google/ads/googleads/v15/errors/change_event_error.proto b/google/ads/googleads/v18/errors/change_event_error.proto similarity index 83% rename from google/ads/googleads/v15/errors/change_event_error.proto rename to google/ads/googleads/v18/errors/change_event_error.proto index 1075fc855..9d150b970 100644 --- a/google/ads/googleads/v15/errors/change_event_error.proto +++ b/google/ads/googleads/v18/errors/change_event_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ChangeEventErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing change event errors. diff --git a/google/ads/googleads/v15/errors/change_status_error.proto b/google/ads/googleads/v18/errors/change_status_error.proto similarity index 83% rename from google/ads/googleads/v15/errors/change_status_error.proto rename to google/ads/googleads/v18/errors/change_status_error.proto index 7e80672fa..7be423554 100644 --- a/google/ads/googleads/v15/errors/change_status_error.proto +++ b/google/ads/googleads/v18/errors/change_status_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ChangeStatusErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing change status errors. diff --git a/google/ads/googleads/v15/errors/collection_size_error.proto b/google/ads/googleads/v18/errors/collection_size_error.proto similarity index 77% rename from google/ads/googleads/v15/errors/collection_size_error.proto rename to google/ads/googleads/v18/errors/collection_size_error.proto index f449fa0d6..3c9b4957d 100644 --- a/google/ads/googleads/v15/errors/collection_size_error.proto +++ b/google/ads/googleads/v18/errors/collection_size_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CollectionSizeErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing collection size errors. diff --git a/google/ads/googleads/v15/errors/context_error.proto b/google/ads/googleads/v18/errors/context_error.proto similarity index 79% rename from google/ads/googleads/v15/errors/context_error.proto rename to google/ads/googleads/v18/errors/context_error.proto index a2bd72ba9..eeaf14bd2 100644 --- a/google/ads/googleads/v15/errors/context_error.proto +++ b/google/ads/googleads/v18/errors/context_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ContextErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing context errors. diff --git a/google/ads/googleads/v15/errors/conversion_action_error.proto b/google/ads/googleads/v18/errors/conversion_action_error.proto similarity index 88% rename from google/ads/googleads/v15/errors/conversion_action_error.proto rename to google/ads/googleads/v18/errors/conversion_action_error.proto index 07602e469..eccd5df7d 100644 --- a/google/ads/googleads/v15/errors/conversion_action_error.proto +++ b/google/ads/googleads/v18/errors/conversion_action_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ConversionActionErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing conversion action errors. diff --git a/google/ads/googleads/v15/errors/conversion_adjustment_upload_error.proto b/google/ads/googleads/v18/errors/conversion_adjustment_upload_error.proto similarity index 93% rename from google/ads/googleads/v15/errors/conversion_adjustment_upload_error.proto rename to google/ads/googleads/v18/errors/conversion_adjustment_upload_error.proto index 8e96dd581..3dee7138d 100644 --- a/google/ads/googleads/v15/errors/conversion_adjustment_upload_error.proto +++ b/google/ads/googleads/v18/errors/conversion_adjustment_upload_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ConversionAdjustmentUploadErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing conversion adjustment upload errors. @@ -140,7 +140,7 @@ message ConversionAdjustmentUploadErrorEnum { // The type of the conversion action specified in the adjustment request // isn't supported for uploading adjustments. A conversion adjustment of // type `RETRACTION` or `RESTATEMENT` is only permitted for conversion - // actions of type `SALESFORCE`, `UPLOAD` or `WEBPAGE`. A conversion + // actions of type `SALESFORCE`, `UPLOAD_CLICK` or `WEBPAGE`. A conversion // adjustment of type `ENHANCEMENT` is only permitted for conversion // actions of type `WEBPAGE`. INVALID_CONVERSION_ACTION_TYPE = 28; diff --git a/google/ads/googleads/v15/errors/conversion_custom_variable_error.proto b/google/ads/googleads/v18/errors/conversion_custom_variable_error.proto similarity index 81% rename from google/ads/googleads/v15/errors/conversion_custom_variable_error.proto rename to google/ads/googleads/v18/errors/conversion_custom_variable_error.proto index 2a3810e79..f5b8768b8 100644 --- a/google/ads/googleads/v15/errors/conversion_custom_variable_error.proto +++ b/google/ads/googleads/v18/errors/conversion_custom_variable_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ConversionCustomVariableErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing conversion custom variable errors. diff --git a/google/ads/googleads/v15/errors/conversion_goal_campaign_config_error.proto b/google/ads/googleads/v18/errors/conversion_goal_campaign_config_error.proto similarity index 86% rename from google/ads/googleads/v15/errors/conversion_goal_campaign_config_error.proto rename to google/ads/googleads/v18/errors/conversion_goal_campaign_config_error.proto index 8731a8f74..a18cf0443 100644 --- a/google/ads/googleads/v15/errors/conversion_goal_campaign_config_error.proto +++ b/google/ads/googleads/v18/errors/conversion_goal_campaign_config_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ConversionGoalCampaignConfigErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing conversion goal campaign config errors. diff --git a/google/ads/googleads/v15/errors/conversion_upload_error.proto b/google/ads/googleads/v18/errors/conversion_upload_error.proto similarity index 96% rename from google/ads/googleads/v15/errors/conversion_upload_error.proto rename to google/ads/googleads/v18/errors/conversion_upload_error.proto index ca72c726e..525d28a5d 100644 --- a/google/ads/googleads/v15/errors/conversion_upload_error.proto +++ b/google/ads/googleads/v18/errors/conversion_upload_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ConversionUploadErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing conversion upload errors. diff --git a/google/ads/googleads/v15/errors/conversion_value_rule_error.proto b/google/ads/googleads/v18/errors/conversion_value_rule_error.proto similarity index 86% rename from google/ads/googleads/v15/errors/conversion_value_rule_error.proto rename to google/ads/googleads/v18/errors/conversion_value_rule_error.proto index 954dcc12a..2e4a5c8e7 100644 --- a/google/ads/googleads/v15/errors/conversion_value_rule_error.proto +++ b/google/ads/googleads/v18/errors/conversion_value_rule_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ConversionValueRuleErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing conversion value rule errors. @@ -84,5 +84,9 @@ message ConversionValueRuleErrorEnum { // When a value rule is created, it shouldn't have REMOVED status. CANNOT_ADD_RULE_WITH_STATUS_REMOVED = 13; + + // The value rule's itinerary condition contains invalid travel start day, + // it contains no day of week. + NO_DAY_OF_WEEK_SELECTED = 14; } } diff --git a/google/ads/googleads/v15/errors/conversion_value_rule_set_error.proto b/google/ads/googleads/v18/errors/conversion_value_rule_set_error.proto similarity index 88% rename from google/ads/googleads/v15/errors/conversion_value_rule_set_error.proto rename to google/ads/googleads/v18/errors/conversion_value_rule_set_error.proto index 18d1a5537..d44f77100 100644 --- a/google/ads/googleads/v15/errors/conversion_value_rule_set_error.proto +++ b/google/ads/googleads/v18/errors/conversion_value_rule_set_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ConversionValueRuleSetErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing conversion value rule set errors. @@ -94,5 +94,9 @@ message ConversionValueRuleSetErrorEnum { // 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; + + // Dimension ITINERARY can only be used on campaigns with an advertising + // channel type of PERFORMANCE_MAX or HOTEL. + DIMENSION_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE = 15; } } diff --git a/google/ads/googleads/v15/errors/country_code_error.proto b/google/ads/googleads/v18/errors/country_code_error.proto similarity index 77% rename from google/ads/googleads/v15/errors/country_code_error.proto rename to google/ads/googleads/v18/errors/country_code_error.proto index ec3622aea..be332cd1c 100644 --- a/google/ads/googleads/v15/errors/country_code_error.proto +++ b/google/ads/googleads/v18/errors/country_code_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CountryCodeErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing country code errors. diff --git a/google/ads/googleads/v15/errors/criterion_error.proto b/google/ads/googleads/v18/errors/criterion_error.proto similarity index 98% rename from google/ads/googleads/v15/errors/criterion_error.proto rename to google/ads/googleads/v18/errors/criterion_error.proto index 82e690408..28049e1c4 100644 --- a/google/ads/googleads/v15/errors/criterion_error.proto +++ b/google/ads/googleads/v18/errors/criterion_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CriterionErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing criterion errors. diff --git a/google/ads/googleads/v15/errors/currency_code_error.proto b/google/ads/googleads/v18/errors/currency_code_error.proto similarity index 77% rename from google/ads/googleads/v15/errors/currency_code_error.proto rename to google/ads/googleads/v18/errors/currency_code_error.proto index e622d374b..56adcda82 100644 --- a/google/ads/googleads/v15/errors/currency_code_error.proto +++ b/google/ads/googleads/v18/errors/currency_code_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CurrencyCodeErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing currency code errors. diff --git a/google/ads/googleads/v15/errors/currency_error.proto b/google/ads/googleads/v18/errors/currency_error.proto similarity index 77% rename from google/ads/googleads/v15/errors/currency_error.proto rename to google/ads/googleads/v18/errors/currency_error.proto index 09538d56a..619486786 100644 --- a/google/ads/googleads/v15/errors/currency_error.proto +++ b/google/ads/googleads/v18/errors/currency_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CurrencyErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing currency errors. diff --git a/google/ads/googleads/v15/errors/custom_audience_error.proto b/google/ads/googleads/v18/errors/custom_audience_error.proto similarity index 84% rename from google/ads/googleads/v15/errors/custom_audience_error.proto rename to google/ads/googleads/v18/errors/custom_audience_error.proto index cbe6ddd53..f4d2f17f7 100644 --- a/google/ads/googleads/v15/errors/custom_audience_error.proto +++ b/google/ads/googleads/v18/errors/custom_audience_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CustomAudienceErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing custom audience errors. diff --git a/google/ads/googleads/v15/errors/custom_conversion_goal_error.proto b/google/ads/googleads/v18/errors/custom_conversion_goal_error.proto similarity index 84% rename from google/ads/googleads/v15/errors/custom_conversion_goal_error.proto rename to google/ads/googleads/v18/errors/custom_conversion_goal_error.proto index 7a812da4a..c5b516e45 100644 --- a/google/ads/googleads/v15/errors/custom_conversion_goal_error.proto +++ b/google/ads/googleads/v18/errors/custom_conversion_goal_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CustomConversionGoalErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing CustomConversionGoal errors. diff --git a/google/ads/googleads/v15/errors/custom_interest_error.proto b/google/ads/googleads/v18/errors/custom_interest_error.proto similarity index 84% rename from google/ads/googleads/v15/errors/custom_interest_error.proto rename to google/ads/googleads/v18/errors/custom_interest_error.proto index 21fd5a370..ca3b705e3 100644 --- a/google/ads/googleads/v15/errors/custom_interest_error.proto +++ b/google/ads/googleads/v18/errors/custom_interest_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CustomInterestErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing custom interest errors. diff --git a/google/ads/googleads/v15/errors/customer_client_link_error.proto b/google/ads/googleads/v18/errors/customer_client_link_error.proto similarity index 85% rename from google/ads/googleads/v15/errors/customer_client_link_error.proto rename to google/ads/googleads/v18/errors/customer_client_link_error.proto index 59640c073..5e27621a2 100644 --- a/google/ads/googleads/v15/errors/customer_client_link_error.proto +++ b/google/ads/googleads/v18/errors/customer_client_link_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CustomerClientLinkErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing CustomerClientLink errors. diff --git a/google/ads/googleads/v15/errors/customer_customizer_error.proto b/google/ads/googleads/v18/errors/customer_customizer_error.proto similarity index 77% rename from google/ads/googleads/v15/errors/customer_customizer_error.proto rename to google/ads/googleads/v18/errors/customer_customizer_error.proto index c9f574fb5..7df3951fe 100644 --- a/google/ads/googleads/v15/errors/customer_customizer_error.proto +++ b/google/ads/googleads/v18/errors/customer_customizer_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CustomerCustomizerErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing customer customizer errors. diff --git a/google/ads/googleads/v15/errors/customer_error.proto b/google/ads/googleads/v18/errors/customer_error.proto similarity index 80% rename from google/ads/googleads/v15/errors/customer_error.proto rename to google/ads/googleads/v18/errors/customer_error.proto index f965f598d..ac76bd107 100644 --- a/google/ads/googleads/v15/errors/customer_error.proto +++ b/google/ads/googleads/v18/errors/customer_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CustomerErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Container for enum describing possible customer errors. message CustomerErrorEnum { diff --git a/google/ads/googleads/v15/errors/customer_feed_error.proto b/google/ads/googleads/v18/errors/customer_feed_error.proto similarity index 84% rename from google/ads/googleads/v15/errors/customer_feed_error.proto rename to google/ads/googleads/v18/errors/customer_feed_error.proto index 9df289be7..4b6e2a3af 100644 --- a/google/ads/googleads/v15/errors/customer_feed_error.proto +++ b/google/ads/googleads/v18/errors/customer_feed_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CustomerFeedErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing customer feed errors. diff --git a/google/ads/googleads/v15/errors/customer_lifecycle_goal_error.proto b/google/ads/googleads/v18/errors/customer_lifecycle_goal_error.proto similarity index 89% rename from google/ads/googleads/v15/errors/customer_lifecycle_goal_error.proto rename to google/ads/googleads/v18/errors/customer_lifecycle_goal_error.proto index d56012363..43e44fd01 100644 --- a/google/ads/googleads/v15/errors/customer_lifecycle_goal_error.proto +++ b/google/ads/googleads/v18/errors/customer_lifecycle_goal_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CustomerLifecycleGoalErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing CustomerLifecycleGoal errors. diff --git a/google/ads/googleads/v15/errors/customer_manager_link_error.proto b/google/ads/googleads/v18/errors/customer_manager_link_error.proto similarity index 86% rename from google/ads/googleads/v15/errors/customer_manager_link_error.proto rename to google/ads/googleads/v18/errors/customer_manager_link_error.proto index 689fba21b..f34893abf 100644 --- a/google/ads/googleads/v15/errors/customer_manager_link_error.proto +++ b/google/ads/googleads/v18/errors/customer_manager_link_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CustomerManagerLinkErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing CustomerManagerLink errors. diff --git a/google/ads/googleads/v15/errors/customer_sk_ad_network_conversion_value_schema_error.proto b/google/ads/googleads/v18/errors/customer_sk_ad_network_conversion_value_schema_error.proto similarity index 75% rename from google/ads/googleads/v15/errors/customer_sk_ad_network_conversion_value_schema_error.proto rename to google/ads/googleads/v18/errors/customer_sk_ad_network_conversion_value_schema_error.proto index dc1c88ccb..140fa1705 100644 --- a/google/ads/googleads/v15/errors/customer_sk_ad_network_conversion_value_schema_error.proto +++ b/google/ads/googleads/v18/errors/customer_sk_ad_network_conversion_value_schema_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CustomerSkAdNetworkConversionValueSchemaErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing CustomerSkAdNetworkConversionValueSchema errors. @@ -49,5 +49,11 @@ message CustomerSkAdNetworkConversionValueSchemaErrorEnum { // The customer link id provided could not be found. LINK_CODE_NOT_FOUND = 5; + + // The SkAdNetwork event counter provided is invalid. + INVALID_EVENT_COUNTER = 7; + + // The SkAdNetwork event name provided is invalid. + INVALID_EVENT_NAME = 8; } } diff --git a/google/ads/googleads/v15/errors/customer_user_access_error.proto b/google/ads/googleads/v18/errors/customer_user_access_error.proto similarity index 83% rename from google/ads/googleads/v15/errors/customer_user_access_error.proto rename to google/ads/googleads/v18/errors/customer_user_access_error.proto index 2cda8bba4..7ff2a6b95 100644 --- a/google/ads/googleads/v15/errors/customer_user_access_error.proto +++ b/google/ads/googleads/v18/errors/customer_user_access_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CustomerUserAccessErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing CustomerUserAccess errors. diff --git a/google/ads/googleads/v15/errors/customizer_attribute_error.proto b/google/ads/googleads/v18/errors/customizer_attribute_error.proto similarity index 79% rename from google/ads/googleads/v15/errors/customizer_attribute_error.proto rename to google/ads/googleads/v18/errors/customizer_attribute_error.proto index ad58c3530..f754e542a 100644 --- a/google/ads/googleads/v15/errors/customizer_attribute_error.proto +++ b/google/ads/googleads/v18/errors/customizer_attribute_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "CustomizerAttributeErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing customizer attribute errors. diff --git a/google/ads/googleads/v15/errors/database_error.proto b/google/ads/googleads/v18/errors/database_error.proto similarity index 81% rename from google/ads/googleads/v15/errors/database_error.proto rename to google/ads/googleads/v18/errors/database_error.proto index 8ab2f3712..5dfa74e2c 100644 --- a/google/ads/googleads/v15/errors/database_error.proto +++ b/google/ads/googleads/v18/errors/database_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "DatabaseErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing database errors. diff --git a/google/ads/googleads/v15/errors/date_error.proto b/google/ads/googleads/v18/errors/date_error.proto similarity index 85% rename from google/ads/googleads/v15/errors/date_error.proto rename to google/ads/googleads/v18/errors/date_error.proto index fc0359bf4..bb726d7fe 100644 --- a/google/ads/googleads/v15/errors/date_error.proto +++ b/google/ads/googleads/v18/errors/date_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "DateErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing date errors. diff --git a/google/ads/googleads/v15/errors/date_range_error.proto b/google/ads/googleads/v18/errors/date_range_error.proto similarity index 81% rename from google/ads/googleads/v15/errors/date_range_error.proto rename to google/ads/googleads/v18/errors/date_range_error.proto index 876ca15a0..96570dce7 100644 --- a/google/ads/googleads/v15/errors/date_range_error.proto +++ b/google/ads/googleads/v18/errors/date_range_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "DateRangeErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing date range errors. diff --git a/google/ads/googleads/v15/errors/distinct_error.proto b/google/ads/googleads/v18/errors/distinct_error.proto similarity index 77% rename from google/ads/googleads/v15/errors/distinct_error.proto rename to google/ads/googleads/v18/errors/distinct_error.proto index c3f06355e..8c01e3aa8 100644 --- a/google/ads/googleads/v15/errors/distinct_error.proto +++ b/google/ads/googleads/v18/errors/distinct_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "DistinctErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing distinct errors. diff --git a/google/ads/googleads/v15/errors/enum_error.proto b/google/ads/googleads/v18/errors/enum_error.proto similarity index 76% rename from google/ads/googleads/v15/errors/enum_error.proto rename to google/ads/googleads/v18/errors/enum_error.proto index 5147bf610..b9baaf6b3 100644 --- a/google/ads/googleads/v15/errors/enum_error.proto +++ b/google/ads/googleads/v18/errors/enum_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "EnumErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing enum errors. diff --git a/google/ads/googleads/v15/errors/errors.proto b/google/ads/googleads/v18/errors/errors.proto similarity index 68% rename from google/ads/googleads/v15/errors/errors.proto rename to google/ads/googleads/v18/errors/errors.proto index 49bec72a9..8b59f603d 100644 --- a/google/ads/googleads/v15/errors/errors.proto +++ b/google/ads/googleads/v18/errors/errors.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,171 +14,177 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; - -import "google/ads/googleads/v15/common/policy.proto"; -import "google/ads/googleads/v15/common/value.proto"; -import "google/ads/googleads/v15/enums/resource_limit_type.proto"; -import "google/ads/googleads/v15/errors/access_invitation_error.proto"; -import "google/ads/googleads/v15/errors/account_budget_proposal_error.proto"; -import "google/ads/googleads/v15/errors/account_link_error.proto"; -import "google/ads/googleads/v15/errors/ad_customizer_error.proto"; -import "google/ads/googleads/v15/errors/ad_error.proto"; -import "google/ads/googleads/v15/errors/ad_group_ad_error.proto"; -import "google/ads/googleads/v15/errors/ad_group_bid_modifier_error.proto"; -import "google/ads/googleads/v15/errors/ad_group_criterion_customizer_error.proto"; -import "google/ads/googleads/v15/errors/ad_group_criterion_error.proto"; -import "google/ads/googleads/v15/errors/ad_group_customizer_error.proto"; -import "google/ads/googleads/v15/errors/ad_group_error.proto"; -import "google/ads/googleads/v15/errors/ad_group_feed_error.proto"; -import "google/ads/googleads/v15/errors/ad_parameter_error.proto"; -import "google/ads/googleads/v15/errors/ad_sharing_error.proto"; -import "google/ads/googleads/v15/errors/adx_error.proto"; -import "google/ads/googleads/v15/errors/asset_error.proto"; -import "google/ads/googleads/v15/errors/asset_group_asset_error.proto"; -import "google/ads/googleads/v15/errors/asset_group_error.proto"; -import "google/ads/googleads/v15/errors/asset_group_listing_group_filter_error.proto"; -import "google/ads/googleads/v15/errors/asset_group_signal_error.proto"; -import "google/ads/googleads/v15/errors/asset_link_error.proto"; -import "google/ads/googleads/v15/errors/asset_set_asset_error.proto"; -import "google/ads/googleads/v15/errors/asset_set_error.proto"; -import "google/ads/googleads/v15/errors/asset_set_link_error.proto"; -import "google/ads/googleads/v15/errors/audience_error.proto"; -import "google/ads/googleads/v15/errors/audience_insights_error.proto"; -import "google/ads/googleads/v15/errors/authentication_error.proto"; -import "google/ads/googleads/v15/errors/authorization_error.proto"; -import "google/ads/googleads/v15/errors/batch_job_error.proto"; -import "google/ads/googleads/v15/errors/bidding_error.proto"; -import "google/ads/googleads/v15/errors/bidding_strategy_error.proto"; -import "google/ads/googleads/v15/errors/billing_setup_error.proto"; -import "google/ads/googleads/v15/errors/campaign_budget_error.proto"; -import "google/ads/googleads/v15/errors/campaign_conversion_goal_error.proto"; -import "google/ads/googleads/v15/errors/campaign_criterion_error.proto"; -import "google/ads/googleads/v15/errors/campaign_customizer_error.proto"; -import "google/ads/googleads/v15/errors/campaign_draft_error.proto"; -import "google/ads/googleads/v15/errors/campaign_error.proto"; -import "google/ads/googleads/v15/errors/campaign_experiment_error.proto"; -import "google/ads/googleads/v15/errors/campaign_feed_error.proto"; -import "google/ads/googleads/v15/errors/campaign_lifecycle_goal_error.proto"; -import "google/ads/googleads/v15/errors/campaign_shared_set_error.proto"; -import "google/ads/googleads/v15/errors/change_event_error.proto"; -import "google/ads/googleads/v15/errors/change_status_error.proto"; -import "google/ads/googleads/v15/errors/collection_size_error.proto"; -import "google/ads/googleads/v15/errors/context_error.proto"; -import "google/ads/googleads/v15/errors/conversion_action_error.proto"; -import "google/ads/googleads/v15/errors/conversion_adjustment_upload_error.proto"; -import "google/ads/googleads/v15/errors/conversion_custom_variable_error.proto"; -import "google/ads/googleads/v15/errors/conversion_goal_campaign_config_error.proto"; -import "google/ads/googleads/v15/errors/conversion_upload_error.proto"; -import "google/ads/googleads/v15/errors/conversion_value_rule_error.proto"; -import "google/ads/googleads/v15/errors/conversion_value_rule_set_error.proto"; -import "google/ads/googleads/v15/errors/country_code_error.proto"; -import "google/ads/googleads/v15/errors/criterion_error.proto"; -import "google/ads/googleads/v15/errors/currency_code_error.proto"; -import "google/ads/googleads/v15/errors/currency_error.proto"; -import "google/ads/googleads/v15/errors/custom_audience_error.proto"; -import "google/ads/googleads/v15/errors/custom_conversion_goal_error.proto"; -import "google/ads/googleads/v15/errors/custom_interest_error.proto"; -import "google/ads/googleads/v15/errors/customer_client_link_error.proto"; -import "google/ads/googleads/v15/errors/customer_customizer_error.proto"; -import "google/ads/googleads/v15/errors/customer_error.proto"; -import "google/ads/googleads/v15/errors/customer_feed_error.proto"; -import "google/ads/googleads/v15/errors/customer_lifecycle_goal_error.proto"; -import "google/ads/googleads/v15/errors/customer_manager_link_error.proto"; -import "google/ads/googleads/v15/errors/customer_sk_ad_network_conversion_value_schema_error.proto"; -import "google/ads/googleads/v15/errors/customer_user_access_error.proto"; -import "google/ads/googleads/v15/errors/customizer_attribute_error.proto"; -import "google/ads/googleads/v15/errors/database_error.proto"; -import "google/ads/googleads/v15/errors/date_error.proto"; -import "google/ads/googleads/v15/errors/date_range_error.proto"; -import "google/ads/googleads/v15/errors/distinct_error.proto"; -import "google/ads/googleads/v15/errors/enum_error.proto"; -import "google/ads/googleads/v15/errors/experiment_arm_error.proto"; -import "google/ads/googleads/v15/errors/experiment_error.proto"; -import "google/ads/googleads/v15/errors/extension_feed_item_error.proto"; -import "google/ads/googleads/v15/errors/extension_setting_error.proto"; -import "google/ads/googleads/v15/errors/feed_attribute_reference_error.proto"; -import "google/ads/googleads/v15/errors/feed_error.proto"; -import "google/ads/googleads/v15/errors/feed_item_error.proto"; -import "google/ads/googleads/v15/errors/feed_item_set_error.proto"; -import "google/ads/googleads/v15/errors/feed_item_set_link_error.proto"; -import "google/ads/googleads/v15/errors/feed_item_target_error.proto"; -import "google/ads/googleads/v15/errors/feed_item_validation_error.proto"; -import "google/ads/googleads/v15/errors/feed_mapping_error.proto"; -import "google/ads/googleads/v15/errors/field_error.proto"; -import "google/ads/googleads/v15/errors/field_mask_error.proto"; -import "google/ads/googleads/v15/errors/function_error.proto"; -import "google/ads/googleads/v15/errors/function_parsing_error.proto"; -import "google/ads/googleads/v15/errors/geo_target_constant_suggestion_error.proto"; -import "google/ads/googleads/v15/errors/header_error.proto"; -import "google/ads/googleads/v15/errors/id_error.proto"; -import "google/ads/googleads/v15/errors/image_error.proto"; -import "google/ads/googleads/v15/errors/internal_error.proto"; -import "google/ads/googleads/v15/errors/invoice_error.proto"; -import "google/ads/googleads/v15/errors/keyword_plan_ad_group_error.proto"; -import "google/ads/googleads/v15/errors/keyword_plan_ad_group_keyword_error.proto"; -import "google/ads/googleads/v15/errors/keyword_plan_campaign_error.proto"; -import "google/ads/googleads/v15/errors/keyword_plan_campaign_keyword_error.proto"; -import "google/ads/googleads/v15/errors/keyword_plan_error.proto"; -import "google/ads/googleads/v15/errors/keyword_plan_idea_error.proto"; -import "google/ads/googleads/v15/errors/label_error.proto"; -import "google/ads/googleads/v15/errors/language_code_error.proto"; -import "google/ads/googleads/v15/errors/list_operation_error.proto"; -import "google/ads/googleads/v15/errors/manager_link_error.proto"; -import "google/ads/googleads/v15/errors/media_bundle_error.proto"; -import "google/ads/googleads/v15/errors/media_file_error.proto"; -import "google/ads/googleads/v15/errors/media_upload_error.proto"; -import "google/ads/googleads/v15/errors/merchant_center_error.proto"; -import "google/ads/googleads/v15/errors/multiplier_error.proto"; -import "google/ads/googleads/v15/errors/mutate_error.proto"; -import "google/ads/googleads/v15/errors/new_resource_creation_error.proto"; -import "google/ads/googleads/v15/errors/not_allowlisted_error.proto"; -import "google/ads/googleads/v15/errors/not_empty_error.proto"; -import "google/ads/googleads/v15/errors/null_error.proto"; -import "google/ads/googleads/v15/errors/offline_user_data_job_error.proto"; -import "google/ads/googleads/v15/errors/operation_access_denied_error.proto"; -import "google/ads/googleads/v15/errors/operator_error.proto"; -import "google/ads/googleads/v15/errors/partial_failure_error.proto"; -import "google/ads/googleads/v15/errors/payments_account_error.proto"; -import "google/ads/googleads/v15/errors/policy_finding_error.proto"; -import "google/ads/googleads/v15/errors/policy_validation_parameter_error.proto"; -import "google/ads/googleads/v15/errors/policy_violation_error.proto"; -import "google/ads/googleads/v15/errors/product_link_error.proto"; -import "google/ads/googleads/v15/errors/product_link_invitation_error.proto"; -import "google/ads/googleads/v15/errors/query_error.proto"; -import "google/ads/googleads/v15/errors/quota_error.proto"; -import "google/ads/googleads/v15/errors/range_error.proto"; -import "google/ads/googleads/v15/errors/reach_plan_error.proto"; -import "google/ads/googleads/v15/errors/recommendation_error.proto"; -import "google/ads/googleads/v15/errors/recommendation_subscription_error.proto"; -import "google/ads/googleads/v15/errors/region_code_error.proto"; -import "google/ads/googleads/v15/errors/request_error.proto"; -import "google/ads/googleads/v15/errors/resource_access_denied_error.proto"; -import "google/ads/googleads/v15/errors/resource_count_limit_exceeded_error.proto"; -import "google/ads/googleads/v15/errors/search_term_insight_error.proto"; -import "google/ads/googleads/v15/errors/setting_error.proto"; -import "google/ads/googleads/v15/errors/shared_criterion_error.proto"; -import "google/ads/googleads/v15/errors/shared_set_error.proto"; -import "google/ads/googleads/v15/errors/size_limit_error.proto"; -import "google/ads/googleads/v15/errors/smart_campaign_error.proto"; -import "google/ads/googleads/v15/errors/string_format_error.proto"; -import "google/ads/googleads/v15/errors/string_length_error.proto"; -import "google/ads/googleads/v15/errors/third_party_app_analytics_link_error.proto"; -import "google/ads/googleads/v15/errors/time_zone_error.proto"; -import "google/ads/googleads/v15/errors/url_field_error.proto"; -import "google/ads/googleads/v15/errors/user_data_error.proto"; -import "google/ads/googleads/v15/errors/user_list_error.proto"; -import "google/ads/googleads/v15/errors/youtube_video_registration_error.proto"; +package google.ads.googleads.v18.errors; + +import "google/ads/googleads/v18/common/policy.proto"; +import "google/ads/googleads/v18/common/value.proto"; +import "google/ads/googleads/v18/enums/resource_limit_type.proto"; +import "google/ads/googleads/v18/errors/access_invitation_error.proto"; +import "google/ads/googleads/v18/errors/account_budget_proposal_error.proto"; +import "google/ads/googleads/v18/errors/account_link_error.proto"; +import "google/ads/googleads/v18/errors/ad_customizer_error.proto"; +import "google/ads/googleads/v18/errors/ad_error.proto"; +import "google/ads/googleads/v18/errors/ad_group_ad_error.proto"; +import "google/ads/googleads/v18/errors/ad_group_bid_modifier_error.proto"; +import "google/ads/googleads/v18/errors/ad_group_criterion_customizer_error.proto"; +import "google/ads/googleads/v18/errors/ad_group_criterion_error.proto"; +import "google/ads/googleads/v18/errors/ad_group_customizer_error.proto"; +import "google/ads/googleads/v18/errors/ad_group_error.proto"; +import "google/ads/googleads/v18/errors/ad_group_feed_error.proto"; +import "google/ads/googleads/v18/errors/ad_parameter_error.proto"; +import "google/ads/googleads/v18/errors/ad_sharing_error.proto"; +import "google/ads/googleads/v18/errors/adx_error.proto"; +import "google/ads/googleads/v18/errors/asset_error.proto"; +import "google/ads/googleads/v18/errors/asset_group_asset_error.proto"; +import "google/ads/googleads/v18/errors/asset_group_error.proto"; +import "google/ads/googleads/v18/errors/asset_group_listing_group_filter_error.proto"; +import "google/ads/googleads/v18/errors/asset_group_signal_error.proto"; +import "google/ads/googleads/v18/errors/asset_link_error.proto"; +import "google/ads/googleads/v18/errors/asset_set_asset_error.proto"; +import "google/ads/googleads/v18/errors/asset_set_error.proto"; +import "google/ads/googleads/v18/errors/asset_set_link_error.proto"; +import "google/ads/googleads/v18/errors/audience_error.proto"; +import "google/ads/googleads/v18/errors/audience_insights_error.proto"; +import "google/ads/googleads/v18/errors/authentication_error.proto"; +import "google/ads/googleads/v18/errors/authorization_error.proto"; +import "google/ads/googleads/v18/errors/automatically_created_asset_removal_error.proto"; +import "google/ads/googleads/v18/errors/batch_job_error.proto"; +import "google/ads/googleads/v18/errors/bidding_error.proto"; +import "google/ads/googleads/v18/errors/bidding_strategy_error.proto"; +import "google/ads/googleads/v18/errors/billing_setup_error.proto"; +import "google/ads/googleads/v18/errors/campaign_budget_error.proto"; +import "google/ads/googleads/v18/errors/campaign_conversion_goal_error.proto"; +import "google/ads/googleads/v18/errors/campaign_criterion_error.proto"; +import "google/ads/googleads/v18/errors/campaign_customizer_error.proto"; +import "google/ads/googleads/v18/errors/campaign_draft_error.proto"; +import "google/ads/googleads/v18/errors/campaign_error.proto"; +import "google/ads/googleads/v18/errors/campaign_experiment_error.proto"; +import "google/ads/googleads/v18/errors/campaign_feed_error.proto"; +import "google/ads/googleads/v18/errors/campaign_lifecycle_goal_error.proto"; +import "google/ads/googleads/v18/errors/campaign_shared_set_error.proto"; +import "google/ads/googleads/v18/errors/change_event_error.proto"; +import "google/ads/googleads/v18/errors/change_status_error.proto"; +import "google/ads/googleads/v18/errors/collection_size_error.proto"; +import "google/ads/googleads/v18/errors/context_error.proto"; +import "google/ads/googleads/v18/errors/conversion_action_error.proto"; +import "google/ads/googleads/v18/errors/conversion_adjustment_upload_error.proto"; +import "google/ads/googleads/v18/errors/conversion_custom_variable_error.proto"; +import "google/ads/googleads/v18/errors/conversion_goal_campaign_config_error.proto"; +import "google/ads/googleads/v18/errors/conversion_upload_error.proto"; +import "google/ads/googleads/v18/errors/conversion_value_rule_error.proto"; +import "google/ads/googleads/v18/errors/conversion_value_rule_set_error.proto"; +import "google/ads/googleads/v18/errors/country_code_error.proto"; +import "google/ads/googleads/v18/errors/criterion_error.proto"; +import "google/ads/googleads/v18/errors/currency_code_error.proto"; +import "google/ads/googleads/v18/errors/currency_error.proto"; +import "google/ads/googleads/v18/errors/custom_audience_error.proto"; +import "google/ads/googleads/v18/errors/custom_conversion_goal_error.proto"; +import "google/ads/googleads/v18/errors/custom_interest_error.proto"; +import "google/ads/googleads/v18/errors/customer_client_link_error.proto"; +import "google/ads/googleads/v18/errors/customer_customizer_error.proto"; +import "google/ads/googleads/v18/errors/customer_error.proto"; +import "google/ads/googleads/v18/errors/customer_feed_error.proto"; +import "google/ads/googleads/v18/errors/customer_lifecycle_goal_error.proto"; +import "google/ads/googleads/v18/errors/customer_manager_link_error.proto"; +import "google/ads/googleads/v18/errors/customer_sk_ad_network_conversion_value_schema_error.proto"; +import "google/ads/googleads/v18/errors/customer_user_access_error.proto"; +import "google/ads/googleads/v18/errors/customizer_attribute_error.proto"; +import "google/ads/googleads/v18/errors/database_error.proto"; +import "google/ads/googleads/v18/errors/date_error.proto"; +import "google/ads/googleads/v18/errors/date_range_error.proto"; +import "google/ads/googleads/v18/errors/distinct_error.proto"; +import "google/ads/googleads/v18/errors/enum_error.proto"; +import "google/ads/googleads/v18/errors/experiment_arm_error.proto"; +import "google/ads/googleads/v18/errors/experiment_error.proto"; +import "google/ads/googleads/v18/errors/extension_feed_item_error.proto"; +import "google/ads/googleads/v18/errors/extension_setting_error.proto"; +import "google/ads/googleads/v18/errors/feed_attribute_reference_error.proto"; +import "google/ads/googleads/v18/errors/feed_error.proto"; +import "google/ads/googleads/v18/errors/feed_item_error.proto"; +import "google/ads/googleads/v18/errors/feed_item_set_error.proto"; +import "google/ads/googleads/v18/errors/feed_item_set_link_error.proto"; +import "google/ads/googleads/v18/errors/feed_item_target_error.proto"; +import "google/ads/googleads/v18/errors/feed_item_validation_error.proto"; +import "google/ads/googleads/v18/errors/feed_mapping_error.proto"; +import "google/ads/googleads/v18/errors/field_error.proto"; +import "google/ads/googleads/v18/errors/field_mask_error.proto"; +import "google/ads/googleads/v18/errors/function_error.proto"; +import "google/ads/googleads/v18/errors/function_parsing_error.proto"; +import "google/ads/googleads/v18/errors/geo_target_constant_suggestion_error.proto"; +import "google/ads/googleads/v18/errors/header_error.proto"; +import "google/ads/googleads/v18/errors/id_error.proto"; +import "google/ads/googleads/v18/errors/identity_verification_error.proto"; +import "google/ads/googleads/v18/errors/image_error.proto"; +import "google/ads/googleads/v18/errors/internal_error.proto"; +import "google/ads/googleads/v18/errors/invoice_error.proto"; +import "google/ads/googleads/v18/errors/keyword_plan_ad_group_error.proto"; +import "google/ads/googleads/v18/errors/keyword_plan_ad_group_keyword_error.proto"; +import "google/ads/googleads/v18/errors/keyword_plan_campaign_error.proto"; +import "google/ads/googleads/v18/errors/keyword_plan_campaign_keyword_error.proto"; +import "google/ads/googleads/v18/errors/keyword_plan_error.proto"; +import "google/ads/googleads/v18/errors/keyword_plan_idea_error.proto"; +import "google/ads/googleads/v18/errors/label_error.proto"; +import "google/ads/googleads/v18/errors/language_code_error.proto"; +import "google/ads/googleads/v18/errors/list_operation_error.proto"; +import "google/ads/googleads/v18/errors/manager_link_error.proto"; +import "google/ads/googleads/v18/errors/media_bundle_error.proto"; +import "google/ads/googleads/v18/errors/media_file_error.proto"; +import "google/ads/googleads/v18/errors/media_upload_error.proto"; +import "google/ads/googleads/v18/errors/merchant_center_error.proto"; +import "google/ads/googleads/v18/errors/multiplier_error.proto"; +import "google/ads/googleads/v18/errors/mutate_error.proto"; +import "google/ads/googleads/v18/errors/new_resource_creation_error.proto"; +import "google/ads/googleads/v18/errors/not_allowlisted_error.proto"; +import "google/ads/googleads/v18/errors/not_empty_error.proto"; +import "google/ads/googleads/v18/errors/null_error.proto"; +import "google/ads/googleads/v18/errors/offline_user_data_job_error.proto"; +import "google/ads/googleads/v18/errors/operation_access_denied_error.proto"; +import "google/ads/googleads/v18/errors/operator_error.proto"; +import "google/ads/googleads/v18/errors/partial_failure_error.proto"; +import "google/ads/googleads/v18/errors/payments_account_error.proto"; +import "google/ads/googleads/v18/errors/policy_finding_error.proto"; +import "google/ads/googleads/v18/errors/policy_validation_parameter_error.proto"; +import "google/ads/googleads/v18/errors/policy_violation_error.proto"; +import "google/ads/googleads/v18/errors/product_link_error.proto"; +import "google/ads/googleads/v18/errors/product_link_invitation_error.proto"; +import "google/ads/googleads/v18/errors/query_error.proto"; +import "google/ads/googleads/v18/errors/quota_error.proto"; +import "google/ads/googleads/v18/errors/range_error.proto"; +import "google/ads/googleads/v18/errors/reach_plan_error.proto"; +import "google/ads/googleads/v18/errors/recommendation_error.proto"; +import "google/ads/googleads/v18/errors/recommendation_subscription_error.proto"; +import "google/ads/googleads/v18/errors/region_code_error.proto"; +import "google/ads/googleads/v18/errors/request_error.proto"; +import "google/ads/googleads/v18/errors/resource_access_denied_error.proto"; +import "google/ads/googleads/v18/errors/resource_count_limit_exceeded_error.proto"; +import "google/ads/googleads/v18/errors/search_term_insight_error.proto"; +import "google/ads/googleads/v18/errors/setting_error.proto"; +import "google/ads/googleads/v18/errors/shareable_preview_error.proto"; +import "google/ads/googleads/v18/errors/shared_criterion_error.proto"; +import "google/ads/googleads/v18/errors/shared_set_error.proto"; +import "google/ads/googleads/v18/errors/shopping_product_error.proto"; +import "google/ads/googleads/v18/errors/size_limit_error.proto"; +import "google/ads/googleads/v18/errors/smart_campaign_error.proto"; +import "google/ads/googleads/v18/errors/string_format_error.proto"; +import "google/ads/googleads/v18/errors/string_length_error.proto"; +import "google/ads/googleads/v18/errors/third_party_app_analytics_link_error.proto"; +import "google/ads/googleads/v18/errors/time_zone_error.proto"; +import "google/ads/googleads/v18/errors/url_field_error.proto"; +import "google/ads/googleads/v18/errors/user_data_error.proto"; +import "google/ads/googleads/v18/errors/user_list_customer_type_error.proto"; +import "google/ads/googleads/v18/errors/user_list_error.proto"; +import "google/ads/googleads/v18/errors/video_campaign_error.proto"; +import "google/ads/googleads/v18/errors/youtube_video_registration_error.proto"; import "google/protobuf/duration.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ErrorsProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing the common error protos @@ -201,7 +207,7 @@ message GoogleAdsError { string message = 2; // The value that triggered the error. - google.ads.googleads.v15.common.Value trigger = 3; + google.ads.googleads.v18.common.Value trigger = 3; // Describes the part of the request proto that caused the error. ErrorLocation location = 4; @@ -257,6 +263,9 @@ message ErrorCode { // An error with a Campaign mutate. CampaignErrorEnum.CampaignError campaign_error = 15; + // An error with a Video Campaign mutate. + VideoCampaignErrorEnum.VideoCampaignError video_campaign_error = 182; + // Indicates failure to properly authenticate user. AuthenticationErrorEnum.AuthenticationError authentication_error = 17; @@ -716,6 +725,26 @@ message ErrorCode { // The reasons for the campaign lifecycle goal error CampaignLifecycleGoalErrorEnum.CampaignLifecycleGoalError campaign_lifecycle_goal_error = 179; + + // The reasons for an identity verification error. + IdentityVerificationErrorEnum.IdentityVerificationError + identity_verification_error = 181; + + // The reasons for a user list customer type error. + UserListCustomerTypeErrorEnum.UserListCustomerTypeError + user_list_customer_type_error = 183; + + // The reasons for error in querying shopping product. + ShoppingProductErrorEnum.ShoppingProductError shopping_product_error = 184; + + // The reasons for error in automatically created asset removal action. + AutomaticallyCreatedAssetRemovalErrorEnum + .AutomaticallyCreatedAssetRemovalError + automatically_created_asset_removal_error = 185; + + // The reasons for the shareable preview error. + ShareablePreviewErrorEnum.ShareablePreviewError shareable_preview_error = + 186; } } @@ -763,7 +792,7 @@ message PolicyViolationDetails { // Unique identifier for this violation. // If policy is exemptible, this key may be used to request exemption. - google.ads.googleads.v15.common.PolicyViolationKey key = 4; + google.ads.googleads.v18.common.PolicyViolationKey key = 4; // Human readable name of the policy. string external_policy_name = 5; @@ -779,7 +808,7 @@ message PolicyFindingDetails { // The list of policy topics for the resource. Contains the PROHIBITED or // FULLY_LIMITED policy topic entries that prevented the resource from being // saved (among any other entries the resource may also have). - repeated google.ads.googleads.v15.common.PolicyTopicEntry + repeated google.ads.googleads.v18.common.PolicyTopicEntry policy_topic_entries = 1; } @@ -825,7 +854,7 @@ message ResourceCountDetails { int32 limit = 2; // The resource limit type which was exceeded. - google.ads.googleads.v15.enums.ResourceLimitTypeEnum.ResourceLimitType + google.ads.googleads.v18.enums.ResourceLimitTypeEnum.ResourceLimitType limit_type = 3; // The count of existing entities. diff --git a/google/ads/googleads/v15/errors/experiment_arm_error.proto b/google/ads/googleads/v18/errors/experiment_arm_error.proto similarity index 89% rename from google/ads/googleads/v15/errors/experiment_arm_error.proto rename to google/ads/googleads/v18/errors/experiment_arm_error.proto index 1c848bfd8..e348616a7 100644 --- a/google/ads/googleads/v15/errors/experiment_arm_error.proto +++ b/google/ads/googleads/v18/errors/experiment_arm_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ExperimentArmErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing experiment arm errors. diff --git a/google/ads/googleads/v15/errors/experiment_error.proto b/google/ads/googleads/v18/errors/experiment_error.proto similarity index 85% rename from google/ads/googleads/v15/errors/experiment_error.proto rename to google/ads/googleads/v18/errors/experiment_error.proto index 1bda5257a..6752214c7 100644 --- a/google/ads/googleads/v15/errors/experiment_error.proto +++ b/google/ads/googleads/v18/errors/experiment_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ExperimentErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing experiment errors. @@ -124,5 +124,13 @@ message ExperimentErrorEnum { // Cannot add campaign with deprecated ad types. Deprecated ad types: // ENHANCED_DISPLAY, GALLERY, GMAIL, KEYWORDLESS, TEXT. CANNOT_ADD_CAMPAIGN_WITH_DEPRECATED_AD_TYPES = 28; + + // Sync can only be enabled for supported experiment types. Supported + // experiment types: SEARCH_CUSTOM, DISPLAY_CUSTOM, + // DISPLAY_AUTOMATED_BIDDING_STRATEGY, SEARCH_AUTOMATED_BIDDING_STRATEGY. + CANNOT_ENABLE_SYNC_FOR_UNSUPPORTED_EXPERIMENT_TYPE = 29; + + // Experiment length cannot be longer than max length. + INVALID_DURATION_FOR_AN_EXPERIMENT = 30; } } diff --git a/google/ads/googleads/v15/errors/extension_feed_item_error.proto b/google/ads/googleads/v18/errors/extension_feed_item_error.proto similarity index 94% rename from google/ads/googleads/v15/errors/extension_feed_item_error.proto rename to google/ads/googleads/v18/errors/extension_feed_item_error.proto index 4483e7d77..a70fc1f76 100644 --- a/google/ads/googleads/v15/errors/extension_feed_item_error.proto +++ b/google/ads/googleads/v18/errors/extension_feed_item_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ExtensionFeedItemErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing extension feed item errors. diff --git a/google/ads/googleads/v15/errors/extension_setting_error.proto b/google/ads/googleads/v18/errors/extension_setting_error.proto similarity index 96% rename from google/ads/googleads/v15/errors/extension_setting_error.proto rename to google/ads/googleads/v18/errors/extension_setting_error.proto index 8a20266f2..1313d5b21 100644 --- a/google/ads/googleads/v15/errors/extension_setting_error.proto +++ b/google/ads/googleads/v18/errors/extension_setting_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ExtensionSettingErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing extension setting validation errors. diff --git a/google/ads/googleads/v15/errors/feed_attribute_reference_error.proto b/google/ads/googleads/v18/errors/feed_attribute_reference_error.proto similarity index 81% rename from google/ads/googleads/v15/errors/feed_attribute_reference_error.proto rename to google/ads/googleads/v18/errors/feed_attribute_reference_error.proto index 6f4cde0db..b2070e81b 100644 --- a/google/ads/googleads/v15/errors/feed_attribute_reference_error.proto +++ b/google/ads/googleads/v18/errors/feed_attribute_reference_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "FeedAttributeReferenceErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing feed attribute reference errors. diff --git a/google/ads/googleads/v15/errors/feed_error.proto b/google/ads/googleads/v18/errors/feed_error.proto similarity index 90% rename from google/ads/googleads/v15/errors/feed_error.proto rename to google/ads/googleads/v18/errors/feed_error.proto index 0095b481d..e463a77a9 100644 --- a/google/ads/googleads/v15/errors/feed_error.proto +++ b/google/ads/googleads/v18/errors/feed_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "FeedErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing feed errors. diff --git a/google/ads/googleads/v15/errors/feed_item_error.proto b/google/ads/googleads/v18/errors/feed_item_error.proto similarity index 85% rename from google/ads/googleads/v15/errors/feed_item_error.proto rename to google/ads/googleads/v18/errors/feed_item_error.proto index e6e8885e9..b8ba86447 100644 --- a/google/ads/googleads/v15/errors/feed_item_error.proto +++ b/google/ads/googleads/v18/errors/feed_item_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "FeedItemErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing feed item errors. diff --git a/google/ads/googleads/v15/errors/feed_item_set_error.proto b/google/ads/googleads/v18/errors/feed_item_set_error.proto similarity index 86% rename from google/ads/googleads/v15/errors/feed_item_set_error.proto rename to google/ads/googleads/v18/errors/feed_item_set_error.proto index 4bf09c53b..a4bf9a480 100644 --- a/google/ads/googleads/v15/errors/feed_item_set_error.proto +++ b/google/ads/googleads/v18/errors/feed_item_set_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "FeedItemSetErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing feed item set errors. diff --git a/google/ads/googleads/v15/errors/feed_item_set_link_error.proto b/google/ads/googleads/v18/errors/feed_item_set_link_error.proto similarity index 80% rename from google/ads/googleads/v15/errors/feed_item_set_link_error.proto rename to google/ads/googleads/v18/errors/feed_item_set_link_error.proto index ffc06e4e8..f014e09a1 100644 --- a/google/ads/googleads/v15/errors/feed_item_set_link_error.proto +++ b/google/ads/googleads/v18/errors/feed_item_set_link_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "FeedItemSetLinkErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing feed item set link errors. diff --git a/google/ads/googleads/v15/errors/feed_item_target_error.proto b/google/ads/googleads/v18/errors/feed_item_target_error.proto similarity index 85% rename from google/ads/googleads/v15/errors/feed_item_target_error.proto rename to google/ads/googleads/v18/errors/feed_item_target_error.proto index e39dece91..d582cccbf 100644 --- a/google/ads/googleads/v15/errors/feed_item_target_error.proto +++ b/google/ads/googleads/v18/errors/feed_item_target_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "FeedItemTargetErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing feed item target errors. diff --git a/google/ads/googleads/v15/errors/feed_item_validation_error.proto b/google/ads/googleads/v18/errors/feed_item_validation_error.proto similarity index 97% rename from google/ads/googleads/v15/errors/feed_item_validation_error.proto rename to google/ads/googleads/v18/errors/feed_item_validation_error.proto index 8c971b038..be3e688f3 100644 --- a/google/ads/googleads/v15/errors/feed_item_validation_error.proto +++ b/google/ads/googleads/v18/errors/feed_item_validation_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "FeedItemValidationErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing feed item validation errors. diff --git a/google/ads/googleads/v15/errors/feed_mapping_error.proto b/google/ads/googleads/v18/errors/feed_mapping_error.proto similarity index 90% rename from google/ads/googleads/v15/errors/feed_mapping_error.proto rename to google/ads/googleads/v18/errors/feed_mapping_error.proto index 6a2fd03e9..211fd9c6d 100644 --- a/google/ads/googleads/v15/errors/feed_mapping_error.proto +++ b/google/ads/googleads/v18/errors/feed_mapping_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "FeedMappingErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing feed item errors. diff --git a/google/ads/googleads/v15/errors/field_error.proto b/google/ads/googleads/v18/errors/field_error.proto similarity index 83% rename from google/ads/googleads/v15/errors/field_error.proto rename to google/ads/googleads/v18/errors/field_error.proto index 57db26414..3f4a07de8 100644 --- a/google/ads/googleads/v15/errors/field_error.proto +++ b/google/ads/googleads/v18/errors/field_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "FieldErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing field errors. diff --git a/google/ads/googleads/v15/errors/field_mask_error.proto b/google/ads/googleads/v18/errors/field_mask_error.proto similarity index 82% rename from google/ads/googleads/v15/errors/field_mask_error.proto rename to google/ads/googleads/v18/errors/field_mask_error.proto index 1b36160b3..d0b5ed96d 100644 --- a/google/ads/googleads/v15/errors/field_mask_error.proto +++ b/google/ads/googleads/v18/errors/field_mask_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "FieldMaskErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing field mask errors. diff --git a/google/ads/googleads/v15/errors/function_error.proto b/google/ads/googleads/v18/errors/function_error.proto similarity index 87% rename from google/ads/googleads/v15/errors/function_error.proto rename to google/ads/googleads/v18/errors/function_error.proto index abd2a72c2..7642d0d57 100644 --- a/google/ads/googleads/v15/errors/function_error.proto +++ b/google/ads/googleads/v18/errors/function_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "FunctionErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing function errors. diff --git a/google/ads/googleads/v15/errors/function_parsing_error.proto b/google/ads/googleads/v18/errors/function_parsing_error.proto similarity index 85% rename from google/ads/googleads/v15/errors/function_parsing_error.proto rename to google/ads/googleads/v18/errors/function_parsing_error.proto index 545fc6bb2..efc12abe9 100644 --- a/google/ads/googleads/v15/errors/function_parsing_error.proto +++ b/google/ads/googleads/v18/errors/function_parsing_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "FunctionParsingErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing function parsing errors. diff --git a/google/ads/googleads/v15/errors/geo_target_constant_suggestion_error.proto b/google/ads/googleads/v18/errors/geo_target_constant_suggestion_error.proto similarity index 82% rename from google/ads/googleads/v15/errors/geo_target_constant_suggestion_error.proto rename to google/ads/googleads/v18/errors/geo_target_constant_suggestion_error.proto index 3009192bd..b5a01d5e4 100644 --- a/google/ads/googleads/v15/errors/geo_target_constant_suggestion_error.proto +++ b/google/ads/googleads/v18/errors/geo_target_constant_suggestion_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "GeoTargetConstantSuggestionErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Container for enum describing possible geo target constant suggestion errors. message GeoTargetConstantSuggestionErrorEnum { diff --git a/google/ads/googleads/v15/errors/header_error.proto b/google/ads/googleads/v18/errors/header_error.proto similarity index 78% rename from google/ads/googleads/v15/errors/header_error.proto rename to google/ads/googleads/v18/errors/header_error.proto index 84c22de69..0de2940e8 100644 --- a/google/ads/googleads/v15/errors/header_error.proto +++ b/google/ads/googleads/v18/errors/header_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "HeaderErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing header errors. diff --git a/google/ads/googleads/v15/errors/id_error.proto b/google/ads/googleads/v18/errors/id_error.proto similarity index 76% rename from google/ads/googleads/v15/errors/id_error.proto rename to google/ads/googleads/v18/errors/id_error.proto index c99446a2f..ecc9df321 100644 --- a/google/ads/googleads/v15/errors/id_error.proto +++ b/google/ads/googleads/v18/errors/id_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "IdErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing id errors. diff --git a/google/ads/googleads/v18/errors/identity_verification_error.proto b/google/ads/googleads/v18/errors/identity_verification_error.proto new file mode 100644 index 000000000..fdaa9fe0a --- /dev/null +++ b/google/ads/googleads/v18/errors/identity_verification_error.proto @@ -0,0 +1,49 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "IdentityVerificationErrorProto"; +option java_package = "com.google.ads.googleads.v18.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; + +// Proto file describing image errors. + +// Container for enum describing possible identity verification errors. +message IdentityVerificationErrorEnum { + // Enum describing possible identity verification errors. + enum IdentityVerificationError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // No effective billing linked to this customer. + NO_EFFECTIVE_BILLING = 2; + + // Customer is not on monthly invoicing. + BILLING_NOT_ON_MONTHLY_INVOICING = 3; + + // Verification for this program type was already started. + VERIFICATION_ALREADY_STARTED = 4; + } +} diff --git a/google/ads/googleads/v15/errors/image_error.proto b/google/ads/googleads/v18/errors/image_error.proto similarity index 92% rename from google/ads/googleads/v15/errors/image_error.proto rename to google/ads/googleads/v18/errors/image_error.proto index e7f6910e7..fe1e95296 100644 --- a/google/ads/googleads/v15/errors/image_error.proto +++ b/google/ads/googleads/v18/errors/image_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ImageErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing image errors. diff --git a/google/ads/googleads/v15/errors/internal_error.proto b/google/ads/googleads/v18/errors/internal_error.proto similarity index 81% rename from google/ads/googleads/v15/errors/internal_error.proto rename to google/ads/googleads/v18/errors/internal_error.proto index 732e36f7e..21f8bea9a 100644 --- a/google/ads/googleads/v15/errors/internal_error.proto +++ b/google/ads/googleads/v18/errors/internal_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "InternalErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing internal errors. diff --git a/google/ads/googleads/v15/errors/invoice_error.proto b/google/ads/googleads/v18/errors/invoice_error.proto similarity index 82% rename from google/ads/googleads/v15/errors/invoice_error.proto rename to google/ads/googleads/v18/errors/invoice_error.proto index c57bb8776..045a13838 100644 --- a/google/ads/googleads/v15/errors/invoice_error.proto +++ b/google/ads/googleads/v18/errors/invoice_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "InvoiceErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing invoice errors. diff --git a/google/ads/googleads/v15/errors/keyword_plan_ad_group_error.proto b/google/ads/googleads/v18/errors/keyword_plan_ad_group_error.proto similarity index 81% rename from google/ads/googleads/v15/errors/keyword_plan_ad_group_error.proto rename to google/ads/googleads/v18/errors/keyword_plan_ad_group_error.proto index 60c00f989..d05cab584 100644 --- a/google/ads/googleads/v15/errors/keyword_plan_ad_group_error.proto +++ b/google/ads/googleads/v18/errors/keyword_plan_ad_group_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanAdGroupErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing errors from applying a keyword plan ad group. diff --git a/google/ads/googleads/v15/errors/keyword_plan_ad_group_keyword_error.proto b/google/ads/googleads/v18/errors/keyword_plan_ad_group_keyword_error.proto similarity index 86% rename from google/ads/googleads/v15/errors/keyword_plan_ad_group_keyword_error.proto rename to google/ads/googleads/v18/errors/keyword_plan_ad_group_keyword_error.proto index cd9217af7..33c6beb64 100644 --- a/google/ads/googleads/v15/errors/keyword_plan_ad_group_keyword_error.proto +++ b/google/ads/googleads/v18/errors/keyword_plan_ad_group_keyword_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanAdGroupKeywordErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing errors from applying a keyword plan ad group keyword or // keyword plan campaign keyword. diff --git a/google/ads/googleads/v15/errors/keyword_plan_campaign_error.proto b/google/ads/googleads/v18/errors/keyword_plan_campaign_error.proto similarity index 85% rename from google/ads/googleads/v15/errors/keyword_plan_campaign_error.proto rename to google/ads/googleads/v18/errors/keyword_plan_campaign_error.proto index 4a1cab9a1..48dab4e5b 100644 --- a/google/ads/googleads/v15/errors/keyword_plan_campaign_error.proto +++ b/google/ads/googleads/v18/errors/keyword_plan_campaign_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanCampaignErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing errors from applying a keyword plan campaign. diff --git a/google/ads/googleads/v15/errors/keyword_plan_campaign_keyword_error.proto b/google/ads/googleads/v18/errors/keyword_plan_campaign_keyword_error.proto similarity index 79% rename from google/ads/googleads/v15/errors/keyword_plan_campaign_keyword_error.proto rename to google/ads/googleads/v18/errors/keyword_plan_campaign_keyword_error.proto index 54574b690..76e899e36 100644 --- a/google/ads/googleads/v15/errors/keyword_plan_campaign_keyword_error.proto +++ b/google/ads/googleads/v18/errors/keyword_plan_campaign_keyword_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanCampaignKeywordErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing errors from applying a keyword plan campaign keyword. diff --git a/google/ads/googleads/v15/errors/keyword_plan_error.proto b/google/ads/googleads/v18/errors/keyword_plan_error.proto similarity index 88% rename from google/ads/googleads/v15/errors/keyword_plan_error.proto rename to google/ads/googleads/v18/errors/keyword_plan_error.proto index 6d2a4f31d..160d44d32 100644 --- a/google/ads/googleads/v15/errors/keyword_plan_error.proto +++ b/google/ads/googleads/v18/errors/keyword_plan_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing errors from applying keyword plan resources (keyword // plan, keyword plan campaign, keyword plan ad group or keyword plan keyword) diff --git a/google/ads/googleads/v15/errors/keyword_plan_idea_error.proto b/google/ads/googleads/v18/errors/keyword_plan_idea_error.proto similarity index 79% rename from google/ads/googleads/v15/errors/keyword_plan_idea_error.proto rename to google/ads/googleads/v18/errors/keyword_plan_idea_error.proto index d59779633..e03048134 100644 --- a/google/ads/googleads/v15/errors/keyword_plan_idea_error.proto +++ b/google/ads/googleads/v18/errors/keyword_plan_idea_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanIdeaErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing errors from KeywordPlanIdeaService. diff --git a/google/ads/googleads/v15/errors/label_error.proto b/google/ads/googleads/v18/errors/label_error.proto similarity index 85% rename from google/ads/googleads/v15/errors/label_error.proto rename to google/ads/googleads/v18/errors/label_error.proto index 918284d1c..d306b8088 100644 --- a/google/ads/googleads/v15/errors/label_error.proto +++ b/google/ads/googleads/v18/errors/label_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "LabelErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing label errors. diff --git a/google/ads/googleads/v15/errors/language_code_error.proto b/google/ads/googleads/v18/errors/language_code_error.proto similarity index 78% rename from google/ads/googleads/v15/errors/language_code_error.proto rename to google/ads/googleads/v18/errors/language_code_error.proto index 650e01e43..2d903467d 100644 --- a/google/ads/googleads/v15/errors/language_code_error.proto +++ b/google/ads/googleads/v18/errors/language_code_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "LanguageCodeErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing language code errors. diff --git a/google/ads/googleads/v15/errors/list_operation_error.proto b/google/ads/googleads/v18/errors/list_operation_error.proto similarity index 79% rename from google/ads/googleads/v15/errors/list_operation_error.proto rename to google/ads/googleads/v18/errors/list_operation_error.proto index 12d9f263b..d61b4f53e 100644 --- a/google/ads/googleads/v15/errors/list_operation_error.proto +++ b/google/ads/googleads/v18/errors/list_operation_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ListOperationErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing list operation errors. diff --git a/google/ads/googleads/v15/errors/manager_link_error.proto b/google/ads/googleads/v18/errors/manager_link_error.proto similarity index 89% rename from google/ads/googleads/v15/errors/manager_link_error.proto rename to google/ads/googleads/v18/errors/manager_link_error.proto index 140dbd7ff..425d157c5 100644 --- a/google/ads/googleads/v15/errors/manager_link_error.proto +++ b/google/ads/googleads/v18/errors/manager_link_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ManagerLinkErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing ManagerLink errors. diff --git a/google/ads/googleads/v15/errors/media_bundle_error.proto b/google/ads/googleads/v18/errors/media_bundle_error.proto similarity index 89% rename from google/ads/googleads/v15/errors/media_bundle_error.proto rename to google/ads/googleads/v18/errors/media_bundle_error.proto index 64c3915a0..40fb77a24 100644 --- a/google/ads/googleads/v15/errors/media_bundle_error.proto +++ b/google/ads/googleads/v18/errors/media_bundle_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "MediaBundleErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing media bundle errors. diff --git a/google/ads/googleads/v15/errors/media_file_error.proto b/google/ads/googleads/v18/errors/media_file_error.proto similarity index 90% rename from google/ads/googleads/v15/errors/media_file_error.proto rename to google/ads/googleads/v18/errors/media_file_error.proto index 549314a22..05628d1c2 100644 --- a/google/ads/googleads/v15/errors/media_file_error.proto +++ b/google/ads/googleads/v18/errors/media_file_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "MediaFileErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing media file errors. diff --git a/google/ads/googleads/v15/errors/media_upload_error.proto b/google/ads/googleads/v18/errors/media_upload_error.proto similarity index 93% rename from google/ads/googleads/v15/errors/media_upload_error.proto rename to google/ads/googleads/v18/errors/media_upload_error.proto index 97615d4a2..194cdeae4 100644 --- a/google/ads/googleads/v15/errors/media_upload_error.proto +++ b/google/ads/googleads/v18/errors/media_upload_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "MediaUploadErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing media uploading errors. diff --git a/google/ads/googleads/v15/errors/merchant_center_error.proto b/google/ads/googleads/v18/errors/merchant_center_error.proto similarity index 80% rename from google/ads/googleads/v15/errors/merchant_center_error.proto rename to google/ads/googleads/v18/errors/merchant_center_error.proto index 740ba272b..f94f00c20 100644 --- a/google/ads/googleads/v15/errors/merchant_center_error.proto +++ b/google/ads/googleads/v18/errors/merchant_center_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "MerchantCenterErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing merchant center errors. diff --git a/google/ads/googleads/v15/errors/multiplier_error.proto b/google/ads/googleads/v18/errors/multiplier_error.proto similarity index 87% rename from google/ads/googleads/v15/errors/multiplier_error.proto rename to google/ads/googleads/v18/errors/multiplier_error.proto index 134ce7b5d..1455da8a2 100644 --- a/google/ads/googleads/v15/errors/multiplier_error.proto +++ b/google/ads/googleads/v18/errors/multiplier_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "MultiplierErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing multiplier errors. diff --git a/google/ads/googleads/v15/errors/mutate_error.proto b/google/ads/googleads/v18/errors/mutate_error.proto similarity index 85% rename from google/ads/googleads/v15/errors/mutate_error.proto rename to google/ads/googleads/v18/errors/mutate_error.proto index 4fbd0a1fc..822892674 100644 --- a/google/ads/googleads/v15/errors/mutate_error.proto +++ b/google/ads/googleads/v18/errors/mutate_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "MutateErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing mutate errors. diff --git a/google/ads/googleads/v15/errors/new_resource_creation_error.proto b/google/ads/googleads/v18/errors/new_resource_creation_error.proto similarity index 81% rename from google/ads/googleads/v15/errors/new_resource_creation_error.proto rename to google/ads/googleads/v18/errors/new_resource_creation_error.proto index 631047ea3..2a6b3f660 100644 --- a/google/ads/googleads/v15/errors/new_resource_creation_error.proto +++ b/google/ads/googleads/v18/errors/new_resource_creation_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "NewResourceCreationErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing new resource creation errors. diff --git a/google/ads/googleads/v15/errors/not_allowlisted_error.proto b/google/ads/googleads/v18/errors/not_allowlisted_error.proto similarity index 78% rename from google/ads/googleads/v15/errors/not_allowlisted_error.proto rename to google/ads/googleads/v18/errors/not_allowlisted_error.proto index b197af27a..f783b9e9a 100644 --- a/google/ads/googleads/v15/errors/not_allowlisted_error.proto +++ b/google/ads/googleads/v18/errors/not_allowlisted_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "NotAllowlistedErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing not allowlisted errors. diff --git a/google/ads/googleads/v15/errors/not_empty_error.proto b/google/ads/googleads/v18/errors/not_empty_error.proto similarity index 76% rename from google/ads/googleads/v15/errors/not_empty_error.proto rename to google/ads/googleads/v18/errors/not_empty_error.proto index 2d6a49802..d4436187f 100644 --- a/google/ads/googleads/v15/errors/not_empty_error.proto +++ b/google/ads/googleads/v18/errors/not_empty_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "NotEmptyErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing not empty errors. diff --git a/google/ads/googleads/v15/errors/null_error.proto b/google/ads/googleads/v18/errors/null_error.proto similarity index 77% rename from google/ads/googleads/v15/errors/null_error.proto rename to google/ads/googleads/v18/errors/null_error.proto index b9b0a1e69..3e1696513 100644 --- a/google/ads/googleads/v15/errors/null_error.proto +++ b/google/ads/googleads/v18/errors/null_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "NullErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing null errors. diff --git a/google/ads/googleads/v15/errors/offline_user_data_job_error.proto b/google/ads/googleads/v18/errors/offline_user_data_job_error.proto similarity index 91% rename from google/ads/googleads/v15/errors/offline_user_data_job_error.proto rename to google/ads/googleads/v18/errors/offline_user_data_job_error.proto index 5f608c8a8..13923a32d 100644 --- a/google/ads/googleads/v15/errors/offline_user_data_job_error.proto +++ b/google/ads/googleads/v18/errors/offline_user_data_job_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "OfflineUserDataJobErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing offline user data job errors. @@ -167,5 +167,10 @@ message OfflineUserDataJobErrorEnum { // All the fields are not present in the EventAttribute of the Customer // Match. EVENT_ATTRIBUTE_ALL_FIELDS_ARE_REQUIRED = 45; + + // Consent was provided at the operation level for an OfflineUserDataJobType + // that expects it at the job level. The provided operation-level consent + // will be ignored. + OPERATION_LEVEL_CONSENT_PROVIDED = 48; } } diff --git a/google/ads/googleads/v15/errors/operation_access_denied_error.proto b/google/ads/googleads/v18/errors/operation_access_denied_error.proto similarity index 87% rename from google/ads/googleads/v15/errors/operation_access_denied_error.proto rename to google/ads/googleads/v18/errors/operation_access_denied_error.proto index 346a374f6..6699e7821 100644 --- a/google/ads/googleads/v15/errors/operation_access_denied_error.proto +++ b/google/ads/googleads/v18/errors/operation_access_denied_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "OperationAccessDeniedErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing operation access denied errors. diff --git a/google/ads/googleads/v15/errors/operator_error.proto b/google/ads/googleads/v18/errors/operator_error.proto similarity index 77% rename from google/ads/googleads/v15/errors/operator_error.proto rename to google/ads/googleads/v18/errors/operator_error.proto index f204b98ad..de2aeac5c 100644 --- a/google/ads/googleads/v15/errors/operator_error.proto +++ b/google/ads/googleads/v18/errors/operator_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "OperatorErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing operator errors. diff --git a/google/ads/googleads/v15/errors/partial_failure_error.proto b/google/ads/googleads/v18/errors/partial_failure_error.proto similarity index 78% rename from google/ads/googleads/v15/errors/partial_failure_error.proto rename to google/ads/googleads/v18/errors/partial_failure_error.proto index bead74db4..bcd5443c0 100644 --- a/google/ads/googleads/v15/errors/partial_failure_error.proto +++ b/google/ads/googleads/v18/errors/partial_failure_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "PartialFailureErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing partial failure errors. diff --git a/google/ads/googleads/v15/errors/payments_account_error.proto b/google/ads/googleads/v18/errors/payments_account_error.proto similarity index 78% rename from google/ads/googleads/v15/errors/payments_account_error.proto rename to google/ads/googleads/v18/errors/payments_account_error.proto index afab4fa77..4117e8320 100644 --- a/google/ads/googleads/v15/errors/payments_account_error.proto +++ b/google/ads/googleads/v18/errors/payments_account_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "PaymentsAccountErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing payments account service errors. diff --git a/google/ads/googleads/v15/errors/policy_finding_error.proto b/google/ads/googleads/v18/errors/policy_finding_error.proto similarity index 79% rename from google/ads/googleads/v15/errors/policy_finding_error.proto rename to google/ads/googleads/v18/errors/policy_finding_error.proto index 0a66bccf9..044169b39 100644 --- a/google/ads/googleads/v15/errors/policy_finding_error.proto +++ b/google/ads/googleads/v18/errors/policy_finding_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "PolicyFindingErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing policy finding errors. diff --git a/google/ads/googleads/v15/errors/policy_validation_parameter_error.proto b/google/ads/googleads/v18/errors/policy_validation_parameter_error.proto similarity index 82% rename from google/ads/googleads/v15/errors/policy_validation_parameter_error.proto rename to google/ads/googleads/v18/errors/policy_validation_parameter_error.proto index 625492c9d..4a14fc7a9 100644 --- a/google/ads/googleads/v15/errors/policy_validation_parameter_error.proto +++ b/google/ads/googleads/v18/errors/policy_validation_parameter_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "PolicyValidationParameterErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing policy validation parameter errors. diff --git a/google/ads/googleads/v15/errors/policy_violation_error.proto b/google/ads/googleads/v18/errors/policy_violation_error.proto similarity index 78% rename from google/ads/googleads/v15/errors/policy_violation_error.proto rename to google/ads/googleads/v18/errors/policy_violation_error.proto index 5ed4e51e6..c344dd515 100644 --- a/google/ads/googleads/v15/errors/policy_violation_error.proto +++ b/google/ads/googleads/v18/errors/policy_violation_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "PolicyViolationErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing policy violation errors. diff --git a/google/ads/googleads/v15/errors/product_link_error.proto b/google/ads/googleads/v18/errors/product_link_error.proto similarity index 71% rename from google/ads/googleads/v15/errors/product_link_error.proto rename to google/ads/googleads/v18/errors/product_link_error.proto index 4b6fc307c..84c52633b 100644 --- a/google/ads/googleads/v15/errors/product_link_error.proto +++ b/google/ads/googleads/v18/errors/product_link_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ProductLinkErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing ProductLink errors. @@ -43,5 +43,11 @@ message ProductLinkErrorEnum { // The creation request is not permitted. CREATION_NOT_PERMITTED = 3; + + // A link cannot be created because a pending link already exists. + INVITATION_EXISTS = 4; + + // A link cannot be created because an active link already exists. + LINK_EXISTS = 5; } } diff --git a/google/ads/googleads/v15/errors/product_link_invitation_error.proto b/google/ads/googleads/v18/errors/product_link_invitation_error.proto similarity index 77% rename from google/ads/googleads/v15/errors/product_link_invitation_error.proto rename to google/ads/googleads/v18/errors/product_link_invitation_error.proto index 92f043e8f..5d1a029aa 100644 --- a/google/ads/googleads/v15/errors/product_link_invitation_error.proto +++ b/google/ads/googleads/v18/errors/product_link_invitation_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ProductLinkInvitationErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing ProductLinkInvitation errors. @@ -47,5 +47,8 @@ message ProductLinkInvitationErrorEnum { // access to the invited account. Use the ProductLinkService to directly // create an active link. NO_INVITATION_REQUIRED = 4; + + // The customer is not permitted to create the invitation. + CUSTOMER_NOT_PERMITTED_TO_CREATE_INVITATION = 5; } } diff --git a/google/ads/googleads/v15/errors/query_error.proto b/google/ads/googleads/v18/errors/query_error.proto similarity index 95% rename from google/ads/googleads/v15/errors/query_error.proto rename to google/ads/googleads/v18/errors/query_error.proto index 42db98513..b0ff53f73 100644 --- a/google/ads/googleads/v15/errors/query_error.proto +++ b/google/ads/googleads/v18/errors/query_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "QueryErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing query errors. diff --git a/google/ads/googleads/v15/errors/quota_error.proto b/google/ads/googleads/v18/errors/quota_error.proto similarity index 66% rename from google/ads/googleads/v15/errors/quota_error.proto rename to google/ads/googleads/v18/errors/quota_error.proto index a29a637ce..9a47837a0 100644 --- a/google/ads/googleads/v15/errors/quota_error.proto +++ b/google/ads/googleads/v18/errors/quota_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "QuotaErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing quota errors. @@ -45,5 +45,13 @@ message QuotaErrorEnum { // Too many requests in a short amount of time. RESOURCE_TEMPORARILY_EXHAUSTED = 4; + + // Too many expensive requests from query pattern over a short amount of + // time. + EXCESSIVE_SHORT_TERM_QUERY_RESOURCE_CONSUMPTION = 5; + + // Too many expensive requests from query pattern over an extended duration + // of time. + EXCESSIVE_LONG_TERM_QUERY_RESOURCE_CONSUMPTION = 6; } } diff --git a/google/ads/googleads/v15/errors/range_error.proto b/google/ads/googleads/v18/errors/range_error.proto similarity index 76% rename from google/ads/googleads/v15/errors/range_error.proto rename to google/ads/googleads/v18/errors/range_error.proto index 6926e43c6..50a92c957 100644 --- a/google/ads/googleads/v15/errors/range_error.proto +++ b/google/ads/googleads/v18/errors/range_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "RangeErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing range errors. diff --git a/google/ads/googleads/v15/errors/reach_plan_error.proto b/google/ads/googleads/v18/errors/reach_plan_error.proto similarity index 80% rename from google/ads/googleads/v15/errors/reach_plan_error.proto rename to google/ads/googleads/v18/errors/reach_plan_error.proto index 08e084c36..0afb9654f 100644 --- a/google/ads/googleads/v15/errors/reach_plan_error.proto +++ b/google/ads/googleads/v18/errors/reach_plan_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ReachPlanErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing errors generated from ReachPlanService. diff --git a/google/ads/googleads/v18/errors/recommendation_error.proto b/google/ads/googleads/v18/errors/recommendation_error.proto new file mode 100644 index 000000000..9da2ba312 --- /dev/null +++ b/google/ads/googleads/v18/errors/recommendation_error.proto @@ -0,0 +1,168 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "RecommendationErrorProto"; +option java_package = "com.google.ads.googleads.v18.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::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; + + // The type of recommendation requested to apply is not supported. + RECOMMENDATION_TYPE_APPLY_NOT_SUPPORTED = 17; + + // The target multiplier specified is invalid. + INVALID_MULTIPLIER = 18; + + // The passed in advertising_channel_type is not supported. + ADVERTISING_CHANNEL_TYPE_GENERATE_NOT_SUPPORTED = 19; + + // The passed in recommendation_type is not supported. + RECOMMENDATION_TYPE_GENERATE_NOT_SUPPORTED = 20; + + // One or more recommendation_types need to be passed into the generate + // recommendations request. + RECOMMENDATION_TYPES_CANNOT_BE_EMPTY = 21; + + // Bidding info is required for the CAMPAIGN_BUDGET recommendation type. + CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_BIDDING_INFO = 22; + + // Bidding strategy type is required for the CAMPAIGN_BUDGET + // recommendation type. + CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_BIDDING_STRATEGY_TYPE = 23; + + // Asset group info is required for the campaign budget recommendation type. + CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_ASSET_GROUP_INFO = 24; + + // Asset group info with final url is required for the CAMPAIGN_BUDGET + // recommendation type. + CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_ASSET_GROUP_INFO_WITH_FINAL_URL = + 25; + + // Country codes are required for the CAMPAIGN_BUDGET recommendation type + // for SEARCH channel. + CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_COUNTRY_CODES_FOR_SEARCH_CHANNEL = + 26; + + // Country code is invalid for the CAMPAIGN_BUDGET recommendation type for + // SEARCH channel. + CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_INVALID_COUNTRY_CODE_FOR_SEARCH_CHANNEL = + 27; + + // Language codes are required for the CAMPAIGN_BUDGET recommendation type + // for SEARCH channel. + CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_LANGUAGE_CODES_FOR_SEARCH_CHANNEL = + 28; + + // Either positive or negative location ids are required for the + // CAMPAIGN_BUDGET recommendation type for SEARCH channel. + CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_EITHER_POSITIVE_OR_NEGATIVE_LOCATION_IDS_FOR_SEARCH_CHANNEL = + 29; + + // Ad group info is required for the CAMPAIGN_BUDGET recommendation type for + // SEARCH channel. + CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_AD_GROUP_INFO_FOR_SEARCH_CHANNEL = + 30; + + // Keywords are required for the CAMPAIGN_BUDGET recommendation type for + // SEARCH channel. + CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_KEYWORDS_FOR_SEARCH_CHANNEL = + 31; + + // Location is required for the CAMPAIGN_BUDGET recommendation type for + // bidding strategy type TARGET_IMPRESSION_SHARE. + CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_WITH_CHANNEL_TYPE_SEARCH_AND_BIDDING_STRATEGY_TYPE_TARGET_IMPRESSION_SHARE_REQUIRES_LOCATION = + 32; + + // Target impression share micros are required for the CAMPAIGN_BUDGET + // recommendation type for bidding strategy type TARGET_IMPRESSION_SHARE. + CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_WITH_CHANNEL_TYPE_SEARCH_AND_BIDDING_STRATEGY_TYPE_TARGET_IMPRESSION_SHARE_REQUIRES_TARGET_IMPRESSION_SHARE_MICROS = + 33; + + // Target impression share micros are required to be between 1 and 1000000 + // for the CAMPAIGN_BUDGET recommendation type for bidding strategy type + // TARGET_IMPRESSION_SHARE. + CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_TARGET_IMPRESSION_SHARE_MICROS_BETWEEN_1_AND_1000000 = + 34; + + // Target impression share info is required for the CAMPAIGN_BUDGET + // recommendation type for bidding strategy type TARGET_IMPRESSION_SHARE. + CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_WITH_CHANNEL_TYPE_SEARCH_AND_BIDDING_STRATEGY_TYPE_TARGET_IMPRESSION_SHARE_REQUIRES_TARGET_IMPRESSION_SHARE_INFO = + 35; + } +} diff --git a/google/ads/googleads/v15/errors/recommendation_subscription_error.proto b/google/ads/googleads/v18/errors/recommendation_subscription_error.proto similarity index 77% rename from google/ads/googleads/v15/errors/recommendation_subscription_error.proto rename to google/ads/googleads/v18/errors/recommendation_subscription_error.proto index 79e625eca..0ec90c3d3 100644 --- a/google/ads/googleads/v15/errors/recommendation_subscription_error.proto +++ b/google/ads/googleads/v18/errors/recommendation_subscription_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "RecommendationSubscriptionErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing errors for a recommendation subscription. diff --git a/google/ads/googleads/v15/errors/region_code_error.proto b/google/ads/googleads/v18/errors/region_code_error.proto similarity index 77% rename from google/ads/googleads/v15/errors/region_code_error.proto rename to google/ads/googleads/v18/errors/region_code_error.proto index 0628f6003..6ae4fdd70 100644 --- a/google/ads/googleads/v15/errors/region_code_error.proto +++ b/google/ads/googleads/v18/errors/region_code_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "RegionCodeErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing region code errors. diff --git a/google/ads/googleads/v15/errors/request_error.proto b/google/ads/googleads/v18/errors/request_error.proto similarity index 88% rename from google/ads/googleads/v15/errors/request_error.proto rename to google/ads/googleads/v18/errors/request_error.proto index 24cf3d44a..37b4f996e 100644 --- a/google/ads/googleads/v15/errors/request_error.proto +++ b/google/ads/googleads/v18/errors/request_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "RequestErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing request errors. @@ -64,6 +64,10 @@ message RequestErrorEnum { // Page size specified in user request is invalid. INVALID_PAGE_SIZE = 22; + // Setting the page size is not supported, and will be unavailable in a + // future version. + PAGE_SIZE_NOT_SUPPORTED = 40; + // Required field is missing. REQUIRED_FIELD_MISSING = 9; diff --git a/google/ads/googleads/v15/errors/resource_access_denied_error.proto b/google/ads/googleads/v18/errors/resource_access_denied_error.proto similarity index 78% rename from google/ads/googleads/v15/errors/resource_access_denied_error.proto rename to google/ads/googleads/v18/errors/resource_access_denied_error.proto index 59d798125..046f31522 100644 --- a/google/ads/googleads/v15/errors/resource_access_denied_error.proto +++ b/google/ads/googleads/v18/errors/resource_access_denied_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ResourceAccessDeniedErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing resource access denied errors. diff --git a/google/ads/googleads/v15/errors/resource_count_limit_exceeded_error.proto b/google/ads/googleads/v18/errors/resource_count_limit_exceeded_error.proto similarity index 91% rename from google/ads/googleads/v15/errors/resource_count_limit_exceeded_error.proto rename to google/ads/googleads/v18/errors/resource_count_limit_exceeded_error.proto index e7edf065f..baccf6400 100644 --- a/google/ads/googleads/v15/errors/resource_count_limit_exceeded_error.proto +++ b/google/ads/googleads/v18/errors/resource_count_limit_exceeded_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ResourceCountLimitExceededErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing resource count limit exceeded errors. diff --git a/google/ads/googleads/v15/errors/search_term_insight_error.proto b/google/ads/googleads/v18/errors/search_term_insight_error.proto similarity index 84% rename from google/ads/googleads/v15/errors/search_term_insight_error.proto rename to google/ads/googleads/v18/errors/search_term_insight_error.proto index 79c4cd3bf..1c204cc4c 100644 --- a/google/ads/googleads/v15/errors/search_term_insight_error.proto +++ b/google/ads/googleads/v18/errors/search_term_insight_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "SearchTermInsightErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing search term insight errors. diff --git a/google/ads/googleads/v15/errors/setting_error.proto b/google/ads/googleads/v18/errors/setting_error.proto similarity index 90% rename from google/ads/googleads/v15/errors/setting_error.proto rename to google/ads/googleads/v18/errors/setting_error.proto index c5c354866..54388fe2a 100644 --- a/google/ads/googleads/v15/errors/setting_error.proto +++ b/google/ads/googleads/v18/errors/setting_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "SettingErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing setting errors. diff --git a/google/ads/googleads/v18/errors/shareable_preview_error.proto b/google/ads/googleads/v18/errors/shareable_preview_error.proto new file mode 100644 index 000000000..429f3d9ab --- /dev/null +++ b/google/ads/googleads/v18/errors/shareable_preview_error.proto @@ -0,0 +1,46 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ShareablePreviewErrorProto"; +option java_package = "com.google.ads.googleads.v18.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; + +// Proto file describing shareable preview errors. + +// Container for enum describing possible shareable preview errors. +message ShareablePreviewErrorEnum { + // Enum describing possible shareable preview errors. + enum ShareablePreviewError { + // Enum unspecified. + UNSPECIFIED = 0; + + // Used for return value only. Represents value unknown in this version. + UNKNOWN = 1; + + // The maximum of 10 asset groups was exceeded. + TOO_MANY_ASSET_GROUPS_IN_REQUEST = 2; + + // asset group does not exist under this customer. + ASSET_GROUP_DOES_NOT_EXIST_UNDER_THIS_CUSTOMER = 3; + } +} diff --git a/google/ads/googleads/v15/errors/shared_criterion_error.proto b/google/ads/googleads/v18/errors/shared_criterion_error.proto similarity index 78% rename from google/ads/googleads/v15/errors/shared_criterion_error.proto rename to google/ads/googleads/v18/errors/shared_criterion_error.proto index 768367a6f..9f000c029 100644 --- a/google/ads/googleads/v15/errors/shared_criterion_error.proto +++ b/google/ads/googleads/v18/errors/shared_criterion_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "SharedCriterionErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing shared criterion errors. diff --git a/google/ads/googleads/v15/errors/shared_set_error.proto b/google/ads/googleads/v18/errors/shared_set_error.proto similarity index 80% rename from google/ads/googleads/v15/errors/shared_set_error.proto rename to google/ads/googleads/v18/errors/shared_set_error.proto index 8ffd2fddf..29cb0b135 100644 --- a/google/ads/googleads/v15/errors/shared_set_error.proto +++ b/google/ads/googleads/v18/errors/shared_set_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "SharedSetErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing shared set errors. diff --git a/google/ads/googleads/v18/errors/shopping_product_error.proto b/google/ads/googleads/v18/errors/shopping_product_error.proto new file mode 100644 index 000000000..8df676d3d --- /dev/null +++ b/google/ads/googleads/v18/errors/shopping_product_error.proto @@ -0,0 +1,49 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "ShoppingProductErrorProto"; +option java_package = "com.google.ads.googleads.v18.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; + +// Proto file describing shopping product resource errors. + +// Container for enum describing possible errors querying shopping product. +message ShoppingProductErrorEnum { + // Enum describing possible errors querying shopping product. + enum ShoppingProductError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // A filter on the `campaign` resource name is missing. + MISSING_CAMPAIGN_FILTER = 2; + + // A filter on the `ad_group` resource name is missing. + MISSING_AD_GROUP_FILTER = 3; + + // Date segmentation is not supported. + UNSUPPORTED_DATE_SEGMENTATION = 4; + } +} diff --git a/google/ads/googleads/v15/errors/size_limit_error.proto b/google/ads/googleads/v18/errors/size_limit_error.proto similarity index 81% rename from google/ads/googleads/v15/errors/size_limit_error.proto rename to google/ads/googleads/v18/errors/size_limit_error.proto index 409862759..4a3fdbb9c 100644 --- a/google/ads/googleads/v15/errors/size_limit_error.proto +++ b/google/ads/googleads/v18/errors/size_limit_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "SizeLimitErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing size limit errors. diff --git a/google/ads/googleads/v15/errors/smart_campaign_error.proto b/google/ads/googleads/v18/errors/smart_campaign_error.proto similarity index 84% rename from google/ads/googleads/v15/errors/smart_campaign_error.proto rename to google/ads/googleads/v18/errors/smart_campaign_error.proto index ad3bef9c5..e9f3cccd5 100644 --- a/google/ads/googleads/v15/errors/smart_campaign_error.proto +++ b/google/ads/googleads/v18/errors/smart_campaign_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "SmartCampaignErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing Smart campaign errors. diff --git a/google/ads/googleads/v15/errors/string_format_error.proto b/google/ads/googleads/v18/errors/string_format_error.proto similarity index 79% rename from google/ads/googleads/v15/errors/string_format_error.proto rename to google/ads/googleads/v18/errors/string_format_error.proto index 9d1da9084..178ded743 100644 --- a/google/ads/googleads/v15/errors/string_format_error.proto +++ b/google/ads/googleads/v18/errors/string_format_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "StringFormatErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing string format errors. diff --git a/google/ads/googleads/v15/errors/string_length_error.proto b/google/ads/googleads/v18/errors/string_length_error.proto similarity index 79% rename from google/ads/googleads/v15/errors/string_length_error.proto rename to google/ads/googleads/v18/errors/string_length_error.proto index 2a5c42d48..326a1543b 100644 --- a/google/ads/googleads/v15/errors/string_length_error.proto +++ b/google/ads/googleads/v18/errors/string_length_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "StringLengthErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing string length errors. diff --git a/google/ads/googleads/v15/errors/third_party_app_analytics_link_error.proto b/google/ads/googleads/v18/errors/third_party_app_analytics_link_error.proto similarity index 82% rename from google/ads/googleads/v15/errors/third_party_app_analytics_link_error.proto rename to google/ads/googleads/v18/errors/third_party_app_analytics_link_error.proto index 73cc3a2db..22c0b015c 100644 --- a/google/ads/googleads/v15/errors/third_party_app_analytics_link_error.proto +++ b/google/ads/googleads/v18/errors/third_party_app_analytics_link_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "ThirdPartyAppAnalyticsLinkErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing ThirdPartyAppAnalyticsLink errors. diff --git a/google/ads/googleads/v15/errors/time_zone_error.proto b/google/ads/googleads/v18/errors/time_zone_error.proto similarity index 77% rename from google/ads/googleads/v15/errors/time_zone_error.proto rename to google/ads/googleads/v18/errors/time_zone_error.proto index 8ac3fa75e..d4fac418e 100644 --- a/google/ads/googleads/v15/errors/time_zone_error.proto +++ b/google/ads/googleads/v18/errors/time_zone_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "TimeZoneErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing time zone errors. diff --git a/google/ads/googleads/v15/errors/url_field_error.proto b/google/ads/googleads/v18/errors/url_field_error.proto similarity index 95% rename from google/ads/googleads/v15/errors/url_field_error.proto rename to google/ads/googleads/v18/errors/url_field_error.proto index c311cd546..62bdf5ee3 100644 --- a/google/ads/googleads/v15/errors/url_field_error.proto +++ b/google/ads/googleads/v18/errors/url_field_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "UrlFieldErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing url field errors. diff --git a/google/ads/googleads/v15/errors/user_data_error.proto b/google/ads/googleads/v18/errors/user_data_error.proto similarity index 81% rename from google/ads/googleads/v15/errors/user_data_error.proto rename to google/ads/googleads/v18/errors/user_data_error.proto index d588570da..fd80c013d 100644 --- a/google/ads/googleads/v15/errors/user_data_error.proto +++ b/google/ads/googleads/v18/errors/user_data_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "UserDataErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing user data errors. diff --git a/google/ads/googleads/v18/errors/user_list_customer_type_error.proto b/google/ads/googleads/v18/errors/user_list_customer_type_error.proto new file mode 100644 index 000000000..b7a4c5ab5 --- /dev/null +++ b/google/ads/googleads/v18/errors/user_list_customer_type_error.proto @@ -0,0 +1,68 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "UserListCustomerTypeErrorProto"; +option java_package = "com.google.ads.googleads.v18.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; + +// Proto file describing UserListCustomerType errors. + +// Container for enum describing possible user list customer type errors. +message UserListCustomerTypeErrorEnum { + // Enum describing possible user list customer type errors. + enum UserListCustomerTypeError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Cannot add the conflicting customer types to the same user list. + // Conflicting labels: + // 1. Purchasers - Converted Leads + // 2. Purchasers - Qualified Leads + // 3. Purchasers - Cart Abandoners + // 4. Qualified Leads - Converted Leads + // 5. Disengaged customers - Converted Leads + // 6. Disengaged customers - Qualified Leads + // 7. Disengaged customers- Cart Abandoners + CONFLICTING_CUSTOMER_TYPES = 2; + + // The account does not have access to the user list. + NO_ACCESS_TO_USER_LIST = 3; + + // The given user list is not eligible for applying customer types. + // The user list must belong to one of the following types: CRM_BASED, + // RULE_BASED, ADVERTISER_DATA_MODEL_BASED, GCN. + USERLIST_NOT_ELIGIBLE = 4; + + // To edit the user list customer type, conversion tracking must be + // enabled in your account. If cross-tracking is enabled, your account must + // be a MCC manager account to modify user list customer types. More info at + // https://support.google.com/google-ads/answer/3030657 + CONVERSION_TRACKING_NOT_ENABLED_OR_NOT_MCC_MANAGER_ACCOUNT = 5; + + // Too many user lists for the customer type. + TOO_MANY_USER_LISTS_FOR_THE_CUSTOMER_TYPE = 6; + } +} diff --git a/google/ads/googleads/v15/errors/user_list_error.proto b/google/ads/googleads/v18/errors/user_list_error.proto similarity index 93% rename from google/ads/googleads/v15/errors/user_list_error.proto rename to google/ads/googleads/v18/errors/user_list_error.proto index 62c072595..d75d60faf 100644 --- a/google/ads/googleads/v15/errors/user_list_error.proto +++ b/google/ads/googleads/v18/errors/user_list_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "UserListErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing user list errors. diff --git a/google/ads/googleads/v18/errors/video_campaign_error.proto b/google/ads/googleads/v18/errors/video_campaign_error.proto new file mode 100644 index 000000000..242a19248 --- /dev/null +++ b/google/ads/googleads/v18/errors/video_campaign_error.proto @@ -0,0 +1,44 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.errors; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; +option java_multiple_files = true; +option java_outer_classname = "VideoCampaignErrorProto"; +option java_package = "com.google.ads.googleads.v18.errors"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; + +// Proto file describing video campaign errors. + +// Container for enum describing possible video campaign errors. +message VideoCampaignErrorEnum { + // Enum describing possible video campaign errors. + enum VideoCampaignError { + // Enum unspecified. + UNSPECIFIED = 0; + + // The received error code is not known in this version. + UNKNOWN = 1; + + // Cannot modify the video campaign without reservation. + // See https://support.google.com/google-ads/answer/9547606. + MUTATE_REQUIRES_RESERVATION = 2; + } +} diff --git a/google/ads/googleads/v15/errors/youtube_video_registration_error.proto b/google/ads/googleads/v18/errors/youtube_video_registration_error.proto similarity index 80% rename from google/ads/googleads/v15/errors/youtube_video_registration_error.proto rename to google/ads/googleads/v18/errors/youtube_video_registration_error.proto index fe30c1712..00e6c9b10 100644 --- a/google/ads/googleads/v15/errors/youtube_video_registration_error.proto +++ b/google/ads/googleads/v18/errors/youtube_video_registration_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,16 +14,16 @@ syntax = "proto3"; -package google.ads.googleads.v15.errors; +package google.ads.googleads.v18.errors; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Errors"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/errors;errors"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Errors"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/errors;errors"; option java_multiple_files = true; option java_outer_classname = "YoutubeVideoRegistrationErrorProto"; -option java_package = "com.google.ads.googleads.v15.errors"; +option java_package = "com.google.ads.googleads.v18.errors"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Errors"; -option ruby_package = "Google::Ads::GoogleAds::V15::Errors"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Errors"; +option ruby_package = "Google::Ads::GoogleAds::V18::Errors"; // Proto file describing YouTube video registration errors. diff --git a/google/ads/googleads/v18/googleads_gapic.yaml b/google/ads/googleads/v18/googleads_gapic.yaml new file mode 100644 index 000000000..8d192f0bf --- /dev/null +++ b/google/ads/googleads/v18/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.V18.Services + go: + package_name: google.golang.org/google/ads/googleads/v18/services + java: + package_name: com.google.ads.googleads.v18.services + nodejs: + package_name: v18.services + php: + package_name: Google\Ads\GoogleAds\V18\Services + python: + package_name: google.ads.googleads_v18.gapic.services + ruby: + package_name: Google::Ads::Googleads::V18::Services +interfaces: +- name: google.ads.googleads.v18.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/v18/googleads_grpc_service_config.json b/google/ads/googleads/v18/googleads_grpc_service_config.json new file mode 100755 index 000000000..15c1de40d --- /dev/null +++ b/google/ads/googleads/v18/googleads_grpc_service_config.json @@ -0,0 +1,366 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.ads.googleads.v18.services.AccountBudgetProposalService" + }, + { + "service": "google.ads.googleads.v18.services.AccountLinkService" + }, + { + "service": "google.ads.googleads.v18.services.AdGroupAdLabelService" + }, + { + "service": "google.ads.googleads.v18.services.AdGroupAdService" + }, + { + "service": "google.ads.googleads.v18.services.AdGroupAssetService" + }, + { + "service": "google.ads.googleads.v18.services.AdGroupAssetSetService" + }, + { + "service": "google.ads.googleads.v18.services.AdGroupBidModifierService" + }, + { + "service": "google.ads.googleads.v18.services.AdGroupCriterionCustomizerService" + }, + { + "service": "google.ads.googleads.v18.services.AdGroupCriterionLabelService" + }, + { + "service": "google.ads.googleads.v18.services.AdGroupCriterionService" + }, + { + "service": "google.ads.googleads.v18.services.AdGroupCustomizerService" + }, + { + "service": "google.ads.googleads.v18.services.AdGroupExtensionSettingService" + }, + { + "service": "google.ads.googleads.v18.services.AdGroupFeedService" + }, + { + "service": "google.ads.googleads.v18.services.AdGroupLabelService" + }, + { + "service": "google.ads.googleads.v18.services.AdGroupService" + }, + { + "service": "google.ads.googleads.v18.services.AdParameterService" + }, + { + "service": "google.ads.googleads.v18.services.AdService" + }, + { + "service": "google.ads.googleads.v18.services.AssetGroupAssetService" + }, + { + "service": "google.ads.googleads.v18.services.AssetGroupListingGroupFilterService" + }, + { + "service": "google.ads.googleads.v18.services.AssetGroupService" + }, + { + "service": "google.ads.googleads.v18.services.AssetGroupSignalService" + }, + { + "service": "google.ads.googleads.v18.services.AssetService" + }, + { + "service": "google.ads.googleads.v18.services.AssetSetAssetService" + }, + { + "service": "google.ads.googleads.v18.services.AssetSetService" + }, + { + "service": "google.ads.googleads.v18.services.AudienceInsightsService" + }, + { + "service": "google.ads.googleads.v18.services.AudienceService" + }, + { + "service": "google.ads.googleads.v18.services.BatchJobService" + }, + { + "service": "google.ads.googleads.v18.services.BiddingDataExclusionService" + }, + { + "service": "google.ads.googleads.v18.services.BiddingSeasonalityAdjustmentService" + }, + { + "service": "google.ads.googleads.v18.services.BiddingStrategyService" + }, + { + "service": "google.ads.googleads.v18.services.BillingSetupService" + }, + { + "service": "google.ads.googleads.v18.services.BrandSuggestionService" + }, + { + "service": "google.ads.googleads.v18.services.CampaignAssetService" + }, + { + "service": "google.ads.googleads.v18.services.CampaignAssetSetService" + }, + { + "service": "google.ads.googleads.v18.services.CampaignBidModifierService" + }, + { + "service": "google.ads.googleads.v18.services.CampaignBudgetService" + }, + { + "service": "google.ads.googleads.v18.services.CampaignConversionGoalService" + }, + { + "service": "google.ads.googleads.v18.services.CampaignCriterionService" + }, + { + "service": "google.ads.googleads.v18.services.CampaignCustomizerService" + }, + { + "service": "google.ads.googleads.v18.services.CampaignDraftService" + }, + { + "service": "google.ads.googleads.v18.services.CampaignExtensionSettingService" + }, + { + "service": "google.ads.googleads.v18.services.CampaignFeedService" + }, + { + "service": "google.ads.googleads.v18.services.CampaignGroupService" + }, + { + "service": "google.ads.googleads.v18.services.CampaignLabelService" + }, + { + "service": "google.ads.googleads.v18.services.CampaignLifecycleGoalService" + }, + { + "service": "google.ads.googleads.v18.services.CampaignService" + }, + { + "service": "google.ads.googleads.v18.services.CampaignSharedSetService" + }, + { + "service": "google.ads.googleads.v18.services.ContentCreatorInsightsService" + }, + { + "service": "google.ads.googleads.v18.services.ConversionActionService" + }, + { + "service": "google.ads.googleads.v18.services.ConversionAdjustmentUploadService" + }, + { + "service": "google.ads.googleads.v18.services.ConversionCustomVariableService" + }, + { + "service": "google.ads.googleads.v18.services.ConversionGoalCampaignConfigService" + }, + { + "service": "google.ads.googleads.v18.services.ConversionUploadService" + }, + { + "service": "google.ads.googleads.v18.services.ConversionValueRuleService" + }, + { + "service": "google.ads.googleads.v18.services.ConversionValueRuleSetService" + }, + { + "service": "google.ads.googleads.v18.services.CustomAudienceService" + }, + { + "service": "google.ads.googleads.v18.services.CustomConversionGoalService" + }, + { + "service": "google.ads.googleads.v18.services.CustomInterestService" + }, + { + "service": "google.ads.googleads.v18.services.CustomerAssetService" + }, + { + "service": "google.ads.googleads.v18.services.CustomerAssetSetService" + }, + { + "service": "google.ads.googleads.v18.services.CustomerClientLinkService" + }, + { + "service": "google.ads.googleads.v18.services.CustomerConversionGoalService" + }, + { + "service": "google.ads.googleads.v18.services.CustomerCustomizerService" + }, + { + "service": "google.ads.googleads.v18.services.CustomerExtensionSettingService" + }, + { + "service": "google.ads.googleads.v18.services.CustomerFeedService" + }, + { + "service": "google.ads.googleads.v18.services.CustomerLabelService" + }, + { + "service": "google.ads.googleads.v18.services.CustomerLifecycleGoalService" + }, + { + "service": "google.ads.googleads.v18.services.CustomerManagerLinkService" + }, + { + "service": "google.ads.googleads.v18.services.CustomerNegativeCriterionService" + }, + { + "service": "google.ads.googleads.v18.services.CustomerService" + }, + { + "service": "google.ads.googleads.v18.services.CustomerSkAdNetworkConversionValueSchemaService" + }, + { + "service": "google.ads.googleads.v18.services.CustomerUserAccessInvitationService" + }, + { + "service": "google.ads.googleads.v18.services.CustomerUserAccessService" + }, + { + "service": "google.ads.googleads.v18.services.CustomizerAttributeService" + }, + { + "service": "google.ads.googleads.v18.services.DataLinkService" + }, + { + "service": "google.ads.googleads.v18.services.ExperimentArmService" + }, + { + "service": "google.ads.googleads.v18.services.ExperimentService" + }, + { + "service": "google.ads.googleads.v18.services.ExtensionFeedItemService" + }, + { + "service": "google.ads.googleads.v18.services.FeedItemService" + }, + { + "service": "google.ads.googleads.v18.services.FeedItemSetLinkService" + }, + { + "service": "google.ads.googleads.v18.services.FeedItemSetService" + }, + { + "service": "google.ads.googleads.v18.services.FeedItemTargetService" + }, + { + "service": "google.ads.googleads.v18.services.FeedMappingService" + }, + { + "service": "google.ads.googleads.v18.services.FeedService" + }, + { + "service": "google.ads.googleads.v18.services.GeoTargetConstantService" + }, + { + "service": "google.ads.googleads.v18.services.GoogleAdsFieldService" + }, + { + "service": "google.ads.googleads.v18.services.GoogleAdsService" + }, + { + "service": "google.ads.googleads.v18.services.IdentityVerificationService" + }, + { + "service": "google.ads.googleads.v18.services.InvoiceService" + }, + { + "service": "google.ads.googleads.v18.services.KeywordPlanAdGroupKeywordService" + }, + { + "service": "google.ads.googleads.v18.services.KeywordPlanAdGroupService" + }, + { + "service": "google.ads.googleads.v18.services.KeywordPlanCampaignKeywordService" + }, + { + "service": "google.ads.googleads.v18.services.KeywordPlanCampaignService" + }, + { + "service": "google.ads.googleads.v18.services.KeywordPlanIdeaService" + }, + { + "service": "google.ads.googleads.v18.services.KeywordPlanService" + }, + { + "service": "google.ads.googleads.v18.services.KeywordThemeConstantService" + }, + { + "service": "google.ads.googleads.v18.services.LabelService" + }, + { + "service": "google.ads.googleads.v18.services.LocalServicesLeadService" + }, + { + "service": "google.ads.googleads.v18.services.OfflineUserDataJobService" + }, + { + "service": "google.ads.googleads.v18.services.PaymentsAccountService" + }, + { + "service": "google.ads.googleads.v18.services.ProductLinkInvitationService" + }, + { + "service": "google.ads.googleads.v18.services.ProductLinkService" + }, + { + "service": "google.ads.googleads.v18.services.ReachPlanService" + }, + { + "service": "google.ads.googleads.v18.services.RecommendationService" + }, + { + "service": "google.ads.googleads.v18.services.RecommendationSubscriptionService" + }, + { + "service": "google.ads.googleads.v18.services.RemarketingActionService" + }, + { + "service": "google.ads.googleads.v18.services.ShareablePreviewService" + }, + { + "service": "google.ads.googleads.v18.services.SharedCriterionService" + }, + { + "service": "google.ads.googleads.v18.services.SharedSetService" + }, + { + "service": "google.ads.googleads.v18.services.SmartCampaignSettingService" + }, + { + "service": "google.ads.googleads.v18.services.SmartCampaignSuggestService" + }, + { + "service": "google.ads.googleads.v18.services.ThirdPartyAppAnalyticsLinkService" + }, + { + "service": "google.ads.googleads.v18.services.TravelAssetSuggestionService" + }, + { + "service": "google.ads.googleads.v18.services.UserDataService" + }, + { + "service": "google.ads.googleads.v18.services.UserListCustomerTypeService" + }, + { + "service": "google.ads.googleads.v18.services.UserListService" + } + ], + "timeout": "14400s", + "retryPolicy": { + "initialBackoff": "5s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": [ + "UNAVAILABLE", + "DEADLINE_EXCEEDED" + ] + } + } + ] +} diff --git a/google/ads/googleads/v18/googleads_v18.yaml b/google/ads/googleads/v18/googleads_v18.yaml new file mode 100644 index 000000000..f404c9659 --- /dev/null +++ b/google/ads/googleads/v18/googleads_v18.yaml @@ -0,0 +1,655 @@ +type: google.api.Service +config_version: 3 +name: googleads.googleapis.com +title: Google Ads API + +apis: +- name: google.ads.googleads.v18.services.AccountBudgetProposalService +- name: google.ads.googleads.v18.services.AccountLinkService +- name: google.ads.googleads.v18.services.AdGroupAdLabelService +- name: google.ads.googleads.v18.services.AdGroupAdService +- name: google.ads.googleads.v18.services.AdGroupAssetService +- name: google.ads.googleads.v18.services.AdGroupAssetSetService +- name: google.ads.googleads.v18.services.AdGroupBidModifierService +- name: google.ads.googleads.v18.services.AdGroupCriterionCustomizerService +- name: google.ads.googleads.v18.services.AdGroupCriterionLabelService +- name: google.ads.googleads.v18.services.AdGroupCriterionService +- name: google.ads.googleads.v18.services.AdGroupCustomizerService +- name: google.ads.googleads.v18.services.AdGroupExtensionSettingService +- name: google.ads.googleads.v18.services.AdGroupFeedService +- name: google.ads.googleads.v18.services.AdGroupLabelService +- name: google.ads.googleads.v18.services.AdGroupService +- name: google.ads.googleads.v18.services.AdParameterService +- name: google.ads.googleads.v18.services.AdService +- name: google.ads.googleads.v18.services.AssetGroupAssetService +- name: google.ads.googleads.v18.services.AssetGroupListingGroupFilterService +- name: google.ads.googleads.v18.services.AssetGroupService +- name: google.ads.googleads.v18.services.AssetGroupSignalService +- name: google.ads.googleads.v18.services.AssetService +- name: google.ads.googleads.v18.services.AssetSetAssetService +- name: google.ads.googleads.v18.services.AssetSetService +- name: google.ads.googleads.v18.services.AudienceInsightsService +- name: google.ads.googleads.v18.services.AudienceService +- name: google.ads.googleads.v18.services.BatchJobService +- name: google.ads.googleads.v18.services.BiddingDataExclusionService +- name: google.ads.googleads.v18.services.BiddingSeasonalityAdjustmentService +- name: google.ads.googleads.v18.services.BiddingStrategyService +- name: google.ads.googleads.v18.services.BillingSetupService +- name: google.ads.googleads.v18.services.BrandSuggestionService +- name: google.ads.googleads.v18.services.CampaignAssetService +- name: google.ads.googleads.v18.services.CampaignAssetSetService +- name: google.ads.googleads.v18.services.CampaignBidModifierService +- name: google.ads.googleads.v18.services.CampaignBudgetService +- name: google.ads.googleads.v18.services.CampaignConversionGoalService +- name: google.ads.googleads.v18.services.CampaignCriterionService +- name: google.ads.googleads.v18.services.CampaignCustomizerService +- name: google.ads.googleads.v18.services.CampaignDraftService +- name: google.ads.googleads.v18.services.CampaignExtensionSettingService +- name: google.ads.googleads.v18.services.CampaignFeedService +- name: google.ads.googleads.v18.services.CampaignGroupService +- name: google.ads.googleads.v18.services.CampaignLabelService +- name: google.ads.googleads.v18.services.CampaignLifecycleGoalService +- name: google.ads.googleads.v18.services.CampaignService +- name: google.ads.googleads.v18.services.CampaignSharedSetService +- name: google.ads.googleads.v18.services.ContentCreatorInsightsService +- name: google.ads.googleads.v18.services.ConversionActionService +- name: google.ads.googleads.v18.services.ConversionAdjustmentUploadService +- name: google.ads.googleads.v18.services.ConversionCustomVariableService +- name: google.ads.googleads.v18.services.ConversionGoalCampaignConfigService +- name: google.ads.googleads.v18.services.ConversionUploadService +- name: google.ads.googleads.v18.services.ConversionValueRuleService +- name: google.ads.googleads.v18.services.ConversionValueRuleSetService +- name: google.ads.googleads.v18.services.CustomAudienceService +- name: google.ads.googleads.v18.services.CustomConversionGoalService +- name: google.ads.googleads.v18.services.CustomInterestService +- name: google.ads.googleads.v18.services.CustomerAssetService +- name: google.ads.googleads.v18.services.CustomerAssetSetService +- name: google.ads.googleads.v18.services.CustomerClientLinkService +- name: google.ads.googleads.v18.services.CustomerConversionGoalService +- name: google.ads.googleads.v18.services.CustomerCustomizerService +- name: google.ads.googleads.v18.services.CustomerExtensionSettingService +- name: google.ads.googleads.v18.services.CustomerFeedService +- name: google.ads.googleads.v18.services.CustomerLabelService +- name: google.ads.googleads.v18.services.CustomerLifecycleGoalService +- name: google.ads.googleads.v18.services.CustomerManagerLinkService +- name: google.ads.googleads.v18.services.CustomerNegativeCriterionService +- name: google.ads.googleads.v18.services.CustomerService +- name: google.ads.googleads.v18.services.CustomerSkAdNetworkConversionValueSchemaService +- name: google.ads.googleads.v18.services.CustomerUserAccessInvitationService +- name: google.ads.googleads.v18.services.CustomerUserAccessService +- name: google.ads.googleads.v18.services.CustomizerAttributeService +- name: google.ads.googleads.v18.services.DataLinkService +- name: google.ads.googleads.v18.services.ExperimentArmService +- name: google.ads.googleads.v18.services.ExperimentService +- name: google.ads.googleads.v18.services.ExtensionFeedItemService +- name: google.ads.googleads.v18.services.FeedItemService +- name: google.ads.googleads.v18.services.FeedItemSetLinkService +- name: google.ads.googleads.v18.services.FeedItemSetService +- name: google.ads.googleads.v18.services.FeedItemTargetService +- name: google.ads.googleads.v18.services.FeedMappingService +- name: google.ads.googleads.v18.services.FeedService +- name: google.ads.googleads.v18.services.GeoTargetConstantService +- name: google.ads.googleads.v18.services.GoogleAdsFieldService +- name: google.ads.googleads.v18.services.GoogleAdsService +- name: google.ads.googleads.v18.services.IdentityVerificationService +- name: google.ads.googleads.v18.services.InvoiceService +- name: google.ads.googleads.v18.services.KeywordPlanAdGroupKeywordService +- name: google.ads.googleads.v18.services.KeywordPlanAdGroupService +- name: google.ads.googleads.v18.services.KeywordPlanCampaignKeywordService +- name: google.ads.googleads.v18.services.KeywordPlanCampaignService +- name: google.ads.googleads.v18.services.KeywordPlanIdeaService +- name: google.ads.googleads.v18.services.KeywordPlanService +- name: google.ads.googleads.v18.services.KeywordThemeConstantService +- name: google.ads.googleads.v18.services.LabelService +- name: google.ads.googleads.v18.services.LocalServicesLeadService +- name: google.ads.googleads.v18.services.OfflineUserDataJobService +- name: google.ads.googleads.v18.services.PaymentsAccountService +- name: google.ads.googleads.v18.services.ProductLinkInvitationService +- name: google.ads.googleads.v18.services.ProductLinkService +- name: google.ads.googleads.v18.services.ReachPlanService +- name: google.ads.googleads.v18.services.RecommendationService +- name: google.ads.googleads.v18.services.RecommendationSubscriptionService +- name: google.ads.googleads.v18.services.RemarketingActionService +- name: google.ads.googleads.v18.services.ShareablePreviewService +- name: google.ads.googleads.v18.services.SharedCriterionService +- name: google.ads.googleads.v18.services.SharedSetService +- name: google.ads.googleads.v18.services.SmartCampaignSettingService +- name: google.ads.googleads.v18.services.SmartCampaignSuggestService +- name: google.ads.googleads.v18.services.ThirdPartyAppAnalyticsLinkService +- name: google.ads.googleads.v18.services.TravelAssetSuggestionService +- name: google.ads.googleads.v18.services.UserDataService +- name: google.ads.googleads.v18.services.UserListCustomerTypeService +- name: google.ads.googleads.v18.services.UserListService + +types: +- name: google.ads.googleads.v18.errors.GoogleAdsFailure +- name: google.ads.googleads.v18.resources.BatchJob.BatchJobMetadata +- name: google.ads.googleads.v18.resources.OfflineUserDataJobMetadata +- name: google.ads.googleads.v18.services.PromoteExperimentMetadata +- name: google.ads.googleads.v18.services.ScheduleExperimentMetadata + +documentation: + summary: 'Manage your Google Ads accounts, campaigns, and reports with this API.' + overview: |- + The Google Ads API enables an app to integrate with the Google Ads + platform. You can efficiently retrieve and change your Google Ads data + using the API, making it ideal for managing large or complex accounts and + campaigns. + +http: + rules: + - selector: google.longrunning.Operations.CancelOperation + post: '/v18/{name=customers/*/operations/*}:cancel' + body: '*' + - selector: google.longrunning.Operations.DeleteOperation + delete: '/v18/{name=customers/*/operations/*}' + - selector: google.longrunning.Operations.GetOperation + get: '/v18/{name=customers/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v18/{name=customers/*/operations}' + - selector: google.longrunning.Operations.WaitOperation + post: '/v18/{name=customers/*/operations/*}:wait' + body: '*' + +authentication: + rules: + - selector: google.ads.googleads.v18.services.AccountBudgetProposalService.MutateAccountBudgetProposal + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AccountLinkService.CreateAccountLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AccountLinkService.MutateAccountLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AdGroupAdLabelService.MutateAdGroupAdLabels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AdGroupAdService.MutateAdGroupAds + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AdGroupAdService.RemoveAutomaticallyCreatedAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AdGroupAssetService.MutateAdGroupAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AdGroupAssetSetService.MutateAdGroupAssetSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AdGroupBidModifierService.MutateAdGroupBidModifiers + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AdGroupCriterionService.MutateAdGroupCriteria + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AdGroupCustomizerService.MutateAdGroupCustomizers + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AdGroupFeedService.MutateAdGroupFeeds + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AdGroupLabelService.MutateAdGroupLabels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AdGroupService.MutateAdGroups + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AdParameterService.MutateAdParameters + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AdService.MutateAds + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AssetGroupAssetService.MutateAssetGroupAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AssetGroupService.MutateAssetGroups + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AssetGroupSignalService.MutateAssetGroupSignals + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AssetService.MutateAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AssetSetAssetService.MutateAssetSetAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AssetSetService.MutateAssetSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v18.services.AudienceInsightsService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.AudienceService.MutateAudiences + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v18.services.BatchJobService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.BiddingDataExclusionService.MutateBiddingDataExclusions + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.BiddingStrategyService.MutateBiddingStrategies + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.BillingSetupService.MutateBillingSetup + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.BrandSuggestionService.SuggestBrands + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CampaignAssetService.MutateCampaignAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CampaignAssetSetService.MutateCampaignAssetSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CampaignBidModifierService.MutateCampaignBidModifiers + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CampaignBudgetService.MutateCampaignBudgets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CampaignConversionGoalService.MutateCampaignConversionGoals + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CampaignCriterionService.MutateCampaignCriteria + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CampaignCustomizerService.MutateCampaignCustomizers + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v18.services.CampaignDraftService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CampaignFeedService.MutateCampaignFeeds + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CampaignGroupService.MutateCampaignGroups + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CampaignLabelService.MutateCampaignLabels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CampaignService.MutateCampaigns + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CampaignSharedSetService.MutateCampaignSharedSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.ContentCreatorInsightsService.GenerateCreatorInsights + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.ConversionActionService.MutateConversionActions + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.ConversionAdjustmentUploadService.UploadConversionAdjustments + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.ConversionCustomVariableService.MutateConversionCustomVariables + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.ConversionUploadService.UploadCallConversions + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.ConversionUploadService.UploadClickConversions + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.ConversionValueRuleService.MutateConversionValueRules + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.ConversionValueRuleSetService.MutateConversionValueRuleSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CustomAudienceService.MutateCustomAudiences + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CustomConversionGoalService.MutateCustomConversionGoals + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CustomInterestService.MutateCustomInterests + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CustomerAssetService.MutateCustomerAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CustomerAssetSetService.MutateCustomerAssetSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CustomerClientLinkService.MutateCustomerClientLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CustomerConversionGoalService.MutateCustomerConversionGoals + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CustomerCustomizerService.MutateCustomerCustomizers + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CustomerFeedService.MutateCustomerFeeds + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CustomerLabelService.MutateCustomerLabels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CustomerLifecycleGoalService.ConfigureCustomerLifecycleGoals + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CustomerManagerLinkService.MoveManagerLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CustomerManagerLinkService.MutateCustomerManagerLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v18.services.CustomerService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CustomerUserAccessService.MutateCustomerUserAccess + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.CustomizerAttributeService.MutateCustomizerAttributes + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.DataLinkService.CreateDataLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.ExperimentArmService.MutateExperimentArms + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v18.services.ExperimentService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.ExtensionFeedItemService.MutateExtensionFeedItems + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.FeedItemService.MutateFeedItems + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.FeedItemSetLinkService.MutateFeedItemSetLinks + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.FeedItemSetService.MutateFeedItemSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.FeedItemTargetService.MutateFeedItemTargets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.FeedMappingService.MutateFeedMappings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.FeedService.MutateFeeds + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.GeoTargetConstantService.SuggestGeoTargetConstants + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.GoogleAdsFieldService.GetGoogleAdsField + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.GoogleAdsFieldService.SearchGoogleAdsFields + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v18.services.GoogleAdsService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.IdentityVerificationService.GetIdentityVerification + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.IdentityVerificationService.StartIdentityVerification + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.InvoiceService.ListInvoices + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v18.services.KeywordPlanIdeaService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.KeywordPlanService.MutateKeywordPlans + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.KeywordThemeConstantService.SuggestKeywordThemeConstants + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.LabelService.MutateLabels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.LocalServicesLeadService.AppendLeadConversation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v18.services.OfflineUserDataJobService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.PaymentsAccountService.ListPaymentsAccounts + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v18.services.ProductLinkInvitationService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.ProductLinkService.CreateProductLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.ProductLinkService.RemoveProductLink + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v18.services.ReachPlanService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v18.services.RecommendationService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.RecommendationSubscriptionService.MutateRecommendationSubscription + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.RemarketingActionService.MutateRemarketingActions + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.ShareablePreviewService.GenerateShareablePreviews + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.SharedCriterionService.MutateSharedCriteria + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.SharedSetService.MutateSharedSets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.SmartCampaignSettingService.GetSmartCampaignStatus + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.SmartCampaignSettingService.MutateSmartCampaignSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: 'google.ads.googleads.v18.services.SmartCampaignSuggestService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.TravelAssetSuggestionService.SuggestTravelAssets + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.UserDataService.UploadUserData + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.services.UserListCustomerTypeService.MutateUserListCustomerTypes + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/adwords + - selector: google.ads.googleads.v18.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/v15/resources/BUILD.bazel b/google/ads/googleads/v18/resources/BUILD.bazel similarity index 94% rename from google/ads/googleads/v15/resources/BUILD.bazel rename to google/ads/googleads/v18/resources/BUILD.bazel index 2bc6eb815..8aa6d485e 100644 --- a/google/ads/googleads/v15/resources/BUILD.bazel +++ b/google/ads/googleads/v18/resources/BUILD.bazel @@ -26,9 +26,9 @@ proto_library( name = "resources_proto", srcs = glob(["*.proto"]), deps = [ - "//google/ads/googleads/v15/common:common_proto", - "//google/ads/googleads/v15/enums:enums_proto", - "//google/ads/googleads/v15/errors:errors_proto", + "//google/ads/googleads/v18/common:common_proto", + "//google/ads/googleads/v18/enums:enums_proto", + "//google/ads/googleads/v18/errors:errors_proto", "//google/api:annotations_proto", "//google/api:field_behavior_proto", "//google/api:resource_proto", diff --git a/google/ads/googleads/v15/resources/accessible_bidding_strategy.proto b/google/ads/googleads/v18/resources/accessible_bidding_strategy.proto similarity index 92% rename from google/ads/googleads/v15/resources/accessible_bidding_strategy.proto rename to google/ads/googleads/v18/resources/accessible_bidding_strategy.proto index b06abcd65..0c24e0f9c 100644 --- a/google/ads/googleads/v15/resources/accessible_bidding_strategy.proto +++ b/google/ads/googleads/v18/resources/accessible_bidding_strategy.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/bidding_strategy_type.proto"; -import "google/ads/googleads/v15/enums/target_impression_share_location.proto"; +import "google/ads/googleads/v18/enums/bidding_strategy_type.proto"; +import "google/ads/googleads/v18/enums/target_impression_share_location.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AccessibleBiddingStrategyProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Represents a view of BiddingStrategies owned by and shared with the customer. // @@ -76,7 +76,7 @@ message AccessibleBiddingStrategy { // location). message TargetImpressionShare { // Output only. The targeted location on the search results page. - google.ads.googleads.v15.enums.TargetImpressionShareLocationEnum + google.ads.googleads.v18.enums.TargetImpressionShareLocationEnum .TargetImpressionShareLocation location = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -136,7 +136,7 @@ message AccessibleBiddingStrategy { string name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The type of the bidding strategy. - google.ads.googleads.v15.enums.BiddingStrategyTypeEnum.BiddingStrategyType + google.ads.googleads.v18.enums.BiddingStrategyTypeEnum.BiddingStrategyType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The ID of the Customer which owns the bidding strategy. diff --git a/google/ads/googleads/v15/resources/account_budget.proto b/google/ads/googleads/v18/resources/account_budget.proto similarity index 90% rename from google/ads/googleads/v15/resources/account_budget.proto rename to google/ads/googleads/v18/resources/account_budget.proto index b5d2b1cc0..fe5d5c3bf 100644 --- a/google/ads/googleads/v15/resources/account_budget.proto +++ b/google/ads/googleads/v18/resources/account_budget.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/account_budget_proposal_type.proto"; -import "google/ads/googleads/v15/enums/account_budget_status.proto"; -import "google/ads/googleads/v15/enums/spending_limit_type.proto"; -import "google/ads/googleads/v15/enums/time_type.proto"; +import "google/ads/googleads/v18/enums/account_budget_proposal_type.proto"; +import "google/ads/googleads/v18/enums/account_budget_status.proto"; +import "google/ads/googleads/v18/enums/spending_limit_type.proto"; +import "google/ads/googleads/v18/enums/time_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AccountBudgetProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the AccountBudget resource. @@ -72,7 +72,7 @@ message AccountBudget { // Output only. The type of this proposal, for example, END to end the // budget associated with this proposal. - google.ads.googleads.v15.enums.AccountBudgetProposalTypeEnum + google.ads.googleads.v18.enums.AccountBudgetProposalTypeEnum .AccountBudgetProposalType proposal_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -102,7 +102,7 @@ message AccountBudget { string end_date_time = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The end time as a well-defined type, for example, FOREVER. - google.ads.googleads.v15.enums.TimeTypeEnum.TimeType end_time_type = 6 + google.ads.googleads.v18.enums.TimeTypeEnum.TimeType end_time_type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -115,7 +115,7 @@ message AccountBudget { // Output only. The spending limit as a well-defined type, for example, // INFINITE. - google.ads.googleads.v15.enums.SpendingLimitTypeEnum.SpendingLimitType + google.ads.googleads.v18.enums.SpendingLimitTypeEnum.SpendingLimitType spending_limit_type = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; } } @@ -146,7 +146,7 @@ message AccountBudget { ]; // Output only. The status of this account-level budget. - google.ads.googleads.v15.enums.AccountBudgetStatusEnum.AccountBudgetStatus + google.ads.googleads.v18.enums.AccountBudgetStatusEnum.AccountBudgetStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The name of the account-level budget. @@ -198,7 +198,7 @@ message AccountBudget { // Output only. The proposed end time as a well-defined type, for example, // FOREVER. - google.ads.googleads.v15.enums.TimeTypeEnum.TimeType + google.ads.googleads.v18.enums.TimeTypeEnum.TimeType proposed_end_time_type = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -213,7 +213,7 @@ message AccountBudget { // Output only. The approved end time as a well-defined type, for example, // FOREVER. - google.ads.googleads.v15.enums.TimeTypeEnum.TimeType + google.ads.googleads.v18.enums.TimeTypeEnum.TimeType approved_end_time_type = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -226,7 +226,7 @@ message AccountBudget { // Output only. The proposed spending limit as a well-defined type, for // example, INFINITE. - google.ads.googleads.v15.enums.SpendingLimitTypeEnum.SpendingLimitType + google.ads.googleads.v18.enums.SpendingLimitTypeEnum.SpendingLimitType proposed_spending_limit_type = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -247,7 +247,7 @@ message AccountBudget { // Output only. The approved spending limit as a well-defined type, for // example, INFINITE. This will only be populated if the approved spending // limit is INFINITE. - google.ads.googleads.v15.enums.SpendingLimitTypeEnum.SpendingLimitType + google.ads.googleads.v18.enums.SpendingLimitTypeEnum.SpendingLimitType approved_spending_limit_type = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -276,7 +276,7 @@ message AccountBudget { // example, INFINITE. This will only be populated if the adjusted spending // limit is INFINITE, which is guaranteed to be true if the approved // spending limit is INFINITE. - google.ads.googleads.v15.enums.SpendingLimitTypeEnum.SpendingLimitType + google.ads.googleads.v18.enums.SpendingLimitTypeEnum.SpendingLimitType adjusted_spending_limit_type = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/account_budget_proposal.proto b/google/ads/googleads/v18/resources/account_budget_proposal.proto similarity index 86% rename from google/ads/googleads/v15/resources/account_budget_proposal.proto rename to google/ads/googleads/v18/resources/account_budget_proposal.proto index 0aed6f39c..a01701702 100644 --- a/google/ads/googleads/v15/resources/account_budget_proposal.proto +++ b/google/ads/googleads/v18/resources/account_budget_proposal.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/account_budget_proposal_status.proto"; -import "google/ads/googleads/v15/enums/account_budget_proposal_type.proto"; -import "google/ads/googleads/v15/enums/spending_limit_type.proto"; -import "google/ads/googleads/v15/enums/time_type.proto"; +import "google/ads/googleads/v18/enums/account_budget_proposal_status.proto"; +import "google/ads/googleads/v18/enums/account_budget_proposal_type.proto"; +import "google/ads/googleads/v18/enums/spending_limit_type.proto"; +import "google/ads/googleads/v18/enums/time_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AccountBudgetProposalProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the AccountBudgetProposal resource. @@ -83,13 +83,13 @@ message AccountBudgetProposal { // Immutable. The type of this proposal, for example, END to end the budget // associated with this proposal. - google.ads.googleads.v15.enums.AccountBudgetProposalTypeEnum + google.ads.googleads.v18.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.v15.enums.AccountBudgetProposalStatusEnum + google.ads.googleads.v18.enums.AccountBudgetProposalStatusEnum .AccountBudgetProposalStatus status = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -127,7 +127,7 @@ message AccountBudgetProposal { // Immutable. The proposed start date time as a well-defined type, for // example, NOW. - google.ads.googleads.v15.enums.TimeTypeEnum.TimeType + google.ads.googleads.v18.enums.TimeTypeEnum.TimeType proposed_start_time_type = 7 [(google.api.field_behavior) = IMMUTABLE]; } @@ -140,7 +140,7 @@ message AccountBudgetProposal { // Immutable. The proposed end date time as a well-defined type, for // example, FOREVER. - google.ads.googleads.v15.enums.TimeTypeEnum.TimeType + google.ads.googleads.v18.enums.TimeTypeEnum.TimeType proposed_end_time_type = 9 [(google.api.field_behavior) = IMMUTABLE]; } @@ -152,7 +152,7 @@ message AccountBudgetProposal { // Output only. The approved end date time as a well-defined type, for // example, FOREVER. - google.ads.googleads.v15.enums.TimeTypeEnum.TimeType + google.ads.googleads.v18.enums.TimeTypeEnum.TimeType approved_end_time_type = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -165,7 +165,7 @@ message AccountBudgetProposal { // Immutable. The proposed spending limit as a well-defined type, for // example, INFINITE. - google.ads.googleads.v15.enums.SpendingLimitTypeEnum.SpendingLimitType + google.ads.googleads.v18.enums.SpendingLimitTypeEnum.SpendingLimitType proposed_spending_limit_type = 11 [(google.api.field_behavior) = IMMUTABLE]; } @@ -179,7 +179,7 @@ message AccountBudgetProposal { // Output only. The approved spending limit as a well-defined type, for // example, INFINITE. - google.ads.googleads.v15.enums.SpendingLimitTypeEnum.SpendingLimitType + google.ads.googleads.v18.enums.SpendingLimitTypeEnum.SpendingLimitType approved_spending_limit_type = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/account_link.proto b/google/ads/googleads/v18/resources/account_link.proto similarity index 57% rename from google/ads/googleads/v15/resources/account_link.proto rename to google/ads/googleads/v18/resources/account_link.proto index 18313318d..390966eb4 100644 --- a/google/ads/googleads/v15/resources/account_link.proto +++ b/google/ads/googleads/v18/resources/account_link.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/account_link_status.proto"; -import "google/ads/googleads/v15/enums/linked_account_type.proto"; -import "google/ads/googleads/v15/enums/mobile_app_vendor.proto"; +import "google/ads/googleads/v18/enums/account_link_status.proto"; +import "google/ads/googleads/v18/enums/linked_account_type.proto"; +import "google/ads/googleads/v18/enums/mobile_app_vendor.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AccountLinkProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Represents the data sharing connection between a Google Ads account and // another account @@ -55,11 +55,11 @@ message AccountLink { [(google.api.field_behavior) = OUTPUT_ONLY]; // The status of the link. - google.ads.googleads.v15.enums.AccountLinkStatusEnum.AccountLinkStatus + google.ads.googleads.v18.enums.AccountLinkStatusEnum.AccountLinkStatus status = 3; // Output only. The type of the linked account. - google.ads.googleads.v15.enums.LinkedAccountTypeEnum.LinkedAccountType type = + google.ads.googleads.v18.enums.LinkedAccountTypeEnum.LinkedAccountType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // An account linked to this Google Ads account. @@ -67,18 +67,6 @@ message AccountLink { // Immutable. A third party app analytics link. ThirdPartyAppAnalyticsLinkIdentifier third_party_app_analytics = 5 [(google.api.field_behavior) = IMMUTABLE]; - - // Output only. Data partner link. - DataPartnerLinkIdentifier data_partner = 6 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Google Ads link. - GoogleAdsLinkIdentifier google_ads = 7 - [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Advertising Partner link - AdvertisingPartnerLinkIdentifier advertising_partner = 10 - [(google.api.field_behavior) = OUTPUT_ONLY]; } } @@ -108,43 +96,6 @@ message ThirdPartyAppAnalyticsLinkIdentifier { // This field should not be empty when creating a new third // party app analytics link. It is unable to be modified after the creation of // the link. - google.ads.googleads.v15.enums.MobileAppVendorEnum.MobileAppVendor + google.ads.googleads.v18.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" - } - ]; -} - -// The identifier for the Advertising Partner Google Ads account. -message AdvertisingPartnerLinkIdentifier { - // Immutable. The resource name of the advertising partner Google Ads account. - // This field is required and should not be empty when creating a new - // Advertising Partner link. It is unable to be modified after the creation of - // the link. - optional string customer = 1 [ - (google.api.field_behavior) = IMMUTABLE, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/Customer" - } - ]; -} diff --git a/google/ads/googleads/v15/resources/ad.proto b/google/ads/googleads/v18/resources/ad.proto similarity index 65% rename from google/ads/googleads/v15/resources/ad.proto rename to google/ads/googleads/v18/resources/ad.proto index 56cdad90f..52bdfce56 100644 --- a/google/ads/googleads/v15/resources/ad.proto +++ b/google/ads/googleads/v18/resources/ad.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,26 +14,26 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/ad_type_infos.proto"; -import "google/ads/googleads/v15/common/custom_parameter.proto"; -import "google/ads/googleads/v15/common/final_app_url.proto"; -import "google/ads/googleads/v15/common/url_collection.proto"; -import "google/ads/googleads/v15/enums/ad_type.proto"; -import "google/ads/googleads/v15/enums/device.proto"; -import "google/ads/googleads/v15/enums/system_managed_entity_source.proto"; +import "google/ads/googleads/v18/common/ad_type_infos.proto"; +import "google/ads/googleads/v18/common/custom_parameter.proto"; +import "google/ads/googleads/v18/common/final_app_url.proto"; +import "google/ads/googleads/v18/common/url_collection.proto"; +import "google/ads/googleads/v18/enums/ad_type.proto"; +import "google/ads/googleads/v18/enums/device.proto"; +import "google/ads/googleads/v18/enums/system_managed_entity_source.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the ad type. @@ -62,7 +62,7 @@ message Ad { // A list of final app URLs that will be used on mobile if the user has the // specific app installed. - repeated google.ads.googleads.v15.common.FinalAppUrl final_app_urls = 35; + repeated google.ads.googleads.v18.common.FinalAppUrl final_app_urls = 35; // The list of possible final mobile URLs after all cross-domain redirects // for the ad. @@ -77,14 +77,14 @@ message Ad { // The list of mappings that can be used to substitute custom parameter tags // in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`. // For mutates, use url custom parameter operations. - repeated google.ads.googleads.v15.common.CustomParameter + repeated google.ads.googleads.v18.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.v15.enums.AdTypeEnum.AdType type = 5 + google.ads.googleads.v18.enums.AdTypeEnum.AdType type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Indicates if this ad was automatically added by Google Ads and @@ -100,11 +100,11 @@ message Ad { // displayed on other device types, for example, if no other ads are // available. If unspecified (no device preference), all devices are targeted. // This is only supported by some ad types. - google.ads.googleads.v15.enums.DeviceEnum.Device device_preference = 20; + google.ads.googleads.v18.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.v15.common.UrlCollection url_collections = 26; + repeated google.ads.googleads.v18.common.UrlCollection url_collections = 26; // Immutable. The name of the ad. This is only used to be able to identify the // ad. It does not need to be unique and does not affect the served ad. The @@ -114,104 +114,108 @@ message Ad { // Output only. If this ad is system managed, then this field will indicate // the source. This field is read-only. - google.ads.googleads.v15.enums.SystemManagedResourceSourceEnum + google.ads.googleads.v18.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.v15.common.TextAdInfo text_ad = 6 + google.ads.googleads.v18.common.TextAdInfo text_ad = 6 [(google.api.field_behavior) = IMMUTABLE]; // Details pertaining to an expanded text ad. - google.ads.googleads.v15.common.ExpandedTextAdInfo expanded_text_ad = 7; + google.ads.googleads.v18.common.ExpandedTextAdInfo expanded_text_ad = 7; // Details pertaining to a call ad. - google.ads.googleads.v15.common.CallAdInfo call_ad = 49; + google.ads.googleads.v18.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.v15.common.ExpandedDynamicSearchAdInfo + google.ads.googleads.v18.common.ExpandedDynamicSearchAdInfo expanded_dynamic_search_ad = 14 [(google.api.field_behavior) = IMMUTABLE]; // Details pertaining to a hotel ad. - google.ads.googleads.v15.common.HotelAdInfo hotel_ad = 15; + google.ads.googleads.v18.common.HotelAdInfo hotel_ad = 15; // Details pertaining to a Smart Shopping ad. - google.ads.googleads.v15.common.ShoppingSmartAdInfo shopping_smart_ad = 17; + google.ads.googleads.v18.common.ShoppingSmartAdInfo shopping_smart_ad = 17; // Details pertaining to a Shopping product ad. - google.ads.googleads.v15.common.ShoppingProductAdInfo shopping_product_ad = + google.ads.googleads.v18.common.ShoppingProductAdInfo shopping_product_ad = 18; // Immutable. Details pertaining to an Image ad. - google.ads.googleads.v15.common.ImageAdInfo image_ad = 22 + google.ads.googleads.v18.common.ImageAdInfo image_ad = 22 [(google.api.field_behavior) = IMMUTABLE]; // Details pertaining to a Video ad. - google.ads.googleads.v15.common.VideoAdInfo video_ad = 24; + google.ads.googleads.v18.common.VideoAdInfo video_ad = 24; // Details pertaining to a Video responsive ad. - google.ads.googleads.v15.common.VideoResponsiveAdInfo video_responsive_ad = + google.ads.googleads.v18.common.VideoResponsiveAdInfo video_responsive_ad = 39; // Details pertaining to a responsive search ad. - google.ads.googleads.v15.common.ResponsiveSearchAdInfo + google.ads.googleads.v18.common.ResponsiveSearchAdInfo responsive_search_ad = 25; // Details pertaining to a legacy responsive display ad. - google.ads.googleads.v15.common.LegacyResponsiveDisplayAdInfo + google.ads.googleads.v18.common.LegacyResponsiveDisplayAdInfo legacy_responsive_display_ad = 28; // Details pertaining to an app ad. - google.ads.googleads.v15.common.AppAdInfo app_ad = 29; + google.ads.googleads.v18.common.AppAdInfo app_ad = 29; // Immutable. Details pertaining to a legacy app install ad. - google.ads.googleads.v15.common.LegacyAppInstallAdInfo + google.ads.googleads.v18.common.LegacyAppInstallAdInfo legacy_app_install_ad = 30 [(google.api.field_behavior) = IMMUTABLE]; // Details pertaining to a responsive display ad. - google.ads.googleads.v15.common.ResponsiveDisplayAdInfo + google.ads.googleads.v18.common.ResponsiveDisplayAdInfo responsive_display_ad = 31; // Details pertaining to a local ad. - google.ads.googleads.v15.common.LocalAdInfo local_ad = 32; + google.ads.googleads.v18.common.LocalAdInfo local_ad = 32; // Details pertaining to a display upload ad. - google.ads.googleads.v15.common.DisplayUploadAdInfo display_upload_ad = 33; + google.ads.googleads.v18.common.DisplayUploadAdInfo display_upload_ad = 33; // Details pertaining to an app engagement ad. - google.ads.googleads.v15.common.AppEngagementAdInfo app_engagement_ad = 34; + google.ads.googleads.v18.common.AppEngagementAdInfo app_engagement_ad = 34; // Details pertaining to a Shopping Comparison Listing ad. - google.ads.googleads.v15.common.ShoppingComparisonListingAdInfo + google.ads.googleads.v18.common.ShoppingComparisonListingAdInfo shopping_comparison_listing_ad = 36; // Details pertaining to a Smart campaign ad. - google.ads.googleads.v15.common.SmartCampaignAdInfo smart_campaign_ad = 48; + google.ads.googleads.v18.common.SmartCampaignAdInfo smart_campaign_ad = 48; // Details pertaining to an app pre-registration ad. - google.ads.googleads.v15.common.AppPreRegistrationAdInfo + google.ads.googleads.v18.common.AppPreRegistrationAdInfo app_pre_registration_ad = 50; - // Details pertaining to a discovery multi asset ad. - google.ads.googleads.v15.common.DiscoveryMultiAssetAdInfo - discovery_multi_asset_ad = 51; + // Details pertaining to a Demand Gen multi asset ad. + google.ads.googleads.v18.common.DemandGenMultiAssetAdInfo + demand_gen_multi_asset_ad = 62; - // Details pertaining to a discovery carousel ad. - google.ads.googleads.v15.common.DiscoveryCarouselAdInfo - discovery_carousel_ad = 52; + // Details pertaining to a Demand Gen carousel ad. + google.ads.googleads.v18.common.DemandGenCarouselAdInfo + demand_gen_carousel_ad = 63; - // Details pertaining to a discovery video responsive ad. - google.ads.googleads.v15.common.DiscoveryVideoResponsiveAdInfo - discovery_video_responsive_ad = 60; + // Details pertaining to a Demand Gen video responsive ad. + google.ads.googleads.v18.common.DemandGenVideoResponsiveAdInfo + demand_gen_video_responsive_ad = 64; + + // Details pertaining to a Demand Gen product ad. + google.ads.googleads.v18.common.DemandGenProductAdInfo + demand_gen_product_ad = 61; // Details pertaining to a travel ad. - google.ads.googleads.v15.common.TravelAdInfo travel_ad = 54; + google.ads.googleads.v18.common.TravelAdInfo travel_ad = 54; } } diff --git a/google/ads/googleads/v15/resources/ad_group.proto b/google/ads/googleads/v18/resources/ad_group.proto similarity index 73% rename from google/ads/googleads/v15/resources/ad_group.proto rename to google/ads/googleads/v18/resources/ad_group.proto index 5a5722725..fbb080fcd 100644 --- a/google/ads/googleads/v15/resources/ad_group.proto +++ b/google/ads/googleads/v18/resources/ad_group.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,28 +14,30 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; - -import "google/ads/googleads/v15/common/custom_parameter.proto"; -import "google/ads/googleads/v15/common/targeting_setting.proto"; -import "google/ads/googleads/v15/enums/ad_group_ad_rotation_mode.proto"; -import "google/ads/googleads/v15/enums/ad_group_status.proto"; -import "google/ads/googleads/v15/enums/ad_group_type.proto"; -import "google/ads/googleads/v15/enums/asset_field_type.proto"; -import "google/ads/googleads/v15/enums/asset_set_type.proto"; -import "google/ads/googleads/v15/enums/bidding_source.proto"; -import "google/ads/googleads/v15/enums/targeting_dimension.proto"; +package google.ads.googleads.v18.resources; + +import "google/ads/googleads/v18/common/custom_parameter.proto"; +import "google/ads/googleads/v18/common/targeting_setting.proto"; +import "google/ads/googleads/v18/enums/ad_group_ad_rotation_mode.proto"; +import "google/ads/googleads/v18/enums/ad_group_primary_status.proto"; +import "google/ads/googleads/v18/enums/ad_group_primary_status_reason.proto"; +import "google/ads/googleads/v18/enums/ad_group_status.proto"; +import "google/ads/googleads/v18/enums/ad_group_type.proto"; +import "google/ads/googleads/v18/enums/asset_field_type.proto"; +import "google/ads/googleads/v18/enums/asset_set_type.proto"; +import "google/ads/googleads/v18/enums/bidding_source.proto"; +import "google/ads/googleads/v18/enums/targeting_dimension.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the ad group resource. @@ -80,14 +82,14 @@ message AdGroup { optional string name = 35; // The status of the ad group. - google.ads.googleads.v15.enums.AdGroupStatusEnum.AdGroupStatus status = 5; + google.ads.googleads.v18.enums.AdGroupStatusEnum.AdGroupStatus status = 5; // Immutable. The type of the ad group. - google.ads.googleads.v15.enums.AdGroupTypeEnum.AdGroupType type = 12 + google.ads.googleads.v18.enums.AdGroupTypeEnum.AdGroupType type = 12 [(google.api.field_behavior) = IMMUTABLE]; // The ad rotation mode of the ad group. - google.ads.googleads.v15.enums.AdGroupAdRotationModeEnum.AdGroupAdRotationMode + google.ads.googleads.v18.enums.AdGroupAdRotationModeEnum.AdGroupAdRotationMode ad_rotation_mode = 22; // Output only. For draft or experiment ad groups, this field is the resource @@ -110,7 +112,7 @@ message AdGroup { // The list of mappings used to substitute custom parameter tags in a // `tracking_url_template`, `final_urls`, or `mobile_final_urls`. - repeated google.ads.googleads.v15.common.CustomParameter + repeated google.ads.googleads.v18.common.CustomParameter url_custom_parameters = 6; // Immutable. The campaign to which the ad group belongs. @@ -159,21 +161,35 @@ message AdGroup { // value stored here is 1,000,000 * [fraction]. optional int64 percent_cpc_bid_micros = 45; + // The fixed amount in micros that the advertiser pays for every thousand + // impressions of the ad. + optional int64 fixed_cpm_micros = 64; + + // Average amount in micros that the advertiser is willing to pay for every ad + // view. + optional int64 target_cpv_micros = 65; + // True if optimized targeting is enabled. Optimized Targeting is the // replacement for Audience Expansion. bool optimized_targeting_enabled = 59; + // When this value is true, demographics will be excluded from the types of + // targeting which are expanded when optimized_targeting_enabled is true. + // When optimized_targeting_enabled is false, this field is ignored. Default + // is false. + bool exclude_demographic_expansion = 67; + // 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.v15.enums.TargetingDimensionEnum.TargetingDimension + google.ads.googleads.v18.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.v15.common.TargetingSetting targeting_setting = 25; + google.ads.googleads.v18.common.TargetingSetting targeting_setting = 25; // Immutable. Setting for audience related features. AudienceSetting audience_setting = 56 @@ -186,7 +202,7 @@ message AdGroup { // Output only. Source of the effective target CPA. // This field is read-only. - google.ads.googleads.v15.enums.BiddingSourceEnum.BiddingSource + google.ads.googleads.v18.enums.BiddingSourceEnum.BiddingSource effective_target_cpa_source = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -197,7 +213,7 @@ message AdGroup { // Output only. Source of the effective target ROAS. // This field is read-only. - google.ads.googleads.v15.enums.BiddingSourceEnum.BiddingSource + google.ads.googleads.v18.enums.BiddingSourceEnum.BiddingSource effective_target_roas_source = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -212,7 +228,7 @@ message AdGroup { // The asset field types that should be excluded from this ad group. Asset // links with these field types will not be inherited by this ad group from // the upper levels. - repeated google.ads.googleads.v15.enums.AssetFieldTypeEnum.AssetFieldType + repeated google.ads.googleads.v18.enums.AssetFieldTypeEnum.AssetFieldType excluded_parent_asset_field_types = 54; // The asset set types that should be excluded from this ad group. Asset set @@ -225,6 +241,17 @@ message AdGroup { // and all Location Extension (LE) and Affiliate Location Extensions (ALE) // will not be served under this ad group. // Only LOCATION_SYNC is currently supported. - repeated google.ads.googleads.v15.enums.AssetSetTypeEnum.AssetSetType + repeated google.ads.googleads.v18.enums.AssetSetTypeEnum.AssetSetType excluded_parent_asset_set_types = 58; + + // Output only. Provides aggregated view into why an ad group is not serving + // or not serving optimally. + google.ads.googleads.v18.enums.AdGroupPrimaryStatusEnum.AdGroupPrimaryStatus + primary_status = 62 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Provides reasons for why an ad group is not serving or not + // serving optimally. + repeated google.ads.googleads.v18.enums.AdGroupPrimaryStatusReasonEnum + .AdGroupPrimaryStatusReason primary_status_reasons = 63 + [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/ad_group_ad.proto b/google/ads/googleads/v18/resources/ad_group_ad.proto similarity index 54% rename from google/ads/googleads/v15/resources/ad_group_ad.proto rename to google/ads/googleads/v18/resources/ad_group_ad.proto index 02ec81181..f46bc780b 100644 --- a/google/ads/googleads/v15/resources/ad_group_ad.proto +++ b/google/ads/googleads/v18/resources/ad_group_ad.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,25 +14,29 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; - -import "google/ads/googleads/v15/common/policy.proto"; -import "google/ads/googleads/v15/enums/ad_group_ad_status.proto"; -import "google/ads/googleads/v15/enums/ad_strength.proto"; -import "google/ads/googleads/v15/enums/policy_approval_status.proto"; -import "google/ads/googleads/v15/enums/policy_review_status.proto"; -import "google/ads/googleads/v15/resources/ad.proto"; +package google.ads.googleads.v18.resources; + +import "google/ads/googleads/v18/common/policy.proto"; +import "google/ads/googleads/v18/enums/ad_group_ad_primary_status.proto"; +import "google/ads/googleads/v18/enums/ad_group_ad_primary_status_reason.proto"; +import "google/ads/googleads/v18/enums/ad_group_ad_status.proto"; +import "google/ads/googleads/v18/enums/ad_strength.proto"; +import "google/ads/googleads/v18/enums/asset_automation_status.proto"; +import "google/ads/googleads/v18/enums/asset_automation_type.proto"; +import "google/ads/googleads/v18/enums/policy_approval_status.proto"; +import "google/ads/googleads/v18/enums/policy_review_status.proto"; +import "google/ads/googleads/v18/resources/ad.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupAdProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the ad group ad resource. @@ -55,7 +59,7 @@ message AdGroupAd { ]; // The status of the ad. - google.ads.googleads.v15.enums.AdGroupAdStatusEnum.AdGroupAdStatus status = 3; + google.ads.googleads.v18.enums.AdGroupAdStatusEnum.AdGroupAdStatus status = 3; // Immutable. The ad group to which the ad belongs. optional string ad_group = 9 [ @@ -73,7 +77,7 @@ message AdGroupAd { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Overall ad strength for this ad group ad. - google.ads.googleads.v15.enums.AdStrengthEnum.AdStrength ad_strength = 7 + google.ads.googleads.v18.enums.AdStrengthEnum.AdStrength ad_strength = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. A list of recommendations to improve the ad strength. For @@ -88,20 +92,50 @@ message AdGroupAd { type: "googleads.googleapis.com/AdGroupAdLabel" } ]; + + // Output only. Provides aggregated view into why an ad group ad is not + // serving or not serving optimally. + google.ads.googleads.v18.enums.AdGroupAdPrimaryStatusEnum + .AdGroupAdPrimaryStatus primary_status = 16 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Provides reasons for why an ad group ad is not serving or not + // serving optimally. + repeated google.ads.googleads.v18.enums.AdGroupAdPrimaryStatusReasonEnum + .AdGroupAdPrimaryStatusReason primary_status_reasons = 17 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Settings that control the types of asset automation. See the + // AssetAutomationTypeEnum documentation for the default opt in/out behavior + // of each type. + repeated AdGroupAdAssetAutomationSetting + ad_group_ad_asset_automation_settings = 18; } // Contains policy information for an ad. message AdGroupAdPolicySummary { // Output only. The list of policy findings for this ad. - repeated google.ads.googleads.v15.common.PolicyTopicEntry + repeated google.ads.googleads.v18.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.v15.enums.PolicyReviewStatusEnum.PolicyReviewStatus + google.ads.googleads.v18.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.v15.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus + google.ads.googleads.v18.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } + +// Asset automation setting for an AdGroupAd. +message AdGroupAdAssetAutomationSetting { + // The asset automation type that this setting configures. + optional + google.ads.googleads.v18.enums.AssetAutomationTypeEnum.AssetAutomationType + asset_automation_type = 1; + + // The opt-in/out status for the specified asset automation type. + optional google.ads.googleads.v18.enums.AssetAutomationStatusEnum + .AssetAutomationStatus asset_automation_status = 2; +} diff --git a/google/ads/googleads/v15/resources/ad_group_ad_asset_combination_view.proto b/google/ads/googleads/v18/resources/ad_group_ad_asset_combination_view.proto similarity index 84% rename from google/ads/googleads/v15/resources/ad_group_ad_asset_combination_view.proto rename to google/ads/googleads/v18/resources/ad_group_ad_asset_combination_view.proto index 0f6292b76..f2f8c4747 100644 --- a/google/ads/googleads/v15/resources/ad_group_ad_asset_combination_view.proto +++ b/google/ads/googleads/v18/resources/ad_group_ad_asset_combination_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/asset_usage.proto"; +import "google/ads/googleads/v18/common/asset_usage.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupAdAssetCombinationViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the asset combination view resource. @@ -54,7 +54,7 @@ message AdGroupAdAssetCombinationView { ]; // Output only. Served assets. - repeated google.ads.googleads.v15.common.AssetUsage served_assets = 2 + repeated google.ads.googleads.v18.common.AssetUsage served_assets = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The status between the asset combination and the latest diff --git a/google/ads/googleads/v15/resources/ad_group_ad_asset_view.proto b/google/ads/googleads/v18/resources/ad_group_ad_asset_view.proto similarity index 76% rename from google/ads/googleads/v15/resources/ad_group_ad_asset_view.proto rename to google/ads/googleads/v18/resources/ad_group_ad_asset_view.proto index 37f2ed31b..564597253 100644 --- a/google/ads/googleads/v15/resources/ad_group_ad_asset_view.proto +++ b/google/ads/googleads/v18/resources/ad_group_ad_asset_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,26 +14,26 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/policy.proto"; -import "google/ads/googleads/v15/enums/asset_field_type.proto"; -import "google/ads/googleads/v15/enums/asset_performance_label.proto"; -import "google/ads/googleads/v15/enums/asset_source.proto"; -import "google/ads/googleads/v15/enums/policy_approval_status.proto"; -import "google/ads/googleads/v15/enums/policy_review_status.proto"; -import "google/ads/googleads/v15/enums/served_asset_field_type.proto"; +import "google/ads/googleads/v18/common/policy.proto"; +import "google/ads/googleads/v18/enums/asset_field_type.proto"; +import "google/ads/googleads/v18/enums/asset_performance_label.proto"; +import "google/ads/googleads/v18/enums/asset_source.proto"; +import "google/ads/googleads/v18/enums/policy_approval_status.proto"; +import "google/ads/googleads/v18/enums/policy_review_status.proto"; +import "google/ads/googleads/v18/enums/served_asset_field_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupAdAssetViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the ad group ad asset view resource. @@ -76,7 +76,7 @@ message AdGroupAdAssetView { ]; // Output only. Role that the asset takes in the ad. - google.ads.googleads.v15.enums.AssetFieldTypeEnum.AssetFieldType field_type = + google.ads.googleads.v18.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. @@ -90,30 +90,30 @@ message AdGroupAdAssetView { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Performance of an asset linkage. - google.ads.googleads.v15.enums.AssetPerformanceLabelEnum.AssetPerformanceLabel + google.ads.googleads.v18.enums.AssetPerformanceLabelEnum.AssetPerformanceLabel performance_label = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Pinned field. - google.ads.googleads.v15.enums.ServedAssetFieldTypeEnum.ServedAssetFieldType + google.ads.googleads.v18.enums.ServedAssetFieldTypeEnum.ServedAssetFieldType pinned_field = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Source of the ad group ad asset. - google.ads.googleads.v15.enums.AssetSourceEnum.AssetSource source = 12 + google.ads.googleads.v18.enums.AssetSourceEnum.AssetSource source = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Contains policy information for an ad group ad asset. message AdGroupAdAssetPolicySummary { // Output only. The list of policy findings for the ad group ad asset. - repeated google.ads.googleads.v15.common.PolicyTopicEntry + repeated google.ads.googleads.v18.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.v15.enums.PolicyReviewStatusEnum.PolicyReviewStatus + google.ads.googleads.v18.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.v15.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus + google.ads.googleads.v18.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/ad_group_ad_label.proto b/google/ads/googleads/v18/resources/ad_group_ad_label.proto similarity index 84% rename from google/ads/googleads/v15/resources/ad_group_ad_label.proto rename to google/ads/googleads/v18/resources/ad_group_ad_label.proto index a0e2352b3..197758a86 100644 --- a/google/ads/googleads/v15/resources/ad_group_ad_label.proto +++ b/google/ads/googleads/v18/resources/ad_group_ad_label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupAdLabelProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the ad group ad label resource. diff --git a/google/ads/googleads/v15/resources/ad_group_asset.proto b/google/ads/googleads/v18/resources/ad_group_asset.proto similarity index 75% rename from google/ads/googleads/v15/resources/ad_group_asset.proto rename to google/ads/googleads/v18/resources/ad_group_asset.proto index f4dd8ce36..226d7f76f 100644 --- a/google/ads/googleads/v15/resources/ad_group_asset.proto +++ b/google/ads/googleads/v18/resources/ad_group_asset.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,25 +14,25 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/asset_policy.proto"; -import "google/ads/googleads/v15/enums/asset_field_type.proto"; -import "google/ads/googleads/v15/enums/asset_link_primary_status.proto"; -import "google/ads/googleads/v15/enums/asset_link_primary_status_reason.proto"; -import "google/ads/googleads/v15/enums/asset_link_status.proto"; -import "google/ads/googleads/v15/enums/asset_source.proto"; +import "google/ads/googleads/v18/common/asset_policy.proto"; +import "google/ads/googleads/v18/enums/asset_field_type.proto"; +import "google/ads/googleads/v18/enums/asset_link_primary_status.proto"; +import "google/ads/googleads/v18/enums/asset_link_primary_status_reason.proto"; +import "google/ads/googleads/v18/enums/asset_link_status.proto"; +import "google/ads/googleads/v18/enums/asset_source.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupAssetProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the AdGroupAsset resource. @@ -71,18 +71,18 @@ message AdGroupAsset { ]; // Required. Immutable. Role that the asset takes under the linked ad group. - google.ads.googleads.v15.enums.AssetFieldTypeEnum.AssetFieldType field_type = + google.ads.googleads.v18.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.v15.enums.AssetSourceEnum.AssetSource source = 6 + google.ads.googleads.v18.enums.AssetSourceEnum.AssetSource source = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // Status of the ad group asset. - google.ads.googleads.v15.enums.AssetLinkStatusEnum.AssetLinkStatus status = 5; + google.ads.googleads.v18.enums.AssetLinkStatusEnum.AssetLinkStatus status = 5; // Output only. Provides the PrimaryStatus of this asset link. // Primary status is meant essentially to differentiate between the plain @@ -90,18 +90,18 @@ message AdGroupAsset { // removed. The primary status takes into account other signals (for assets // its mainly policy and quality approvals) to come up with a more // comprehensive status to indicate its serving state. - google.ads.googleads.v15.enums.AssetLinkPrimaryStatusEnum + google.ads.googleads.v18.enums.AssetLinkPrimaryStatusEnum .AssetLinkPrimaryStatus primary_status = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Provides the details of the primary status and its associated // reasons. - repeated google.ads.googleads.v15.common.AssetLinkPrimaryStatusDetails + repeated google.ads.googleads.v18.common.AssetLinkPrimaryStatusDetails primary_status_details = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Provides a list of reasons for why an asset is not serving or // not serving at full capacity. - repeated google.ads.googleads.v15.enums.AssetLinkPrimaryStatusReasonEnum + repeated google.ads.googleads.v18.enums.AssetLinkPrimaryStatusReasonEnum .AssetLinkPrimaryStatusReason primary_status_reasons = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/ad_group_asset_set.proto b/google/ads/googleads/v18/resources/ad_group_asset_set.proto similarity index 81% rename from google/ads/googleads/v15/resources/ad_group_asset_set.proto rename to google/ads/googleads/v18/resources/ad_group_asset_set.proto index 3ed275334..70affaf9a 100644 --- a/google/ads/googleads/v15/resources/ad_group_asset_set.proto +++ b/google/ads/googleads/v18/resources/ad_group_asset_set.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/asset_set_link_status.proto"; +import "google/ads/googleads/v18/enums/asset_set_link_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupAssetSetProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the AdGroupAssetSet resource. @@ -67,6 +67,6 @@ message AdGroupAssetSet { ]; // Output only. The status of the ad group asset set. Read-only. - google.ads.googleads.v15.enums.AssetSetLinkStatusEnum.AssetSetLinkStatus + google.ads.googleads.v18.enums.AssetSetLinkStatusEnum.AssetSetLinkStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/ad_group_audience_view.proto b/google/ads/googleads/v18/resources/ad_group_audience_view.proto similarity index 82% rename from google/ads/googleads/v15/resources/ad_group_audience_view.proto rename to google/ads/googleads/v18/resources/ad_group_audience_view.proto index b82f8905f..7ddc040c3 100644 --- a/google/ads/googleads/v15/resources/ad_group_audience_view.proto +++ b/google/ads/googleads/v18/resources/ad_group_audience_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupAudienceViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the ad group audience view resource. diff --git a/google/ads/googleads/v15/resources/ad_group_bid_modifier.proto b/google/ads/googleads/v18/resources/ad_group_bid_modifier.proto similarity index 80% rename from google/ads/googleads/v15/resources/ad_group_bid_modifier.proto rename to google/ads/googleads/v18/resources/ad_group_bid_modifier.proto index a04c54ad2..8f4ea0e6c 100644 --- a/google/ads/googleads/v15/resources/ad_group_bid_modifier.proto +++ b/google/ads/googleads/v18/resources/ad_group_bid_modifier.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/criteria.proto"; -import "google/ads/googleads/v15/enums/bid_modifier_source.proto"; +import "google/ads/googleads/v18/common/criteria.proto"; +import "google/ads/googleads/v18/enums/bid_modifier_source.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupBidModifierProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the ad group bid modifier resource. @@ -81,7 +81,7 @@ message AdGroupBidModifier { ]; // Output only. Bid modifier source. - google.ads.googleads.v15.enums.BidModifierSourceEnum.BidModifierSource + google.ads.googleads.v18.enums.BidModifierSourceEnum.BidModifierSource bid_modifier_source = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; // The criterion of this ad group bid modifier. @@ -90,29 +90,29 @@ message AdGroupBidModifier { oneof criterion { // Immutable. Criterion for hotel date selection (default dates versus user // selected). - google.ads.googleads.v15.common.HotelDateSelectionTypeInfo + google.ads.googleads.v18.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.v15.common.HotelAdvanceBookingWindowInfo + google.ads.googleads.v18.common.HotelAdvanceBookingWindowInfo hotel_advance_booking_window = 6 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Criterion for length of hotel stay in nights. - google.ads.googleads.v15.common.HotelLengthOfStayInfo hotel_length_of_stay = + google.ads.googleads.v18.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.v15.common.HotelCheckInDayInfo hotel_check_in_day = 8 + google.ads.googleads.v18.common.HotelCheckInDayInfo hotel_check_in_day = 8 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. A device criterion. - google.ads.googleads.v15.common.DeviceInfo device = 11 + google.ads.googleads.v18.common.DeviceInfo device = 11 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Criterion for a hotel check-in date range. - google.ads.googleads.v15.common.HotelCheckInDateRangeInfo + google.ads.googleads.v18.common.HotelCheckInDateRangeInfo hotel_check_in_date_range = 17 [(google.api.field_behavior) = IMMUTABLE]; } diff --git a/google/ads/googleads/v15/resources/ad_group_criterion.proto b/google/ads/googleads/v18/resources/ad_group_criterion.proto similarity index 74% rename from google/ads/googleads/v15/resources/ad_group_criterion.proto rename to google/ads/googleads/v18/resources/ad_group_criterion.proto index 806582190..e0a1d7779 100644 --- a/google/ads/googleads/v15/resources/ad_group_criterion.proto +++ b/google/ads/googleads/v18/resources/ad_group_criterion.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,31 +14,35 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; - -import "google/ads/googleads/v15/common/criteria.proto"; -import "google/ads/googleads/v15/common/custom_parameter.proto"; -import "google/ads/googleads/v15/enums/ad_group_criterion_approval_status.proto"; -import "google/ads/googleads/v15/enums/ad_group_criterion_status.proto"; -import "google/ads/googleads/v15/enums/bidding_source.proto"; -import "google/ads/googleads/v15/enums/criterion_system_serving_status.proto"; -import "google/ads/googleads/v15/enums/criterion_type.proto"; -import "google/ads/googleads/v15/enums/quality_score_bucket.proto"; +package google.ads.googleads.v18.resources; + +import "google/ads/googleads/v18/common/criteria.proto"; +import "google/ads/googleads/v18/common/custom_parameter.proto"; +import "google/ads/googleads/v18/enums/ad_group_criterion_approval_status.proto"; +import "google/ads/googleads/v18/enums/ad_group_criterion_primary_status.proto"; +import "google/ads/googleads/v18/enums/ad_group_criterion_primary_status_reason.proto"; +import "google/ads/googleads/v18/enums/ad_group_criterion_status.proto"; +import "google/ads/googleads/v18/enums/bidding_source.proto"; +import "google/ads/googleads/v18/enums/criterion_system_serving_status.proto"; +import "google/ads/googleads/v18/enums/criterion_type.proto"; +import "google/ads/googleads/v18/enums/quality_score_bucket.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupCriterionProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the ad group criterion resource. // An ad group criterion. +// The ad_group_criterion report only returns criteria that were explicitly +// added to the ad group. message AdGroupCriterion { option (google.api.resource) = { type: "googleads.googleapis.com/AdGroupCriterion" @@ -55,17 +59,17 @@ message AdGroupCriterion { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The performance of the ad compared to other advertisers. - google.ads.googleads.v15.enums.QualityScoreBucketEnum.QualityScoreBucket + google.ads.googleads.v18.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.v15.enums.QualityScoreBucketEnum.QualityScoreBucket + google.ads.googleads.v18.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.v15.enums.QualityScoreBucketEnum.QualityScoreBucket + google.ads.googleads.v18.enums.QualityScoreBucketEnum.QualityScoreBucket search_predicted_ctr = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -128,7 +132,7 @@ message AdGroupCriterion { // excluded. The UI will show each age range as "enabled", since they're // eligible to see the ads; but AdGroupCriterion.status will show "removed", // since no positive criterion was added. - google.ads.googleads.v15.enums.AdGroupCriterionStatusEnum + google.ads.googleads.v18.enums.AdGroupCriterionStatusEnum .AdGroupCriterionStatus status = 3; // Output only. Information regarding the quality of the criterion. @@ -143,7 +147,7 @@ message AdGroupCriterion { ]; // Output only. The type of the criterion. - google.ads.googleads.v15.enums.CriterionTypeEnum.CriterionType type = 25 + google.ads.googleads.v18.enums.CriterionTypeEnum.CriterionType type = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; // Immutable. Whether to target (`false`) or exclude (`true`) the criterion. @@ -153,12 +157,12 @@ message AdGroupCriterion { optional bool negative = 58 [(google.api.field_behavior) = IMMUTABLE]; // Output only. Serving status of the criterion. - google.ads.googleads.v15.enums.CriterionSystemServingStatusEnum + google.ads.googleads.v18.enums.CriterionSystemServingStatusEnum .CriterionSystemServingStatus system_serving_status = 52 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Approval status of the criterion. - google.ads.googleads.v15.enums.AdGroupCriterionApprovalStatusEnum + google.ads.googleads.v18.enums.AdGroupCriterionApprovalStatusEnum .AdGroupCriterionApprovalStatus approval_status = 53 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -216,19 +220,19 @@ message AdGroupCriterion { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Source of the effective CPC bid. - google.ads.googleads.v15.enums.BiddingSourceEnum.BiddingSource + google.ads.googleads.v18.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.v15.enums.BiddingSourceEnum.BiddingSource + google.ads.googleads.v18.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.v15.enums.BiddingSourceEnum.BiddingSource + google.ads.googleads.v18.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.v15.enums.BiddingSourceEnum.BiddingSource + google.ads.googleads.v18.enums.BiddingSourceEnum.BiddingSource effective_percent_cpc_bid_source = 35 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -251,106 +255,114 @@ message AdGroupCriterion { // The list of mappings used to substitute custom parameter tags in a // `tracking_url_template`, `final_urls`, or `mobile_final_urls`. - repeated google.ads.googleads.v15.common.CustomParameter + repeated google.ads.googleads.v18.common.CustomParameter url_custom_parameters = 14; + // Output only. The primary status for the ad group criterion. + optional google.ads.googleads.v18.enums.AdGroupCriterionPrimaryStatusEnum + .AdGroupCriterionPrimaryStatus primary_status = 85 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The primary status reasons for the ad group criterion. + repeated + google.ads.googleads.v18.enums.AdGroupCriterionPrimaryStatusReasonEnum + .AdGroupCriterionPrimaryStatusReason primary_status_reasons = 86 + [(google.api.field_behavior) = OUTPUT_ONLY]; + // The ad group criterion. // // Exactly one must be set. oneof criterion { // Immutable. Keyword. - google.ads.googleads.v15.common.KeywordInfo keyword = 27 + google.ads.googleads.v18.common.KeywordInfo keyword = 27 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Placement. - google.ads.googleads.v15.common.PlacementInfo placement = 28 + google.ads.googleads.v18.common.PlacementInfo placement = 28 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Mobile app category. - google.ads.googleads.v15.common.MobileAppCategoryInfo mobile_app_category = + google.ads.googleads.v18.common.MobileAppCategoryInfo mobile_app_category = 29 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Mobile application. - google.ads.googleads.v15.common.MobileApplicationInfo mobile_application = + google.ads.googleads.v18.common.MobileApplicationInfo mobile_application = 30 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Listing group. - google.ads.googleads.v15.common.ListingGroupInfo listing_group = 32 + google.ads.googleads.v18.common.ListingGroupInfo listing_group = 32 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Age range. - google.ads.googleads.v15.common.AgeRangeInfo age_range = 36 + google.ads.googleads.v18.common.AgeRangeInfo age_range = 36 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Gender. - google.ads.googleads.v15.common.GenderInfo gender = 37 + google.ads.googleads.v18.common.GenderInfo gender = 37 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Income range. - google.ads.googleads.v15.common.IncomeRangeInfo income_range = 38 + google.ads.googleads.v18.common.IncomeRangeInfo income_range = 38 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Parental status. - google.ads.googleads.v15.common.ParentalStatusInfo parental_status = 39 + google.ads.googleads.v18.common.ParentalStatusInfo parental_status = 39 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. User List. - // The Similar Audiences sunset starts May 2023. Refer to - // https://ads-developers.googleblog.com/2022/11/announcing-deprecation-and-sunset-of.html - // for other options. - google.ads.googleads.v15.common.UserListInfo user_list = 42 + google.ads.googleads.v18.common.UserListInfo user_list = 42 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. YouTube Video. - google.ads.googleads.v15.common.YouTubeVideoInfo youtube_video = 40 + google.ads.googleads.v18.common.YouTubeVideoInfo youtube_video = 40 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. YouTube Channel. - google.ads.googleads.v15.common.YouTubeChannelInfo youtube_channel = 41 + google.ads.googleads.v18.common.YouTubeChannelInfo youtube_channel = 41 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Topic. - google.ads.googleads.v15.common.TopicInfo topic = 43 + google.ads.googleads.v18.common.TopicInfo topic = 43 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. User Interest. - google.ads.googleads.v15.common.UserInterestInfo user_interest = 45 + google.ads.googleads.v18.common.UserInterestInfo user_interest = 45 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Webpage - google.ads.googleads.v15.common.WebpageInfo webpage = 46 + google.ads.googleads.v18.common.WebpageInfo webpage = 46 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. App Payment Model. - google.ads.googleads.v15.common.AppPaymentModelInfo app_payment_model = 47 + google.ads.googleads.v18.common.AppPaymentModelInfo app_payment_model = 47 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Custom Affinity. - google.ads.googleads.v15.common.CustomAffinityInfo custom_affinity = 48 + google.ads.googleads.v18.common.CustomAffinityInfo custom_affinity = 48 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Custom Intent. - google.ads.googleads.v15.common.CustomIntentInfo custom_intent = 49 + google.ads.googleads.v18.common.CustomIntentInfo custom_intent = 49 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Custom Audience. - google.ads.googleads.v15.common.CustomAudienceInfo custom_audience = 74 + google.ads.googleads.v18.common.CustomAudienceInfo custom_audience = 74 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Combined Audience. - google.ads.googleads.v15.common.CombinedAudienceInfo combined_audience = 75 + google.ads.googleads.v18.common.CombinedAudienceInfo combined_audience = 75 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Audience. - google.ads.googleads.v15.common.AudienceInfo audience = 79 + google.ads.googleads.v18.common.AudienceInfo audience = 79 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Location. - google.ads.googleads.v15.common.LocationInfo location = 82 + google.ads.googleads.v18.common.LocationInfo location = 82 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Language. - google.ads.googleads.v15.common.LanguageInfo language = 83 + google.ads.googleads.v18.common.LanguageInfo language = 83 [(google.api.field_behavior) = IMMUTABLE]; } } diff --git a/google/ads/googleads/v15/resources/ad_group_criterion_customizer.proto b/google/ads/googleads/v18/resources/ad_group_criterion_customizer.proto similarity index 81% rename from google/ads/googleads/v15/resources/ad_group_criterion_customizer.proto rename to google/ads/googleads/v18/resources/ad_group_criterion_customizer.proto index 6582105de..f79662a64 100644 --- a/google/ads/googleads/v15/resources/ad_group_criterion_customizer.proto +++ b/google/ads/googleads/v18/resources/ad_group_criterion_customizer.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/customizer_value.proto"; -import "google/ads/googleads/v15/enums/customizer_value_status.proto"; +import "google/ads/googleads/v18/common/customizer_value.proto"; +import "google/ads/googleads/v18/enums/customizer_value_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupCriterionCustomizerProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // A customizer value for the associated CustomizerAttribute at the // AdGroupCriterion level. @@ -69,11 +69,11 @@ message AdGroupCriterionCustomizer { ]; // Output only. The status of the ad group criterion customizer. - google.ads.googleads.v15.enums.CustomizerValueStatusEnum.CustomizerValueStatus + google.ads.googleads.v18.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.v15.common.CustomizerValue value = 5 + google.ads.googleads.v18.common.CustomizerValue value = 5 [(google.api.field_behavior) = REQUIRED]; } diff --git a/google/ads/googleads/v15/resources/ad_group_criterion_label.proto b/google/ads/googleads/v18/resources/ad_group_criterion_label.proto similarity index 85% rename from google/ads/googleads/v15/resources/ad_group_criterion_label.proto rename to google/ads/googleads/v18/resources/ad_group_criterion_label.proto index ce65cea5a..fc30bdea3 100644 --- a/google/ads/googleads/v15/resources/ad_group_criterion_label.proto +++ b/google/ads/googleads/v18/resources/ad_group_criterion_label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupCriterionLabelProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the ad group criterion label resource. diff --git a/google/ads/googleads/v15/resources/ad_group_criterion_simulation.proto b/google/ads/googleads/v18/resources/ad_group_criterion_simulation.proto similarity index 81% rename from google/ads/googleads/v15/resources/ad_group_criterion_simulation.proto rename to google/ads/googleads/v18/resources/ad_group_criterion_simulation.proto index 0020e1cb9..118bc5628 100644 --- a/google/ads/googleads/v15/resources/ad_group_criterion_simulation.proto +++ b/google/ads/googleads/v18/resources/ad_group_criterion_simulation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/simulation.proto"; -import "google/ads/googleads/v15/enums/simulation_modification_method.proto"; -import "google/ads/googleads/v15/enums/simulation_type.proto"; +import "google/ads/googleads/v18/common/simulation.proto"; +import "google/ads/googleads/v18/enums/simulation_modification_method.proto"; +import "google/ads/googleads/v18/enums/simulation_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupCriterionSimulationProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the ad group criterion simulation resource. @@ -67,11 +67,11 @@ message AdGroupCriterionSimulation { optional int64 criterion_id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The field that the simulation modifies. - google.ads.googleads.v15.enums.SimulationTypeEnum.SimulationType type = 4 + google.ads.googleads.v18.enums.SimulationTypeEnum.SimulationType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. How the simulation modifies the field. - google.ads.googleads.v15.enums.SimulationModificationMethodEnum + google.ads.googleads.v18.enums.SimulationModificationMethodEnum .SimulationModificationMethod modification_method = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -86,11 +86,11 @@ message AdGroupCriterionSimulation { // List of simulation points. oneof point_list { // Output only. Simulation points if the simulation type is CPC_BID. - google.ads.googleads.v15.common.CpcBidSimulationPointList + google.ads.googleads.v18.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.v15.common.PercentCpcBidSimulationPointList + google.ads.googleads.v18.common.PercentCpcBidSimulationPointList percent_cpc_bid_point_list = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/ad_group_customizer.proto b/google/ads/googleads/v18/resources/ad_group_customizer.proto similarity index 80% rename from google/ads/googleads/v15/resources/ad_group_customizer.proto rename to google/ads/googleads/v18/resources/ad_group_customizer.proto index d5af068d9..886e49d2a 100644 --- a/google/ads/googleads/v15/resources/ad_group_customizer.proto +++ b/google/ads/googleads/v18/resources/ad_group_customizer.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/customizer_value.proto"; -import "google/ads/googleads/v15/enums/customizer_value_status.proto"; +import "google/ads/googleads/v18/common/customizer_value.proto"; +import "google/ads/googleads/v18/enums/customizer_value_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupCustomizerProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // A customizer value for the associated CustomizerAttribute at the AdGroup // level. @@ -68,11 +68,11 @@ message AdGroupCustomizer { ]; // Output only. The status of the ad group customizer. - google.ads.googleads.v15.enums.CustomizerValueStatusEnum.CustomizerValueStatus + google.ads.googleads.v18.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.v15.common.CustomizerValue value = 5 + google.ads.googleads.v18.common.CustomizerValue value = 5 [(google.api.field_behavior) = REQUIRED]; } diff --git a/google/ads/googleads/v15/resources/ad_group_extension_setting.proto b/google/ads/googleads/v18/resources/ad_group_extension_setting.proto similarity index 80% rename from google/ads/googleads/v15/resources/ad_group_extension_setting.proto rename to google/ads/googleads/v18/resources/ad_group_extension_setting.proto index 5dab3d4b8..b2ec5fc5a 100644 --- a/google/ads/googleads/v15/resources/ad_group_extension_setting.proto +++ b/google/ads/googleads/v18/resources/ad_group_extension_setting.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/extension_setting_device.proto"; -import "google/ads/googleads/v15/enums/extension_type.proto"; +import "google/ads/googleads/v18/enums/extension_setting_device.proto"; +import "google/ads/googleads/v18/enums/extension_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupExtensionSettingProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the AdGroupExtensionSetting resource. @@ -51,7 +51,7 @@ message AdGroupExtensionSetting { ]; // Immutable. The extension type of the ad group extension setting. - google.ads.googleads.v15.enums.ExtensionTypeEnum.ExtensionType + google.ads.googleads.v18.enums.ExtensionTypeEnum.ExtensionType extension_type = 2 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. The resource name of the ad group. The linked extension feed @@ -74,6 +74,6 @@ message AdGroupExtensionSetting { }]; // The device for which the extensions will serve. Optional. - google.ads.googleads.v15.enums.ExtensionSettingDeviceEnum + google.ads.googleads.v18.enums.ExtensionSettingDeviceEnum .ExtensionSettingDevice device = 5; } diff --git a/google/ads/googleads/v15/resources/ad_group_feed.proto b/google/ads/googleads/v18/resources/ad_group_feed.proto similarity index 75% rename from google/ads/googleads/v15/resources/ad_group_feed.proto rename to google/ads/googleads/v18/resources/ad_group_feed.proto index b68df9efe..7912d7544 100644 --- a/google/ads/googleads/v15/resources/ad_group_feed.proto +++ b/google/ads/googleads/v18/resources/ad_group_feed.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/matching_function.proto"; -import "google/ads/googleads/v15/enums/feed_link_status.proto"; -import "google/ads/googleads/v15/enums/placeholder_type.proto"; +import "google/ads/googleads/v18/common/matching_function.proto"; +import "google/ads/googleads/v18/enums/feed_link_status.proto"; +import "google/ads/googleads/v18/enums/placeholder_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupFeedProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the AdGroupFeed resource. @@ -67,16 +67,16 @@ message AdGroupFeed { // Indicates which placeholder types the feed may populate under the connected // ad group. Required. - repeated google.ads.googleads.v15.enums.PlaceholderTypeEnum.PlaceholderType + repeated google.ads.googleads.v18.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.v15.common.MatchingFunction matching_function = 5; + google.ads.googleads.v18.common.MatchingFunction matching_function = 5; // Output only. Status of the ad group feed. // This field is read-only. - google.ads.googleads.v15.enums.FeedLinkStatusEnum.FeedLinkStatus status = 6 + google.ads.googleads.v18.enums.FeedLinkStatusEnum.FeedLinkStatus status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/ad_group_label.proto b/google/ads/googleads/v18/resources/ad_group_label.proto similarity index 84% rename from google/ads/googleads/v15/resources/ad_group_label.proto rename to google/ads/googleads/v18/resources/ad_group_label.proto index bcd2b4aa4..50255cece 100644 --- a/google/ads/googleads/v15/resources/ad_group_label.proto +++ b/google/ads/googleads/v18/resources/ad_group_label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupLabelProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the ad group label resource. diff --git a/google/ads/googleads/v15/resources/ad_group_simulation.proto b/google/ads/googleads/v18/resources/ad_group_simulation.proto similarity index 78% rename from google/ads/googleads/v15/resources/ad_group_simulation.proto rename to google/ads/googleads/v18/resources/ad_group_simulation.proto index 42d61d24b..5170cf0d9 100644 --- a/google/ads/googleads/v15/resources/ad_group_simulation.proto +++ b/google/ads/googleads/v18/resources/ad_group_simulation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/simulation.proto"; -import "google/ads/googleads/v15/enums/simulation_modification_method.proto"; -import "google/ads/googleads/v15/enums/simulation_type.proto"; +import "google/ads/googleads/v18/common/simulation.proto"; +import "google/ads/googleads/v18/enums/simulation_modification_method.proto"; +import "google/ads/googleads/v18/enums/simulation_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdGroupSimulationProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the ad group simulation resource. @@ -65,11 +65,11 @@ message AdGroupSimulation { optional int64 ad_group_id = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The field that the simulation modifies. - google.ads.googleads.v15.enums.SimulationTypeEnum.SimulationType type = 3 + google.ads.googleads.v18.enums.SimulationTypeEnum.SimulationType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. How the simulation modifies the field. - google.ads.googleads.v15.enums.SimulationModificationMethodEnum + google.ads.googleads.v18.enums.SimulationModificationMethodEnum .SimulationModificationMethod modification_method = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -84,19 +84,19 @@ message AdGroupSimulation { // List of simulation points. oneof point_list { // Output only. Simulation points if the simulation type is CPC_BID. - google.ads.googleads.v15.common.CpcBidSimulationPointList + google.ads.googleads.v18.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.v15.common.CpvBidSimulationPointList + google.ads.googleads.v18.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.v15.common.TargetCpaSimulationPointList + google.ads.googleads.v18.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.v15.common.TargetRoasSimulationPointList + google.ads.googleads.v18.common.TargetRoasSimulationPointList target_roas_point_list = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; } } diff --git a/google/ads/googleads/v15/resources/ad_parameter.proto b/google/ads/googleads/v18/resources/ad_parameter.proto similarity index 89% rename from google/ads/googleads/v15/resources/ad_parameter.proto rename to google/ads/googleads/v18/resources/ad_parameter.proto index a6e928923..d623ad5fa 100644 --- a/google/ads/googleads/v15/resources/ad_parameter.proto +++ b/google/ads/googleads/v18/resources/ad_parameter.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdParameterProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the ad parameter resource. diff --git a/google/ads/googleads/v15/resources/ad_schedule_view.proto b/google/ads/googleads/v18/resources/ad_schedule_view.proto similarity index 81% rename from google/ads/googleads/v15/resources/ad_schedule_view.proto rename to google/ads/googleads/v18/resources/ad_schedule_view.proto index 5d1052e52..abd91978f 100644 --- a/google/ads/googleads/v15/resources/ad_schedule_view.proto +++ b/google/ads/googleads/v18/resources/ad_schedule_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AdScheduleViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the ad schedule view resource. diff --git a/google/ads/googleads/v15/resources/age_range_view.proto b/google/ads/googleads/v18/resources/age_range_view.proto similarity index 80% rename from google/ads/googleads/v15/resources/age_range_view.proto rename to google/ads/googleads/v18/resources/age_range_view.proto index aa2a9d1d3..65e19bf10 100644 --- a/google/ads/googleads/v15/resources/age_range_view.proto +++ b/google/ads/googleads/v18/resources/age_range_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AgeRangeViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the age range view resource. diff --git a/google/ads/googleads/v15/resources/android_privacy_shared_key_google_ad_group.proto b/google/ads/googleads/v18/resources/android_privacy_shared_key_google_ad_group.proto similarity index 83% rename from google/ads/googleads/v15/resources/android_privacy_shared_key_google_ad_group.proto rename to google/ads/googleads/v18/resources/android_privacy_shared_key_google_ad_group.proto index c4e551214..54d9c4204 100644 --- a/google/ads/googleads/v15/resources/android_privacy_shared_key_google_ad_group.proto +++ b/google/ads/googleads/v18/resources/android_privacy_shared_key_google_ad_group.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/android_privacy_interaction_type.proto"; -import "google/ads/googleads/v15/enums/android_privacy_network_type.proto"; +import "google/ads/googleads/v18/enums/android_privacy_interaction_type.proto"; +import "google/ads/googleads/v18/enums/android_privacy_network_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AndroidPrivacySharedKeyGoogleAdGroupProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the AndroidPrivacySharedKeyGoogleAdGroup resource. @@ -54,7 +54,7 @@ message AndroidPrivacySharedKeyGoogleAdGroup { int64 campaign_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The interaction type enum used in the share key encoding. - google.ads.googleads.v15.enums.AndroidPrivacyInteractionTypeEnum + google.ads.googleads.v18.enums.AndroidPrivacyInteractionTypeEnum .AndroidPrivacyInteractionType android_privacy_interaction_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -64,7 +64,7 @@ message AndroidPrivacySharedKeyGoogleAdGroup { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The network type enum used in the share key encoding. - google.ads.googleads.v15.enums.AndroidPrivacyNetworkTypeEnum + google.ads.googleads.v18.enums.AndroidPrivacyNetworkTypeEnum .AndroidPrivacyNetworkType android_privacy_network_type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/google/ads/googleads/v15/resources/android_privacy_shared_key_google_campaign.proto b/google/ads/googleads/v18/resources/android_privacy_shared_key_google_campaign.proto similarity index 85% rename from google/ads/googleads/v15/resources/android_privacy_shared_key_google_campaign.proto rename to google/ads/googleads/v18/resources/android_privacy_shared_key_google_campaign.proto index 70380f462..139ec36b2 100644 --- a/google/ads/googleads/v15/resources/android_privacy_shared_key_google_campaign.proto +++ b/google/ads/googleads/v18/resources/android_privacy_shared_key_google_campaign.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/android_privacy_interaction_type.proto"; +import "google/ads/googleads/v18/enums/android_privacy_interaction_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AndroidPrivacySharedKeyGoogleCampaignProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the AndroidPrivacySharedKeyGoogleCampaign resource. @@ -53,7 +53,7 @@ message AndroidPrivacySharedKeyGoogleCampaign { int64 campaign_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The interaction type enum used in the share key encoding. - google.ads.googleads.v15.enums.AndroidPrivacyInteractionTypeEnum + google.ads.googleads.v18.enums.AndroidPrivacyInteractionTypeEnum .AndroidPrivacyInteractionType android_privacy_interaction_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/google/ads/googleads/v15/resources/android_privacy_shared_key_google_network_type.proto b/google/ads/googleads/v18/resources/android_privacy_shared_key_google_network_type.proto similarity index 83% rename from google/ads/googleads/v15/resources/android_privacy_shared_key_google_network_type.proto rename to google/ads/googleads/v18/resources/android_privacy_shared_key_google_network_type.proto index 3b554a1f0..c7c23af4f 100644 --- a/google/ads/googleads/v15/resources/android_privacy_shared_key_google_network_type.proto +++ b/google/ads/googleads/v18/resources/android_privacy_shared_key_google_network_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/android_privacy_interaction_type.proto"; -import "google/ads/googleads/v15/enums/android_privacy_network_type.proto"; +import "google/ads/googleads/v18/enums/android_privacy_interaction_type.proto"; +import "google/ads/googleads/v18/enums/android_privacy_network_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AndroidPrivacySharedKeyGoogleNetworkTypeProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the AndroidPrivacySharedKeyGoogleNetworkType resource. @@ -54,7 +54,7 @@ message AndroidPrivacySharedKeyGoogleNetworkType { int64 campaign_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The interaction type enum used in the share key encoding. - google.ads.googleads.v15.enums.AndroidPrivacyInteractionTypeEnum + google.ads.googleads.v18.enums.AndroidPrivacyInteractionTypeEnum .AndroidPrivacyInteractionType android_privacy_interaction_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -64,7 +64,7 @@ message AndroidPrivacySharedKeyGoogleNetworkType { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The network type enum used in the share key encoding. - google.ads.googleads.v15.enums.AndroidPrivacyNetworkTypeEnum + google.ads.googleads.v18.enums.AndroidPrivacyNetworkTypeEnum .AndroidPrivacyNetworkType android_privacy_network_type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/google/ads/googleads/v15/resources/asset.proto b/google/ads/googleads/v18/resources/asset.proto similarity index 64% rename from google/ads/googleads/v15/resources/asset.proto rename to google/ads/googleads/v18/resources/asset.proto index 57b13af94..95bd01e77 100644 --- a/google/ads/googleads/v15/resources/asset.proto +++ b/google/ads/googleads/v18/resources/asset.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,27 +14,27 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/asset_types.proto"; -import "google/ads/googleads/v15/common/custom_parameter.proto"; -import "google/ads/googleads/v15/common/policy.proto"; -import "google/ads/googleads/v15/enums/asset_field_type.proto"; -import "google/ads/googleads/v15/enums/asset_source.proto"; -import "google/ads/googleads/v15/enums/asset_type.proto"; -import "google/ads/googleads/v15/enums/policy_approval_status.proto"; -import "google/ads/googleads/v15/enums/policy_review_status.proto"; +import "google/ads/googleads/v18/common/asset_types.proto"; +import "google/ads/googleads/v18/common/custom_parameter.proto"; +import "google/ads/googleads/v18/common/policy.proto"; +import "google/ads/googleads/v18/enums/asset_field_type.proto"; +import "google/ads/googleads/v18/enums/asset_source.proto"; +import "google/ads/googleads/v18/enums/asset_type.proto"; +import "google/ads/googleads/v18/enums/policy_approval_status.proto"; +import "google/ads/googleads/v18/enums/policy_review_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AssetProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the asset resource. @@ -64,7 +64,7 @@ message Asset { optional string name = 12; // Output only. Type of the asset. - google.ads.googleads.v15.enums.AssetTypeEnum.AssetType type = 4 + google.ads.googleads.v18.enums.AssetTypeEnum.AssetType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // A list of possible final URLs after all cross domain redirects. @@ -78,7 +78,7 @@ message Asset { // A list of mappings to be used for substituting URL custom parameter tags in // the tracking_url_template, final_urls, and/or final_mobile_urls. - repeated google.ads.googleads.v15.common.CustomParameter + repeated google.ads.googleads.v18.common.CustomParameter url_custom_parameters = 18; // URL template for appending params to landing page URLs served with parallel @@ -86,7 +86,7 @@ message Asset { optional string final_url_suffix = 19; // Output only. Source of the asset. - google.ads.googleads.v15.enums.AssetSourceEnum.AssetSource source = 38 + google.ads.googleads.v18.enums.AssetSourceEnum.AssetSource source = 38 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Policy information for the asset. @@ -100,100 +100,100 @@ message Asset { // The specific type of the asset. oneof asset_data { // Immutable. A YouTube video asset. - google.ads.googleads.v15.common.YoutubeVideoAsset youtube_video_asset = 5 + google.ads.googleads.v18.common.YoutubeVideoAsset youtube_video_asset = 5 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. A media bundle asset. - google.ads.googleads.v15.common.MediaBundleAsset media_bundle_asset = 6 + google.ads.googleads.v18.common.MediaBundleAsset media_bundle_asset = 6 [(google.api.field_behavior) = IMMUTABLE]; // Output only. An image asset. - google.ads.googleads.v15.common.ImageAsset image_asset = 7 + google.ads.googleads.v18.common.ImageAsset image_asset = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Immutable. A text asset. - google.ads.googleads.v15.common.TextAsset text_asset = 8 + google.ads.googleads.v18.common.TextAsset text_asset = 8 [(google.api.field_behavior) = IMMUTABLE]; // A lead form asset. - google.ads.googleads.v15.common.LeadFormAsset lead_form_asset = 9; + google.ads.googleads.v18.common.LeadFormAsset lead_form_asset = 9; // A book on google asset. - google.ads.googleads.v15.common.BookOnGoogleAsset book_on_google_asset = 10; + google.ads.googleads.v18.common.BookOnGoogleAsset book_on_google_asset = 10; // A promotion asset. - google.ads.googleads.v15.common.PromotionAsset promotion_asset = 15; + google.ads.googleads.v18.common.PromotionAsset promotion_asset = 15; // A callout asset. - google.ads.googleads.v15.common.CalloutAsset callout_asset = 20; + google.ads.googleads.v18.common.CalloutAsset callout_asset = 20; // A structured snippet asset. - google.ads.googleads.v15.common.StructuredSnippetAsset + google.ads.googleads.v18.common.StructuredSnippetAsset structured_snippet_asset = 21; // A sitelink asset. - google.ads.googleads.v15.common.SitelinkAsset sitelink_asset = 22; + google.ads.googleads.v18.common.SitelinkAsset sitelink_asset = 22; // A page feed asset. - google.ads.googleads.v15.common.PageFeedAsset page_feed_asset = 23; + google.ads.googleads.v18.common.PageFeedAsset page_feed_asset = 23; // A dynamic education asset. - google.ads.googleads.v15.common.DynamicEducationAsset + google.ads.googleads.v18.common.DynamicEducationAsset dynamic_education_asset = 24; // A mobile app asset. - google.ads.googleads.v15.common.MobileAppAsset mobile_app_asset = 25; + google.ads.googleads.v18.common.MobileAppAsset mobile_app_asset = 25; // A hotel callout asset. - google.ads.googleads.v15.common.HotelCalloutAsset hotel_callout_asset = 26; + google.ads.googleads.v18.common.HotelCalloutAsset hotel_callout_asset = 26; // A call asset. - google.ads.googleads.v15.common.CallAsset call_asset = 27; + google.ads.googleads.v18.common.CallAsset call_asset = 27; // A price asset. - google.ads.googleads.v15.common.PriceAsset price_asset = 28; + google.ads.googleads.v18.common.PriceAsset price_asset = 28; // Immutable. A call to action asset. - google.ads.googleads.v15.common.CallToActionAsset call_to_action_asset = 29 + google.ads.googleads.v18.common.CallToActionAsset call_to_action_asset = 29 [(google.api.field_behavior) = IMMUTABLE]; // A dynamic real estate asset. - google.ads.googleads.v15.common.DynamicRealEstateAsset + google.ads.googleads.v18.common.DynamicRealEstateAsset dynamic_real_estate_asset = 30; // A dynamic custom asset. - google.ads.googleads.v15.common.DynamicCustomAsset dynamic_custom_asset = + google.ads.googleads.v18.common.DynamicCustomAsset dynamic_custom_asset = 31; // A dynamic hotels and rentals asset. - google.ads.googleads.v15.common.DynamicHotelsAndRentalsAsset + google.ads.googleads.v18.common.DynamicHotelsAndRentalsAsset dynamic_hotels_and_rentals_asset = 32; // A dynamic flights asset. - google.ads.googleads.v15.common.DynamicFlightsAsset dynamic_flights_asset = + google.ads.googleads.v18.common.DynamicFlightsAsset dynamic_flights_asset = 33; - // Immutable. A discovery carousel card asset. - google.ads.googleads.v15.common.DiscoveryCarouselCardAsset - discovery_carousel_card_asset = 34 + // Immutable. A Demand Gen carousel card asset. + google.ads.googleads.v18.common.DemandGenCarouselCardAsset + demand_gen_carousel_card_asset = 50 [(google.api.field_behavior) = IMMUTABLE]; // A dynamic travel asset. - google.ads.googleads.v15.common.DynamicTravelAsset dynamic_travel_asset = + google.ads.googleads.v18.common.DynamicTravelAsset dynamic_travel_asset = 35; // A dynamic local asset. - google.ads.googleads.v15.common.DynamicLocalAsset dynamic_local_asset = 36; + google.ads.googleads.v18.common.DynamicLocalAsset dynamic_local_asset = 36; // A dynamic jobs asset. - google.ads.googleads.v15.common.DynamicJobsAsset dynamic_jobs_asset = 37; + google.ads.googleads.v18.common.DynamicJobsAsset dynamic_jobs_asset = 37; // Output only. A location asset. - google.ads.googleads.v15.common.LocationAsset location_asset = 39 + google.ads.googleads.v18.common.LocationAsset location_asset = 39 [(google.api.field_behavior) = OUTPUT_ONLY]; // Immutable. A hotel property asset. - google.ads.googleads.v15.common.HotelPropertyAsset hotel_property_asset = 41 + google.ads.googleads.v18.common.HotelPropertyAsset hotel_property_asset = 41 [(google.api.field_behavior) = IMMUTABLE]; } } @@ -201,11 +201,11 @@ message Asset { // Contains policy information for an asset under AssetFieldType context. message AssetFieldTypePolicySummary { // Output only. FieldType of this asset. - optional google.ads.googleads.v15.enums.AssetFieldTypeEnum.AssetFieldType + optional google.ads.googleads.v18.enums.AssetFieldTypeEnum.AssetFieldType asset_field_type = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Source of this asset. - optional google.ads.googleads.v15.enums.AssetSourceEnum.AssetSource + optional google.ads.googleads.v18.enums.AssetSourceEnum.AssetSource asset_source = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Policy summary. @@ -216,15 +216,15 @@ message AssetFieldTypePolicySummary { // Contains policy information for an asset. message AssetPolicySummary { // Output only. The list of policy findings for this asset. - repeated google.ads.googleads.v15.common.PolicyTopicEntry + repeated google.ads.googleads.v18.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.v15.enums.PolicyReviewStatusEnum.PolicyReviewStatus + google.ads.googleads.v18.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.v15.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus + google.ads.googleads.v18.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/asset_field_type_view.proto b/google/ads/googleads/v18/resources/asset_field_type_view.proto similarity index 78% rename from google/ads/googleads/v15/resources/asset_field_type_view.proto rename to google/ads/googleads/v18/resources/asset_field_type_view.proto index 0f0df7adc..d61352574 100644 --- a/google/ads/googleads/v15/resources/asset_field_type_view.proto +++ b/google/ads/googleads/v18/resources/asset_field_type_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/asset_field_type.proto"; +import "google/ads/googleads/v18/enums/asset_field_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AssetFieldTypeViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the AssetFieldTypeView resource. @@ -52,6 +52,6 @@ message AssetFieldTypeView { ]; // Output only. The asset field type of the asset field type view. - google.ads.googleads.v15.enums.AssetFieldTypeEnum.AssetFieldType field_type = + google.ads.googleads.v18.enums.AssetFieldTypeEnum.AssetFieldType field_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/asset_group.proto b/google/ads/googleads/v18/resources/asset_group.proto similarity index 80% rename from google/ads/googleads/v15/resources/asset_group.proto rename to google/ads/googleads/v18/resources/asset_group.proto index f6342b6e1..db6a17ed8 100644 --- a/google/ads/googleads/v15/resources/asset_group.proto +++ b/google/ads/googleads/v18/resources/asset_group.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/ad_strength.proto"; -import "google/ads/googleads/v15/enums/asset_group_primary_status.proto"; -import "google/ads/googleads/v15/enums/asset_group_primary_status_reason.proto"; -import "google/ads/googleads/v15/enums/asset_group_status.proto"; +import "google/ads/googleads/v18/enums/ad_strength.proto"; +import "google/ads/googleads/v18/enums/asset_group_primary_status.proto"; +import "google/ads/googleads/v18/enums/asset_group_primary_status_reason.proto"; +import "google/ads/googleads/v18/enums/asset_group_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AssetGroupProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // An asset group. // AssetGroupAsset is used to link an asset to the asset group. @@ -78,19 +78,19 @@ message AssetGroup { repeated string final_mobile_urls = 5; // The status of the asset group. - google.ads.googleads.v15.enums.AssetGroupStatusEnum.AssetGroupStatus status = + google.ads.googleads.v18.enums.AssetGroupStatusEnum.AssetGroupStatus status = 6; // Output only. The primary status of the asset group. Provides insights into // why an asset group is not serving or not serving optimally. - google.ads.googleads.v15.enums.AssetGroupPrimaryStatusEnum + google.ads.googleads.v18.enums.AssetGroupPrimaryStatusEnum .AssetGroupPrimaryStatus primary_status = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Provides reasons into why an asset group is not serving or not // serving optimally. It will be empty when the asset group is serving without // issues. - repeated google.ads.googleads.v15.enums.AssetGroupPrimaryStatusReasonEnum + repeated google.ads.googleads.v18.enums.AssetGroupPrimaryStatusReasonEnum .AssetGroupPrimaryStatusReason primary_status_reasons = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -103,6 +103,6 @@ message AssetGroup { string path2 = 8; // Output only. Overall ad strength of this asset group. - google.ads.googleads.v15.enums.AdStrengthEnum.AdStrength ad_strength = 10 + google.ads.googleads.v18.enums.AdStrengthEnum.AdStrength ad_strength = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/asset_group_asset.proto b/google/ads/googleads/v18/resources/asset_group_asset.proto similarity index 72% rename from google/ads/googleads/v15/resources/asset_group_asset.proto rename to google/ads/googleads/v18/resources/asset_group_asset.proto index bf774cbf0..2635c57cc 100644 --- a/google/ads/googleads/v15/resources/asset_group_asset.proto +++ b/google/ads/googleads/v18/resources/asset_group_asset.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,27 +14,27 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/asset_policy.proto"; -import "google/ads/googleads/v15/common/policy_summary.proto"; -import "google/ads/googleads/v15/enums/asset_field_type.proto"; -import "google/ads/googleads/v15/enums/asset_link_primary_status.proto"; -import "google/ads/googleads/v15/enums/asset_link_primary_status_reason.proto"; -import "google/ads/googleads/v15/enums/asset_link_status.proto"; -import "google/ads/googleads/v15/enums/asset_performance_label.proto"; -import "google/ads/googleads/v15/enums/asset_source.proto"; +import "google/ads/googleads/v18/common/asset_policy.proto"; +import "google/ads/googleads/v18/common/policy_summary.proto"; +import "google/ads/googleads/v18/enums/asset_field_type.proto"; +import "google/ads/googleads/v18/enums/asset_link_primary_status.proto"; +import "google/ads/googleads/v18/enums/asset_link_primary_status_reason.proto"; +import "google/ads/googleads/v18/enums/asset_link_status.proto"; +import "google/ads/googleads/v18/enums/asset_performance_label.proto"; +import "google/ads/googleads/v18/enums/asset_source.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AssetGroupAssetProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // AssetGroupAsset is the link between an asset and an asset group. // Adding an AssetGroupAsset links an asset with an asset group. @@ -71,11 +71,11 @@ message AssetGroupAsset { // The description of the placement of the asset within the asset group. For // example: HEADLINE, YOUTUBE_VIDEO etc - google.ads.googleads.v15.enums.AssetFieldTypeEnum.AssetFieldType field_type = + google.ads.googleads.v18.enums.AssetFieldTypeEnum.AssetFieldType field_type = 4; // The status of the link between an asset and asset group. - google.ads.googleads.v15.enums.AssetLinkStatusEnum.AssetLinkStatus status = 5; + google.ads.googleads.v18.enums.AssetLinkStatusEnum.AssetLinkStatus status = 5; // Output only. Provides the PrimaryStatus of this asset link. // Primary status is meant essentially to differentiate between the plain @@ -83,30 +83,30 @@ message AssetGroupAsset { // removed. The primary status takes into account other signals (for assets // its mainly policy and quality approvals) to come up with a more // comprehensive status to indicate its serving state. - google.ads.googleads.v15.enums.AssetLinkPrimaryStatusEnum + google.ads.googleads.v18.enums.AssetLinkPrimaryStatusEnum .AssetLinkPrimaryStatus primary_status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Provides a list of reasons for why an asset is not serving or // not serving at full capacity. - repeated google.ads.googleads.v15.enums.AssetLinkPrimaryStatusReasonEnum + repeated google.ads.googleads.v18.enums.AssetLinkPrimaryStatusReasonEnum .AssetLinkPrimaryStatusReason primary_status_reasons = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Provides the details of the primary status and its associated // reasons. - repeated google.ads.googleads.v15.common.AssetLinkPrimaryStatusDetails + repeated google.ads.googleads.v18.common.AssetLinkPrimaryStatusDetails primary_status_details = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The performance of this asset group asset. - google.ads.googleads.v15.enums.AssetPerformanceLabelEnum.AssetPerformanceLabel + google.ads.googleads.v18.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.v15.common.PolicySummary policy_summary = 7 + google.ads.googleads.v18.common.PolicySummary policy_summary = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Source of the asset group asset. - google.ads.googleads.v15.enums.AssetSourceEnum.AssetSource source = 11 + google.ads.googleads.v18.enums.AssetSourceEnum.AssetSource source = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/asset_group_listing_group_filter.proto b/google/ads/googleads/v18/resources/asset_group_listing_group_filter.proto similarity index 85% rename from google/ads/googleads/v15/resources/asset_group_listing_group_filter.proto rename to google/ads/googleads/v18/resources/asset_group_listing_group_filter.proto index 884748393..9b575c1c8 100644 --- a/google/ads/googleads/v15/resources/asset_group_listing_group_filter.proto +++ b/google/ads/googleads/v18/resources/asset_group_listing_group_filter.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,26 +14,26 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/listing_group_filter_custom_attribute_index.proto"; -import "google/ads/googleads/v15/enums/listing_group_filter_listing_source.proto"; -import "google/ads/googleads/v15/enums/listing_group_filter_product_category_level.proto"; -import "google/ads/googleads/v15/enums/listing_group_filter_product_channel.proto"; -import "google/ads/googleads/v15/enums/listing_group_filter_product_condition.proto"; -import "google/ads/googleads/v15/enums/listing_group_filter_product_type_level.proto"; -import "google/ads/googleads/v15/enums/listing_group_filter_type_enum.proto"; +import "google/ads/googleads/v18/enums/listing_group_filter_custom_attribute_index.proto"; +import "google/ads/googleads/v18/enums/listing_group_filter_listing_source.proto"; +import "google/ads/googleads/v18/enums/listing_group_filter_product_category_level.proto"; +import "google/ads/googleads/v18/enums/listing_group_filter_product_channel.proto"; +import "google/ads/googleads/v18/enums/listing_group_filter_product_condition.proto"; +import "google/ads/googleads/v18/enums/listing_group_filter_product_type_level.proto"; +import "google/ads/googleads/v18/enums/listing_group_filter_type_enum.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AssetGroupListingGroupFilterProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // AssetGroupListingGroupFilter represents a listing group filter tree node in // an asset group. @@ -67,12 +67,12 @@ message AssetGroupListingGroupFilter { int64 id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Immutable. Type of a listing group filter node. - google.ads.googleads.v15.enums.ListingGroupFilterTypeEnum + google.ads.googleads.v18.enums.ListingGroupFilterTypeEnum .ListingGroupFilterType type = 4 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. The source of listings filtered by this listing group filter. - google.ads.googleads.v15.enums.ListingGroupFilterListingSourceEnum + google.ads.googleads.v18.enums.ListingGroupFilterListingSourceEnum .ListingGroupFilterListingSource listing_source = 9 [(google.api.field_behavior) = IMMUTABLE]; @@ -117,7 +117,7 @@ message ListingGroupFilterDimension { optional int64 category_id = 1; // Indicates the level of the category in the taxonomy. - google.ads.googleads.v15.enums.ListingGroupFilterProductCategoryLevelEnum + google.ads.googleads.v18.enums.ListingGroupFilterProductCategoryLevelEnum .ListingGroupFilterProductCategoryLevel level = 2; } @@ -130,14 +130,14 @@ message ListingGroupFilterDimension { // Locality of a product offer. message ProductChannel { // Value of the locality. - google.ads.googleads.v15.enums.ListingGroupFilterProductChannelEnum + google.ads.googleads.v18.enums.ListingGroupFilterProductChannelEnum .ListingGroupFilterProductChannel channel = 1; } // Condition of a product offer. message ProductCondition { // Value of the condition. - google.ads.googleads.v15.enums.ListingGroupFilterProductConditionEnum + google.ads.googleads.v18.enums.ListingGroupFilterProductConditionEnum .ListingGroupFilterProductCondition condition = 1; } @@ -147,7 +147,7 @@ message ListingGroupFilterDimension { optional string value = 1; // Indicates the index of the custom attribute. - google.ads.googleads.v15.enums.ListingGroupFilterCustomAttributeIndexEnum + google.ads.googleads.v18.enums.ListingGroupFilterCustomAttributeIndexEnum .ListingGroupFilterCustomAttributeIndex index = 2; } @@ -163,7 +163,7 @@ message ListingGroupFilterDimension { optional string value = 1; // Level of the type. - google.ads.googleads.v15.enums.ListingGroupFilterProductTypeLevelEnum + google.ads.googleads.v18.enums.ListingGroupFilterProductTypeLevelEnum .ListingGroupFilterProductTypeLevel level = 2; } diff --git a/google/ads/googleads/v15/resources/asset_group_product_group_view.proto b/google/ads/googleads/v18/resources/asset_group_product_group_view.proto similarity index 85% rename from google/ads/googleads/v15/resources/asset_group_product_group_view.proto rename to google/ads/googleads/v18/resources/asset_group_product_group_view.proto index 4e00d863a..05f13fdee 100644 --- a/google/ads/googleads/v15/resources/asset_group_product_group_view.proto +++ b/google/ads/googleads/v18/resources/asset_group_product_group_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AssetGroupProductGroupViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the AssetGroupProductGroupView resource. diff --git a/google/ads/googleads/v15/resources/asset_group_signal.proto b/google/ads/googleads/v18/resources/asset_group_signal.proto similarity index 82% rename from google/ads/googleads/v15/resources/asset_group_signal.proto rename to google/ads/googleads/v18/resources/asset_group_signal.proto index 803525cd8..5dfb8e9dd 100644 --- a/google/ads/googleads/v15/resources/asset_group_signal.proto +++ b/google/ads/googleads/v18/resources/asset_group_signal.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/criteria.proto"; -import "google/ads/googleads/v15/enums/asset_group_signal_approval_status.proto"; +import "google/ads/googleads/v18/common/criteria.proto"; +import "google/ads/googleads/v18/enums/asset_group_signal_approval_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AssetGroupSignalProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::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. @@ -62,7 +62,7 @@ message AssetGroupSignal { // Output only. Approval status is the output value for search theme signal // after Google ads policy review. When using Audience signal, this field is // not used and will be absent. - google.ads.googleads.v15.enums.AssetGroupSignalApprovalStatusEnum + google.ads.googleads.v18.enums.AssetGroupSignalApprovalStatusEnum .AssetGroupSignalApprovalStatus approval_status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -75,7 +75,7 @@ message AssetGroupSignal { oneof signal { // Immutable. The audience signal to be used by the performance max // campaign. - google.ads.googleads.v15.common.AudienceInfo audience = 4 + google.ads.googleads.v18.common.AudienceInfo audience = 4 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. The search_theme signal to be used by the performance max @@ -89,7 +89,7 @@ message AssetGroupSignal { // StringFormatError.ILLEGAL_CHARS // StringLengthError.TOO_LONG // ResourceCountLimitExceededError.RESOURCE_LIMIT - google.ads.googleads.v15.common.SearchThemeInfo search_theme = 5 + google.ads.googleads.v18.common.SearchThemeInfo search_theme = 5 [(google.api.field_behavior) = IMMUTABLE]; } } diff --git a/google/ads/googleads/v15/resources/asset_group_top_combination_view.proto b/google/ads/googleads/v18/resources/asset_group_top_combination_view.proto similarity index 81% rename from google/ads/googleads/v15/resources/asset_group_top_combination_view.proto rename to google/ads/googleads/v18/resources/asset_group_top_combination_view.proto index 2aef455f1..42152ad10 100644 --- a/google/ads/googleads/v15/resources/asset_group_top_combination_view.proto +++ b/google/ads/googleads/v18/resources/asset_group_top_combination_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/asset_usage.proto"; +import "google/ads/googleads/v18/common/asset_usage.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AssetGroupTopCombinationViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the asset group top combination view resource. @@ -56,7 +56,7 @@ message AssetGroupTopCombinationView { // Asset group asset combination data message AssetGroupAssetCombinationData { // Output only. Served assets. - repeated google.ads.googleads.v15.common.AssetUsage + repeated google.ads.googleads.v18.common.AssetUsage asset_combination_served_assets = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/asset_set.proto b/google/ads/googleads/v18/resources/asset_set.proto similarity index 82% rename from google/ads/googleads/v15/resources/asset_set.proto rename to google/ads/googleads/v18/resources/asset_set.proto index 2dde7cd99..79bb4ee85 100644 --- a/google/ads/googleads/v15/resources/asset_set.proto +++ b/google/ads/googleads/v18/resources/asset_set.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/asset_set_types.proto"; -import "google/ads/googleads/v15/enums/asset_set_status.proto"; -import "google/ads/googleads/v15/enums/asset_set_type.proto"; +import "google/ads/googleads/v18/common/asset_set_types.proto"; +import "google/ads/googleads/v18/enums/asset_set_status.proto"; +import "google/ads/googleads/v18/enums/asset_set_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AssetSetProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // An asset set representing a collection of assets. // Use AssetSetAsset to link an asset to the asset set. @@ -79,13 +79,13 @@ message AssetSet { string name = 2 [(google.api.field_behavior) = REQUIRED]; // Required. Immutable. The type of the asset set. Required. - google.ads.googleads.v15.enums.AssetSetTypeEnum.AssetSetType type = 3 [ + google.ads.googleads.v18.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.v15.enums.AssetSetStatusEnum.AssetSetStatus status = 4 + google.ads.googleads.v18.enums.AssetSetStatusEnum.AssetSetStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Merchant ID and Feed Label from Google Merchant Center. @@ -108,15 +108,15 @@ message AssetSet { oneof asset_set_source { // Location asset set data. This will be used for sync level location // set. This can only be set if AssetSet's type is LOCATION_SYNC. - google.ads.googleads.v15.common.LocationSet location_set = 7; + google.ads.googleads.v18.common.LocationSet location_set = 7; // Business Profile location group asset set data. - google.ads.googleads.v15.common.BusinessProfileLocationGroup + google.ads.googleads.v18.common.BusinessProfileLocationGroup business_profile_location_group = 8; // Represents information about a Chain dynamic location group. // Only applicable if the sync level AssetSet's type is LOCATION_SYNC and // sync source is chain. - google.ads.googleads.v15.common.ChainLocationGroup chain_location_group = 9; + google.ads.googleads.v18.common.ChainLocationGroup chain_location_group = 9; } } diff --git a/google/ads/googleads/v15/resources/asset_set_asset.proto b/google/ads/googleads/v18/resources/asset_set_asset.proto similarity index 81% rename from google/ads/googleads/v15/resources/asset_set_asset.proto rename to google/ads/googleads/v18/resources/asset_set_asset.proto index 80a4c2e19..b6d5a4d20 100644 --- a/google/ads/googleads/v15/resources/asset_set_asset.proto +++ b/google/ads/googleads/v18/resources/asset_set_asset.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/asset_set_asset_status.proto"; +import "google/ads/googleads/v18/enums/asset_set_asset_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AssetSetAssetProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // AssetSetAsset is the link between an asset and an asset set. // Adding an AssetSetAsset links an asset with an asset set. @@ -63,6 +63,6 @@ message AssetSetAsset { ]; // Output only. The status of the asset set asset. Read-only. - google.ads.googleads.v15.enums.AssetSetAssetStatusEnum.AssetSetAssetStatus + google.ads.googleads.v18.enums.AssetSetAssetStatusEnum.AssetSetAssetStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/asset_set_type_view.proto b/google/ads/googleads/v18/resources/asset_set_type_view.proto similarity index 78% rename from google/ads/googleads/v15/resources/asset_set_type_view.proto rename to google/ads/googleads/v18/resources/asset_set_type_view.proto index e682a69b2..54f01a449 100644 --- a/google/ads/googleads/v15/resources/asset_set_type_view.proto +++ b/google/ads/googleads/v18/resources/asset_set_type_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/asset_set_type.proto"; +import "google/ads/googleads/v18/enums/asset_set_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AssetSetTypeViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the AssetSetTypeView resource. @@ -53,6 +53,6 @@ message AssetSetTypeView { ]; // Output only. The asset set type of the asset set type view. - google.ads.googleads.v15.enums.AssetSetTypeEnum.AssetSetType asset_set_type = + google.ads.googleads.v18.enums.AssetSetTypeEnum.AssetSetType asset_set_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/audience.proto b/google/ads/googleads/v18/resources/audience.proto similarity index 79% rename from google/ads/googleads/v15/resources/audience.proto rename to google/ads/googleads/v18/resources/audience.proto index 8fc9daaf5..ad1e7454c 100644 --- a/google/ads/googleads/v15/resources/audience.proto +++ b/google/ads/googleads/v18/resources/audience.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/audiences.proto"; -import "google/ads/googleads/v15/enums/audience_scope.proto"; -import "google/ads/googleads/v15/enums/audience_status.proto"; +import "google/ads/googleads/v18/common/audiences.proto"; +import "google/ads/googleads/v18/enums/audience_scope.proto"; +import "google/ads/googleads/v18/enums/audience_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "AudienceProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Audience resource. @@ -59,7 +59,7 @@ message Audience { // Output only. Status of this audience. Indicates whether the audience // is enabled or removed. - google.ads.googleads.v15.enums.AudienceStatusEnum.AudienceStatus status = 3 + google.ads.googleads.v18.enums.AudienceStatusEnum.AudienceStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Name of the audience. It should be unique across all audiences within the @@ -72,17 +72,17 @@ message Audience { string description = 5; // Positive dimensions specifying the audience composition. - repeated google.ads.googleads.v15.common.AudienceDimension dimensions = 6; + repeated google.ads.googleads.v18.common.AudienceDimension dimensions = 6; // Negative dimension specifying the audience composition. - google.ads.googleads.v15.common.AudienceExclusionDimension + google.ads.googleads.v18.common.AudienceExclusionDimension exclusion_dimension = 7; // Defines the scope this audience can be used in. By default, the scope is // CUSTOMER. Audiences can be created with a scope of ASSET_GROUP for // exclusive use by a single asset_group. Scope may change from ASSET_GROUP to // CUSTOMER but not from CUSTOMER to ASSET_GROUP. - google.ads.googleads.v15.enums.AudienceScopeEnum.AudienceScope scope = 8; + google.ads.googleads.v18.enums.AudienceScopeEnum.AudienceScope scope = 8; // Immutable. The asset group that this audience is scoped under. Must be set // if and only if scope is ASSET_GROUP. Immutable after creation. If an diff --git a/google/ads/googleads/v15/resources/batch_job.proto b/google/ads/googleads/v18/resources/batch_job.proto similarity index 89% rename from google/ads/googleads/v15/resources/batch_job.proto rename to google/ads/googleads/v18/resources/batch_job.proto index 24deae7f6..08d8d92b5 100644 --- a/google/ads/googleads/v15/resources/batch_job.proto +++ b/google/ads/googleads/v18/resources/batch_job.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/batch_job_status.proto"; +import "google/ads/googleads/v18/enums/batch_job_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "BatchJobProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the batch job resource. @@ -102,7 +102,7 @@ message BatchJob { BatchJobMetadata metadata = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Status of this batch job. - google.ads.googleads.v15.enums.BatchJobStatusEnum.BatchJobStatus status = 5 + google.ads.googleads.v18.enums.BatchJobStatusEnum.BatchJobStatus status = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The resource name of the long-running operation that can be diff --git a/google/ads/googleads/v15/resources/bidding_data_exclusion.proto b/google/ads/googleads/v18/resources/bidding_data_exclusion.proto similarity index 81% rename from google/ads/googleads/v15/resources/bidding_data_exclusion.proto rename to google/ads/googleads/v18/resources/bidding_data_exclusion.proto index 94696768a..d47ed90c8 100644 --- a/google/ads/googleads/v15/resources/bidding_data_exclusion.proto +++ b/google/ads/googleads/v18/resources/bidding_data_exclusion.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/advertising_channel_type.proto"; -import "google/ads/googleads/v15/enums/device.proto"; -import "google/ads/googleads/v15/enums/seasonality_event_scope.proto"; -import "google/ads/googleads/v15/enums/seasonality_event_status.proto"; +import "google/ads/googleads/v18/enums/advertising_channel_type.proto"; +import "google/ads/googleads/v18/enums/device.proto"; +import "google/ads/googleads/v18/enums/seasonality_event_scope.proto"; +import "google/ads/googleads/v18/enums/seasonality_event_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "BiddingDataExclusionProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Represents a bidding data exclusion. // @@ -57,11 +57,11 @@ message BiddingDataExclusion { int64 data_exclusion_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // The scope of the data exclusion. - google.ads.googleads.v15.enums.SeasonalityEventScopeEnum.SeasonalityEventScope + google.ads.googleads.v18.enums.SeasonalityEventScopeEnum.SeasonalityEventScope scope = 3; // Output only. The status of the data exclusion. - google.ads.googleads.v15.enums.SeasonalityEventStatusEnum + google.ads.googleads.v18.enums.SeasonalityEventStatusEnum .SeasonalityEventStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -90,7 +90,7 @@ message BiddingDataExclusion { // If not specified, all devices will be included in this exclusion. // Otherwise, only the specified targeted devices will be included in this // exclusion. - repeated google.ads.googleads.v15.enums.DeviceEnum.Device devices = 9; + repeated google.ads.googleads.v18.enums.DeviceEnum.Device devices = 9; // The data exclusion will apply to the campaigns listed when the scope of // this exclusion is CAMPAIGN. The maximum number of campaigns per event is @@ -107,6 +107,6 @@ message BiddingDataExclusion { // The supported advertising channel types are DISPLAY, SEARCH and SHOPPING. // Note: a data exclusion with both advertising_channel_types and // campaign_ids is not supported. - repeated google.ads.googleads.v15.enums.AdvertisingChannelTypeEnum + repeated google.ads.googleads.v18.enums.AdvertisingChannelTypeEnum .AdvertisingChannelType advertising_channel_types = 11; } diff --git a/google/ads/googleads/v15/resources/bidding_seasonality_adjustment.proto b/google/ads/googleads/v18/resources/bidding_seasonality_adjustment.proto similarity index 82% rename from google/ads/googleads/v15/resources/bidding_seasonality_adjustment.proto rename to google/ads/googleads/v18/resources/bidding_seasonality_adjustment.proto index 52024e2c5..c72a3fb3c 100644 --- a/google/ads/googleads/v15/resources/bidding_seasonality_adjustment.proto +++ b/google/ads/googleads/v18/resources/bidding_seasonality_adjustment.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/advertising_channel_type.proto"; -import "google/ads/googleads/v15/enums/device.proto"; -import "google/ads/googleads/v15/enums/seasonality_event_scope.proto"; -import "google/ads/googleads/v15/enums/seasonality_event_status.proto"; +import "google/ads/googleads/v18/enums/advertising_channel_type.proto"; +import "google/ads/googleads/v18/enums/device.proto"; +import "google/ads/googleads/v18/enums/seasonality_event_scope.proto"; +import "google/ads/googleads/v18/enums/seasonality_event_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "BiddingSeasonalityAdjustmentProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Represents a bidding seasonality adjustment. // @@ -58,11 +58,11 @@ message BiddingSeasonalityAdjustment { [(google.api.field_behavior) = OUTPUT_ONLY]; // The scope of the seasonality adjustment. - google.ads.googleads.v15.enums.SeasonalityEventScopeEnum.SeasonalityEventScope + google.ads.googleads.v18.enums.SeasonalityEventScopeEnum.SeasonalityEventScope scope = 3; // Output only. The status of the seasonality adjustment. - google.ads.googleads.v15.enums.SeasonalityEventStatusEnum + google.ads.googleads.v18.enums.SeasonalityEventStatusEnum .SeasonalityEventStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -91,7 +91,7 @@ message BiddingSeasonalityAdjustment { // If not specified, all devices will be included in this adjustment. // Otherwise, only the specified targeted devices will be included in this // adjustment. - repeated google.ads.googleads.v15.enums.DeviceEnum.Device devices = 9; + repeated google.ads.googleads.v18.enums.DeviceEnum.Device devices = 9; // Conversion rate modifier estimated based on expected conversion rate // changes. When this field is unset or set to 1.0 no adjustment will be @@ -113,6 +113,6 @@ message BiddingSeasonalityAdjustment { // The supported advertising channel types are DISPLAY, SEARCH and SHOPPING. // Note: a seasonality adjustment with both advertising_channel_types and // campaign_ids is not supported. - repeated google.ads.googleads.v15.enums.AdvertisingChannelTypeEnum + repeated google.ads.googleads.v18.enums.AdvertisingChannelTypeEnum .AdvertisingChannelType advertising_channel_types = 12; } diff --git a/google/ads/googleads/v15/resources/bidding_strategy.proto b/google/ads/googleads/v18/resources/bidding_strategy.proto similarity index 82% rename from google/ads/googleads/v15/resources/bidding_strategy.proto rename to google/ads/googleads/v18/resources/bidding_strategy.proto index df813df5f..e9fd2590d 100644 --- a/google/ads/googleads/v15/resources/bidding_strategy.proto +++ b/google/ads/googleads/v18/resources/bidding_strategy.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/bidding.proto"; -import "google/ads/googleads/v15/enums/bidding_strategy_status.proto"; -import "google/ads/googleads/v15/enums/bidding_strategy_type.proto"; +import "google/ads/googleads/v18/common/bidding.proto"; +import "google/ads/googleads/v18/enums/bidding_strategy_status.proto"; +import "google/ads/googleads/v18/enums/bidding_strategy_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "BiddingStrategyProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the BiddingStrategy resource @@ -64,14 +64,14 @@ message BiddingStrategy { // Output only. The status of the bidding strategy. // // This field is read-only. - google.ads.googleads.v15.enums.BiddingStrategyStatusEnum.BiddingStrategyStatus + google.ads.googleads.v18.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.v15.enums.BiddingStrategyTypeEnum.BiddingStrategyType + google.ads.googleads.v18.enums.BiddingStrategyTypeEnum.BiddingStrategyType type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Immutable. The currency used by the bidding strategy (ISO 4217 three-letter @@ -124,33 +124,33 @@ message BiddingStrategy { // A bidding strategy that raises bids for clicks that seem more likely to // lead to a conversion and lowers them for clicks where they seem less // likely. - google.ads.googleads.v15.common.EnhancedCpc enhanced_cpc = 7; + google.ads.googleads.v18.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.v15.common.MaximizeConversionValue + google.ads.googleads.v18.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.v15.common.MaximizeConversions maximize_conversions = + google.ads.googleads.v18.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.v15.common.TargetCpa target_cpa = 9; + google.ads.googleads.v18.common.TargetCpa target_cpa = 9; // A bidding strategy that automatically optimizes towards a chosen // percentage of impressions. - google.ads.googleads.v15.common.TargetImpressionShare + google.ads.googleads.v18.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.v15.common.TargetRoas target_roas = 11; + google.ads.googleads.v18.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.v15.common.TargetSpend target_spend = 12; + google.ads.googleads.v18.common.TargetSpend target_spend = 12; } } diff --git a/google/ads/googleads/v15/resources/bidding_strategy_simulation.proto b/google/ads/googleads/v18/resources/bidding_strategy_simulation.proto similarity index 78% rename from google/ads/googleads/v15/resources/bidding_strategy_simulation.proto rename to google/ads/googleads/v18/resources/bidding_strategy_simulation.proto index e11cf2a8c..ea69c94c5 100644 --- a/google/ads/googleads/v15/resources/bidding_strategy_simulation.proto +++ b/google/ads/googleads/v18/resources/bidding_strategy_simulation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/simulation.proto"; -import "google/ads/googleads/v15/enums/simulation_modification_method.proto"; -import "google/ads/googleads/v15/enums/simulation_type.proto"; +import "google/ads/googleads/v18/common/simulation.proto"; +import "google/ads/googleads/v18/enums/simulation_modification_method.proto"; +import "google/ads/googleads/v18/enums/simulation_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "BiddingStrategySimulationProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the bidding strategy simulation resource. @@ -59,11 +59,11 @@ message BiddingStrategySimulation { int64 bidding_strategy_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The field that the simulation modifies. - google.ads.googleads.v15.enums.SimulationTypeEnum.SimulationType type = 3 + google.ads.googleads.v18.enums.SimulationTypeEnum.SimulationType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. How the simulation modifies the field. - google.ads.googleads.v15.enums.SimulationModificationMethodEnum + google.ads.googleads.v18.enums.SimulationModificationMethodEnum .SimulationModificationMethod modification_method = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -78,11 +78,11 @@ message BiddingStrategySimulation { // List of simulation points. oneof point_list { // Output only. Simulation points if the simulation type is TARGET_CPA. - google.ads.googleads.v15.common.TargetCpaSimulationPointList + google.ads.googleads.v18.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.v15.common.TargetRoasSimulationPointList + google.ads.googleads.v18.common.TargetRoasSimulationPointList target_roas_point_list = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; } } diff --git a/google/ads/googleads/v15/resources/billing_setup.proto b/google/ads/googleads/v18/resources/billing_setup.proto similarity index 89% rename from google/ads/googleads/v15/resources/billing_setup.proto rename to google/ads/googleads/v18/resources/billing_setup.proto index 14ef8afeb..1e15cb422 100644 --- a/google/ads/googleads/v15/resources/billing_setup.proto +++ b/google/ads/googleads/v18/resources/billing_setup.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/billing_setup_status.proto"; -import "google/ads/googleads/v15/enums/time_type.proto"; +import "google/ads/googleads/v18/enums/billing_setup_status.proto"; +import "google/ads/googleads/v18/enums/time_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "BillingSetupProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the BillingSetup resource. @@ -95,7 +95,7 @@ message BillingSetup { optional int64 id = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The status of the billing setup. - google.ads.googleads.v15.enums.BillingSetupStatusEnum.BillingSetupStatus + google.ads.googleads.v18.enums.BillingSetupStatusEnum.BillingSetupStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Immutable. The resource name of the payments account associated with this @@ -133,7 +133,7 @@ message BillingSetup { string start_date_time = 16 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. The start time as a type. Only NOW is allowed. - google.ads.googleads.v15.enums.TimeTypeEnum.TimeType start_time_type = 10 + google.ads.googleads.v18.enums.TimeTypeEnum.TimeType start_time_type = 10 [(google.api.field_behavior) = IMMUTABLE]; } @@ -145,7 +145,7 @@ message BillingSetup { string end_date_time = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The end time as a type. The only possible value is FOREVER. - google.ads.googleads.v15.enums.TimeTypeEnum.TimeType end_time_type = 14 + google.ads.googleads.v18.enums.TimeTypeEnum.TimeType end_time_type = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; } } diff --git a/google/ads/googleads/v15/resources/call_view.proto b/google/ads/googleads/v18/resources/call_view.proto similarity index 78% rename from google/ads/googleads/v15/resources/call_view.proto rename to google/ads/googleads/v18/resources/call_view.proto index f9635f6da..b58763ea3 100644 --- a/google/ads/googleads/v15/resources/call_view.proto +++ b/google/ads/googleads/v18/resources/call_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/call_tracking_display_location.proto"; -import "google/ads/googleads/v15/enums/call_type.proto"; -import "google/ads/googleads/v15/enums/google_voice_call_status.proto"; +import "google/ads/googleads/v18/enums/call_tracking_display_location.proto"; +import "google/ads/googleads/v18/enums/call_type.proto"; +import "google/ads/googleads/v18/enums/google_voice_call_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CallViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the call view resource. @@ -69,15 +69,15 @@ message CallView { string end_call_date_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The call tracking display location. - google.ads.googleads.v15.enums.CallTrackingDisplayLocationEnum + google.ads.googleads.v18.enums.CallTrackingDisplayLocationEnum .CallTrackingDisplayLocation call_tracking_display_location = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The type of the call. - google.ads.googleads.v15.enums.CallTypeEnum.CallType type = 8 + google.ads.googleads.v18.enums.CallTypeEnum.CallType type = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The status of the call. - google.ads.googleads.v15.enums.GoogleVoiceCallStatusEnum.GoogleVoiceCallStatus + google.ads.googleads.v18.enums.GoogleVoiceCallStatusEnum.GoogleVoiceCallStatus call_status = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/campaign.proto b/google/ads/googleads/v18/resources/campaign.proto similarity index 73% rename from google/ads/googleads/v15/resources/campaign.proto rename to google/ads/googleads/v18/resources/campaign.proto index 6013859e3..08bf9bdda 100644 --- a/google/ads/googleads/v15/resources/campaign.proto +++ b/google/ads/googleads/v18/resources/campaign.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,50 +14,51 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; - -import "google/ads/googleads/v15/common/bidding.proto"; -import "google/ads/googleads/v15/common/custom_parameter.proto"; -import "google/ads/googleads/v15/common/frequency_cap.proto"; -import "google/ads/googleads/v15/common/real_time_bidding_setting.proto"; -import "google/ads/googleads/v15/common/targeting_setting.proto"; -import "google/ads/googleads/v15/enums/ad_serving_optimization_status.proto"; -import "google/ads/googleads/v15/enums/advertising_channel_sub_type.proto"; -import "google/ads/googleads/v15/enums/advertising_channel_type.proto"; -import "google/ads/googleads/v15/enums/app_campaign_app_store.proto"; -import "google/ads/googleads/v15/enums/app_campaign_bidding_strategy_goal_type.proto"; -import "google/ads/googleads/v15/enums/asset_automation_status.proto"; -import "google/ads/googleads/v15/enums/asset_automation_type.proto"; -import "google/ads/googleads/v15/enums/asset_field_type.proto"; -import "google/ads/googleads/v15/enums/asset_set_type.proto"; -import "google/ads/googleads/v15/enums/bidding_strategy_system_status.proto"; -import "google/ads/googleads/v15/enums/bidding_strategy_type.proto"; -import "google/ads/googleads/v15/enums/brand_safety_suitability.proto"; -import "google/ads/googleads/v15/enums/campaign_experiment_type.proto"; -import "google/ads/googleads/v15/enums/campaign_primary_status.proto"; -import "google/ads/googleads/v15/enums/campaign_primary_status_reason.proto"; -import "google/ads/googleads/v15/enums/campaign_serving_status.proto"; -import "google/ads/googleads/v15/enums/campaign_status.proto"; -import "google/ads/googleads/v15/enums/listing_type.proto"; -import "google/ads/googleads/v15/enums/location_source_type.proto"; -import "google/ads/googleads/v15/enums/negative_geo_target_type.proto"; -import "google/ads/googleads/v15/enums/optimization_goal_type.proto"; -import "google/ads/googleads/v15/enums/payment_mode.proto"; -import "google/ads/googleads/v15/enums/performance_max_upgrade_status.proto"; -import "google/ads/googleads/v15/enums/positive_geo_target_type.proto"; -import "google/ads/googleads/v15/enums/vanity_pharma_display_url_mode.proto"; -import "google/ads/googleads/v15/enums/vanity_pharma_text.proto"; +package google.ads.googleads.v18.resources; + +import "google/ads/googleads/v18/common/bidding.proto"; +import "google/ads/googleads/v18/common/custom_parameter.proto"; +import "google/ads/googleads/v18/common/frequency_cap.proto"; +import "google/ads/googleads/v18/common/real_time_bidding_setting.proto"; +import "google/ads/googleads/v18/common/targeting_setting.proto"; +import "google/ads/googleads/v18/enums/ad_serving_optimization_status.proto"; +import "google/ads/googleads/v18/enums/advertising_channel_sub_type.proto"; +import "google/ads/googleads/v18/enums/advertising_channel_type.proto"; +import "google/ads/googleads/v18/enums/app_campaign_app_store.proto"; +import "google/ads/googleads/v18/enums/app_campaign_bidding_strategy_goal_type.proto"; +import "google/ads/googleads/v18/enums/asset_automation_status.proto"; +import "google/ads/googleads/v18/enums/asset_automation_type.proto"; +import "google/ads/googleads/v18/enums/asset_field_type.proto"; +import "google/ads/googleads/v18/enums/asset_set_type.proto"; +import "google/ads/googleads/v18/enums/bidding_strategy_system_status.proto"; +import "google/ads/googleads/v18/enums/bidding_strategy_type.proto"; +import "google/ads/googleads/v18/enums/brand_safety_suitability.proto"; +import "google/ads/googleads/v18/enums/campaign_experiment_type.proto"; +import "google/ads/googleads/v18/enums/campaign_keyword_match_type.proto"; +import "google/ads/googleads/v18/enums/campaign_primary_status.proto"; +import "google/ads/googleads/v18/enums/campaign_primary_status_reason.proto"; +import "google/ads/googleads/v18/enums/campaign_serving_status.proto"; +import "google/ads/googleads/v18/enums/campaign_status.proto"; +import "google/ads/googleads/v18/enums/listing_type.proto"; +import "google/ads/googleads/v18/enums/location_source_type.proto"; +import "google/ads/googleads/v18/enums/negative_geo_target_type.proto"; +import "google/ads/googleads/v18/enums/optimization_goal_type.proto"; +import "google/ads/googleads/v18/enums/payment_mode.proto"; +import "google/ads/googleads/v18/enums/performance_max_upgrade_status.proto"; +import "google/ads/googleads/v18/enums/positive_geo_target_type.proto"; +import "google/ads/googleads/v18/enums/vanity_pharma_display_url_mode.proto"; +import "google/ads/googleads/v18/enums/vanity_pharma_text.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Campaign resource. @@ -70,8 +71,8 @@ message Campaign { // Information about a campaign being upgraded to Performance Max. message PerformanceMaxUpgrade { - // Output only. Indicates which Performance Max campaign the campaign is - // upgraded to. + // Output only. The resource name of the Performance Max campaign the + // campaign is upgraded to. string performance_max_campaign = 1 [ (google.api.field_behavior) = OUTPUT_ONLY, (google.api.resource_reference) = { @@ -79,7 +80,8 @@ message Campaign { } ]; - // Output only. Indicates legacy campaign upgraded to Performance Max. + // Output only. The resource name of the legacy campaign upgraded to + // Performance Max. string pre_upgrade_campaign = 2 [ (google.api.field_behavior) = OUTPUT_ONLY, (google.api.resource_reference) = { @@ -89,7 +91,7 @@ message Campaign { // Output only. The upgrade status of a campaign requested to be upgraded to // Performance Max. - google.ads.googleads.v15.enums.PerformanceMaxUpgradeStatusEnum + google.ads.googleads.v18.enums.PerformanceMaxUpgradeStatusEnum .PerformanceMaxUpgradeStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -138,7 +140,8 @@ message Campaign { // Whether the campaign uses advertiser supplied URLs exclusively. optional bool use_supplied_urls_only = 8; - // The list of page feeds associated with the campaign. + // The list of resource names of page feed assets associated with the + // campaign. repeated string feeds = 9 [(google.api.resource_reference) = { type: "googleads.googleapis.com/Feed" }]; @@ -148,10 +151,10 @@ message Campaign { // can be advertised by the campaign, and how this campaign interacts with // other Shopping campaigns. message ShoppingSetting { - // Immutable. ID of the Merchant Center account. + // ID of the Merchant Center account. // This field is required for create operations. This field is immutable for // Shopping campaigns. - optional int64 merchant_id = 5 [(google.api.field_behavior) = IMMUTABLE]; + optional int64 merchant_id = 5; // Feed label of products to include in the campaign. // Only one of feed_label or sales_country can be set. @@ -181,6 +184,12 @@ message Campaign { // the campaign. repeated int64 advertising_partner_ids = 11 [(google.api.field_behavior) = IMMUTABLE]; + + // Disable the optional product feed. This field is currently supported + // only for Demand Gen campaigns. See + // https://support.google.com/google-ads/answer/13721750 to learn more about + // this feature. + optional bool disable_product_feed = 12; } // Campaign-level settings for tracking information. @@ -193,18 +202,18 @@ message Campaign { // Represents a collection of settings related to ads geotargeting. message GeoTargetTypeSetting { // The setting used for positive geotargeting in this particular campaign. - google.ads.googleads.v15.enums.PositiveGeoTargetTypeEnum + google.ads.googleads.v18.enums.PositiveGeoTargetTypeEnum .PositiveGeoTargetType positive_geo_target_type = 1; // The setting used for negative geotargeting in this particular campaign. - google.ads.googleads.v15.enums.NegativeGeoTargetTypeEnum + google.ads.googleads.v18.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.v15.enums.LocationSourceTypeEnum.LocationSourceType + google.ads.googleads.v18.enums.LocationSourceTypeEnum.LocationSourceType location_source_type = 1; } @@ -212,26 +221,26 @@ message Campaign { message AppCampaignSetting { // Represents the goal which the bidding strategy of this app campaign // should optimize towards. - google.ads.googleads.v15.enums.AppCampaignBiddingStrategyGoalTypeEnum + google.ads.googleads.v18.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.v15.enums.AppCampaignAppStoreEnum.AppCampaignAppStore + google.ads.googleads.v18.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.v15.enums.VanityPharmaDisplayUrlModeEnum + google.ads.googleads.v18.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.v15.enums.VanityPharmaTextEnum.VanityPharmaText + google.ads.googleads.v18.enums.VanityPharmaTextEnum.VanityPharmaText vanity_pharma_text = 2; } @@ -241,7 +250,8 @@ message Campaign { // AdvertisingChannelType and APP_CAMPAIGN or APP_CAMPAIGN_FOR_ENGAGEMENT as // AdvertisingChannelSubType. message SelectiveOptimization { - // The selected set of conversion actions for optimizing this campaign. + // The selected set of resource names for conversion actions for optimizing + // this campaign. repeated string conversion_actions = 2 [(google.api.resource_reference) = { type: "googleads.googleapis.com/ConversionAction" }]; @@ -251,7 +261,7 @@ message Campaign { // optimization goal types. message OptimizationGoalSetting { // The list of optimization goal types. - repeated google.ads.googleads.v15.enums.OptimizationGoalTypeEnum + repeated google.ads.googleads.v18.enums.OptimizationGoalTypeEnum .OptimizationGoalType optimization_goal_types = 1; } @@ -280,6 +290,10 @@ message Campaign { // reserve price associated for that category. Value is in micros // and in the advertiser's currency. optional int64 manual_cpa_bid_micros = 2; + + // Target CPA bid for the category. Value is in micros and in the + // advertiser's currency. + optional int64 target_cpa_bid_micros = 3; } // Settings for Travel campaign. @@ -289,26 +303,46 @@ message Campaign { [(google.api.field_behavior) = IMMUTABLE]; } - // Settings for Discovery campaign. - message DiscoveryCampaignSettings { + // Settings for Demand Gen campaign. + message DemandGenCampaignSettings { // Immutable. Specifies whether this campaign uses upgraded targeting // options. When this field is set to `true`, you can use location and // language targeting at the ad group level as opposed to the standard - // campaign-level targeting. This field defaults to `false`, and can only be + // campaign-level targeting. This field defaults to `true`, and can only be // set when creating a campaign. optional bool upgraded_targeting = 1 [(google.api.field_behavior) = IMMUTABLE]; } + // Settings for Video campaign. + message VideoCampaignSettings { + // For campaigns using responsive ad containers inventory controls determine + // on which inventories the ads can be shown. This only applies for + // campaigns with the bidding strategies TARGET_CPM and FIXED_CPM. + message VideoAdInventoryControl { + // Determine if VideoResponsiveAds can be used for in-stream video ads. + optional bool allow_in_stream = 1; + + // Determine if VideoResponsiveAds can be used for in-feed video ads. + optional bool allow_in_feed = 2; + + // Determine if VideoResponsiveAds can be used as shorts format. + optional bool allow_shorts = 3; + } + + // Inventory control for responsive ad containers in reach campaigns. + VideoAdInventoryControl video_ad_inventory_control = 1; + } + // Asset automation setting contains pair of AssetAutomationType and the // asset automation opt-in/out status message AssetAutomationSetting { // The asset automation type advertiser would like to opt-in/out. - optional google.ads.googleads.v15.enums.AssetAutomationTypeEnum + optional google.ads.googleads.v18.enums.AssetAutomationTypeEnum .AssetAutomationType asset_automation_type = 1; // The opt-in/out status of asset automation type. - optional google.ads.googleads.v15.enums.AssetAutomationStatusEnum + optional google.ads.googleads.v18.enums.AssetAutomationStatusEnum .AssetAutomationStatus asset_automation_status = 2; } @@ -340,7 +374,7 @@ message Campaign { // Provides insight into why a campaign is not serving or not serving // optimally. Modification to the campaign and its related entities might take // a while to be reflected in this status. - google.ads.googleads.v15.enums.CampaignPrimaryStatusEnum.CampaignPrimaryStatus + google.ads.googleads.v18.enums.CampaignPrimaryStatusEnum.CampaignPrimaryStatus primary_status = 81 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The primary status reasons of the campaign. @@ -348,26 +382,26 @@ message Campaign { // Provides insight into why a campaign is not serving or not serving // optimally. These reasons are aggregated to determine an overall // CampaignPrimaryStatus. - repeated google.ads.googleads.v15.enums.CampaignPrimaryStatusReasonEnum + repeated google.ads.googleads.v18.enums.CampaignPrimaryStatusReasonEnum .CampaignPrimaryStatusReason primary_status_reasons = 82 [(google.api.field_behavior) = OUTPUT_ONLY]; // The status of the campaign. // // When a new campaign is added, the status defaults to ENABLED. - google.ads.googleads.v15.enums.CampaignStatusEnum.CampaignStatus status = 5; + google.ads.googleads.v18.enums.CampaignStatusEnum.CampaignStatus status = 5; // Output only. The ad serving status of the campaign. - google.ads.googleads.v15.enums.CampaignServingStatusEnum.CampaignServingStatus + google.ads.googleads.v18.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.v15.enums.BiddingStrategySystemStatusEnum + google.ads.googleads.v18.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.v15.enums.AdServingOptimizationStatusEnum + google.ads.googleads.v18.enums.AdServingOptimizationStatusEnum .AdServingOptimizationStatus ad_serving_optimization_status = 8; // Immutable. The primary serving target for ads within the campaign. @@ -378,7 +412,7 @@ message Campaign { // // Can be set only when creating campaigns. // After the campaign is created, the field can not be changed. - google.ads.googleads.v15.enums.AdvertisingChannelTypeEnum + google.ads.googleads.v18.enums.AdvertisingChannelTypeEnum .AdvertisingChannelType advertising_channel_type = 9 [(google.api.field_behavior) = IMMUTABLE]; @@ -387,7 +421,7 @@ message Campaign { // // Can be set only when creating campaigns. // After campaign is created, the field can not be changed. - google.ads.googleads.v15.enums.AdvertisingChannelSubTypeEnum + google.ads.googleads.v18.enums.AdvertisingChannelSubTypeEnum .AdvertisingChannelSubType advertising_channel_sub_type = 10 [(google.api.field_behavior) = IMMUTABLE]; @@ -396,7 +430,7 @@ message Campaign { // The list of mappings used to substitute custom parameter tags in a // `tracking_url_template`, `final_urls`, or `mobile_final_urls`. - repeated google.ads.googleads.v15.common.CustomParameter + repeated google.ads.googleads.v18.common.CustomParameter url_custom_parameters = 12; // The Local Services Campaign related settings. @@ -405,12 +439,15 @@ message Campaign { // Settings for Travel campaign. TravelCampaignSettings travel_campaign_settings = 85; - // Settings for Discovery campaign. - DiscoveryCampaignSettings discovery_campaign_settings = 87; + // Settings for Demand Gen campaign. + DemandGenCampaignSettings demand_gen_campaign_settings = 91; + + // Settings for Video campaign. + VideoCampaignSettings video_campaign_settings = 94; // Settings for Real-Time Bidding, a feature only available for campaigns // targeting the Ad Exchange network. - google.ads.googleads.v15.common.RealTimeBiddingSetting + google.ads.googleads.v18.common.RealTimeBiddingSetting real_time_bidding_setting = 39; // The network settings for the campaign. @@ -426,7 +463,7 @@ message Campaign { ShoppingSetting shopping_setting = 36; // Setting for targeting related features. - google.ads.googleads.v15.common.TargetingSetting targeting_setting = 43; + google.ads.googleads.v18.common.TargetingSetting targeting_setting = 43; // Immutable. Setting for audience related features. optional AudienceSetting audience_setting = 73 @@ -450,7 +487,7 @@ message Campaign { ]; // Output only. The type of campaign: normal, draft, or experiment. - google.ads.googleads.v15.enums.CampaignExperimentTypeEnum + google.ads.googleads.v18.enums.CampaignExperimentTypeEnum .CampaignExperimentType experiment_type = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -465,7 +502,7 @@ message Campaign { } ]; - // The budget of the campaign. + // The resource name of the campaign budget of the campaign. optional string campaign_budget = 62 [(google.api.resource_reference) = { type: "googleads.googleapis.com/CampaignBudget" }]; @@ -477,7 +514,7 @@ message Campaign { // create a portfolio bidding strategy. // // This field is read-only. - google.ads.googleads.v15.enums.BiddingStrategyTypeEnum.BiddingStrategyType + google.ads.googleads.v18.enums.BiddingStrategyTypeEnum.BiddingStrategyType bidding_strategy_type = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Resource name of AccessibleBiddingStrategy, a read-only view @@ -499,7 +536,7 @@ message Campaign { // format. optional string start_date = 63; - // The campaign group this campaign belongs to. + // The resource name of the campaign group that this campaign belongs to. optional string campaign_group = 76 [(google.api.resource_reference) = { type: "googleads.googleapis.com/CampaignGroup" }]; @@ -515,13 +552,14 @@ message Campaign { optional string final_url_suffix = 65; // A list that limits how often each user will see this campaign's ads. - repeated google.ads.googleads.v15.common.FrequencyCapEntry frequency_caps = + repeated google.ads.googleads.v18.common.FrequencyCapEntry frequency_caps = 40; - // Output only. 3-Tier Brand Safety setting for the campaign. - google.ads.googleads.v15.enums.BrandSafetySuitabilityEnum - .BrandSafetySuitability video_brand_safety_suitability = 42 - [(google.api.field_behavior) = OUTPUT_ONLY]; + // Brand Safety setting at the individual campaign level. Allows for selecting + // an inventory type to show your ads on content that is the right fit for + // your brand. See https://support.google.com/google-ads/answer/7515513. + google.ads.googleads.v18.enums.BrandSafetySuitabilityEnum + .BrandSafetySuitability video_brand_safety_suitability = 42; // Describes how unbranded pharma ads will be displayed. VanityPharma vanity_pharma = 44; @@ -542,7 +580,7 @@ message Campaign { [(google.api.field_behavior) = OUTPUT_ONLY]; // Payment mode for the campaign. - google.ads.googleads.v15.enums.PaymentModeEnum.PaymentMode payment_mode = 52; + google.ads.googleads.v18.enums.PaymentModeEnum.PaymentMode payment_mode = 52; // Output only. Optimization score of the campaign. // @@ -561,7 +599,7 @@ message Campaign { // The asset field types that should be excluded from this campaign. Asset // links with these field types will not be inherited by this campaign from // the upper level. - repeated google.ads.googleads.v15.enums.AssetFieldTypeEnum.AssetFieldType + repeated google.ads.googleads.v18.enums.AssetFieldTypeEnum.AssetFieldType excluded_parent_asset_field_types = 69; // The asset set types that should be excluded from this campaign. Asset set @@ -574,7 +612,7 @@ message Campaign { // and all Location Extension (LE) and Affiliate Location Extensions (ALE) // will not be served under this campaign. // Only LOCATION_SYNC is currently supported. - repeated google.ads.googleads.v15.enums.AssetSetTypeEnum.AssetSetType + repeated google.ads.googleads.v18.enums.AssetSetTypeEnum.AssetSetType excluded_parent_asset_set_types = 80; // Represents opting out of URL expansion to more targeted URLs. If opted out @@ -589,8 +627,8 @@ message Campaign { PerformanceMaxUpgrade performance_max_upgrade = 77 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Immutable. The set of hotel properties for Performance Max for travel goals - // campaigns. + // Immutable. The resource name for a set of hotel properties for Performance + // Max for travel goals campaigns. optional string hotel_property_asset_set = 83 [ (google.api.field_behavior) = IMMUTABLE, (google.api.resource_reference) = { @@ -600,7 +638,7 @@ message Campaign { // Immutable. Listing type of ads served for this campaign. // Field is restricted for usage with Performance Max campaigns. - optional google.ads.googleads.v15.enums.ListingTypeEnum.ListingType + optional google.ads.googleads.v18.enums.ListingTypeEnum.ListingType listing_type = 86 [(google.api.field_behavior) = IMMUTABLE]; // Contains the opt-in/out status of each AssetAutomationType. @@ -608,71 +646,90 @@ message Campaign { // opt in/out behavior. repeated AssetAutomationSetting asset_automation_settings = 88; + // Keyword match type of Campaign. Set to BROAD to set broad matching for all + // keywords in a campaign. + google.ads.googleads.v18.enums.CampaignKeywordMatchTypeEnum + .CampaignKeywordMatchType keyword_match_type = 90; + + // Output only. Whether Brand Guidelines are enabled for this Campaign. + // Only applicable to Performance Max campaigns. If enabled, business name + // and logo assets must be linked as CampaignAssets instead of + // AssetGroupAssets. + optional bool brand_guidelines_enabled = 96 + [(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. + // The resource name of the portfolio bidding strategy used by the 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.v15.common.Commission commission = 49; + google.ads.googleads.v18.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.v15.common.ManualCpa manual_cpa = 74; + google.ads.googleads.v18.common.ManualCpa manual_cpa = 74; // Standard Manual CPC bidding strategy. // Manual click-based bidding where user pays per click. - google.ads.googleads.v15.common.ManualCpc manual_cpc = 24; + google.ads.googleads.v18.common.ManualCpc manual_cpc = 24; // Standard Manual CPM bidding strategy. // Manual impression-based bidding where user pays per thousand // impressions. - google.ads.googleads.v15.common.ManualCpm manual_cpm = 25; + google.ads.googleads.v18.common.ManualCpm manual_cpm = 25; // A bidding strategy that pays a configurable amount per video view. - google.ads.googleads.v15.common.ManualCpv manual_cpv = 37; + google.ads.googleads.v18.common.ManualCpv manual_cpv = 37; // Standard Maximize Conversions bidding strategy that automatically // maximizes number of conversions while spending your budget. - google.ads.googleads.v15.common.MaximizeConversions maximize_conversions = + google.ads.googleads.v18.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.v15.common.MaximizeConversionValue + google.ads.googleads.v18.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.v15.common.TargetCpa target_cpa = 26; + google.ads.googleads.v18.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.v15.common.TargetImpressionShare + google.ads.googleads.v18.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.v15.common.TargetRoas target_roas = 29; + google.ads.googleads.v18.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.v15.common.TargetSpend target_spend = 27; + google.ads.googleads.v18.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.v15.common.PercentCpc percent_cpc = 34; + google.ads.googleads.v18.common.PercentCpc percent_cpc = 34; // A bidding strategy that automatically optimizes cost per thousand // impressions. - google.ads.googleads.v15.common.TargetCpm target_cpm = 41; + google.ads.googleads.v18.common.TargetCpm target_cpm = 41; + + // A manual bidding strategy with a fixed CPM. + google.ads.googleads.v18.common.FixedCpm fixed_cpm = 92; + + // An automated bidding strategy that sets bids to optimize performance + // given the target CPV you set. + google.ads.googleads.v18.common.TargetCpv target_cpv = 93; } } diff --git a/google/ads/googleads/v18/resources/campaign_aggregate_asset_view.proto b/google/ads/googleads/v18/resources/campaign_aggregate_asset_view.proto new file mode 100644 index 000000000..7f2239db6 --- /dev/null +++ b/google/ads/googleads/v18/resources/campaign_aggregate_asset_view.proto @@ -0,0 +1,75 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.resources; + +import "google/ads/googleads/v18/enums/asset_field_type.proto"; +import "google/ads/googleads/v18/enums/asset_source.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignAggregateAssetViewProto"; +option java_package = "com.google.ads.googleads.v18.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; + +// Proto file describing the CampaignAggregateAsset resource. + +// A campaign-level aggregate asset view that shows where the asset is linked, +// performamce of the asset and stats. +message CampaignAggregateAssetView { + option (google.api.resource) = { + type: "googleads.googleapis.com/CampaignAggregateAssetView" + pattern: "customers/{customer_id}/campaignAggregateAssetViews/{campaign_id}~{asset_id}~{asset_link_source}~{field_type}" + }; + + // Output only. The resource name of the campaign aggregate asset view. + // Campaign aggregate asset view resource names have the form: + // + // `customers/{customer_id}/campaignAggregateAssetViews/{Campaign.campaign_id}~{Asset.asset_id}~{AssetLinkSource.asset_link_source}~{AssetFieldType.field_type}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/CampaignAggregateAssetView" + } + ]; + + // Output only. Campaign in which the asset served. + optional string campaign = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. The ID of the asset. + optional string asset = 3 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "googleads.googleapis.com/Asset" } + ]; + + // Output only. Source of the asset link. + optional google.ads.googleads.v18.enums.AssetSourceEnum.AssetSource + asset_source = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. FieldType of the asset. + optional google.ads.googleads.v18.enums.AssetFieldTypeEnum.AssetFieldType + field_type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v15/resources/campaign_asset.proto b/google/ads/googleads/v18/resources/campaign_asset.proto similarity index 74% rename from google/ads/googleads/v15/resources/campaign_asset.proto rename to google/ads/googleads/v18/resources/campaign_asset.proto index b2872af46..1020e602a 100644 --- a/google/ads/googleads/v15/resources/campaign_asset.proto +++ b/google/ads/googleads/v18/resources/campaign_asset.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,25 +14,25 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/asset_policy.proto"; -import "google/ads/googleads/v15/enums/asset_field_type.proto"; -import "google/ads/googleads/v15/enums/asset_link_primary_status.proto"; -import "google/ads/googleads/v15/enums/asset_link_primary_status_reason.proto"; -import "google/ads/googleads/v15/enums/asset_link_status.proto"; -import "google/ads/googleads/v15/enums/asset_source.proto"; +import "google/ads/googleads/v18/common/asset_policy.proto"; +import "google/ads/googleads/v18/enums/asset_field_type.proto"; +import "google/ads/googleads/v18/enums/asset_link_primary_status.proto"; +import "google/ads/googleads/v18/enums/asset_link_primary_status_reason.proto"; +import "google/ads/googleads/v18/enums/asset_link_status.proto"; +import "google/ads/googleads/v18/enums/asset_source.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignAssetProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the CampaignAsset resource. @@ -70,15 +70,15 @@ message CampaignAsset { // Immutable. Role that the asset takes under the linked campaign. // Required. - google.ads.googleads.v15.enums.AssetFieldTypeEnum.AssetFieldType field_type = + google.ads.googleads.v18.enums.AssetFieldTypeEnum.AssetFieldType field_type = 4 [(google.api.field_behavior) = IMMUTABLE]; // Output only. Source of the campaign asset link. - google.ads.googleads.v15.enums.AssetSourceEnum.AssetSource source = 8 + google.ads.googleads.v18.enums.AssetSourceEnum.AssetSource source = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Status of the campaign asset. - google.ads.googleads.v15.enums.AssetLinkStatusEnum.AssetLinkStatus status = 5; + google.ads.googleads.v18.enums.AssetLinkStatusEnum.AssetLinkStatus status = 5; // Output only. Provides the PrimaryStatus of this asset link. // Primary status is meant essentially to differentiate between the plain @@ -86,18 +86,18 @@ message CampaignAsset { // removed. The primary status takes into account other signals (for assets // its mainly policy and quality approvals) to come up with a more // comprehensive status to indicate its serving state. - google.ads.googleads.v15.enums.AssetLinkPrimaryStatusEnum + google.ads.googleads.v18.enums.AssetLinkPrimaryStatusEnum .AssetLinkPrimaryStatus primary_status = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Provides the details of the primary status and its associated // reasons. - repeated google.ads.googleads.v15.common.AssetLinkPrimaryStatusDetails + repeated google.ads.googleads.v18.common.AssetLinkPrimaryStatusDetails primary_status_details = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Provides a list of reasons for why an asset is not serving or // not serving at full capacity. - repeated google.ads.googleads.v15.enums.AssetLinkPrimaryStatusReasonEnum + repeated google.ads.googleads.v18.enums.AssetLinkPrimaryStatusReasonEnum .AssetLinkPrimaryStatusReason primary_status_reasons = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/campaign_asset_set.proto b/google/ads/googleads/v18/resources/campaign_asset_set.proto similarity index 82% rename from google/ads/googleads/v15/resources/campaign_asset_set.proto rename to google/ads/googleads/v18/resources/campaign_asset_set.proto index ad182b933..10ac1bb3b 100644 --- a/google/ads/googleads/v15/resources/campaign_asset_set.proto +++ b/google/ads/googleads/v18/resources/campaign_asset_set.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/asset_set_link_status.proto"; +import "google/ads/googleads/v18/enums/asset_set_link_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignAssetSetProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the CampaignAsset resource. @@ -67,6 +67,6 @@ message CampaignAssetSet { ]; // Output only. The status of the campaign asset set asset. Read-only. - google.ads.googleads.v15.enums.AssetSetLinkStatusEnum.AssetSetLinkStatus + google.ads.googleads.v18.enums.AssetSetLinkStatusEnum.AssetSetLinkStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/campaign_audience_view.proto b/google/ads/googleads/v18/resources/campaign_audience_view.proto similarity index 83% rename from google/ads/googleads/v15/resources/campaign_audience_view.proto rename to google/ads/googleads/v18/resources/campaign_audience_view.proto index a13a5b5dc..42f51df90 100644 --- a/google/ads/googleads/v15/resources/campaign_audience_view.proto +++ b/google/ads/googleads/v18/resources/campaign_audience_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignAudienceViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the campaign audience view resource. diff --git a/google/ads/googleads/v15/resources/campaign_bid_modifier.proto b/google/ads/googleads/v18/resources/campaign_bid_modifier.proto similarity index 83% rename from google/ads/googleads/v15/resources/campaign_bid_modifier.proto rename to google/ads/googleads/v18/resources/campaign_bid_modifier.proto index c60fe2f55..566fee277 100644 --- a/google/ads/googleads/v15/resources/campaign_bid_modifier.proto +++ b/google/ads/googleads/v18/resources/campaign_bid_modifier.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/criteria.proto"; +import "google/ads/googleads/v18/common/criteria.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignBidModifierProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Campaign Bid Modifier resource. @@ -71,7 +71,7 @@ message CampaignBidModifier { oneof criterion { // Immutable. Criterion for interaction type. Only supported for search // campaigns. - google.ads.googleads.v15.common.InteractionTypeInfo interaction_type = 5 + google.ads.googleads.v18.common.InteractionTypeInfo interaction_type = 5 [(google.api.field_behavior) = IMMUTABLE]; } } diff --git a/google/ads/googleads/v15/resources/campaign_budget.proto b/google/ads/googleads/v18/resources/campaign_budget.proto similarity index 88% rename from google/ads/googleads/v15/resources/campaign_budget.proto rename to google/ads/googleads/v18/resources/campaign_budget.proto index c1e03c12b..82da3c426 100644 --- a/google/ads/googleads/v15/resources/campaign_budget.proto +++ b/google/ads/googleads/v18/resources/campaign_budget.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/budget_delivery_method.proto"; -import "google/ads/googleads/v15/enums/budget_period.proto"; -import "google/ads/googleads/v15/enums/budget_status.proto"; -import "google/ads/googleads/v15/enums/budget_type.proto"; +import "google/ads/googleads/v18/enums/budget_delivery_method.proto"; +import "google/ads/googleads/v18/enums/budget_period.proto"; +import "google/ads/googleads/v18/enums/budget_status.proto"; +import "google/ads/googleads/v18/enums/budget_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignBudgetProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Budget resource. @@ -82,14 +82,14 @@ message CampaignBudget { optional int64 total_amount_micros = 22; // Output only. The status of this campaign budget. This field is read-only. - google.ads.googleads.v15.enums.BudgetStatusEnum.BudgetStatus status = 6 + google.ads.googleads.v18.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.v15.enums.BudgetDeliveryMethodEnum.BudgetDeliveryMethod + google.ads.googleads.v18.enums.BudgetDeliveryMethodEnum.BudgetDeliveryMethod delivery_method = 7; // Specifies whether the budget is explicitly shared. Defaults to true if @@ -132,7 +132,7 @@ message CampaignBudget { // Immutable. Period over which to spend the budget. Defaults to DAILY if not // specified. - google.ads.googleads.v15.enums.BudgetPeriodEnum.BudgetPeriod period = 13 + google.ads.googleads.v18.enums.BudgetPeriodEnum.BudgetPeriod period = 13 [(google.api.field_behavior) = IMMUTABLE]; // Output only. The estimated change in weekly clicks if the recommended @@ -165,7 +165,7 @@ message CampaignBudget { [(google.api.field_behavior) = OUTPUT_ONLY]; // Immutable. The type of the campaign budget. - google.ads.googleads.v15.enums.BudgetTypeEnum.BudgetType type = 18 + google.ads.googleads.v18.enums.BudgetTypeEnum.BudgetType type = 18 [(google.api.field_behavior) = IMMUTABLE]; // ID of the portfolio bidding strategy that this shared campaign budget diff --git a/google/ads/googleads/v15/resources/campaign_conversion_goal.proto b/google/ads/googleads/v18/resources/campaign_conversion_goal.proto similarity index 77% rename from google/ads/googleads/v15/resources/campaign_conversion_goal.proto rename to google/ads/googleads/v18/resources/campaign_conversion_goal.proto index 407accc16..dc67a117e 100644 --- a/google/ads/googleads/v15/resources/campaign_conversion_goal.proto +++ b/google/ads/googleads/v18/resources/campaign_conversion_goal.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/conversion_action_category.proto"; -import "google/ads/googleads/v15/enums/conversion_origin.proto"; +import "google/ads/googleads/v18/enums/conversion_action_category.proto"; +import "google/ads/googleads/v18/enums/conversion_origin.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignConversionGoalProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // The biddability setting for the specified campaign only for all // conversion actions with a matching category and origin. @@ -59,11 +59,11 @@ message CampaignConversionGoal { ]; // The conversion category of this campaign conversion goal. - google.ads.googleads.v15.enums.ConversionActionCategoryEnum + google.ads.googleads.v18.enums.ConversionActionCategoryEnum .ConversionActionCategory category = 3; // The conversion origin of this campaign conversion goal. - google.ads.googleads.v15.enums.ConversionOriginEnum.ConversionOrigin origin = + google.ads.googleads.v18.enums.ConversionOriginEnum.ConversionOrigin origin = 4; // The biddability of the campaign conversion goal. diff --git a/google/ads/googleads/v15/resources/campaign_criterion.proto b/google/ads/googleads/v18/resources/campaign_criterion.proto similarity index 66% rename from google/ads/googleads/v15/resources/campaign_criterion.proto rename to google/ads/googleads/v18/resources/campaign_criterion.proto index de74ceb37..822f509a9 100644 --- a/google/ads/googleads/v15/resources/campaign_criterion.proto +++ b/google/ads/googleads/v18/resources/campaign_criterion.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/criteria.proto"; -import "google/ads/googleads/v15/enums/campaign_criterion_status.proto"; -import "google/ads/googleads/v15/enums/criterion_type.proto"; +import "google/ads/googleads/v18/common/criteria.proto"; +import "google/ads/googleads/v18/enums/campaign_criterion_status.proto"; +import "google/ads/googleads/v18/enums/criterion_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignCriterionProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Campaign Criterion resource. @@ -78,11 +78,11 @@ message CampaignCriterion { optional bool negative = 40 [(google.api.field_behavior) = IMMUTABLE]; // Output only. The type of the criterion. - google.ads.googleads.v15.enums.CriterionTypeEnum.CriterionType type = 6 + google.ads.googleads.v18.enums.CriterionTypeEnum.CriterionType type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // The status of the criterion. - google.ads.googleads.v15.enums.CampaignCriterionStatusEnum + google.ads.googleads.v18.enums.CampaignCriterionStatusEnum .CampaignCriterionStatus status = 35; // The campaign criterion. @@ -90,134 +90,131 @@ message CampaignCriterion { // Exactly one must be set. oneof criterion { // Immutable. Keyword. - google.ads.googleads.v15.common.KeywordInfo keyword = 8 + google.ads.googleads.v18.common.KeywordInfo keyword = 8 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Placement. - google.ads.googleads.v15.common.PlacementInfo placement = 9 + google.ads.googleads.v18.common.PlacementInfo placement = 9 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Mobile app category. - google.ads.googleads.v15.common.MobileAppCategoryInfo mobile_app_category = + google.ads.googleads.v18.common.MobileAppCategoryInfo mobile_app_category = 10 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Mobile application. - google.ads.googleads.v15.common.MobileApplicationInfo mobile_application = + google.ads.googleads.v18.common.MobileApplicationInfo mobile_application = 11 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Location. - google.ads.googleads.v15.common.LocationInfo location = 12 + google.ads.googleads.v18.common.LocationInfo location = 12 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Device. - google.ads.googleads.v15.common.DeviceInfo device = 13 + google.ads.googleads.v18.common.DeviceInfo device = 13 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Ad Schedule. - google.ads.googleads.v15.common.AdScheduleInfo ad_schedule = 15 + google.ads.googleads.v18.common.AdScheduleInfo ad_schedule = 15 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Age range. - google.ads.googleads.v15.common.AgeRangeInfo age_range = 16 + google.ads.googleads.v18.common.AgeRangeInfo age_range = 16 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Gender. - google.ads.googleads.v15.common.GenderInfo gender = 17 + google.ads.googleads.v18.common.GenderInfo gender = 17 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Income range. - google.ads.googleads.v15.common.IncomeRangeInfo income_range = 18 + google.ads.googleads.v18.common.IncomeRangeInfo income_range = 18 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Parental status. - google.ads.googleads.v15.common.ParentalStatusInfo parental_status = 19 + google.ads.googleads.v18.common.ParentalStatusInfo parental_status = 19 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. User List. - // The Similar Audiences sunset starts May 2023. Refer to - // https://ads-developers.googleblog.com/2022/11/announcing-deprecation-and-sunset-of.html - // for other options. - google.ads.googleads.v15.common.UserListInfo user_list = 22 + google.ads.googleads.v18.common.UserListInfo user_list = 22 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. YouTube Video. - google.ads.googleads.v15.common.YouTubeVideoInfo youtube_video = 20 + google.ads.googleads.v18.common.YouTubeVideoInfo youtube_video = 20 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. YouTube Channel. - google.ads.googleads.v15.common.YouTubeChannelInfo youtube_channel = 21 + google.ads.googleads.v18.common.YouTubeChannelInfo youtube_channel = 21 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Proximity. - google.ads.googleads.v15.common.ProximityInfo proximity = 23 + google.ads.googleads.v18.common.ProximityInfo proximity = 23 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Topic. - google.ads.googleads.v15.common.TopicInfo topic = 24 + google.ads.googleads.v18.common.TopicInfo topic = 24 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Listing scope. - google.ads.googleads.v15.common.ListingScopeInfo listing_scope = 25 + google.ads.googleads.v18.common.ListingScopeInfo listing_scope = 25 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Language. - google.ads.googleads.v15.common.LanguageInfo language = 26 + google.ads.googleads.v18.common.LanguageInfo language = 26 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. IpBlock. - google.ads.googleads.v15.common.IpBlockInfo ip_block = 27 + google.ads.googleads.v18.common.IpBlockInfo ip_block = 27 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. ContentLabel. - google.ads.googleads.v15.common.ContentLabelInfo content_label = 28 + google.ads.googleads.v18.common.ContentLabelInfo content_label = 28 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Carrier. - google.ads.googleads.v15.common.CarrierInfo carrier = 29 + google.ads.googleads.v18.common.CarrierInfo carrier = 29 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. User Interest. - google.ads.googleads.v15.common.UserInterestInfo user_interest = 30 + google.ads.googleads.v18.common.UserInterestInfo user_interest = 30 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Webpage. - google.ads.googleads.v15.common.WebpageInfo webpage = 31 + google.ads.googleads.v18.common.WebpageInfo webpage = 31 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Operating system version. - google.ads.googleads.v15.common.OperatingSystemVersionInfo + google.ads.googleads.v18.common.OperatingSystemVersionInfo operating_system_version = 32 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Mobile Device. - google.ads.googleads.v15.common.MobileDeviceInfo mobile_device = 33 + google.ads.googleads.v18.common.MobileDeviceInfo mobile_device = 33 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Location Group - google.ads.googleads.v15.common.LocationGroupInfo location_group = 34 + google.ads.googleads.v18.common.LocationGroupInfo location_group = 34 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Custom Affinity. - google.ads.googleads.v15.common.CustomAffinityInfo custom_affinity = 36 + google.ads.googleads.v18.common.CustomAffinityInfo custom_affinity = 36 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Custom Audience - google.ads.googleads.v15.common.CustomAudienceInfo custom_audience = 41 + google.ads.googleads.v18.common.CustomAudienceInfo custom_audience = 41 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Combined Audience. - google.ads.googleads.v15.common.CombinedAudienceInfo combined_audience = 42 + google.ads.googleads.v18.common.CombinedAudienceInfo combined_audience = 42 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Smart Campaign Keyword Theme. - google.ads.googleads.v15.common.KeywordThemeInfo keyword_theme = 45 + google.ads.googleads.v18.common.KeywordThemeInfo keyword_theme = 45 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. GLS service campaign criterion. - google.ads.googleads.v15.common.LocalServiceIdInfo local_service_id = 46 + google.ads.googleads.v18.common.LocalServiceIdInfo local_service_id = 46 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Brand list campaign criterion. - google.ads.googleads.v15.common.BrandListInfo brand_list = 47 + google.ads.googleads.v18.common.BrandListInfo brand_list = 47 [(google.api.field_behavior) = IMMUTABLE]; } } diff --git a/google/ads/googleads/v15/resources/campaign_customizer.proto b/google/ads/googleads/v18/resources/campaign_customizer.proto similarity index 80% rename from google/ads/googleads/v15/resources/campaign_customizer.proto rename to google/ads/googleads/v18/resources/campaign_customizer.proto index dabb7651b..7817abc9b 100644 --- a/google/ads/googleads/v15/resources/campaign_customizer.proto +++ b/google/ads/googleads/v18/resources/campaign_customizer.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/customizer_value.proto"; -import "google/ads/googleads/v15/enums/customizer_value_status.proto"; +import "google/ads/googleads/v18/common/customizer_value.proto"; +import "google/ads/googleads/v18/enums/customizer_value_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignCustomizerProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // A customizer value for the associated CustomizerAttribute at the Campaign // level. @@ -68,11 +68,11 @@ message CampaignCustomizer { ]; // Output only. The status of the campaign customizer. - google.ads.googleads.v15.enums.CustomizerValueStatusEnum.CustomizerValueStatus + google.ads.googleads.v18.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.v15.common.CustomizerValue value = 5 + google.ads.googleads.v18.common.CustomizerValue value = 5 [(google.api.field_behavior) = REQUIRED]; } diff --git a/google/ads/googleads/v15/resources/campaign_draft.proto b/google/ads/googleads/v18/resources/campaign_draft.proto similarity index 86% rename from google/ads/googleads/v15/resources/campaign_draft.proto rename to google/ads/googleads/v18/resources/campaign_draft.proto index 4dac51bda..a9c340b4c 100644 --- a/google/ads/googleads/v15/resources/campaign_draft.proto +++ b/google/ads/googleads/v18/resources/campaign_draft.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/campaign_draft_status.proto"; +import "google/ads/googleads/v18/enums/campaign_draft_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignDraftProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Campaign Draft resource. @@ -85,7 +85,7 @@ message CampaignDraft { // Output only. The status of the campaign draft. This field is read-only. // // When a new campaign draft is added, the status defaults to PROPOSED. - google.ads.googleads.v15.enums.CampaignDraftStatusEnum.CampaignDraftStatus + google.ads.googleads.v18.enums.CampaignDraftStatusEnum.CampaignDraftStatus status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Whether there is an experiment based on this draft currently diff --git a/google/ads/googleads/v15/resources/campaign_extension_setting.proto b/google/ads/googleads/v18/resources/campaign_extension_setting.proto similarity index 80% rename from google/ads/googleads/v15/resources/campaign_extension_setting.proto rename to google/ads/googleads/v18/resources/campaign_extension_setting.proto index 5ddf15bd3..19ff1f417 100644 --- a/google/ads/googleads/v15/resources/campaign_extension_setting.proto +++ b/google/ads/googleads/v18/resources/campaign_extension_setting.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/extension_setting_device.proto"; -import "google/ads/googleads/v15/enums/extension_type.proto"; +import "google/ads/googleads/v18/enums/extension_setting_device.proto"; +import "google/ads/googleads/v18/enums/extension_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignExtensionSettingProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the CampaignExtensionSetting resource. @@ -51,7 +51,7 @@ message CampaignExtensionSetting { ]; // Immutable. The extension type of the customer extension setting. - google.ads.googleads.v15.enums.ExtensionTypeEnum.ExtensionType + google.ads.googleads.v18.enums.ExtensionTypeEnum.ExtensionType extension_type = 2 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. The resource name of the campaign. The linked extension feed @@ -75,6 +75,6 @@ message CampaignExtensionSetting { }]; // The device for which the extensions will serve. Optional. - google.ads.googleads.v15.enums.ExtensionSettingDeviceEnum + google.ads.googleads.v18.enums.ExtensionSettingDeviceEnum .ExtensionSettingDevice device = 5; } diff --git a/google/ads/googleads/v15/resources/campaign_feed.proto b/google/ads/googleads/v18/resources/campaign_feed.proto similarity index 76% rename from google/ads/googleads/v15/resources/campaign_feed.proto rename to google/ads/googleads/v18/resources/campaign_feed.proto index de17af494..e1ead11d8 100644 --- a/google/ads/googleads/v15/resources/campaign_feed.proto +++ b/google/ads/googleads/v18/resources/campaign_feed.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/matching_function.proto"; -import "google/ads/googleads/v15/enums/feed_link_status.proto"; -import "google/ads/googleads/v15/enums/placeholder_type.proto"; +import "google/ads/googleads/v18/common/matching_function.proto"; +import "google/ads/googleads/v18/enums/feed_link_status.proto"; +import "google/ads/googleads/v18/enums/placeholder_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignFeedProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the CampaignFeed resource. @@ -67,16 +67,16 @@ message CampaignFeed { // Indicates which placeholder types the feed may populate under the connected // campaign. Required. - repeated google.ads.googleads.v15.enums.PlaceholderTypeEnum.PlaceholderType + repeated google.ads.googleads.v18.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.v15.common.MatchingFunction matching_function = 5; + google.ads.googleads.v18.common.MatchingFunction matching_function = 5; // Output only. Status of the campaign feed. // This field is read-only. - google.ads.googleads.v15.enums.FeedLinkStatusEnum.FeedLinkStatus status = 6 + google.ads.googleads.v18.enums.FeedLinkStatusEnum.FeedLinkStatus status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/campaign_group.proto b/google/ads/googleads/v18/resources/campaign_group.proto similarity index 80% rename from google/ads/googleads/v15/resources/campaign_group.proto rename to google/ads/googleads/v18/resources/campaign_group.proto index 0c943a44f..aa91abd3a 100644 --- a/google/ads/googleads/v15/resources/campaign_group.proto +++ b/google/ads/googleads/v18/resources/campaign_group.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/campaign_group_status.proto"; +import "google/ads/googleads/v18/enums/campaign_group_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignGroupProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Campaign group resource. @@ -64,6 +64,6 @@ message CampaignGroup { // The status of the campaign group. // // When a new campaign group is added, the status defaults to ENABLED. - google.ads.googleads.v15.enums.CampaignGroupStatusEnum.CampaignGroupStatus + google.ads.googleads.v18.enums.CampaignGroupStatusEnum.CampaignGroupStatus status = 5; } diff --git a/google/ads/googleads/v15/resources/campaign_label.proto b/google/ads/googleads/v18/resources/campaign_label.proto similarity index 84% rename from google/ads/googleads/v15/resources/campaign_label.proto rename to google/ads/googleads/v18/resources/campaign_label.proto index 13ef08e44..d61d2a7ab 100644 --- a/google/ads/googleads/v15/resources/campaign_label.proto +++ b/google/ads/googleads/v18/resources/campaign_label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignLabelProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the campaign label resource. diff --git a/google/ads/googleads/v15/resources/campaign_lifecycle_goal.proto b/google/ads/googleads/v18/resources/campaign_lifecycle_goal.proto similarity index 80% rename from google/ads/googleads/v15/resources/campaign_lifecycle_goal.proto rename to google/ads/googleads/v18/resources/campaign_lifecycle_goal.proto index a65161c24..5b997f2c4 100644 --- a/google/ads/googleads/v15/resources/campaign_lifecycle_goal.proto +++ b/google/ads/googleads/v18/resources/campaign_lifecycle_goal.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/lifecycle_goals.proto"; -import "google/ads/googleads/v15/enums/customer_acquisition_optimization_mode.proto"; +import "google/ads/googleads/v18/common/lifecycle_goals.proto"; +import "google/ads/googleads/v18/enums/customer_acquisition_optimization_mode.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignLifecycleGoalProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the campaign lifecycle resource. @@ -67,11 +67,11 @@ message CampaignLifecycleGoal { // The customer acquisition goal settings for the campaign. message CustomerAcquisitionGoalSettings { // Output only. Customer acquisition optimization mode of this campaign. - google.ads.googleads.v15.enums.CustomerAcquisitionOptimizationModeEnum + google.ads.googleads.v18.enums.CustomerAcquisitionOptimizationModeEnum .CustomerAcquisitionOptimizationMode optimization_mode = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Campaign specific values for the customer acquisition goal. - google.ads.googleads.v15.common.LifecycleGoalValueSettings value_settings = 2 + google.ads.googleads.v18.common.LifecycleGoalValueSettings value_settings = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/campaign_search_term_insight.proto b/google/ads/googleads/v18/resources/campaign_search_term_insight.proto similarity index 85% rename from google/ads/googleads/v15/resources/campaign_search_term_insight.proto rename to google/ads/googleads/v18/resources/campaign_search_term_insight.proto index f8b65d2d5..f2ac12f38 100644 --- a/google/ads/googleads/v15/resources/campaign_search_term_insight.proto +++ b/google/ads/googleads/v18/resources/campaign_search_term_insight.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignSearchTermInsightProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the campaign search term insight resource. diff --git a/google/ads/googleads/v15/resources/campaign_shared_set.proto b/google/ads/googleads/v18/resources/campaign_shared_set.proto similarity index 84% rename from google/ads/googleads/v15/resources/campaign_shared_set.proto rename to google/ads/googleads/v18/resources/campaign_shared_set.proto index ae4c82f80..17936c33e 100644 --- a/google/ads/googleads/v15/resources/campaign_shared_set.proto +++ b/google/ads/googleads/v18/resources/campaign_shared_set.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/campaign_shared_set_status.proto"; +import "google/ads/googleads/v18/enums/campaign_shared_set_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignSharedSetProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the CampaignSharedSet resource. @@ -72,7 +72,7 @@ message CampaignSharedSet { ]; // Output only. The status of this campaign shared set. Read only. - google.ads.googleads.v15.enums.CampaignSharedSetStatusEnum + google.ads.googleads.v18.enums.CampaignSharedSetStatusEnum .CampaignSharedSetStatus status = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/campaign_simulation.proto b/google/ads/googleads/v18/resources/campaign_simulation.proto similarity index 79% rename from google/ads/googleads/v15/resources/campaign_simulation.proto rename to google/ads/googleads/v18/resources/campaign_simulation.proto index 689eb961a..a6676b019 100644 --- a/google/ads/googleads/v15/resources/campaign_simulation.proto +++ b/google/ads/googleads/v18/resources/campaign_simulation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/simulation.proto"; -import "google/ads/googleads/v15/enums/simulation_modification_method.proto"; -import "google/ads/googleads/v15/enums/simulation_type.proto"; +import "google/ads/googleads/v18/common/simulation.proto"; +import "google/ads/googleads/v18/enums/simulation_modification_method.proto"; +import "google/ads/googleads/v18/enums/simulation_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CampaignSimulationProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the campaign simulation resource. @@ -47,6 +47,7 @@ option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; // * SHOPPING - BUDGET - UNIFORM // * SHOPPING - TARGET_ROAS - UNIFORM // * MULTI_CHANNEL - TARGET_CPA - UNIFORM +// * MULTI_CHANNEL - TARGET_ROAS - UNIFORM // * DISCOVERY - TARGET_CPA - DEFAULT // * DISPLAY - TARGET_CPA - UNIFORM // * PERFORMANCE_MAX - TARGET_CPA - UNIFORM @@ -73,11 +74,11 @@ message CampaignSimulation { int64 campaign_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The field that the simulation modifies. - google.ads.googleads.v15.enums.SimulationTypeEnum.SimulationType type = 3 + google.ads.googleads.v18.enums.SimulationTypeEnum.SimulationType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. How the simulation modifies the field. - google.ads.googleads.v15.enums.SimulationModificationMethodEnum + google.ads.googleads.v18.enums.SimulationModificationMethodEnum .SimulationModificationMethod modification_method = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -92,25 +93,25 @@ message CampaignSimulation { // List of simulation points. oneof point_list { // Output only. Simulation points if the simulation type is CPC_BID. - google.ads.googleads.v15.common.CpcBidSimulationPointList + google.ads.googleads.v18.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.v15.common.TargetCpaSimulationPointList + google.ads.googleads.v18.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.v15.common.TargetRoasSimulationPointList + google.ads.googleads.v18.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.v15.common.TargetImpressionShareSimulationPointList + google.ads.googleads.v18.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.v15.common.BudgetSimulationPointList + google.ads.googleads.v18.common.BudgetSimulationPointList budget_point_list = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; } } diff --git a/google/ads/googleads/v15/resources/carrier_constant.proto b/google/ads/googleads/v18/resources/carrier_constant.proto similarity index 84% rename from google/ads/googleads/v15/resources/carrier_constant.proto rename to google/ads/googleads/v18/resources/carrier_constant.proto index c686ef462..c3905b380 100644 --- a/google/ads/googleads/v15/resources/carrier_constant.proto +++ b/google/ads/googleads/v18/resources/carrier_constant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CarrierConstantProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Carrier constant resource. diff --git a/google/ads/googleads/v15/resources/change_event.proto b/google/ads/googleads/v18/resources/change_event.proto similarity index 79% rename from google/ads/googleads/v15/resources/change_event.proto rename to google/ads/googleads/v18/resources/change_event.proto index 0a01b841e..d2656ddea 100644 --- a/google/ads/googleads/v15/resources/change_event.proto +++ b/google/ads/googleads/v18/resources/change_event.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,42 +14,42 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; - -import "google/ads/googleads/v15/enums/change_client_type.proto"; -import "google/ads/googleads/v15/enums/change_event_resource_type.proto"; -import "google/ads/googleads/v15/enums/resource_change_operation.proto"; -import "google/ads/googleads/v15/resources/ad.proto"; -import "google/ads/googleads/v15/resources/ad_group.proto"; -import "google/ads/googleads/v15/resources/ad_group_ad.proto"; -import "google/ads/googleads/v15/resources/ad_group_asset.proto"; -import "google/ads/googleads/v15/resources/ad_group_bid_modifier.proto"; -import "google/ads/googleads/v15/resources/ad_group_criterion.proto"; -import "google/ads/googleads/v15/resources/ad_group_feed.proto"; -import "google/ads/googleads/v15/resources/asset.proto"; -import "google/ads/googleads/v15/resources/asset_set.proto"; -import "google/ads/googleads/v15/resources/asset_set_asset.proto"; -import "google/ads/googleads/v15/resources/campaign.proto"; -import "google/ads/googleads/v15/resources/campaign_asset.proto"; -import "google/ads/googleads/v15/resources/campaign_asset_set.proto"; -import "google/ads/googleads/v15/resources/campaign_budget.proto"; -import "google/ads/googleads/v15/resources/campaign_criterion.proto"; -import "google/ads/googleads/v15/resources/campaign_feed.proto"; -import "google/ads/googleads/v15/resources/customer_asset.proto"; -import "google/ads/googleads/v15/resources/feed.proto"; -import "google/ads/googleads/v15/resources/feed_item.proto"; +package google.ads.googleads.v18.resources; + +import "google/ads/googleads/v18/enums/change_client_type.proto"; +import "google/ads/googleads/v18/enums/change_event_resource_type.proto"; +import "google/ads/googleads/v18/enums/resource_change_operation.proto"; +import "google/ads/googleads/v18/resources/ad.proto"; +import "google/ads/googleads/v18/resources/ad_group.proto"; +import "google/ads/googleads/v18/resources/ad_group_ad.proto"; +import "google/ads/googleads/v18/resources/ad_group_asset.proto"; +import "google/ads/googleads/v18/resources/ad_group_bid_modifier.proto"; +import "google/ads/googleads/v18/resources/ad_group_criterion.proto"; +import "google/ads/googleads/v18/resources/ad_group_feed.proto"; +import "google/ads/googleads/v18/resources/asset.proto"; +import "google/ads/googleads/v18/resources/asset_set.proto"; +import "google/ads/googleads/v18/resources/asset_set_asset.proto"; +import "google/ads/googleads/v18/resources/campaign.proto"; +import "google/ads/googleads/v18/resources/campaign_asset.proto"; +import "google/ads/googleads/v18/resources/campaign_asset_set.proto"; +import "google/ads/googleads/v18/resources/campaign_budget.proto"; +import "google/ads/googleads/v18/resources/campaign_criterion.proto"; +import "google/ads/googleads/v18/resources/campaign_feed.proto"; +import "google/ads/googleads/v18/resources/customer_asset.proto"; +import "google/ads/googleads/v18/resources/feed.proto"; +import "google/ads/googleads/v18/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.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ChangeEventProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Change Event resource. @@ -149,7 +149,7 @@ message ChangeEvent { // Output only. The type of the changed resource. This dictates what resource // will be set in old_resource and new_resource. - google.ads.googleads.v15.enums.ChangeEventResourceTypeEnum + google.ads.googleads.v18.enums.ChangeEventResourceTypeEnum .ChangeEventResourceType change_resource_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -157,7 +157,7 @@ message ChangeEvent { string change_resource_name = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Where the change was made through. - google.ads.googleads.v15.enums.ChangeClientTypeEnum.ChangeClientType + google.ads.googleads.v18.enums.ChangeClientTypeEnum.ChangeClientType client_type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The email of the user who made this change. @@ -172,7 +172,7 @@ message ChangeEvent { ChangedResource new_resource = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The operation on the changed resource. - google.ads.googleads.v15.enums.ResourceChangeOperationEnum + google.ads.googleads.v18.enums.ResourceChangeOperationEnum .ResourceChangeOperation resource_change_operation = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/google/ads/googleads/v15/resources/change_status.proto b/google/ads/googleads/v18/resources/change_status.proto similarity index 88% rename from google/ads/googleads/v15/resources/change_status.proto rename to google/ads/googleads/v18/resources/change_status.proto index b9c1bfa2b..d90513e8f 100644 --- a/google/ads/googleads/v15/resources/change_status.proto +++ b/google/ads/googleads/v18/resources/change_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/change_status_operation.proto"; -import "google/ads/googleads/v15/enums/change_status_resource_type.proto"; +import "google/ads/googleads/v18/enums/change_status_operation.proto"; +import "google/ads/googleads/v18/enums/change_status_resource_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ChangeStatusProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Change Status resource. @@ -59,7 +59,7 @@ message ChangeStatus { // Output only. Represents the type of the changed resource. This dictates // what fields will be set. For example, for AD_GROUP, campaign and ad_group // fields will be set. - google.ads.googleads.v15.enums.ChangeStatusResourceTypeEnum + google.ads.googleads.v18.enums.ChangeStatusResourceTypeEnum .ChangeStatusResourceType resource_type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -80,7 +80,7 @@ message ChangeStatus { ]; // Output only. Represents the status of the changed resource. - google.ads.googleads.v15.enums.ChangeStatusOperationEnum.ChangeStatusOperation + google.ads.googleads.v18.enums.ChangeStatusOperationEnum.ChangeStatusOperation resource_status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The AdGroupAd affected by this change. @@ -198,4 +198,12 @@ message ChangeStatus { type: "googleads.googleapis.com/CombinedAudience" } ]; + + // Output only. The AssetGroup affected by this change. + string asset_group = 41 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AssetGroup" + } + ]; } diff --git a/google/ads/googleads/v18/resources/channel_aggregate_asset_view.proto b/google/ads/googleads/v18/resources/channel_aggregate_asset_view.proto new file mode 100644 index 000000000..4e0b5e7bb --- /dev/null +++ b/google/ads/googleads/v18/resources/channel_aggregate_asset_view.proto @@ -0,0 +1,73 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.resources; + +import "google/ads/googleads/v18/enums/advertising_channel_type.proto"; +import "google/ads/googleads/v18/enums/asset_field_type.proto"; +import "google/ads/googleads/v18/enums/asset_source.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ChannelAggregateAssetViewProto"; +option java_package = "com.google.ads.googleads.v18.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; + +// Proto file describing the ChannelAggregateAsset resource. + +// A channel-level aggregate asset view that shows where the asset is linked, +// performamce of the asset and stats. +message ChannelAggregateAssetView { + option (google.api.resource) = { + type: "googleads.googleapis.com/ChannelAggregateAssetView" + pattern: "customers/{customer_id}/channelAggregateAssetViews/{advertising_channel_type}~{asset_id}~{asset_source}~{field_type}" + }; + + // Output only. The resource name of the channel aggregate asset view. + // Channel aggregate asset view resource names have the form: + // + // `customers/{customer_id}/channelAggregateAssetViews/{ChannelAssetV2.advertising_channel_type}~{ChannelAssetV2.asset_id}~{ChannelAssetV2.asset_source}~{ChannelAssetV2.field_type}"` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ChannelAggregateAssetView" + } + ]; + + // Output only. Channel in which the asset served. + optional google.ads.googleads.v18.enums.AdvertisingChannelTypeEnum + .AdvertisingChannelType advertising_channel_type = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The ID of the asset. + optional string asset = 3 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "googleads.googleapis.com/Asset" } + ]; + + // Output only. Source of the asset link. + optional google.ads.googleads.v18.enums.AssetSourceEnum.AssetSource + asset_source = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. FieldType of the asset. + optional google.ads.googleads.v18.enums.AssetFieldTypeEnum.AssetFieldType + field_type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v15/resources/click_view.proto b/google/ads/googleads/v18/resources/click_view.proto similarity index 84% rename from google/ads/googleads/v15/resources/click_view.proto rename to google/ads/googleads/v18/resources/click_view.proto index 047de6077..c9123498f 100644 --- a/google/ads/googleads/v15/resources/click_view.proto +++ b/google/ads/googleads/v18/resources/click_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/click_location.proto"; -import "google/ads/googleads/v15/common/criteria.proto"; +import "google/ads/googleads/v18/common/click_location.proto"; +import "google/ads/googleads/v18/common/criteria.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ClickViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the ClickView resource. @@ -60,12 +60,12 @@ message ClickView { // Output only. The location criteria matching the area of interest associated // with the impression. - google.ads.googleads.v15.common.ClickLocation area_of_interest = 3 + google.ads.googleads.v18.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.v15.common.ClickLocation location_of_presence = 4 + google.ads.googleads.v18.common.ClickLocation location_of_presence = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Page number in search results where the ad was shown. @@ -105,6 +105,6 @@ message ClickView { ]; // Output only. Basic information about the associated keyword, if it exists. - google.ads.googleads.v15.common.KeywordInfo keyword_info = 14 + google.ads.googleads.v18.common.KeywordInfo keyword_info = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/combined_audience.proto b/google/ads/googleads/v18/resources/combined_audience.proto similarity index 81% rename from google/ads/googleads/v15/resources/combined_audience.proto rename to google/ads/googleads/v18/resources/combined_audience.proto index 89e64cecb..20d604539 100644 --- a/google/ads/googleads/v15/resources/combined_audience.proto +++ b/google/ads/googleads/v18/resources/combined_audience.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/combined_audience_status.proto"; +import "google/ads/googleads/v18/enums/combined_audience_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CombinedAudienceProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Combined Audience resource. @@ -55,7 +55,7 @@ message CombinedAudience { // Output only. Status of this combined audience. Indicates whether the // combined audience is enabled or removed. - google.ads.googleads.v15.enums.CombinedAudienceStatusEnum + google.ads.googleads.v18.enums.CombinedAudienceStatusEnum .CombinedAudienceStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/google/ads/googleads/v18/resources/content_criterion_view.proto b/google/ads/googleads/v18/resources/content_criterion_view.proto new file mode 100644 index 000000000..239dbf7c9 --- /dev/null +++ b/google/ads/googleads/v18/resources/content_criterion_view.proto @@ -0,0 +1,50 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ContentCriterionViewProto"; +option java_package = "com.google.ads.googleads.v18.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; + +// Proto file describing the Content Criterion view resource. + +// A content criterion view. +message ContentCriterionView { + option (google.api.resource) = { + type: "googleads.googleapis.com/ContentCriterionView" + pattern: "customers/{customer_id}/contentCriterionViews/{ad_group_id}~{criterion_id}" + }; + + // Output only. The resource name of the content criterion view. + // Content criterion view resource names have the form: + // + // `customers/{customer_id}/contentCriterionViews/{ad_group_id}~{criterion_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ContentCriterionView" + } + ]; +} diff --git a/google/ads/googleads/v15/resources/conversion_action.proto b/google/ads/googleads/v18/resources/conversion_action.proto similarity index 84% rename from google/ads/googleads/v15/resources/conversion_action.proto rename to google/ads/googleads/v18/resources/conversion_action.proto index 62f58fc6f..851aa749c 100644 --- a/google/ads/googleads/v15/resources/conversion_action.proto +++ b/google/ads/googleads/v18/resources/conversion_action.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,28 +14,28 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; - -import "google/ads/googleads/v15/common/tag_snippet.proto"; -import "google/ads/googleads/v15/enums/attribution_model.proto"; -import "google/ads/googleads/v15/enums/conversion_action_category.proto"; -import "google/ads/googleads/v15/enums/conversion_action_counting_type.proto"; -import "google/ads/googleads/v15/enums/conversion_action_status.proto"; -import "google/ads/googleads/v15/enums/conversion_action_type.proto"; -import "google/ads/googleads/v15/enums/conversion_origin.proto"; -import "google/ads/googleads/v15/enums/data_driven_model_status.proto"; -import "google/ads/googleads/v15/enums/mobile_app_vendor.proto"; +package google.ads.googleads.v18.resources; + +import "google/ads/googleads/v18/common/tag_snippet.proto"; +import "google/ads/googleads/v18/enums/attribution_model.proto"; +import "google/ads/googleads/v18/enums/conversion_action_category.proto"; +import "google/ads/googleads/v18/enums/conversion_action_counting_type.proto"; +import "google/ads/googleads/v18/enums/conversion_action_status.proto"; +import "google/ads/googleads/v18/enums/conversion_action_type.proto"; +import "google/ads/googleads/v18/enums/conversion_origin.proto"; +import "google/ads/googleads/v18/enums/data_driven_model_status.proto"; +import "google/ads/googleads/v18/enums/mobile_app_vendor.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ConversionActionProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Conversion Action resource. @@ -49,12 +49,12 @@ message ConversionAction { // Settings related to this conversion action's attribution model. message AttributionModelSettings { // The attribution model type of this conversion action. - google.ads.googleads.v15.enums.AttributionModelEnum.AttributionModel + google.ads.googleads.v18.enums.AttributionModelEnum.AttributionModel attribution_model = 1; // Output only. The status of the data-driven attribution model for the // conversion action. - google.ads.googleads.v15.enums.DataDrivenModelStatusEnum + google.ads.googleads.v18.enums.DataDrivenModelStatusEnum .DataDrivenModelStatus data_driven_model_status = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -135,15 +135,15 @@ message ConversionAction { optional string name = 22; // The status of this conversion action for conversion event accrual. - google.ads.googleads.v15.enums.ConversionActionStatusEnum + google.ads.googleads.v18.enums.ConversionActionStatusEnum .ConversionActionStatus status = 4; // Immutable. The type of this conversion action. - google.ads.googleads.v15.enums.ConversionActionTypeEnum.ConversionActionType + google.ads.googleads.v18.enums.ConversionActionTypeEnum.ConversionActionType type = 5 [(google.api.field_behavior) = IMMUTABLE]; // Output only. The conversion origin of this conversion action. - google.ads.googleads.v15.enums.ConversionOriginEnum.ConversionOrigin origin = + google.ads.googleads.v18.enums.ConversionOriginEnum.ConversionOrigin origin = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; // If a conversion action's primary_for_goal bit is false, the conversion @@ -159,7 +159,7 @@ message ConversionAction { optional bool primary_for_goal = 31; // The category of conversions reported for this conversion action. - google.ads.googleads.v15.enums.ConversionActionCategoryEnum + google.ads.googleads.v18.enums.ConversionActionCategoryEnum .ConversionActionCategory category = 6; // Output only. The resource name of the conversion action owner customer, or @@ -188,14 +188,14 @@ message ConversionAction { ValueSettings value_settings = 11; // How to count conversion events for the conversion action. - google.ads.googleads.v15.enums.ConversionActionCountingTypeEnum + google.ads.googleads.v18.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.v15.common.TagSnippet tag_snippets = 14 + repeated google.ads.googleads.v18.common.TagSnippet tag_snippets = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; // The phone call duration in seconds after which a conversion should be @@ -208,7 +208,7 @@ message ConversionAction { optional string app_id = 28; // Output only. Mobile app vendor for an app conversion action. - google.ads.googleads.v15.enums.MobileAppVendorEnum.MobileAppVendor + google.ads.googleads.v18.enums.MobileAppVendorEnum.MobileAppVendor mobile_app_vendor = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Firebase settings for Firebase conversion types. diff --git a/google/ads/googleads/v15/resources/conversion_custom_variable.proto b/google/ads/googleads/v18/resources/conversion_custom_variable.proto similarity index 86% rename from google/ads/googleads/v15/resources/conversion_custom_variable.proto rename to google/ads/googleads/v18/resources/conversion_custom_variable.proto index ca4f9baf2..2c4a9b3c1 100644 --- a/google/ads/googleads/v15/resources/conversion_custom_variable.proto +++ b/google/ads/googleads/v18/resources/conversion_custom_variable.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/conversion_custom_variable_status.proto"; +import "google/ads/googleads/v18/enums/conversion_custom_variable_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ConversionCustomVariableProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Conversion Custom Variable resource. @@ -72,7 +72,7 @@ message ConversionCustomVariable { ]; // The status of the conversion custom variable for conversion event accrual. - google.ads.googleads.v15.enums.ConversionCustomVariableStatusEnum + google.ads.googleads.v18.enums.ConversionCustomVariableStatusEnum .ConversionCustomVariableStatus status = 5; // Output only. The resource name of the customer that owns the conversion diff --git a/google/ads/googleads/v15/resources/conversion_goal_campaign_config.proto b/google/ads/googleads/v18/resources/conversion_goal_campaign_config.proto similarity index 81% rename from google/ads/googleads/v15/resources/conversion_goal_campaign_config.proto rename to google/ads/googleads/v18/resources/conversion_goal_campaign_config.proto index 4ffcfb2f1..42be3b43f 100644 --- a/google/ads/googleads/v15/resources/conversion_goal_campaign_config.proto +++ b/google/ads/googleads/v18/resources/conversion_goal_campaign_config.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/goal_config_level.proto"; +import "google/ads/googleads/v18/enums/goal_config_level.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ConversionGoalCampaignConfigProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Conversion goal settings for a Campaign. message ConversionGoalCampaignConfig { @@ -57,7 +57,7 @@ message ConversionGoalCampaignConfig { ]; // The level of goal config the campaign is using. - google.ads.googleads.v15.enums.GoalConfigLevelEnum.GoalConfigLevel + google.ads.googleads.v18.enums.GoalConfigLevelEnum.GoalConfigLevel goal_config_level = 3; // The custom conversion goal the campaign is using for optimization. diff --git a/google/ads/googleads/v15/resources/conversion_value_rule.proto b/google/ads/googleads/v18/resources/conversion_value_rule.proto similarity index 60% rename from google/ads/googleads/v15/resources/conversion_value_rule.proto rename to google/ads/googleads/v18/resources/conversion_value_rule.proto index 953ea5684..68b7b0538 100644 --- a/google/ads/googleads/v15/resources/conversion_value_rule.proto +++ b/google/ads/googleads/v18/resources/conversion_value_rule.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/conversion_value_rule_status.proto"; -import "google/ads/googleads/v15/enums/value_rule_device_type.proto"; -import "google/ads/googleads/v15/enums/value_rule_geo_location_match_type.proto"; -import "google/ads/googleads/v15/enums/value_rule_operation.proto"; +import "google/ads/googleads/v18/enums/conversion_value_rule_status.proto"; +import "google/ads/googleads/v18/enums/value_rule_device_type.proto"; +import "google/ads/googleads/v18/enums/value_rule_geo_location_match_type.proto"; +import "google/ads/googleads/v18/enums/value_rule_operation.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ConversionValueRuleProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Conversion Value Rule resource. @@ -44,7 +44,7 @@ message ConversionValueRule { // Action applied when rule is applied. message ValueRuleAction { // Specifies applied operation. - google.ads.googleads.v15.enums.ValueRuleOperationEnum.ValueRuleOperation + google.ads.googleads.v18.enums.ValueRuleOperationEnum.ValueRuleOperation operation = 1; // Specifies applied value. @@ -60,7 +60,7 @@ message ConversionValueRule { }]; // Excluded Geo location match type. - google.ads.googleads.v15.enums.ValueRuleGeoLocationMatchTypeEnum + google.ads.googleads.v18.enums.ValueRuleGeoLocationMatchTypeEnum .ValueRuleGeoLocationMatchType excluded_geo_match_type = 2; // Geo locations that advertisers want to include. @@ -70,23 +70,20 @@ message ConversionValueRule { }]; // Included Geo location match type. - google.ads.googleads.v15.enums.ValueRuleGeoLocationMatchTypeEnum + google.ads.googleads.v18.enums.ValueRuleGeoLocationMatchTypeEnum .ValueRuleGeoLocationMatchType geo_match_type = 4; } // Condition on Device dimension. message ValueRuleDeviceCondition { // Value for device type condition. - repeated google.ads.googleads.v15.enums.ValueRuleDeviceTypeEnum + repeated google.ads.googleads.v18.enums.ValueRuleDeviceTypeEnum .ValueRuleDeviceType device_types = 1; } // Condition on Audience dimension. message ValueRuleAudienceCondition { // User Lists. - // The Similar Audiences sunset starts May 2023. Refer to - // https://ads-developers.googleblog.com/2022/11/announcing-deprecation-and-sunset-of.html - // for other options. repeated string user_lists = 1 [(google.api.resource_reference) = { type: "googleads.googleapis.com/UserList" }]; @@ -97,6 +94,62 @@ message ConversionValueRule { }]; } + // Condition on Itinerary dimension. + message ValueRuleItineraryCondition { + // Range for the number of days between the date of the booking and the + // start of the itinerary. + ValueRuleItineraryAdvanceBookingWindow advance_booking_window = 1; + + // Range for the itinerary length in number of nights. + ValueRuleItineraryTravelLength travel_length = 2; + + // The days of the week on which this itinerary's travel can start. + ValueRuleItineraryTravelStartDay travel_start_day = 3; + } + + // Range for the number of days between the date of the booking and the + // start of the itinerary. + message ValueRuleItineraryAdvanceBookingWindow { + // Minimum number of days between the date of the booking the start date. + int32 min_days = 1; + + // Maximum number of days between the date of the booking the start date. + int32 max_days = 2; + } + + // Range for the itinerary length in number of nights. + message ValueRuleItineraryTravelLength { + // Minimum number of nights between the start date and the end date. + int32 min_nights = 1; + + // Maximum number of days between the start date and the end date. + int32 max_nights = 2; + } + + // The days of the week on which an itinerary's travel can start. + message ValueRuleItineraryTravelStartDay { + // The travel can start on Monday. + bool monday = 1; + + // The travel can start on Tuesday. + bool tuesday = 2; + + // The travel can start on Wednesday. + bool wednesday = 3; + + // The travel can start on Thursday. + bool thursday = 4; + + // The travel can start on Friday. + bool friday = 5; + + // The travel can start on Saturday. + bool saturday = 6; + + // The travel can start on Sunday. + bool sunday = 7; + } + // Immutable. The resource name of the conversion value rule. // Conversion value rule resource names have the form: // @@ -125,6 +178,9 @@ message ConversionValueRule { // Condition for audience that must be satisfied for the value rule to apply. ValueRuleAudienceCondition audience_condition = 6; + // Condition for itinerary that must be satisfied for the value rule to apply. + ValueRuleItineraryCondition itinerary_condition = 9; + // 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 @@ -138,6 +194,6 @@ message ConversionValueRule { ]; // The status of the conversion value rule. - google.ads.googleads.v15.enums.ConversionValueRuleStatusEnum + google.ads.googleads.v18.enums.ConversionValueRuleStatusEnum .ConversionValueRuleStatus status = 8; } diff --git a/google/ads/googleads/v15/resources/conversion_value_rule_set.proto b/google/ads/googleads/v18/resources/conversion_value_rule_set.proto similarity index 81% rename from google/ads/googleads/v15/resources/conversion_value_rule_set.proto rename to google/ads/googleads/v18/resources/conversion_value_rule_set.proto index 1c35d0149..feaec631b 100644 --- a/google/ads/googleads/v15/resources/conversion_value_rule_set.proto +++ b/google/ads/googleads/v18/resources/conversion_value_rule_set.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/conversion_action_category.proto"; -import "google/ads/googleads/v15/enums/conversion_value_rule_set_status.proto"; -import "google/ads/googleads/v15/enums/value_rule_set_attachment_type.proto"; -import "google/ads/googleads/v15/enums/value_rule_set_dimension.proto"; +import "google/ads/googleads/v18/enums/conversion_action_category.proto"; +import "google/ads/googleads/v18/enums/conversion_value_rule_set_status.proto"; +import "google/ads/googleads/v18/enums/value_rule_set_attachment_type.proto"; +import "google/ads/googleads/v18/enums/value_rule_set_dimension.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ConversionValueRuleSetProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Conversion Value Rule Set resource. @@ -67,7 +67,7 @@ message ConversionValueRuleSet { // When using value rule primary dimension segmentation, conversion values // will be segmented into the values adjusted by value rules and the original // values, if some value rules apply. - repeated google.ads.googleads.v15.enums.ValueRuleSetDimensionEnum + repeated google.ads.googleads.v18.enums.ValueRuleSetDimensionEnum .ValueRuleSetDimension dimensions = 4; // Output only. The resource name of the conversion value rule set's owner @@ -84,7 +84,7 @@ message ConversionValueRuleSet { // Immutable. Defines the scope where the conversion value rule set is // attached. - google.ads.googleads.v15.enums.ValueRuleSetAttachmentTypeEnum + google.ads.googleads.v18.enums.ValueRuleSetAttachmentTypeEnum .ValueRuleSetAttachmentType attachment_type = 6 [(google.api.field_behavior) = IMMUTABLE]; @@ -96,13 +96,13 @@ message ConversionValueRuleSet { // Output only. The status of the conversion value rule set. // ** Read-only ** - google.ads.googleads.v15.enums.ConversionValueRuleSetStatusEnum + google.ads.googleads.v18.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.v15.enums.ConversionActionCategoryEnum + repeated google.ads.googleads.v18.enums.ConversionActionCategoryEnum .ConversionActionCategory conversion_action_categories = 9 [(google.api.field_behavior) = IMMUTABLE]; } diff --git a/google/ads/googleads/v15/resources/currency_constant.proto b/google/ads/googleads/v18/resources/currency_constant.proto similarity index 85% rename from google/ads/googleads/v15/resources/currency_constant.proto rename to google/ads/googleads/v18/resources/currency_constant.proto index f3ba76cd4..1361108c2 100644 --- a/google/ads/googleads/v15/resources/currency_constant.proto +++ b/google/ads/googleads/v18/resources/currency_constant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CurrencyConstantProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Currency Constant resource. diff --git a/google/ads/googleads/v15/resources/custom_audience.proto b/google/ads/googleads/v18/resources/custom_audience.proto similarity index 82% rename from google/ads/googleads/v15/resources/custom_audience.proto rename to google/ads/googleads/v18/resources/custom_audience.proto index 804fd59ca..f53f1b6a8 100644 --- a/google/ads/googleads/v15/resources/custom_audience.proto +++ b/google/ads/googleads/v18/resources/custom_audience.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/custom_audience_member_type.proto"; -import "google/ads/googleads/v15/enums/custom_audience_status.proto"; -import "google/ads/googleads/v15/enums/custom_audience_type.proto"; +import "google/ads/googleads/v18/enums/custom_audience_member_type.proto"; +import "google/ads/googleads/v18/enums/custom_audience_status.proto"; +import "google/ads/googleads/v18/enums/custom_audience_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomAudienceProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Custom Audience resource. @@ -56,7 +56,7 @@ message CustomAudience { // Output only. Status of this custom audience. Indicates whether the custom // audience is enabled or removed. - google.ads.googleads.v15.enums.CustomAudienceStatusEnum.CustomAudienceStatus + google.ads.googleads.v18.enums.CustomAudienceStatusEnum.CustomAudienceStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Name of the custom audience. It should be unique for all custom audiences @@ -67,7 +67,7 @@ message CustomAudience { // Type of the custom audience. // ("INTEREST" OR "PURCHASE_INTENT" is not allowed for newly created custom // audience but kept for existing audiences) - google.ads.googleads.v15.enums.CustomAudienceTypeEnum.CustomAudienceType + google.ads.googleads.v18.enums.CustomAudienceTypeEnum.CustomAudienceType type = 5; // Description of this custom audience. @@ -83,7 +83,7 @@ message CustomAudience { // PLACE_CATEGORY or APP. It can only be created or removed but not changed. message CustomAudienceMember { // The type of custom audience member, KEYWORD, URL, PLACE_CATEGORY or APP. - google.ads.googleads.v15.enums.CustomAudienceMemberTypeEnum + google.ads.googleads.v18.enums.CustomAudienceMemberTypeEnum .CustomAudienceMemberType member_type = 1; // The CustomAudienceMember value. One field is populated depending on the diff --git a/google/ads/googleads/v15/resources/custom_conversion_goal.proto b/google/ads/googleads/v18/resources/custom_conversion_goal.proto similarity index 80% rename from google/ads/googleads/v15/resources/custom_conversion_goal.proto rename to google/ads/googleads/v18/resources/custom_conversion_goal.proto index c97018dfe..296bc7bf7 100644 --- a/google/ads/googleads/v15/resources/custom_conversion_goal.proto +++ b/google/ads/googleads/v18/resources/custom_conversion_goal.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/custom_conversion_goal_status.proto"; +import "google/ads/googleads/v18/enums/custom_conversion_goal_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomConversionGoalProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Custom conversion goal that can make arbitrary conversion actions biddable. message CustomConversionGoal { @@ -59,6 +59,6 @@ message CustomConversionGoal { }]; // The status of the custom conversion goal. - google.ads.googleads.v15.enums.CustomConversionGoalStatusEnum + google.ads.googleads.v18.enums.CustomConversionGoalStatusEnum .CustomConversionGoalStatus status = 5; } diff --git a/google/ads/googleads/v15/resources/custom_interest.proto b/google/ads/googleads/v18/resources/custom_interest.proto similarity index 79% rename from google/ads/googleads/v15/resources/custom_interest.proto rename to google/ads/googleads/v18/resources/custom_interest.proto index 7c3bdc84f..dc951afd2 100644 --- a/google/ads/googleads/v15/resources/custom_interest.proto +++ b/google/ads/googleads/v18/resources/custom_interest.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/custom_interest_member_type.proto"; -import "google/ads/googleads/v15/enums/custom_interest_status.proto"; -import "google/ads/googleads/v15/enums/custom_interest_type.proto"; +import "google/ads/googleads/v18/enums/custom_interest_member_type.proto"; +import "google/ads/googleads/v18/enums/custom_interest_status.proto"; +import "google/ads/googleads/v18/enums/custom_interest_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomInterestProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Custom Interest resource. @@ -56,7 +56,7 @@ message CustomInterest { // Status of this custom interest. Indicates whether the custom interest is // enabled or removed. - google.ads.googleads.v15.enums.CustomInterestStatusEnum.CustomInterestStatus + google.ads.googleads.v18.enums.CustomInterestStatusEnum.CustomInterestStatus status = 3; // Name of the custom interest. It should be unique across the same custom @@ -66,7 +66,7 @@ message CustomInterest { // Type of the custom interest, CUSTOM_AFFINITY or CUSTOM_INTENT. // By default the type is set to CUSTOM_AFFINITY. - google.ads.googleads.v15.enums.CustomInterestTypeEnum.CustomInterestType + google.ads.googleads.v18.enums.CustomInterestTypeEnum.CustomInterestType type = 5; // Description of this custom interest audience. @@ -82,7 +82,7 @@ message CustomInterest { // It is immutable, that is, it can only be created or removed but not changed. message CustomInterestMember { // The type of custom interest member, KEYWORD or URL. - google.ads.googleads.v15.enums.CustomInterestMemberTypeEnum + google.ads.googleads.v18.enums.CustomInterestMemberTypeEnum .CustomInterestMemberType member_type = 1; // Keyword text when member_type is KEYWORD or URL string when diff --git a/google/ads/googleads/v15/resources/customer.proto b/google/ads/googleads/v18/resources/customer.proto similarity index 89% rename from google/ads/googleads/v15/resources/customer.proto rename to google/ads/googleads/v18/resources/customer.proto index a29e1d070..e77d9369d 100644 --- a/google/ads/googleads/v15/resources/customer.proto +++ b/google/ads/googleads/v18/resources/customer.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/conversion_tracking_status_enum.proto"; -import "google/ads/googleads/v15/enums/customer_pay_per_conversion_eligibility_failure_reason.proto"; -import "google/ads/googleads/v15/enums/customer_status.proto"; -import "google/ads/googleads/v15/enums/local_services_verification_status.proto"; +import "google/ads/googleads/v18/enums/brand_safety_suitability.proto"; +import "google/ads/googleads/v18/enums/conversion_tracking_status_enum.proto"; +import "google/ads/googleads/v18/enums/customer_pay_per_conversion_eligibility_failure_reason.proto"; +import "google/ads/googleads/v18/enums/customer_status.proto"; +import "google/ads/googleads/v18/enums/local_services_verification_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Customer resource. @@ -105,7 +106,7 @@ message Customer { // Output only. Reasons why the customer is not eligible to use // PaymentMode.CONVERSIONS. If the list is empty, the customer is eligible. // This field is read-only. - repeated google.ads.googleads.v15.enums + repeated google.ads.googleads.v18.enums .CustomerPayPerConversionEligibilityFailureReasonEnum .CustomerPayPerConversionEligibilityFailureReason pay_per_conversion_eligibility_failure_reasons = 16 @@ -138,7 +139,7 @@ message Customer { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The status of the customer. - google.ads.googleads.v15.enums.CustomerStatusEnum.CustomerStatus status = 36 + google.ads.googleads.v18.enums.CustomerStatusEnum.CustomerStatus status = 36 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. True if feed based location has been migrated to asset based @@ -168,6 +169,14 @@ message Customer { // Output only. Settings for Local Services customer. LocalServicesSettings local_services_settings = 45 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Brand Safety setting at the account level. Allows for + // selecting an inventory type to show your ads on content that is the right + // fit for your brand. See + // https://support.google.com/google-ads/answer/7515513. + google.ads.googleads.v18.enums.BrandSafetySuitabilityEnum + .BrandSafetySuitability video_brand_safety_suitability = 46 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Call reporting setting for a customer. Only mutable in an `update` operation. @@ -216,7 +225,7 @@ message ConversionTrackingSetting { // this customer. If this customer is using cross-account conversion tracking, // the value returned will differ based on the `login-customer-id` of the // request. - google.ads.googleads.v15.enums.ConversionTrackingStatusEnum + google.ads.googleads.v18.enums.ConversionTrackingStatusEnum .ConversionTrackingStatus conversion_tracking_status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -272,7 +281,7 @@ message GranularLicenseStatus { optional string category_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Granular license status, per geo + vertical. - optional google.ads.googleads.v15.enums.LocalServicesVerificationStatusEnum + optional google.ads.googleads.v18.enums.LocalServicesVerificationStatusEnum .LocalServicesVerificationStatus verification_status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -293,7 +302,7 @@ message GranularInsuranceStatus { optional string category_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Granular insurance status, per geo + vertical. - optional google.ads.googleads.v15.enums.LocalServicesVerificationStatusEnum + optional google.ads.googleads.v18.enums.LocalServicesVerificationStatusEnum .LocalServicesVerificationStatus verification_status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/customer_asset.proto b/google/ads/googleads/v18/resources/customer_asset.proto similarity index 73% rename from google/ads/googleads/v15/resources/customer_asset.proto rename to google/ads/googleads/v18/resources/customer_asset.proto index 2e2eb4aa2..f4fd3a337 100644 --- a/google/ads/googleads/v15/resources/customer_asset.proto +++ b/google/ads/googleads/v18/resources/customer_asset.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,25 +14,25 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/asset_policy.proto"; -import "google/ads/googleads/v15/enums/asset_field_type.proto"; -import "google/ads/googleads/v15/enums/asset_link_primary_status.proto"; -import "google/ads/googleads/v15/enums/asset_link_primary_status_reason.proto"; -import "google/ads/googleads/v15/enums/asset_link_status.proto"; -import "google/ads/googleads/v15/enums/asset_source.proto"; +import "google/ads/googleads/v18/common/asset_policy.proto"; +import "google/ads/googleads/v18/enums/asset_field_type.proto"; +import "google/ads/googleads/v18/enums/asset_link_primary_status.proto"; +import "google/ads/googleads/v18/enums/asset_link_primary_status_reason.proto"; +import "google/ads/googleads/v18/enums/asset_link_status.proto"; +import "google/ads/googleads/v18/enums/asset_source.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerAssetProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the CustomerAsset resource. @@ -62,18 +62,18 @@ message CustomerAsset { ]; // Required. Immutable. Role that the asset takes for the customer link. - google.ads.googleads.v15.enums.AssetFieldTypeEnum.AssetFieldType field_type = + google.ads.googleads.v18.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.v15.enums.AssetSourceEnum.AssetSource source = 5 + google.ads.googleads.v18.enums.AssetSourceEnum.AssetSource source = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Status of the customer asset. - google.ads.googleads.v15.enums.AssetLinkStatusEnum.AssetLinkStatus status = 4; + google.ads.googleads.v18.enums.AssetLinkStatusEnum.AssetLinkStatus status = 4; // Output only. Provides the PrimaryStatus of this asset link. // Primary status is meant essentially to differentiate between the plain @@ -81,18 +81,18 @@ message CustomerAsset { // removed. The primary status takes into account other signals (for assets // its mainly policy and quality approvals) to come up with a more // comprehensive status to indicate its serving state. - google.ads.googleads.v15.enums.AssetLinkPrimaryStatusEnum + google.ads.googleads.v18.enums.AssetLinkPrimaryStatusEnum .AssetLinkPrimaryStatus primary_status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Provides the details of the primary status and its associated // reasons. - repeated google.ads.googleads.v15.common.AssetLinkPrimaryStatusDetails + repeated google.ads.googleads.v18.common.AssetLinkPrimaryStatusDetails primary_status_details = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Provides a list of reasons for why an asset is not serving or // not serving at full capacity. - repeated google.ads.googleads.v15.enums.AssetLinkPrimaryStatusReasonEnum + repeated google.ads.googleads.v18.enums.AssetLinkPrimaryStatusReasonEnum .AssetLinkPrimaryStatusReason primary_status_reasons = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/customer_asset_set.proto b/google/ads/googleads/v18/resources/customer_asset_set.proto similarity index 81% rename from google/ads/googleads/v15/resources/customer_asset_set.proto rename to google/ads/googleads/v18/resources/customer_asset_set.proto index 1af07efc0..1908c5779 100644 --- a/google/ads/googleads/v15/resources/customer_asset_set.proto +++ b/google/ads/googleads/v18/resources/customer_asset_set.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/asset_set_link_status.proto"; +import "google/ads/googleads/v18/enums/asset_set_link_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerAssetSetProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the CustomerAssetSet resource. @@ -67,6 +67,6 @@ message CustomerAssetSet { ]; // Output only. The status of the customer asset set asset. Read-only. - google.ads.googleads.v15.enums.AssetSetLinkStatusEnum.AssetSetLinkStatus + google.ads.googleads.v18.enums.AssetSetLinkStatusEnum.AssetSetLinkStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/customer_client.proto b/google/ads/googleads/v18/resources/customer_client.proto similarity index 88% rename from google/ads/googleads/v15/resources/customer_client.proto rename to google/ads/googleads/v18/resources/customer_client.proto index 6a71a8d64..a0c8e38c5 100644 --- a/google/ads/googleads/v15/resources/customer_client.proto +++ b/google/ads/googleads/v18/resources/customer_client.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/customer_status.proto"; +import "google/ads/googleads/v18/enums/customer_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerClientProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the CustomerClient resource. @@ -101,6 +101,6 @@ message CustomerClient { ]; // Output only. The status of the client customer. Read only. - google.ads.googleads.v15.enums.CustomerStatusEnum.CustomerStatus status = 22 + google.ads.googleads.v18.enums.CustomerStatusEnum.CustomerStatus status = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/customer_client_link.proto b/google/ads/googleads/v18/resources/customer_client_link.proto similarity index 81% rename from google/ads/googleads/v15/resources/customer_client_link.proto rename to google/ads/googleads/v18/resources/customer_client_link.proto index c0b643b7d..5c1290d43 100644 --- a/google/ads/googleads/v15/resources/customer_client_link.proto +++ b/google/ads/googleads/v18/resources/customer_client_link.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/manager_link_status.proto"; +import "google/ads/googleads/v18/enums/manager_link_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerClientLinkProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the CustomerClientLink resource. @@ -61,7 +61,7 @@ message CustomerClientLink { [(google.api.field_behavior) = OUTPUT_ONLY]; // This is the status of the link between client and manager. - google.ads.googleads.v15.enums.ManagerLinkStatusEnum.ManagerLinkStatus + google.ads.googleads.v18.enums.ManagerLinkStatusEnum.ManagerLinkStatus status = 5; // The visibility of the link. Users can choose whether or not to see hidden diff --git a/google/ads/googleads/v15/resources/customer_conversion_goal.proto b/google/ads/googleads/v18/resources/customer_conversion_goal.proto similarity index 76% rename from google/ads/googleads/v15/resources/customer_conversion_goal.proto rename to google/ads/googleads/v18/resources/customer_conversion_goal.proto index 0a8c39535..4cc1a6697 100644 --- a/google/ads/googleads/v15/resources/customer_conversion_goal.proto +++ b/google/ads/googleads/v18/resources/customer_conversion_goal.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/conversion_action_category.proto"; -import "google/ads/googleads/v15/enums/conversion_origin.proto"; +import "google/ads/googleads/v18/enums/conversion_action_category.proto"; +import "google/ads/googleads/v18/enums/conversion_origin.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerConversionGoalProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Biddability control for conversion actions with a matching category and // origin. @@ -51,13 +51,13 @@ message CustomerConversionGoal { // The conversion category of this customer conversion goal. Only // conversion actions that have this category will be included in this goal. - google.ads.googleads.v15.enums.ConversionActionCategoryEnum + google.ads.googleads.v18.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.v15.enums.ConversionOriginEnum.ConversionOrigin origin = + google.ads.googleads.v18.enums.ConversionOriginEnum.ConversionOrigin origin = 3; // The biddability of the customer conversion goal. diff --git a/google/ads/googleads/v15/resources/customer_customizer.proto b/google/ads/googleads/v18/resources/customer_customizer.proto similarity index 78% rename from google/ads/googleads/v15/resources/customer_customizer.proto rename to google/ads/googleads/v18/resources/customer_customizer.proto index 2fef77284..a69439cc6 100644 --- a/google/ads/googleads/v15/resources/customer_customizer.proto +++ b/google/ads/googleads/v18/resources/customer_customizer.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/customizer_value.proto"; -import "google/ads/googleads/v15/enums/customizer_value_status.proto"; +import "google/ads/googleads/v18/common/customizer_value.proto"; +import "google/ads/googleads/v18/enums/customizer_value_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerCustomizerProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // A customizer value for the associated CustomizerAttribute at the Customer // level. @@ -60,11 +60,11 @@ message CustomerCustomizer { ]; // Output only. The status of the customer customizer attribute. - google.ads.googleads.v15.enums.CustomizerValueStatusEnum.CustomizerValueStatus + google.ads.googleads.v18.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.v15.common.CustomizerValue value = 4 + google.ads.googleads.v18.common.CustomizerValue value = 4 [(google.api.field_behavior) = REQUIRED]; } diff --git a/google/ads/googleads/v15/resources/customer_extension_setting.proto b/google/ads/googleads/v18/resources/customer_extension_setting.proto similarity index 77% rename from google/ads/googleads/v15/resources/customer_extension_setting.proto rename to google/ads/googleads/v18/resources/customer_extension_setting.proto index 53a7d0984..5f6faa18b 100644 --- a/google/ads/googleads/v15/resources/customer_extension_setting.proto +++ b/google/ads/googleads/v18/resources/customer_extension_setting.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/extension_setting_device.proto"; -import "google/ads/googleads/v15/enums/extension_type.proto"; +import "google/ads/googleads/v18/enums/extension_setting_device.proto"; +import "google/ads/googleads/v18/enums/extension_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerExtensionSettingProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the CustomerExtensionSetting resource. @@ -51,7 +51,7 @@ message CustomerExtensionSetting { ]; // Immutable. The extension type of the customer extension setting. - google.ads.googleads.v15.enums.ExtensionTypeEnum.ExtensionType + google.ads.googleads.v18.enums.ExtensionTypeEnum.ExtensionType extension_type = 2 [(google.api.field_behavior) = IMMUTABLE]; // The resource names of the extension feed items to serve under the customer. @@ -63,6 +63,6 @@ message CustomerExtensionSetting { }]; // The device for which the extensions will serve. Optional. - google.ads.googleads.v15.enums.ExtensionSettingDeviceEnum + google.ads.googleads.v18.enums.ExtensionSettingDeviceEnum .ExtensionSettingDevice device = 4; } diff --git a/google/ads/googleads/v15/resources/customer_feed.proto b/google/ads/googleads/v18/resources/customer_feed.proto similarity index 73% rename from google/ads/googleads/v15/resources/customer_feed.proto rename to google/ads/googleads/v18/resources/customer_feed.proto index cef9b4940..7883dd899 100644 --- a/google/ads/googleads/v15/resources/customer_feed.proto +++ b/google/ads/googleads/v18/resources/customer_feed.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/matching_function.proto"; -import "google/ads/googleads/v15/enums/feed_link_status.proto"; -import "google/ads/googleads/v15/enums/placeholder_type.proto"; +import "google/ads/googleads/v18/common/matching_function.proto"; +import "google/ads/googleads/v18/enums/feed_link_status.proto"; +import "google/ads/googleads/v18/enums/placeholder_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerFeedProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the CustomerFeed resource. @@ -59,16 +59,16 @@ message CustomerFeed { // Indicates which placeholder types the feed may populate under the connected // customer. Required. - repeated google.ads.googleads.v15.enums.PlaceholderTypeEnum.PlaceholderType + repeated google.ads.googleads.v18.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.v15.common.MatchingFunction matching_function = 4; + google.ads.googleads.v18.common.MatchingFunction matching_function = 4; // Output only. Status of the customer feed. // This field is read-only. - google.ads.googleads.v15.enums.FeedLinkStatusEnum.FeedLinkStatus status = 5 + google.ads.googleads.v18.enums.FeedLinkStatusEnum.FeedLinkStatus status = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/customer_label.proto b/google/ads/googleads/v18/resources/customer_label.proto similarity index 86% rename from google/ads/googleads/v15/resources/customer_label.proto rename to google/ads/googleads/v18/resources/customer_label.proto index 72771adc1..01616bae9 100644 --- a/google/ads/googleads/v15/resources/customer_label.proto +++ b/google/ads/googleads/v18/resources/customer_label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerLabelProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the customer label resource. diff --git a/google/ads/googleads/v15/resources/customer_lifecycle_goal.proto b/google/ads/googleads/v18/resources/customer_lifecycle_goal.proto similarity index 51% rename from google/ads/googleads/v15/resources/customer_lifecycle_goal.proto rename to google/ads/googleads/v18/resources/customer_lifecycle_goal.proto index a2dea680b..e1be4f971 100644 --- a/google/ads/googleads/v15/resources/customer_lifecycle_goal.proto +++ b/google/ads/googleads/v18/resources/customer_lifecycle_goal.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/lifecycle_goals.proto"; +import "google/ads/googleads/v18/common/lifecycle_goals.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerLifecycleGoalProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the customer lifecycle resource. @@ -38,29 +38,6 @@ message CustomerLifecycleGoal { pattern: "customers/{customer_id}/customerLifecycleGoals" }; - // Lifecycle goal common settings, including existing user lists and existing - // high lifetime value user lists, shared among different types of lifecycle - // goals. - message LifecycleGoalCustomerDefinitionSettings { - // Output only. User lists which represent existing customers. - repeated string existing_user_lists = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/UserList" - } - ]; - - // Output only. User lists which represent customers of high lifetime value. - // In current stage, high lifetime value feature is in beta and this field - // is read-only. - repeated string high_lifetime_value_user_lists = 2 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "googleads.googleapis.com/UserList" - } - ]; - } - // Immutable. The resource name of the customer lifecycle goal. // Customer lifecycle resource names have the form: // @@ -72,14 +49,8 @@ message CustomerLifecycleGoal { } ]; - // Output only. Common lifecycle goal settings shared among different types of - // lifecycle goals. - LifecycleGoalCustomerDefinitionSettings - lifecycle_goal_customer_definition_settings = 2 - [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. Customer acquisition goal customer level value settings. - google.ads.googleads.v15.common.LifecycleGoalValueSettings + google.ads.googleads.v18.common.LifecycleGoalValueSettings customer_acquisition_goal_value_settings = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/customer_manager_link.proto b/google/ads/googleads/v18/resources/customer_manager_link.proto similarity index 80% rename from google/ads/googleads/v15/resources/customer_manager_link.proto rename to google/ads/googleads/v18/resources/customer_manager_link.proto index cdc7d82aa..336341e17 100644 --- a/google/ads/googleads/v15/resources/customer_manager_link.proto +++ b/google/ads/googleads/v18/resources/customer_manager_link.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/manager_link_status.proto"; +import "google/ads/googleads/v18/enums/manager_link_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerManagerLinkProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the CustomerManagerLink resource. @@ -61,6 +61,6 @@ message CustomerManagerLink { [(google.api.field_behavior) = OUTPUT_ONLY]; // Status of the link between the customer and the manager. - google.ads.googleads.v15.enums.ManagerLinkStatusEnum.ManagerLinkStatus + google.ads.googleads.v18.enums.ManagerLinkStatusEnum.ManagerLinkStatus status = 5; } diff --git a/google/ads/googleads/v15/resources/customer_negative_criterion.proto b/google/ads/googleads/v18/resources/customer_negative_criterion.proto similarity index 69% rename from google/ads/googleads/v15/resources/customer_negative_criterion.proto rename to google/ads/googleads/v18/resources/customer_negative_criterion.proto index 5a4b8c730..0b1a2a469 100644 --- a/google/ads/googleads/v15/resources/customer_negative_criterion.proto +++ b/google/ads/googleads/v18/resources/customer_negative_criterion.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/criteria.proto"; -import "google/ads/googleads/v15/enums/criterion_type.proto"; +import "google/ads/googleads/v18/common/criteria.proto"; +import "google/ads/googleads/v18/enums/criterion_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerNegativeCriterionProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Customer Negative Criterion resource. @@ -54,7 +54,7 @@ message CustomerNegativeCriterion { optional int64 id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The type of the criterion. - google.ads.googleads.v15.enums.CriterionTypeEnum.CriterionType type = 3 + google.ads.googleads.v18.enums.CriterionTypeEnum.CriterionType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // The customer negative criterion. @@ -62,31 +62,35 @@ message CustomerNegativeCriterion { // Exactly one must be set. oneof criterion { // Immutable. ContentLabel. - google.ads.googleads.v15.common.ContentLabelInfo content_label = 4 + google.ads.googleads.v18.common.ContentLabelInfo content_label = 4 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. MobileApplication. - google.ads.googleads.v15.common.MobileApplicationInfo mobile_application = 5 + google.ads.googleads.v18.common.MobileApplicationInfo mobile_application = 5 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. MobileAppCategory. - google.ads.googleads.v15.common.MobileAppCategoryInfo mobile_app_category = + google.ads.googleads.v18.common.MobileAppCategoryInfo mobile_app_category = 6 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Placement. - google.ads.googleads.v15.common.PlacementInfo placement = 7 + google.ads.googleads.v18.common.PlacementInfo placement = 7 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. YouTube Video. - google.ads.googleads.v15.common.YouTubeVideoInfo youtube_video = 8 + google.ads.googleads.v18.common.YouTubeVideoInfo youtube_video = 8 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. YouTube Channel. - google.ads.googleads.v15.common.YouTubeChannelInfo youtube_channel = 9 + google.ads.googleads.v18.common.YouTubeChannelInfo youtube_channel = 9 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. NegativeKeywordList. - google.ads.googleads.v15.common.NegativeKeywordListInfo + google.ads.googleads.v18.common.NegativeKeywordListInfo negative_keyword_list = 11 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. IPBLock + google.ads.googleads.v18.common.IpBlockInfo ip_block = 12 + [(google.api.field_behavior) = IMMUTABLE]; } } diff --git a/google/ads/googleads/v15/resources/customer_search_term_insight.proto b/google/ads/googleads/v18/resources/customer_search_term_insight.proto similarity index 84% rename from google/ads/googleads/v15/resources/customer_search_term_insight.proto rename to google/ads/googleads/v18/resources/customer_search_term_insight.proto index 4fba2bdcb..e966168fd 100644 --- a/google/ads/googleads/v15/resources/customer_search_term_insight.proto +++ b/google/ads/googleads/v18/resources/customer_search_term_insight.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerSearchTermInsightProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the customer search term insight resource. diff --git a/google/ads/googleads/v15/resources/customer_sk_ad_network_conversion_value_schema.proto b/google/ads/googleads/v18/resources/customer_sk_ad_network_conversion_value_schema.proto similarity index 68% rename from google/ads/googleads/v15/resources/customer_sk_ad_network_conversion_value_schema.proto rename to google/ads/googleads/v18/resources/customer_sk_ad_network_conversion_value_schema.proto index c33847c65..f4d2fd596 100644 --- a/google/ads/googleads/v15/resources/customer_sk_ad_network_conversion_value_schema.proto +++ b/google/ads/googleads/v18/resources/customer_sk_ad_network_conversion_value_schema.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; +import "google/ads/googleads/v18/enums/sk_ad_network_coarse_conversion_value.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerSkAdNetworkConversionValueSchemaProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the SkAdNetworkConversionVauleSchema resource. @@ -52,6 +53,54 @@ message CustomerSkAdNetworkConversionValueSchema { [(google.api.field_behavior) = OUTPUT_ONLY]; } + // Mappings for each postback in multiple conversion windows. + message PostbackMapping { + // Output only. 0-based index that indicates the order of postback. Valid + // values are in the inclusive range [0,2]. + int32 postback_sequence_index = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Conversion value mappings for all coarse grained + // conversion values. + CoarseGrainedConversionValueMappings + coarse_grained_conversion_value_mappings = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Event or conversion value used for locking conversion window. + oneof lock_window_trigger { + // Output only. Coarse grained conversion value that triggers conversion + // window lock. + google.ads.googleads.v18.enums.SkAdNetworkCoarseConversionValueEnum + .SkAdNetworkCoarseConversionValue + lock_window_coarse_conversion_value = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Fine grained conversion value that triggers conversion + // window lock. + int32 lock_window_fine_conversion_value = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Event name that triggers conversion window lock. + string lock_window_event = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + } + + // Mappings for coarse grained conversion values. + message CoarseGrainedConversionValueMappings { + // Output only. Mapping for "low" coarse conversion value. + ConversionValueMapping low_conversion_value_mapping = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Mapping for "medium" coarse conversion value. + ConversionValueMapping medium_conversion_value_mapping = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Mapping for "high" coarse conversion value. + ConversionValueMapping high_conversion_value_mapping = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + // Represents mapping from one conversion value to one or more conversion // events. message ConversionValueMapping { @@ -142,9 +191,18 @@ message CustomerSkAdNetworkConversionValueSchema { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Fine grained conversion value mappings. + // For SkAdNetwork versions >= 4.0 that support multiple conversion + // windows, fine grained conversion value mappings are only applicable to + // the first postback. repeated FineGrainedConversionValueMappings fine_grained_conversion_value_mappings = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Per-postback conversion value mappings for postbacks in + // multiple conversion windows. Only applicable for SkAdNetwork versions + // >= 4.0. + repeated PostbackMapping postback_mappings = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Output only. The resource name of the schema. diff --git a/google/ads/googleads/v15/resources/customer_user_access.proto b/google/ads/googleads/v18/resources/customer_user_access.proto similarity index 82% rename from google/ads/googleads/v15/resources/customer_user_access.proto rename to google/ads/googleads/v18/resources/customer_user_access.proto index c3979c4cb..37bbe2168 100644 --- a/google/ads/googleads/v15/resources/customer_user_access.proto +++ b/google/ads/googleads/v18/resources/customer_user_access.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/access_role.proto"; +import "google/ads/googleads/v18/enums/access_role.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerUserAccessProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the CustomerUserAccess resource. @@ -57,7 +57,7 @@ message CustomerUserAccess { optional string email_address = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Access role of the user. - google.ads.googleads.v15.enums.AccessRoleEnum.AccessRole access_role = 4; + google.ads.googleads.v18.enums.AccessRoleEnum.AccessRole access_role = 4; // Output only. The customer user access creation time. // Read only field diff --git a/google/ads/googleads/v15/resources/customer_user_access_invitation.proto b/google/ads/googleads/v18/resources/customer_user_access_invitation.proto similarity index 80% rename from google/ads/googleads/v15/resources/customer_user_access_invitation.proto rename to google/ads/googleads/v18/resources/customer_user_access_invitation.proto index a5cd530a5..19e348784 100644 --- a/google/ads/googleads/v15/resources/customer_user_access_invitation.proto +++ b/google/ads/googleads/v18/resources/customer_user_access_invitation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/access_invitation_status.proto"; -import "google/ads/googleads/v15/enums/access_role.proto"; +import "google/ads/googleads/v18/enums/access_invitation_status.proto"; +import "google/ads/googleads/v18/enums/access_role.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomerUserAccessInvitationProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the CustomerUserAccessInvitation resource. @@ -54,7 +54,7 @@ message CustomerUserAccessInvitation { int64 invitation_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Immutable. Access role of the user. - google.ads.googleads.v15.enums.AccessRoleEnum.AccessRole access_role = 3 + google.ads.googleads.v18.enums.AccessRoleEnum.AccessRole access_role = 3 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Email address the invitation was sent to. @@ -69,7 +69,7 @@ message CustomerUserAccessInvitation { string creation_date_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Invitation status of the user. - google.ads.googleads.v15.enums.AccessInvitationStatusEnum + google.ads.googleads.v18.enums.AccessInvitationStatusEnum .AccessInvitationStatus invitation_status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/customizer_attribute.proto b/google/ads/googleads/v18/resources/customizer_attribute.proto similarity index 80% rename from google/ads/googleads/v15/resources/customizer_attribute.proto rename to google/ads/googleads/v18/resources/customizer_attribute.proto index 6428a43e8..0c2e88c42 100644 --- a/google/ads/googleads/v15/resources/customizer_attribute.proto +++ b/google/ads/googleads/v18/resources/customizer_attribute.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/customizer_attribute_status.proto"; -import "google/ads/googleads/v15/enums/customizer_attribute_type.proto"; +import "google/ads/googleads/v18/enums/customizer_attribute_status.proto"; +import "google/ads/googleads/v18/enums/customizer_attribute_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "CustomizerAttributeProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // A customizer attribute. // Use CustomerCustomizer, CampaignCustomizer, AdGroupCustomizer, or @@ -64,12 +64,12 @@ message CustomizerAttribute { ]; // Immutable. The type of the customizer attribute. - google.ads.googleads.v15.enums.CustomizerAttributeTypeEnum + google.ads.googleads.v18.enums.CustomizerAttributeTypeEnum .CustomizerAttributeType type = 4 [(google.api.field_behavior) = IMMUTABLE]; // Output only. The status of the customizer attribute. - google.ads.googleads.v15.enums.CustomizerAttributeStatusEnum + google.ads.googleads.v18.enums.CustomizerAttributeStatusEnum .CustomizerAttributeStatus status = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v18/resources/data_link.proto b/google/ads/googleads/v18/resources/data_link.proto new file mode 100644 index 000000000..37f16576d --- /dev/null +++ b/google/ads/googleads/v18/resources/data_link.proto @@ -0,0 +1,88 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.resources; + +import "google/ads/googleads/v18/enums/data_link_status.proto"; +import "google/ads/googleads/v18/enums/data_link_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "DataLinkProto"; +option java_package = "com.google.ads.googleads.v18.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; + +// Represents the data sharing connection between a Google +// Ads customer and another product's data. +message DataLink { + option (google.api.resource) = { + type: "googleads.googleapis.com/DataLink" + pattern: "customers/{customer_id}/dataLinks/{product_link_id}~{data_link_id}" + }; + + // Immutable. Resource name of the product data link. + // DataLink resource names have the form: + // + // `customers/{customer_id}/datalinks/{product_link_id}~{data_link_id}} + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/DataLink" + } + ]; + + // Output only. The ID of the link. + // This field is read only. + optional int64 product_link_id = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The ID of the data link. + // This field is read only. + optional int64 data_link_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of the data. + google.ads.googleads.v18.enums.DataLinkTypeEnum.DataLinkType type = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status of the data link. + google.ads.googleads.v18.enums.DataLinkStatusEnum.DataLinkStatus status = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Data linked to this account. + oneof data_link_entity { + // Immutable. A data link to YouTube video. + YoutubeVideoIdentifier youtube_video = 6 + [(google.api.field_behavior) = IMMUTABLE]; + } +} + +// The identifier for YouTube video +message YoutubeVideoIdentifier { + // Immutable. The ID of the hosting channel of the video. This is a string + // value with “UC” prefix. For example, "UCK8sQmJBp8GCxrOtXWBpyEA". + optional string channel_id = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The ID of the video associated with the video link. This is the + // 11 character string value used in the YouTube video URL. For example, video + // ID is jV1vkHv4zq8 from the YouTube video URL + // "https://www.youtube.com/watch?v=jV1vkHv4zq8&t=2s". + optional string video_id = 2 [(google.api.field_behavior) = IMMUTABLE]; +} diff --git a/google/ads/googleads/v15/resources/detail_placement_view.proto b/google/ads/googleads/v18/resources/detail_placement_view.proto similarity index 84% rename from google/ads/googleads/v15/resources/detail_placement_view.proto rename to google/ads/googleads/v18/resources/detail_placement_view.proto index c5aff81a4..7a0a18068 100644 --- a/google/ads/googleads/v15/resources/detail_placement_view.proto +++ b/google/ads/googleads/v18/resources/detail_placement_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/placement_type.proto"; +import "google/ads/googleads/v18/enums/placement_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "DetailPlacementViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the detail placement view resource. @@ -68,6 +68,6 @@ message DetailPlacementView { // Output only. Type of the placement, for example, Website, YouTube Video, // and Mobile Application. - google.ads.googleads.v15.enums.PlacementTypeEnum.PlacementType + google.ads.googleads.v18.enums.PlacementTypeEnum.PlacementType placement_type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/detailed_demographic.proto b/google/ads/googleads/v18/resources/detailed_demographic.proto similarity index 83% rename from google/ads/googleads/v15/resources/detailed_demographic.proto rename to google/ads/googleads/v18/resources/detailed_demographic.proto index 0e4613e49..9df9bc41f 100644 --- a/google/ads/googleads/v15/resources/detailed_demographic.proto +++ b/google/ads/googleads/v18/resources/detailed_demographic.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/criterion_category_availability.proto"; +import "google/ads/googleads/v18/common/criterion_category_availability.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "DetailedDemographicProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Detailed Demographic resource. @@ -70,6 +70,6 @@ message DetailedDemographic { bool launched_to_all = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Availability information of the detailed demographic. - repeated google.ads.googleads.v15.common.CriterionCategoryAvailability + repeated google.ads.googleads.v18.common.CriterionCategoryAvailability availabilities = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/display_keyword_view.proto b/google/ads/googleads/v18/resources/display_keyword_view.proto similarity index 80% rename from google/ads/googleads/v15/resources/display_keyword_view.proto rename to google/ads/googleads/v18/resources/display_keyword_view.proto index db73c2a85..b91ceaf78 100644 --- a/google/ads/googleads/v15/resources/display_keyword_view.proto +++ b/google/ads/googleads/v18/resources/display_keyword_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "DisplayKeywordViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the display keyword view resource. diff --git a/google/ads/googleads/v15/resources/distance_view.proto b/google/ads/googleads/v18/resources/distance_view.proto similarity index 80% rename from google/ads/googleads/v15/resources/distance_view.proto rename to google/ads/googleads/v18/resources/distance_view.proto index 25f800d52..35281f705 100644 --- a/google/ads/googleads/v15/resources/distance_view.proto +++ b/google/ads/googleads/v18/resources/distance_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/distance_bucket.proto"; +import "google/ads/googleads/v18/enums/distance_bucket.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "DistanceViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the DistanceView resource. @@ -54,7 +54,7 @@ message DistanceView { ]; // Output only. Grouping of user distance from location extensions. - google.ads.googleads.v15.enums.DistanceBucketEnum.DistanceBucket + google.ads.googleads.v18.enums.DistanceBucketEnum.DistanceBucket distance_bucket = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. True if the DistanceBucket is using the metric system, false diff --git a/google/ads/googleads/v15/resources/domain_category.proto b/google/ads/googleads/v18/resources/domain_category.proto similarity index 91% rename from google/ads/googleads/v15/resources/domain_category.proto rename to google/ads/googleads/v18/resources/domain_category.proto index db042f695..ca21ddbd4 100644 --- a/google/ads/googleads/v15/resources/domain_category.proto +++ b/google/ads/googleads/v18/resources/domain_category.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "DomainCategoryProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Domain Category resource. diff --git a/google/ads/googleads/v15/resources/dynamic_search_ads_search_term_view.proto b/google/ads/googleads/v18/resources/dynamic_search_ads_search_term_view.proto similarity index 89% rename from google/ads/googleads/v15/resources/dynamic_search_ads_search_term_view.proto rename to google/ads/googleads/v18/resources/dynamic_search_ads_search_term_view.proto index 5e511aaf1..7807b06dc 100644 --- a/google/ads/googleads/v15/resources/dynamic_search_ads_search_term_view.proto +++ b/google/ads/googleads/v18/resources/dynamic_search_ads_search_term_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "DynamicSearchAdsSearchTermViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Dynamic Search Ads Search Term View resource. diff --git a/google/ads/googleads/v15/resources/expanded_landing_page_view.proto b/google/ads/googleads/v18/resources/expanded_landing_page_view.proto similarity index 83% rename from google/ads/googleads/v15/resources/expanded_landing_page_view.proto rename to google/ads/googleads/v18/resources/expanded_landing_page_view.proto index e3c461a04..b966f56c9 100644 --- a/google/ads/googleads/v15/resources/expanded_landing_page_view.proto +++ b/google/ads/googleads/v18/resources/expanded_landing_page_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ExpandedLandingPageViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the expanded landing page view resource. diff --git a/google/ads/googleads/v15/resources/experiment.proto b/google/ads/googleads/v18/resources/experiment.proto similarity index 75% rename from google/ads/googleads/v15/resources/experiment.proto rename to google/ads/googleads/v18/resources/experiment.proto index 00aa3a798..5d4738abe 100644 --- a/google/ads/googleads/v15/resources/experiment.proto +++ b/google/ads/googleads/v18/resources/experiment.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/metric_goal.proto"; -import "google/ads/googleads/v15/enums/async_action_status.proto"; -import "google/ads/googleads/v15/enums/experiment_status.proto"; -import "google/ads/googleads/v15/enums/experiment_type.proto"; +import "google/ads/googleads/v18/common/metric_goal.proto"; +import "google/ads/googleads/v18/enums/async_action_status.proto"; +import "google/ads/googleads/v18/enums/experiment_status.proto"; +import "google/ads/googleads/v18/enums/experiment_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ExperimentProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Experiment resource. @@ -71,11 +71,11 @@ message Experiment { string suffix = 12; // Required. The product/feature that uses this experiment. - google.ads.googleads.v15.enums.ExperimentTypeEnum.ExperimentType type = 13 + google.ads.googleads.v18.enums.ExperimentTypeEnum.ExperimentType type = 13 [(google.api.field_behavior) = REQUIRED]; // The Advertiser-chosen status of this experiment. - google.ads.googleads.v15.enums.ExperimentStatusEnum.ExperimentStatus status = + google.ads.googleads.v18.enums.ExperimentStatusEnum.ExperimentStatus status = 14; // Date when the experiment starts. By default, the experiment starts @@ -96,7 +96,7 @@ message Experiment { optional string end_date = 16; // The goals of this experiment. - repeated google.ads.googleads.v15.common.MetricGoal goals = 17; + repeated google.ads.googleads.v18.common.MetricGoal goals = 17; // Output only. The resource name of the long-running operation that can be // used to poll for completion of experiment schedule or promote. The most @@ -105,6 +105,11 @@ message Experiment { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The status of the experiment promotion process. - google.ads.googleads.v15.enums.AsyncActionStatusEnum.AsyncActionStatus + google.ads.googleads.v18.enums.AsyncActionStatusEnum.AsyncActionStatus promote_status = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. Set to true if changes to base campaigns should be synced to the + // trial campaigns. Any changes made directly to trial campaigns will be + // preserved. This field can only be set when the experiment is being created. + optional bool sync_enabled = 20 [(google.api.field_behavior) = IMMUTABLE]; } diff --git a/google/ads/googleads/v15/resources/experiment_arm.proto b/google/ads/googleads/v18/resources/experiment_arm.proto similarity index 88% rename from google/ads/googleads/v15/resources/experiment_arm.proto rename to google/ads/googleads/v18/resources/experiment_arm.proto index aecd1012d..0b9b6ee35 100644 --- a/google/ads/googleads/v15/resources/experiment_arm.proto +++ b/google/ads/googleads/v18/resources/experiment_arm.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ExperimentArmProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Experiment arm resource. diff --git a/google/ads/googleads/v15/resources/extension_feed_item.proto b/google/ads/googleads/v18/resources/extension_feed_item.proto similarity index 71% rename from google/ads/googleads/v15/resources/extension_feed_item.proto rename to google/ads/googleads/v18/resources/extension_feed_item.proto index 8f95d0168..900da71dd 100644 --- a/google/ads/googleads/v15/resources/extension_feed_item.proto +++ b/google/ads/googleads/v18/resources/extension_feed_item.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/criteria.proto"; -import "google/ads/googleads/v15/common/extensions.proto"; -import "google/ads/googleads/v15/enums/extension_type.proto"; -import "google/ads/googleads/v15/enums/feed_item_status.proto"; -import "google/ads/googleads/v15/enums/feed_item_target_device.proto"; +import "google/ads/googleads/v18/common/criteria.proto"; +import "google/ads/googleads/v18/common/extensions.proto"; +import "google/ads/googleads/v18/enums/extension_type.proto"; +import "google/ads/googleads/v18/enums/feed_item_status.proto"; +import "google/ads/googleads/v18/enums/feed_item_target_device.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ExtensionFeedItemProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the ExtensionFeedItem resource. @@ -58,7 +58,7 @@ message ExtensionFeedItem { // Output only. The extension type of the extension feed item. // This field is read-only. - google.ads.googleads.v15.enums.ExtensionTypeEnum.ExtensionType + google.ads.googleads.v18.enums.ExtensionTypeEnum.ExtensionType extension_type = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; // Start time in which this feed item is effective and can begin serving. The @@ -76,10 +76,10 @@ message ExtensionFeedItem { // List of non-overlapping schedules specifying all time intervals // for which the feed item may serve. There can be a maximum of 6 schedules // per day. - repeated google.ads.googleads.v15.common.AdScheduleInfo ad_schedules = 16; + repeated google.ads.googleads.v18.common.AdScheduleInfo ad_schedules = 16; // The targeted device. - google.ads.googleads.v15.enums.FeedItemTargetDeviceEnum.FeedItemTargetDevice + google.ads.googleads.v18.enums.FeedItemTargetDeviceEnum.FeedItemTargetDevice device = 17; // The targeted geo target constant. @@ -89,58 +89,58 @@ message ExtensionFeedItem { }]; // The targeted keyword. - google.ads.googleads.v15.common.KeywordInfo targeted_keyword = 22; + google.ads.googleads.v18.common.KeywordInfo targeted_keyword = 22; // Output only. Status of the feed item. // This field is read-only. - google.ads.googleads.v15.enums.FeedItemStatusEnum.FeedItemStatus status = 4 + google.ads.googleads.v18.enums.FeedItemStatusEnum.FeedItemStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Extension type. oneof extension { // Sitelink. - google.ads.googleads.v15.common.SitelinkFeedItem sitelink_feed_item = 2; + google.ads.googleads.v18.common.SitelinkFeedItem sitelink_feed_item = 2; // Structured snippet extension. - google.ads.googleads.v15.common.StructuredSnippetFeedItem + google.ads.googleads.v18.common.StructuredSnippetFeedItem structured_snippet_feed_item = 3; // App extension. - google.ads.googleads.v15.common.AppFeedItem app_feed_item = 7; + google.ads.googleads.v18.common.AppFeedItem app_feed_item = 7; // Call extension. - google.ads.googleads.v15.common.CallFeedItem call_feed_item = 8; + google.ads.googleads.v18.common.CallFeedItem call_feed_item = 8; // Callout extension. - google.ads.googleads.v15.common.CalloutFeedItem callout_feed_item = 9; + google.ads.googleads.v18.common.CalloutFeedItem callout_feed_item = 9; // Text message extension. - google.ads.googleads.v15.common.TextMessageFeedItem text_message_feed_item = + google.ads.googleads.v18.common.TextMessageFeedItem text_message_feed_item = 10; // Price extension. - google.ads.googleads.v15.common.PriceFeedItem price_feed_item = 11; + google.ads.googleads.v18.common.PriceFeedItem price_feed_item = 11; // Promotion extension. - google.ads.googleads.v15.common.PromotionFeedItem promotion_feed_item = 12; + google.ads.googleads.v18.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.v15.common.LocationFeedItem location_feed_item = 14 + google.ads.googleads.v18.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.v15.common.AffiliateLocationFeedItem + google.ads.googleads.v18.common.AffiliateLocationFeedItem affiliate_location_feed_item = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; // Hotel Callout extension. - google.ads.googleads.v15.common.HotelCalloutFeedItem + google.ads.googleads.v18.common.HotelCalloutFeedItem hotel_callout_feed_item = 23; // Immutable. Advertiser provided image extension. - google.ads.googleads.v15.common.ImageFeedItem image_feed_item = 31 + google.ads.googleads.v18.common.ImageFeedItem image_feed_item = 31 [(google.api.field_behavior) = IMMUTABLE]; } diff --git a/google/ads/googleads/v15/resources/feed.proto b/google/ads/googleads/v18/resources/feed.proto similarity index 88% rename from google/ads/googleads/v15/resources/feed.proto rename to google/ads/googleads/v18/resources/feed.proto index c0b57abe4..b73cfb151 100644 --- a/google/ads/googleads/v15/resources/feed.proto +++ b/google/ads/googleads/v18/resources/feed.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/affiliate_location_feed_relationship_type.proto"; -import "google/ads/googleads/v15/enums/feed_attribute_type.proto"; -import "google/ads/googleads/v15/enums/feed_origin.proto"; -import "google/ads/googleads/v15/enums/feed_status.proto"; +import "google/ads/googleads/v18/enums/affiliate_location_feed_relationship_type.proto"; +import "google/ads/googleads/v18/enums/feed_attribute_type.proto"; +import "google/ads/googleads/v18/enums/feed_origin.proto"; +import "google/ads/googleads/v18/enums/feed_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "FeedProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Feed resource. @@ -96,7 +96,7 @@ message Feed { repeated int64 chain_ids = 3; // The relationship the chains have with the advertiser. - google.ads.googleads.v15.enums.AffiliateLocationFeedRelationshipTypeEnum + google.ads.googleads.v18.enums.AffiliateLocationFeedRelationshipTypeEnum .AffiliateLocationFeedRelationshipType relationship_type = 2; } @@ -127,12 +127,12 @@ message Feed { repeated FeedAttributeOperation attribute_operations = 9; // Immutable. Specifies who manages the FeedAttributes for the Feed. - google.ads.googleads.v15.enums.FeedOriginEnum.FeedOrigin origin = 5 + google.ads.googleads.v18.enums.FeedOriginEnum.FeedOrigin origin = 5 [(google.api.field_behavior) = IMMUTABLE]; // Output only. Status of the feed. // This field is read-only. - google.ads.googleads.v15.enums.FeedStatusEnum.FeedStatus status = 8 + google.ads.googleads.v18.enums.FeedStatusEnum.FeedStatus status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // The system data for the Feed. This data specifies information for @@ -159,7 +159,7 @@ message FeedAttribute { optional string name = 6; // Data type for feed attribute. Required. - google.ads.googleads.v15.enums.FeedAttributeTypeEnum.FeedAttributeType type = + google.ads.googleads.v18.enums.FeedAttributeTypeEnum.FeedAttributeType type = 3; // Indicates that data corresponding to this attribute is part of a diff --git a/google/ads/googleads/v15/resources/feed_item.proto b/google/ads/googleads/v18/resources/feed_item.proto similarity index 82% rename from google/ads/googleads/v15/resources/feed_item.proto rename to google/ads/googleads/v18/resources/feed_item.proto index 44bacd696..f9edb7400 100644 --- a/google/ads/googleads/v15/resources/feed_item.proto +++ b/google/ads/googleads/v18/resources/feed_item.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,31 +14,31 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; - -import "google/ads/googleads/v15/common/custom_parameter.proto"; -import "google/ads/googleads/v15/common/feed_common.proto"; -import "google/ads/googleads/v15/common/policy.proto"; -import "google/ads/googleads/v15/enums/feed_item_quality_approval_status.proto"; -import "google/ads/googleads/v15/enums/feed_item_quality_disapproval_reason.proto"; -import "google/ads/googleads/v15/enums/feed_item_status.proto"; -import "google/ads/googleads/v15/enums/feed_item_validation_status.proto"; -import "google/ads/googleads/v15/enums/geo_targeting_restriction.proto"; -import "google/ads/googleads/v15/enums/placeholder_type.proto"; -import "google/ads/googleads/v15/enums/policy_approval_status.proto"; -import "google/ads/googleads/v15/enums/policy_review_status.proto"; -import "google/ads/googleads/v15/errors/feed_item_validation_error.proto"; +package google.ads.googleads.v18.resources; + +import "google/ads/googleads/v18/common/custom_parameter.proto"; +import "google/ads/googleads/v18/common/feed_common.proto"; +import "google/ads/googleads/v18/common/policy.proto"; +import "google/ads/googleads/v18/enums/feed_item_quality_approval_status.proto"; +import "google/ads/googleads/v18/enums/feed_item_quality_disapproval_reason.proto"; +import "google/ads/googleads/v18/enums/feed_item_status.proto"; +import "google/ads/googleads/v18/enums/feed_item_validation_status.proto"; +import "google/ads/googleads/v18/enums/geo_targeting_restriction.proto"; +import "google/ads/googleads/v18/enums/placeholder_type.proto"; +import "google/ads/googleads/v18/enums/policy_approval_status.proto"; +import "google/ads/googleads/v18/enums/policy_review_status.proto"; +import "google/ads/googleads/v18/errors/feed_item_validation_error.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "FeedItemProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the FeedItem resource. @@ -86,17 +86,17 @@ message FeedItem { // Geo targeting restriction specifies the type of location that can be used // for targeting. - google.ads.googleads.v15.enums.GeoTargetingRestrictionEnum + google.ads.googleads.v18.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.v15.common.CustomParameter + repeated google.ads.googleads.v18.common.CustomParameter url_custom_parameters = 8; // Output only. Status of the feed item. // This field is read-only. - google.ads.googleads.v15.enums.FeedItemStatusEnum.FeedItemStatus status = 9 + google.ads.googleads.v18.enums.FeedItemStatusEnum.FeedItemStatus status = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. List of info about a feed item's validation and approval state @@ -135,7 +135,7 @@ message FeedItemAttributeValue { // Price value. Should be set if feed_attribute_id refers to a feed attribute // of type PRICE. - google.ads.googleads.v15.common.Money price_value = 6; + google.ads.googleads.v18.common.Money price_value = 6; // Repeated int64 value. Should be set if feed_attribute_id refers to a feed // attribute of type INT64_LIST. @@ -165,7 +165,7 @@ message FeedItemAttributeValue { // specified placeholder type. message FeedItemPlaceholderPolicyInfo { // Output only. The placeholder type. - google.ads.googleads.v15.enums.PlaceholderTypeEnum.PlaceholderType + google.ads.googleads.v18.enums.PlaceholderTypeEnum.PlaceholderType placeholder_type_enum = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The FeedMapping that contains the placeholder type. @@ -173,20 +173,20 @@ message FeedItemPlaceholderPolicyInfo { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Where the placeholder type is in the review process. - google.ads.googleads.v15.enums.PolicyReviewStatusEnum.PolicyReviewStatus + google.ads.googleads.v18.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.v15.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus + google.ads.googleads.v18.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.v15.common.PolicyTopicEntry + repeated google.ads.googleads.v18.common.PolicyTopicEntry policy_topic_entries = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The validation status of the placeholder type. - google.ads.googleads.v15.enums.FeedItemValidationStatusEnum + google.ads.googleads.v18.enums.FeedItemValidationStatusEnum .FeedItemValidationStatus validation_status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -195,13 +195,13 @@ message FeedItemPlaceholderPolicyInfo { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Placeholder type quality evaluation approval status. - google.ads.googleads.v15.enums.FeedItemQualityApprovalStatusEnum + google.ads.googleads.v18.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.v15.enums.FeedItemQualityDisapprovalReasonEnum + repeated google.ads.googleads.v18.enums.FeedItemQualityDisapprovalReasonEnum .FeedItemQualityDisapprovalReason quality_disapproval_reasons = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -211,7 +211,7 @@ message FeedItemPlaceholderPolicyInfo { message FeedItemValidationError { // Output only. Error code indicating what validation error was triggered. The // description of the error can be found in the 'description' field. - google.ads.googleads.v15.errors.FeedItemValidationErrorEnum + google.ads.googleads.v18.errors.FeedItemValidationErrorEnum .FeedItemValidationError validation_error = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/google/ads/googleads/v15/resources/feed_item_set.proto b/google/ads/googleads/v18/resources/feed_item_set.proto similarity index 80% rename from google/ads/googleads/v15/resources/feed_item_set.proto rename to google/ads/googleads/v18/resources/feed_item_set.proto index ea386966b..4ad4ecaca 100644 --- a/google/ads/googleads/v15/resources/feed_item_set.proto +++ b/google/ads/googleads/v18/resources/feed_item_set.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/feed_item_set_filter_type_infos.proto"; -import "google/ads/googleads/v15/enums/feed_item_set_status.proto"; +import "google/ads/googleads/v18/common/feed_item_set_filter_type_infos.proto"; +import "google/ads/googleads/v18/enums/feed_item_set_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "FeedItemSetProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Represents a set of feed items. The set can be used and shared among certain // feed item features. For instance, the set can be referenced within the @@ -64,7 +64,7 @@ message FeedItemSet { // Output only. Status of the feed item set. // This field is read-only. - google.ads.googleads.v15.enums.FeedItemSetStatusEnum.FeedItemSetStatus + google.ads.googleads.v18.enums.FeedItemSetStatusEnum.FeedItemSetStatus status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Represents a filter on locations in a feed item set. @@ -72,13 +72,13 @@ message FeedItemSet { oneof dynamic_set_filter { // Filter for dynamic location set. // It is only used for sets of locations. - google.ads.googleads.v15.common.DynamicLocationSetFilter + google.ads.googleads.v18.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.v15.common.DynamicAffiliateLocationSetFilter + google.ads.googleads.v18.common.DynamicAffiliateLocationSetFilter dynamic_affiliate_location_set_filter = 6; } } diff --git a/google/ads/googleads/v15/resources/feed_item_set_link.proto b/google/ads/googleads/v18/resources/feed_item_set_link.proto similarity index 84% rename from google/ads/googleads/v15/resources/feed_item_set_link.proto rename to google/ads/googleads/v18/resources/feed_item_set_link.proto index e68008cf4..1c67138d4 100644 --- a/google/ads/googleads/v15/resources/feed_item_set_link.proto +++ b/google/ads/googleads/v18/resources/feed_item_set_link.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "FeedItemSetLinkProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the FeedItemSetLink resource. diff --git a/google/ads/googleads/v15/resources/feed_item_target.proto b/google/ads/googleads/v18/resources/feed_item_target.proto similarity index 78% rename from google/ads/googleads/v15/resources/feed_item_target.proto rename to google/ads/googleads/v18/resources/feed_item_target.proto index 8bddb33fa..05e76d897 100644 --- a/google/ads/googleads/v15/resources/feed_item_target.proto +++ b/google/ads/googleads/v18/resources/feed_item_target.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/criteria.proto"; -import "google/ads/googleads/v15/enums/feed_item_target_device.proto"; -import "google/ads/googleads/v15/enums/feed_item_target_status.proto"; -import "google/ads/googleads/v15/enums/feed_item_target_type.proto"; +import "google/ads/googleads/v18/common/criteria.proto"; +import "google/ads/googleads/v18/enums/feed_item_target_device.proto"; +import "google/ads/googleads/v18/enums/feed_item_target_status.proto"; +import "google/ads/googleads/v18/enums/feed_item_target_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "FeedItemTargetProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the FeedItemTarget resource. @@ -61,7 +61,7 @@ message FeedItemTarget { // Output only. The target type of this feed item target. This field is // read-only. - google.ads.googleads.v15.enums.FeedItemTargetTypeEnum.FeedItemTargetType + google.ads.googleads.v18.enums.FeedItemTargetTypeEnum.FeedItemTargetType feed_item_target_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The ID of the targeted resource. This field is read-only. @@ -70,7 +70,7 @@ message FeedItemTarget { // Output only. Status of the feed item target. // This field is read-only. - google.ads.googleads.v15.enums.FeedItemTargetStatusEnum.FeedItemTargetStatus + google.ads.googleads.v18.enums.FeedItemTargetStatusEnum.FeedItemTargetStatus status = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; // The targeted resource. @@ -92,7 +92,7 @@ message FeedItemTarget { ]; // Immutable. The targeted keyword. - google.ads.googleads.v15.common.KeywordInfo keyword = 7 + google.ads.googleads.v18.common.KeywordInfo keyword = 7 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. The targeted geo target constant resource name. @@ -104,11 +104,11 @@ message FeedItemTarget { ]; // Immutable. The targeted device. - google.ads.googleads.v15.enums.FeedItemTargetDeviceEnum.FeedItemTargetDevice + google.ads.googleads.v18.enums.FeedItemTargetDeviceEnum.FeedItemTargetDevice device = 9 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. The targeted schedule. - google.ads.googleads.v15.common.AdScheduleInfo ad_schedule = 10 + google.ads.googleads.v18.common.AdScheduleInfo ad_schedule = 10 [(google.api.field_behavior) = IMMUTABLE]; } } diff --git a/google/ads/googleads/v15/resources/feed_mapping.proto b/google/ads/googleads/v18/resources/feed_mapping.proto similarity index 67% rename from google/ads/googleads/v15/resources/feed_mapping.proto rename to google/ads/googleads/v18/resources/feed_mapping.proto index b069b4e55..b8dffdeb3 100644 --- a/google/ads/googleads/v15/resources/feed_mapping.proto +++ b/google/ads/googleads/v18/resources/feed_mapping.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,44 +14,44 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; - -import "google/ads/googleads/v15/enums/ad_customizer_placeholder_field.proto"; -import "google/ads/googleads/v15/enums/affiliate_location_placeholder_field.proto"; -import "google/ads/googleads/v15/enums/app_placeholder_field.proto"; -import "google/ads/googleads/v15/enums/call_placeholder_field.proto"; -import "google/ads/googleads/v15/enums/callout_placeholder_field.proto"; -import "google/ads/googleads/v15/enums/custom_placeholder_field.proto"; -import "google/ads/googleads/v15/enums/dsa_page_feed_criterion_field.proto"; -import "google/ads/googleads/v15/enums/education_placeholder_field.proto"; -import "google/ads/googleads/v15/enums/feed_mapping_criterion_type.proto"; -import "google/ads/googleads/v15/enums/feed_mapping_status.proto"; -import "google/ads/googleads/v15/enums/flight_placeholder_field.proto"; -import "google/ads/googleads/v15/enums/hotel_placeholder_field.proto"; -import "google/ads/googleads/v15/enums/image_placeholder_field.proto"; -import "google/ads/googleads/v15/enums/job_placeholder_field.proto"; -import "google/ads/googleads/v15/enums/local_placeholder_field.proto"; -import "google/ads/googleads/v15/enums/location_extension_targeting_criterion_field.proto"; -import "google/ads/googleads/v15/enums/location_placeholder_field.proto"; -import "google/ads/googleads/v15/enums/message_placeholder_field.proto"; -import "google/ads/googleads/v15/enums/placeholder_type.proto"; -import "google/ads/googleads/v15/enums/price_placeholder_field.proto"; -import "google/ads/googleads/v15/enums/promotion_placeholder_field.proto"; -import "google/ads/googleads/v15/enums/real_estate_placeholder_field.proto"; -import "google/ads/googleads/v15/enums/sitelink_placeholder_field.proto"; -import "google/ads/googleads/v15/enums/structured_snippet_placeholder_field.proto"; -import "google/ads/googleads/v15/enums/travel_placeholder_field.proto"; +package google.ads.googleads.v18.resources; + +import "google/ads/googleads/v18/enums/ad_customizer_placeholder_field.proto"; +import "google/ads/googleads/v18/enums/affiliate_location_placeholder_field.proto"; +import "google/ads/googleads/v18/enums/app_placeholder_field.proto"; +import "google/ads/googleads/v18/enums/call_placeholder_field.proto"; +import "google/ads/googleads/v18/enums/callout_placeholder_field.proto"; +import "google/ads/googleads/v18/enums/custom_placeholder_field.proto"; +import "google/ads/googleads/v18/enums/dsa_page_feed_criterion_field.proto"; +import "google/ads/googleads/v18/enums/education_placeholder_field.proto"; +import "google/ads/googleads/v18/enums/feed_mapping_criterion_type.proto"; +import "google/ads/googleads/v18/enums/feed_mapping_status.proto"; +import "google/ads/googleads/v18/enums/flight_placeholder_field.proto"; +import "google/ads/googleads/v18/enums/hotel_placeholder_field.proto"; +import "google/ads/googleads/v18/enums/image_placeholder_field.proto"; +import "google/ads/googleads/v18/enums/job_placeholder_field.proto"; +import "google/ads/googleads/v18/enums/local_placeholder_field.proto"; +import "google/ads/googleads/v18/enums/location_extension_targeting_criterion_field.proto"; +import "google/ads/googleads/v18/enums/location_placeholder_field.proto"; +import "google/ads/googleads/v18/enums/message_placeholder_field.proto"; +import "google/ads/googleads/v18/enums/placeholder_type.proto"; +import "google/ads/googleads/v18/enums/price_placeholder_field.proto"; +import "google/ads/googleads/v18/enums/promotion_placeholder_field.proto"; +import "google/ads/googleads/v18/enums/real_estate_placeholder_field.proto"; +import "google/ads/googleads/v18/enums/sitelink_placeholder_field.proto"; +import "google/ads/googleads/v18/enums/structured_snippet_placeholder_field.proto"; +import "google/ads/googleads/v18/enums/travel_placeholder_field.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "FeedMappingProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the FeedMapping resource. @@ -89,7 +89,7 @@ message FeedMapping { // Output only. Status of the feed mapping. // This field is read-only. - google.ads.googleads.v15.enums.FeedMappingStatusEnum.FeedMappingStatus + google.ads.googleads.v18.enums.FeedMappingStatusEnum.FeedMappingStatus status = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // Feed mapping target. Can be either a placeholder or a criterion. For a @@ -97,12 +97,12 @@ message FeedMapping { oneof target { // Immutable. The placeholder type of this mapping (for example, if the // mapping maps feed attributes to placeholder fields). - google.ads.googleads.v15.enums.PlaceholderTypeEnum.PlaceholderType + google.ads.googleads.v18.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.v15.enums.FeedMappingCriterionTypeEnum + google.ads.googleads.v18.enums.FeedMappingCriterionTypeEnum .FeedMappingCriterionType criterion_type = 4 [(google.api.field_behavior) = IMMUTABLE]; } @@ -123,111 +123,111 @@ message AttributeFieldMapping { // the above feed attribute. Required. oneof field { // Immutable. Sitelink Placeholder Fields. - google.ads.googleads.v15.enums.SitelinkPlaceholderFieldEnum + google.ads.googleads.v18.enums.SitelinkPlaceholderFieldEnum .SitelinkPlaceholderField sitelink_field = 3 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Call Placeholder Fields. - google.ads.googleads.v15.enums.CallPlaceholderFieldEnum.CallPlaceholderField + google.ads.googleads.v18.enums.CallPlaceholderFieldEnum.CallPlaceholderField call_field = 4 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. App Placeholder Fields. - google.ads.googleads.v15.enums.AppPlaceholderFieldEnum.AppPlaceholderField + google.ads.googleads.v18.enums.AppPlaceholderFieldEnum.AppPlaceholderField app_field = 5 [(google.api.field_behavior) = IMMUTABLE]; // Output only. Location Placeholder Fields. This field is read-only. - google.ads.googleads.v15.enums.LocationPlaceholderFieldEnum + google.ads.googleads.v18.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.v15.enums.AffiliateLocationPlaceholderFieldEnum + google.ads.googleads.v18.enums.AffiliateLocationPlaceholderFieldEnum .AffiliateLocationPlaceholderField affiliate_location_field = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Immutable. Callout Placeholder Fields. - google.ads.googleads.v15.enums.CalloutPlaceholderFieldEnum + google.ads.googleads.v18.enums.CalloutPlaceholderFieldEnum .CalloutPlaceholderField callout_field = 8 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Structured Snippet Placeholder Fields. - google.ads.googleads.v15.enums.StructuredSnippetPlaceholderFieldEnum + google.ads.googleads.v18.enums.StructuredSnippetPlaceholderFieldEnum .StructuredSnippetPlaceholderField structured_snippet_field = 9 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Message Placeholder Fields. - google.ads.googleads.v15.enums.MessagePlaceholderFieldEnum + google.ads.googleads.v18.enums.MessagePlaceholderFieldEnum .MessagePlaceholderField message_field = 10 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Price Placeholder Fields. - google.ads.googleads.v15.enums.PricePlaceholderFieldEnum + google.ads.googleads.v18.enums.PricePlaceholderFieldEnum .PricePlaceholderField price_field = 11 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Promotion Placeholder Fields. - google.ads.googleads.v15.enums.PromotionPlaceholderFieldEnum + google.ads.googleads.v18.enums.PromotionPlaceholderFieldEnum .PromotionPlaceholderField promotion_field = 12 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Ad Customizer Placeholder Fields - google.ads.googleads.v15.enums.AdCustomizerPlaceholderFieldEnum + google.ads.googleads.v18.enums.AdCustomizerPlaceholderFieldEnum .AdCustomizerPlaceholderField ad_customizer_field = 13 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Dynamic Search Ad Page Feed Fields. - google.ads.googleads.v15.enums.DsaPageFeedCriterionFieldEnum + google.ads.googleads.v18.enums.DsaPageFeedCriterionFieldEnum .DsaPageFeedCriterionField dsa_page_feed_field = 14 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Location Target Fields. - google.ads.googleads.v15.enums.LocationExtensionTargetingCriterionFieldEnum + google.ads.googleads.v18.enums.LocationExtensionTargetingCriterionFieldEnum .LocationExtensionTargetingCriterionField location_extension_targeting_field = 15 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Education Placeholder Fields - google.ads.googleads.v15.enums.EducationPlaceholderFieldEnum + google.ads.googleads.v18.enums.EducationPlaceholderFieldEnum .EducationPlaceholderField education_field = 16 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Flight Placeholder Fields - google.ads.googleads.v15.enums.FlightPlaceholderFieldEnum + google.ads.googleads.v18.enums.FlightPlaceholderFieldEnum .FlightPlaceholderField flight_field = 17 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Custom Placeholder Fields - google.ads.googleads.v15.enums.CustomPlaceholderFieldEnum + google.ads.googleads.v18.enums.CustomPlaceholderFieldEnum .CustomPlaceholderField custom_field = 18 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Hotel Placeholder Fields - google.ads.googleads.v15.enums.HotelPlaceholderFieldEnum + google.ads.googleads.v18.enums.HotelPlaceholderFieldEnum .HotelPlaceholderField hotel_field = 19 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Real Estate Placeholder Fields - google.ads.googleads.v15.enums.RealEstatePlaceholderFieldEnum + google.ads.googleads.v18.enums.RealEstatePlaceholderFieldEnum .RealEstatePlaceholderField real_estate_field = 20 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Travel Placeholder Fields - google.ads.googleads.v15.enums.TravelPlaceholderFieldEnum + google.ads.googleads.v18.enums.TravelPlaceholderFieldEnum .TravelPlaceholderField travel_field = 21 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Local Placeholder Fields - google.ads.googleads.v15.enums.LocalPlaceholderFieldEnum + google.ads.googleads.v18.enums.LocalPlaceholderFieldEnum .LocalPlaceholderField local_field = 22 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Job Placeholder Fields - google.ads.googleads.v15.enums.JobPlaceholderFieldEnum.JobPlaceholderField + google.ads.googleads.v18.enums.JobPlaceholderFieldEnum.JobPlaceholderField job_field = 23 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Image Placeholder Fields - google.ads.googleads.v15.enums.ImagePlaceholderFieldEnum + google.ads.googleads.v18.enums.ImagePlaceholderFieldEnum .ImagePlaceholderField image_field = 26 [(google.api.field_behavior) = IMMUTABLE]; } diff --git a/google/ads/googleads/v15/resources/feed_placeholder_view.proto b/google/ads/googleads/v18/resources/feed_placeholder_view.proto similarity index 77% rename from google/ads/googleads/v15/resources/feed_placeholder_view.proto rename to google/ads/googleads/v18/resources/feed_placeholder_view.proto index 088d76beb..8b1ce27d7 100644 --- a/google/ads/googleads/v15/resources/feed_placeholder_view.proto +++ b/google/ads/googleads/v18/resources/feed_placeholder_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/placeholder_type.proto"; +import "google/ads/googleads/v18/enums/placeholder_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "FeedPlaceholderViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the FeedPlaceholderView resource. @@ -50,6 +50,6 @@ message FeedPlaceholderView { ]; // Output only. The placeholder type of the feed placeholder view. - google.ads.googleads.v15.enums.PlaceholderTypeEnum.PlaceholderType + google.ads.googleads.v18.enums.PlaceholderTypeEnum.PlaceholderType placeholder_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/gender_view.proto b/google/ads/googleads/v18/resources/gender_view.proto similarity index 71% rename from google/ads/googleads/v15/resources/gender_view.proto rename to google/ads/googleads/v18/resources/gender_view.proto index 07bf427c5..e20ab50a8 100644 --- a/google/ads/googleads/v15/resources/gender_view.proto +++ b/google/ads/googleads/v18/resources/gender_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,26 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "GenderViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the gender view resource. // A gender view. +// The gender_view resource reflects the effective serving state, rather than +// what criteria were added. An ad group without gender criteria by default +// shows to all genders, so all genders appear in gender_view with stats. message GenderView { option (google.api.resource) = { type: "googleads.googleapis.com/GenderView" diff --git a/google/ads/googleads/v15/resources/geo_target_constant.proto b/google/ads/googleads/v18/resources/geo_target_constant.proto similarity index 85% rename from google/ads/googleads/v15/resources/geo_target_constant.proto rename to google/ads/googleads/v18/resources/geo_target_constant.proto index f2ed608c2..dfc68a657 100644 --- a/google/ads/googleads/v15/resources/geo_target_constant.proto +++ b/google/ads/googleads/v18/resources/geo_target_constant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/geo_target_constant_status.proto"; +import "google/ads/googleads/v18/enums/geo_target_constant_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "GeoTargetConstantProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the geo target constant resource. @@ -63,7 +63,7 @@ message GeoTargetConstant { optional string target_type = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Geo target constant status. - google.ads.googleads.v15.enums.GeoTargetConstantStatusEnum + google.ads.googleads.v18.enums.GeoTargetConstantStatusEnum .GeoTargetConstantStatus status = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/google/ads/googleads/v15/resources/geographic_view.proto b/google/ads/googleads/v18/resources/geographic_view.proto similarity index 80% rename from google/ads/googleads/v15/resources/geographic_view.proto rename to google/ads/googleads/v18/resources/geographic_view.proto index fd1c2c883..e03275e9e 100644 --- a/google/ads/googleads/v15/resources/geographic_view.proto +++ b/google/ads/googleads/v18/resources/geographic_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/geo_targeting_type.proto"; +import "google/ads/googleads/v18/enums/geo_targeting_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "GeographicViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the geographic view resource. @@ -55,7 +55,7 @@ message GeographicView { ]; // Output only. Type of the geo targeting of the campaign. - google.ads.googleads.v15.enums.GeoTargetingTypeEnum.GeoTargetingType + google.ads.googleads.v18.enums.GeoTargetingTypeEnum.GeoTargetingType location_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Criterion Id for the country. diff --git a/google/ads/googleads/v15/resources/google_ads_field.proto b/google/ads/googleads/v18/resources/google_ads_field.proto similarity index 87% rename from google/ads/googleads/v15/resources/google_ads_field.proto rename to google/ads/googleads/v18/resources/google_ads_field.proto index 12bb7c253..8dfc4f4af 100644 --- a/google/ads/googleads/v15/resources/google_ads_field.proto +++ b/google/ads/googleads/v18/resources/google_ads_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/google_ads_field_category.proto"; -import "google/ads/googleads/v15/enums/google_ads_field_data_type.proto"; +import "google/ads/googleads/v18/enums/google_ads_field_category.proto"; +import "google/ads/googleads/v18/enums/google_ads_field_data_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "GoogleAdsFieldProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Google Ads Field resource. @@ -54,7 +54,7 @@ message GoogleAdsField { optional string name = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The category of the artifact. - google.ads.googleads.v15.enums.GoogleAdsFieldCategoryEnum + google.ads.googleads.v18.enums.GoogleAdsFieldCategoryEnum .GoogleAdsFieldCategory category = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -101,7 +101,7 @@ message GoogleAdsField { // Output only. This field determines the operators that can be used with the // artifact in WHERE clauses. - google.ads.googleads.v15.enums.GoogleAdsFieldDataTypeEnum + google.ads.googleads.v18.enums.GoogleAdsFieldDataTypeEnum .GoogleAdsFieldDataType data_type = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/google/ads/googleads/v15/resources/group_placement_view.proto b/google/ads/googleads/v18/resources/group_placement_view.proto similarity index 82% rename from google/ads/googleads/v15/resources/group_placement_view.proto rename to google/ads/googleads/v18/resources/group_placement_view.proto index eae8a5d7d..0e89fc10a 100644 --- a/google/ads/googleads/v15/resources/group_placement_view.proto +++ b/google/ads/googleads/v18/resources/group_placement_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/placement_type.proto"; +import "google/ads/googleads/v18/enums/placement_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "GroupPlacementViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the group placement view resource. @@ -63,6 +63,6 @@ message GroupPlacementView { // Output only. Type of the placement, for example, Website, YouTube Channel, // Mobile Application. - google.ads.googleads.v15.enums.PlacementTypeEnum.PlacementType + google.ads.googleads.v18.enums.PlacementTypeEnum.PlacementType placement_type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/hotel_group_view.proto b/google/ads/googleads/v18/resources/hotel_group_view.proto similarity index 80% rename from google/ads/googleads/v15/resources/hotel_group_view.proto rename to google/ads/googleads/v18/resources/hotel_group_view.proto index b93fd13ba..281861f2d 100644 --- a/google/ads/googleads/v15/resources/hotel_group_view.proto +++ b/google/ads/googleads/v18/resources/hotel_group_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "HotelGroupViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the hotel group view resource. diff --git a/google/ads/googleads/v15/resources/hotel_performance_view.proto b/google/ads/googleads/v18/resources/hotel_performance_view.proto similarity index 80% rename from google/ads/googleads/v15/resources/hotel_performance_view.proto rename to google/ads/googleads/v18/resources/hotel_performance_view.proto index 0d4759ccd..1a96909f8 100644 --- a/google/ads/googleads/v15/resources/hotel_performance_view.proto +++ b/google/ads/googleads/v18/resources/hotel_performance_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "HotelPerformanceViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the hotel performance view resource. diff --git a/google/ads/googleads/v15/resources/hotel_reconciliation.proto b/google/ads/googleads/v18/resources/hotel_reconciliation.proto similarity index 90% rename from google/ads/googleads/v15/resources/hotel_reconciliation.proto rename to google/ads/googleads/v18/resources/hotel_reconciliation.proto index bc0d77c91..4ab1467ba 100644 --- a/google/ads/googleads/v15/resources/hotel_reconciliation.proto +++ b/google/ads/googleads/v18/resources/hotel_reconciliation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/hotel_reconciliation_status.proto"; +import "google/ads/googleads/v18/enums/hotel_reconciliation_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "HotelReconciliationProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the hotel reconciliation resource. @@ -112,7 +112,7 @@ message HotelReconciliation { // reconciliation and billing. Bookings should be reconciled within 45 days // after the check-out date. Any booking not reconciled within 45 days will be // billed at its original value. - google.ads.googleads.v15.enums.HotelReconciliationStatusEnum + google.ads.googleads.v18.enums.HotelReconciliationStatusEnum .HotelReconciliationStatus status = 10 [ (google.api.field_behavior) = REQUIRED, (google.api.field_behavior) = OUTPUT_ONLY diff --git a/google/ads/googleads/v15/resources/income_range_view.proto b/google/ads/googleads/v18/resources/income_range_view.proto similarity index 80% rename from google/ads/googleads/v15/resources/income_range_view.proto rename to google/ads/googleads/v18/resources/income_range_view.proto index 8195fe445..f29c23778 100644 --- a/google/ads/googleads/v15/resources/income_range_view.proto +++ b/google/ads/googleads/v18/resources/income_range_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "IncomeRangeViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the income range view resource. diff --git a/google/ads/googleads/v15/resources/invoice.proto b/google/ads/googleads/v18/resources/invoice.proto similarity index 95% rename from google/ads/googleads/v15/resources/invoice.proto rename to google/ads/googleads/v18/resources/invoice.proto index 4a2d748f1..0179bfe77 100644 --- a/google/ads/googleads/v15/resources/invoice.proto +++ b/google/ads/googleads/v18/resources/invoice.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/dates.proto"; -import "google/ads/googleads/v15/enums/invoice_type.proto"; -import "google/ads/googleads/v15/enums/month_of_year.proto"; +import "google/ads/googleads/v18/common/dates.proto"; +import "google/ads/googleads/v18/enums/invoice_type.proto"; +import "google/ads/googleads/v18/enums/month_of_year.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "InvoiceProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Invoice resource. @@ -174,7 +174,7 @@ message Invoice { // Output only. The billable activity date range of the account budget, // within the service date range of this invoice. The end date is inclusive. // This can be different from the account budget's start and end time. - google.ads.googleads.v15.common.DateRange billable_activity_date_range = 9 + google.ads.googleads.v18.common.DateRange billable_activity_date_range = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The pretax served amount attributable to this budget during @@ -209,7 +209,7 @@ message Invoice { message InvalidActivitySummary { // Output only. Original month of service related to this invalid activity // credit. - optional google.ads.googleads.v15.enums.MonthOfYearEnum.MonthOfYear + optional google.ads.googleads.v18.enums.MonthOfYearEnum.MonthOfYear original_month_of_service = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -255,7 +255,7 @@ message Invoice { optional string id = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The type of invoice. - google.ads.googleads.v15.enums.InvoiceTypeEnum.InvoiceType type = 3 + google.ads.googleads.v18.enums.InvoiceTypeEnum.InvoiceType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The resource name of this invoice's billing setup. @@ -285,7 +285,7 @@ message Invoice { // Output only. The service period date range of this invoice. The end date is // inclusive. - google.ads.googleads.v15.common.DateRange service_date_range = 9 + google.ads.googleads.v18.common.DateRange service_date_range = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The currency code. All costs are returned in this currency. A diff --git a/google/ads/googleads/v15/resources/keyword_plan.proto b/google/ads/googleads/v18/resources/keyword_plan.proto similarity index 80% rename from google/ads/googleads/v15/resources/keyword_plan.proto rename to google/ads/googleads/v18/resources/keyword_plan.proto index 7ba878af5..59873b6e6 100644 --- a/google/ads/googleads/v15/resources/keyword_plan.proto +++ b/google/ads/googleads/v18/resources/keyword_plan.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/dates.proto"; -import "google/ads/googleads/v15/enums/keyword_plan_forecast_interval.proto"; +import "google/ads/googleads/v18/common/dates.proto"; +import "google/ads/googleads/v18/enums/keyword_plan_forecast_interval.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the keyword plan resource. @@ -70,7 +70,7 @@ message KeywordPlanForecastPeriod { // Required. The date used for forecasting the Plan. oneof interval { // A future date range relative to the current date used for forecasting. - google.ads.googleads.v15.enums.KeywordPlanForecastIntervalEnum + google.ads.googleads.v18.enums.KeywordPlanForecastIntervalEnum .KeywordPlanForecastInterval date_interval = 1; // The custom date range used for forecasting. It cannot be greater than @@ -78,6 +78,6 @@ message KeywordPlanForecastPeriod { // The start and end dates must be in the future. Otherwise, an error will // be returned when the forecasting action is performed. // The start and end dates are inclusive. - google.ads.googleads.v15.common.DateRange date_range = 2; + google.ads.googleads.v18.common.DateRange date_range = 2; } } diff --git a/google/ads/googleads/v15/resources/keyword_plan_ad_group.proto b/google/ads/googleads/v18/resources/keyword_plan_ad_group.proto similarity index 86% rename from google/ads/googleads/v15/resources/keyword_plan_ad_group.proto rename to google/ads/googleads/v18/resources/keyword_plan_ad_group.proto index 84e4909cb..9b3a5ef40 100644 --- a/google/ads/googleads/v15/resources/keyword_plan_ad_group.proto +++ b/google/ads/googleads/v18/resources/keyword_plan_ad_group.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanAdGroupProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the keyword plan ad group resource. diff --git a/google/ads/googleads/v15/resources/keyword_plan_ad_group_keyword.proto b/google/ads/googleads/v18/resources/keyword_plan_ad_group_keyword.proto similarity index 83% rename from google/ads/googleads/v15/resources/keyword_plan_ad_group_keyword.proto rename to google/ads/googleads/v18/resources/keyword_plan_ad_group_keyword.proto index 1906cfc3f..fb8752b3f 100644 --- a/google/ads/googleads/v15/resources/keyword_plan_ad_group_keyword.proto +++ b/google/ads/googleads/v18/resources/keyword_plan_ad_group_keyword.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/keyword_match_type.proto"; +import "google/ads/googleads/v18/enums/keyword_match_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanAdGroupKeywordProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the keyword plan ad group keyword resource. @@ -62,7 +62,7 @@ message KeywordPlanAdGroupKeyword { optional string text = 10; // The keyword match type. - google.ads.googleads.v15.enums.KeywordMatchTypeEnum.KeywordMatchType + google.ads.googleads.v18.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 5; // A keyword level max cpc bid in micros (for example, $1 = 1mm). The currency diff --git a/google/ads/googleads/v15/resources/keyword_plan_campaign.proto b/google/ads/googleads/v18/resources/keyword_plan_campaign.proto similarity index 86% rename from google/ads/googleads/v15/resources/keyword_plan_campaign.proto rename to google/ads/googleads/v18/resources/keyword_plan_campaign.proto index 564cd96a3..b574e2c8a 100644 --- a/google/ads/googleads/v15/resources/keyword_plan_campaign.proto +++ b/google/ads/googleads/v18/resources/keyword_plan_campaign.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/keyword_plan_network.proto"; +import "google/ads/googleads/v18/enums/keyword_plan_network.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanCampaignProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the keyword plan campaign resource. @@ -74,7 +74,7 @@ message KeywordPlanCampaign { // // This field is required and should not be empty when creating Keyword Plan // campaigns. - google.ads.googleads.v15.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork + google.ads.googleads.v18.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork keyword_plan_network = 6; // A default max cpc bid in micros, and in the account currency, for all ad diff --git a/google/ads/googleads/v15/resources/keyword_plan_campaign_keyword.proto b/google/ads/googleads/v18/resources/keyword_plan_campaign_keyword.proto similarity index 82% rename from google/ads/googleads/v15/resources/keyword_plan_campaign_keyword.proto rename to google/ads/googleads/v18/resources/keyword_plan_campaign_keyword.proto index 4b3952943..58109689c 100644 --- a/google/ads/googleads/v15/resources/keyword_plan_campaign_keyword.proto +++ b/google/ads/googleads/v18/resources/keyword_plan_campaign_keyword.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/keyword_match_type.proto"; +import "google/ads/googleads/v18/enums/keyword_match_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanCampaignKeywordProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the keyword plan negative keyword resource. @@ -62,7 +62,7 @@ message KeywordPlanCampaignKeyword { optional string text = 10; // The keyword match type. - google.ads.googleads.v15.enums.KeywordMatchTypeEnum.KeywordMatchType + google.ads.googleads.v18.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 5; // Immutable. If true, the keyword is negative. diff --git a/google/ads/googleads/v15/resources/keyword_theme_constant.proto b/google/ads/googleads/v18/resources/keyword_theme_constant.proto similarity index 86% rename from google/ads/googleads/v15/resources/keyword_theme_constant.proto rename to google/ads/googleads/v18/resources/keyword_theme_constant.proto index 5e6e8711b..cd7f947a0 100644 --- a/google/ads/googleads/v15/resources/keyword_theme_constant.proto +++ b/google/ads/googleads/v18/resources/keyword_theme_constant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "KeywordThemeConstantProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Smart Campaign keyword theme constant resource. diff --git a/google/ads/googleads/v15/resources/keyword_view.proto b/google/ads/googleads/v18/resources/keyword_view.proto similarity index 80% rename from google/ads/googleads/v15/resources/keyword_view.proto rename to google/ads/googleads/v18/resources/keyword_view.proto index 5d1f15c04..4cbb3099e 100644 --- a/google/ads/googleads/v15/resources/keyword_view.proto +++ b/google/ads/googleads/v18/resources/keyword_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "KeywordViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the keyword view resource. diff --git a/google/ads/googleads/v15/resources/label.proto b/google/ads/googleads/v18/resources/label.proto similarity index 74% rename from google/ads/googleads/v15/resources/label.proto rename to google/ads/googleads/v18/resources/label.proto index 12c74ac42..94defad42 100644 --- a/google/ads/googleads/v15/resources/label.proto +++ b/google/ads/googleads/v18/resources/label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/text_label.proto"; -import "google/ads/googleads/v15/enums/label_status.proto"; +import "google/ads/googleads/v18/common/text_label.proto"; +import "google/ads/googleads/v18/enums/label_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "LabelProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // A label. message Label { @@ -56,9 +56,9 @@ message Label { optional string name = 7; // Output only. Status of the label. Read only. - google.ads.googleads.v15.enums.LabelStatusEnum.LabelStatus status = 4 + google.ads.googleads.v18.enums.LabelStatusEnum.LabelStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // A type of label displaying text on a colored background. - google.ads.googleads.v15.common.TextLabel text_label = 5; + google.ads.googleads.v18.common.TextLabel text_label = 5; } diff --git a/google/ads/googleads/v15/resources/landing_page_view.proto b/google/ads/googleads/v18/resources/landing_page_view.proto similarity index 82% rename from google/ads/googleads/v15/resources/landing_page_view.proto rename to google/ads/googleads/v18/resources/landing_page_view.proto index 58d753fac..5190d7b6b 100644 --- a/google/ads/googleads/v15/resources/landing_page_view.proto +++ b/google/ads/googleads/v18/resources/landing_page_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "LandingPageViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the landing page view resource. diff --git a/google/ads/googleads/v15/resources/language_constant.proto b/google/ads/googleads/v18/resources/language_constant.proto similarity index 84% rename from google/ads/googleads/v15/resources/language_constant.proto rename to google/ads/googleads/v18/resources/language_constant.proto index 4456c1199..10a530182 100644 --- a/google/ads/googleads/v15/resources/language_constant.proto +++ b/google/ads/googleads/v18/resources/language_constant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "LanguageConstantProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the language constant resource. diff --git a/google/ads/googleads/v15/resources/lead_form_submission_data.proto b/google/ads/googleads/v18/resources/lead_form_submission_data.proto similarity index 89% rename from google/ads/googleads/v15/resources/lead_form_submission_data.proto rename to google/ads/googleads/v18/resources/lead_form_submission_data.proto index de6c4a5b8..2fdc12e56 100644 --- a/google/ads/googleads/v15/resources/lead_form_submission_data.proto +++ b/google/ads/googleads/v18/resources/lead_form_submission_data.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/lead_form_field_user_input_type.proto"; +import "google/ads/googleads/v18/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.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "LeadFormSubmissionDataProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the lead form submission data resource. @@ -102,7 +102,7 @@ message LeadFormSubmissionData { // Fields in the submitted lead form. message LeadFormSubmissionField { // Output only. Field type for lead form fields. - google.ads.googleads.v15.enums.LeadFormFieldUserInputTypeEnum + google.ads.googleads.v18.enums.LeadFormFieldUserInputTypeEnum .LeadFormFieldUserInputType field_type = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/google/ads/googleads/v15/resources/life_event.proto b/google/ads/googleads/v18/resources/life_event.proto similarity index 82% rename from google/ads/googleads/v15/resources/life_event.proto rename to google/ads/googleads/v18/resources/life_event.proto index 3eb89ce39..03c9e6c63 100644 --- a/google/ads/googleads/v15/resources/life_event.proto +++ b/google/ads/googleads/v18/resources/life_event.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/criterion_category_availability.proto"; +import "google/ads/googleads/v18/common/criterion_category_availability.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "LifeEventProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Life Event resource. @@ -69,6 +69,6 @@ message LifeEvent { bool launched_to_all = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Availability information of the life event. - repeated google.ads.googleads.v15.common.CriterionCategoryAvailability + repeated google.ads.googleads.v18.common.CriterionCategoryAvailability availabilities = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v18/resources/local_services_employee.proto b/google/ads/googleads/v18/resources/local_services_employee.proto new file mode 100644 index 000000000..6d54a767d --- /dev/null +++ b/google/ads/googleads/v18/resources/local_services_employee.proto @@ -0,0 +1,158 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.resources; + +import "google/ads/googleads/v18/enums/local_services_employee_status.proto"; +import "google/ads/googleads/v18/enums/local_services_employee_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesEmployeeProto"; +option java_package = "com.google.ads.googleads.v18.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; + +// A local services employee resource. +message LocalServicesEmployee { + option (google.api.resource) = { + type: "googleads.googleapis.com/LocalServicesEmployee" + pattern: "customers/{customer_id}/localServicesEmployees/{gls_employee_id}" + }; + + // Immutable. The resource name of the Local Services Verification. + // Local Services Verification resource names have the form: + // + // `customers/{customer_id}/localServicesEmployees/{gls_employee_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/LocalServicesEmployee" + } + ]; + + // Output only. The ID of the employee. + optional int64 id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp of employee creation. + // The format is "YYYY-MM-DD HH:MM:SS" in the Google Ads account's timezone. + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + string creation_date_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Employee status, such as DELETED or ENABLED. + google.ads.googleads.v18.enums.LocalServicesEmployeeStatusEnum + .LocalServicesEmployeeStatus status = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Employee type. + google.ads.googleads.v18.enums.LocalServicesEmployeeTypeEnum + .LocalServicesEmployeeType type = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A list of degrees this employee has obtained, and wants to + // feature. + repeated UniversityDegree university_degrees = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The institutions where the employee has completed their + // residency. + repeated Residency residencies = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The institutions where the employee has completed their + // fellowship. + repeated Fellowship fellowships = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Job title for this employee, such as "Senior partner" in legal + // verticals. + optional string job_title = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The year that this employee started practicing in this field. + optional int32 year_started_practicing = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Languages that the employee speaks, represented as language + // tags from https://developers.google.com/admin-sdk/directory/v1/languages + repeated string languages_spoken = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Category of the employee. A list of Local Services category + // IDs can be found at + // https://developers.google.com/google-ads/api/data/codes-formats#local_services_ids. + repeated string category_ids = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. NPI id associated with the employee. + optional string national_provider_id_number = 13 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Email address of the employee. + optional string email_address = 14 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. First name of the employee. + optional string first_name = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Middle name of the employee. + optional string middle_name = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Last name of the employee. + optional string last_name = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A list of degrees this employee has obtained, and wants to feature. +message UniversityDegree { + // Output only. Name of the university at which the degree was obtained. + optional string institution_name = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the degree obtained. + optional string degree = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Year of graduation. + optional int32 graduation_year = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Details about the employee's medical residency. +// Residency is a stage of graduate medical education in which a qualified +// medical professional practices under the supervision of a senior clinician. +message Residency { + // Output only. Name of the institution at which the residency was completed. + optional string institution_name = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Year of completion. + optional int32 completion_year = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Details about the employee's medical Fellowship. +// Fellowship is a period of medical training that the professional undertakes +// after finishing their residency. +message Fellowship { + // Output only. Name of the instutition at which the fellowship was completed. + optional string institution_name = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Year of completion. + optional int32 completion_year = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v15/resources/local_services_lead.proto b/google/ads/googleads/v18/resources/local_services_lead.proto similarity index 76% rename from google/ads/googleads/v15/resources/local_services_lead.proto rename to google/ads/googleads/v18/resources/local_services_lead.proto index dc1787261..0a872eef9 100644 --- a/google/ads/googleads/v15/resources/local_services_lead.proto +++ b/google/ads/googleads/v18/resources/local_services_lead.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/local_services_lead_status.proto"; -import "google/ads/googleads/v15/enums/local_services_lead_type.proto"; +import "google/ads/googleads/v18/enums/local_services_lead_credit_state.proto"; +import "google/ads/googleads/v18/enums/local_services_lead_status.proto"; +import "google/ads/googleads/v18/enums/local_services_lead_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "LocalServicesLeadProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the local services lead resource. @@ -73,11 +74,11 @@ message LocalServicesLead { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Type of Local Services lead: phone, message, booking, etc. - google.ads.googleads.v15.enums.LocalServicesLeadTypeEnum.LeadType lead_type = + google.ads.googleads.v18.enums.LocalServicesLeadTypeEnum.LeadType lead_type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Current status of lead. - google.ads.googleads.v15.enums.LocalServicesLeadStatusEnum.LeadStatus + google.ads.googleads.v18.enums.LocalServicesLeadStatusEnum.LeadStatus lead_status = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The date time at which lead was created by Local Services Ads. @@ -94,6 +95,10 @@ message LocalServicesLead { // Output only. True if the advertiser was charged for the lead. bool lead_charged = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Credit details of the lead. + optional CreditDetails credit_details = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Fields containing consumer contact details. @@ -120,3 +125,16 @@ message Note { // Output only. Content of lead note. string description = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } + +// Represents the credit details of a lead. +message CreditDetails { + // Output only. Credit state of the lead. + google.ads.googleads.v18.enums.LocalServicesCreditStateEnum.CreditState + credit_state = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The date time when the credit state of the lead was last + // updated. The format is "YYYY-MM-DD HH:MM:SS" in the Google Ads account's + // timezone. Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + string credit_state_last_update_date_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v15/resources/local_services_lead_conversation.proto b/google/ads/googleads/v18/resources/local_services_lead_conversation.proto similarity index 82% rename from google/ads/googleads/v15/resources/local_services_lead_conversation.proto rename to google/ads/googleads/v18/resources/local_services_lead_conversation.proto index 289711c31..384f8d0d6 100644 --- a/google/ads/googleads/v15/resources/local_services_lead_conversation.proto +++ b/google/ads/googleads/v18/resources/local_services_lead_conversation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/local_services_conversation_type.proto"; -import "google/ads/googleads/v15/enums/local_services_participant_type.proto"; +import "google/ads/googleads/v18/enums/local_services_conversation_type.proto"; +import "google/ads/googleads/v18/enums/local_services_participant_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "LocalServicesLeadConversationProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the local services lead conversation resource. @@ -58,13 +58,13 @@ message LocalServicesLeadConversation { // Output only. Type of GLS lead conversation, EMAIL, MESSAGE, PHONE_CALL, // SMS, etc. - google.ads.googleads.v15.enums.LocalServicesLeadConversationTypeEnum + google.ads.googleads.v18.enums.LocalServicesLeadConversationTypeEnum .ConversationType conversation_channel = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Type of participant in the lead conversation, ADVERTISER or // CONSUMER. - google.ads.googleads.v15.enums.LocalServicesParticipantTypeEnum + google.ads.googleads.v18.enums.LocalServicesParticipantTypeEnum .ParticipantType participant_type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -105,4 +105,9 @@ message PhoneCallDetails { message MessageDetails { // Output only. Textual content of the message. string text = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. URL to the SMS or email attachments. These URLs can be used to + // download the contents of the attachment by using the developer token. + repeated string attachment_urls = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/local_services_verification_artifact.proto b/google/ads/googleads/v18/resources/local_services_verification_artifact.proto similarity index 56% rename from google/ads/googleads/v15/resources/local_services_verification_artifact.proto rename to google/ads/googleads/v18/resources/local_services_verification_artifact.proto index cb2bab112..a79f8ee27 100644 --- a/google/ads/googleads/v15/resources/local_services_verification_artifact.proto +++ b/google/ads/googleads/v18/resources/local_services_verification_artifact.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,26 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/local_services.proto"; -import "google/ads/googleads/v15/enums/local_services_insurance_rejection_reason.proto"; -import "google/ads/googleads/v15/enums/local_services_license_rejection_reason.proto"; -import "google/ads/googleads/v15/enums/local_services_verification_artifact_status.proto"; -import "google/ads/googleads/v15/enums/local_services_verification_artifact_type.proto"; +import "google/ads/googleads/v18/common/local_services.proto"; +import "google/ads/googleads/v18/enums/local_services_business_registration_check_rejection_reason.proto"; +import "google/ads/googleads/v18/enums/local_services_business_registration_type.proto"; +import "google/ads/googleads/v18/enums/local_services_insurance_rejection_reason.proto"; +import "google/ads/googleads/v18/enums/local_services_license_rejection_reason.proto"; +import "google/ads/googleads/v18/enums/local_services_verification_artifact_status.proto"; +import "google/ads/googleads/v18/enums/local_services_verification_artifact_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "LocalServicesVerificationArtifactProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // A local services verification resource. message LocalServicesVerificationArtifact { @@ -60,12 +62,12 @@ message LocalServicesVerificationArtifact { string creation_date_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The status of the verification artifact. - google.ads.googleads.v15.enums.LocalServicesVerificationArtifactStatusEnum + google.ads.googleads.v18.enums.LocalServicesVerificationArtifactStatusEnum .LocalServicesVerificationArtifactStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The type of the verification artifact. - google.ads.googleads.v15.enums.LocalServicesVerificationArtifactTypeEnum + google.ads.googleads.v18.enums.LocalServicesVerificationArtifactTypeEnum .LocalServicesVerificationArtifactType artifact_type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -82,6 +84,11 @@ message LocalServicesVerificationArtifact { // Output only. A license verification artifact. LicenseVerificationArtifact license_verification_artifact = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A business registration check verification artifact. + BusinessRegistrationCheckVerificationArtifact + business_registration_check_verification_artifact = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; } } @@ -106,15 +113,21 @@ message InsuranceVerificationArtifact { // Output only. Insurance document's rejection reason. optional - google.ads.googleads.v15.enums.LocalServicesInsuranceRejectionReasonEnum + google.ads.googleads.v18.enums.LocalServicesInsuranceRejectionReasonEnum .LocalServicesInsuranceRejectionReason rejection_reason = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The readonly field containing the information for an uploaded // insurance document. - optional google.ads.googleads.v15.common.LocalServicesDocumentReadOnly + optional google.ads.googleads.v18.common.LocalServicesDocumentReadOnly insurance_document_readonly = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when this insurance expires. + // The format is "YYYY-MM-DD HH:MM:SS" in the Google Ads account's timezone. + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + optional string expiration_date_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // A proto holding information specific to a local services license. @@ -136,12 +149,66 @@ message LicenseVerificationArtifact { // Output only. License rejection reason. optional - google.ads.googleads.v15.enums.LocalServicesLicenseRejectionReasonEnum + google.ads.googleads.v18.enums.LocalServicesLicenseRejectionReasonEnum .LocalServicesLicenseRejectionReason rejection_reason = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The readonly field containing the information for an uploaded // license document. - optional google.ads.googleads.v15.common.LocalServicesDocumentReadOnly + optional google.ads.googleads.v18.common.LocalServicesDocumentReadOnly license_document_readonly = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The timestamp when this license expires. + // The format is "YYYY-MM-DD HH:MM:SS" in the Google Ads account's timezone. + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + optional string expiration_date_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A proto holding information specific to a local services business +// registration check. +message BusinessRegistrationCheckVerificationArtifact { + // Output only. The type of business registration check (number, document). + optional + google.ads.googleads.v18.enums.LocalServicesBusinessRegistrationTypeEnum + .LocalServicesBusinessRegistrationType registration_type = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The id of the check, such as vat_tax_id, representing "VAT Tax + // ID" requirement. + optional string check_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Registration document rejection reason. + optional google.ads.googleads.v18.enums + .LocalServicesBusinessRegistrationCheckRejectionReasonEnum + .LocalServicesBusinessRegistrationCheckRejectionReason rejection_reason = + 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Registration information for the business registration. It will be one + // of the following forms based on the requirement from different countries. + oneof business_registration { + // Output only. Message storing government issued number for the business. + BusinessRegistrationNumber registration_number = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Message storing document info for the business. + BusinessRegistrationDocument registration_document = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} + +// A proto holding information specific to a local services business +// registration number. +message BusinessRegistrationNumber { + // Output only. Government-issued number for the business. + optional string number = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A proto holding information specific to a local services business +// registration document. +message BusinessRegistrationDocument { + // Output only. The readonly field containing the information for an uploaded + // business registration document. + optional google.ads.googleads.v18.common.LocalServicesDocumentReadOnly + document_readonly = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/location_view.proto b/google/ads/googleads/v18/resources/location_view.proto similarity index 71% rename from google/ads/googleads/v15/resources/location_view.proto rename to google/ads/googleads/v18/resources/location_view.proto index e7856ffba..b23ec9536 100644 --- a/google/ads/googleads/v15/resources/location_view.proto +++ b/google/ads/googleads/v18/resources/location_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,26 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "LocationViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the location view resource. -// A location view summarizes the performance of campaigns by -// Location criteria. +// A location view summarizes the performance of campaigns by a Location +// criterion. +// If no Location criterion is set, no results are returned; instead, use +// geographic_view or user_location_view for visitor location data. message LocationView { option (google.api.resource) = { type: "googleads.googleapis.com/LocationView" diff --git a/google/ads/googleads/v15/resources/managed_placement_view.proto b/google/ads/googleads/v18/resources/managed_placement_view.proto similarity index 81% rename from google/ads/googleads/v15/resources/managed_placement_view.proto rename to google/ads/googleads/v18/resources/managed_placement_view.proto index d0a851972..31b4905ea 100644 --- a/google/ads/googleads/v15/resources/managed_placement_view.proto +++ b/google/ads/googleads/v18/resources/managed_placement_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ManagedPlacementViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Managed Placement view resource. diff --git a/google/ads/googleads/v15/resources/media_file.proto b/google/ads/googleads/v18/resources/media_file.proto similarity index 89% rename from google/ads/googleads/v15/resources/media_file.proto rename to google/ads/googleads/v18/resources/media_file.proto index 1fe1e3690..8693265da 100644 --- a/google/ads/googleads/v15/resources/media_file.proto +++ b/google/ads/googleads/v18/resources/media_file.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/media_type.proto"; -import "google/ads/googleads/v15/enums/mime_type.proto"; +import "google/ads/googleads/v18/enums/media_type.proto"; +import "google/ads/googleads/v18/enums/mime_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "MediaFileProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the media file resource. @@ -54,11 +54,11 @@ message MediaFile { optional int64 id = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; // Immutable. Type of the media file. - google.ads.googleads.v15.enums.MediaTypeEnum.MediaType type = 5 + google.ads.googleads.v18.enums.MediaTypeEnum.MediaType type = 5 [(google.api.field_behavior) = IMMUTABLE]; // Output only. The mime type of the media file. - google.ads.googleads.v15.enums.MimeTypeEnum.MimeType mime_type = 6 + google.ads.googleads.v18.enums.MimeTypeEnum.MimeType mime_type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // Immutable. The URL of where the original media file was downloaded from (or diff --git a/google/ads/googleads/v15/resources/mobile_app_category_constant.proto b/google/ads/googleads/v18/resources/mobile_app_category_constant.proto similarity index 83% rename from google/ads/googleads/v15/resources/mobile_app_category_constant.proto rename to google/ads/googleads/v18/resources/mobile_app_category_constant.proto index 0bb8c321e..2522fab3b 100644 --- a/google/ads/googleads/v15/resources/mobile_app_category_constant.proto +++ b/google/ads/googleads/v18/resources/mobile_app_category_constant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "MobileAppCategoryConstantProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Mobile App Category Constant resource. diff --git a/google/ads/googleads/v15/resources/mobile_device_constant.proto b/google/ads/googleads/v18/resources/mobile_device_constant.proto similarity index 81% rename from google/ads/googleads/v15/resources/mobile_device_constant.proto rename to google/ads/googleads/v18/resources/mobile_device_constant.proto index 40b71d1d9..076e3ba33 100644 --- a/google/ads/googleads/v15/resources/mobile_device_constant.proto +++ b/google/ads/googleads/v18/resources/mobile_device_constant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/mobile_device_type.proto"; +import "google/ads/googleads/v18/enums/mobile_device_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "MobileDeviceConstantProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the mobile device constant resource. @@ -64,6 +64,6 @@ message MobileDeviceConstant { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The type of mobile device. - google.ads.googleads.v15.enums.MobileDeviceTypeEnum.MobileDeviceType type = 6 + google.ads.googleads.v18.enums.MobileDeviceTypeEnum.MobileDeviceType type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/offline_conversion_upload_client_summary.proto b/google/ads/googleads/v18/resources/offline_conversion_upload_client_summary.proto similarity index 68% rename from google/ads/googleads/v15/resources/offline_conversion_upload_client_summary.proto rename to google/ads/googleads/v18/resources/offline_conversion_upload_client_summary.proto index 9f436cf30..584f13acf 100644 --- a/google/ads/googleads/v15/resources/offline_conversion_upload_client_summary.proto +++ b/google/ads/googleads/v18/resources/offline_conversion_upload_client_summary.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,42 +14,42 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; - -import "google/ads/googleads/v15/enums/offline_conversion_diagnostic_status_enum.proto"; -import "google/ads/googleads/v15/enums/offline_event_upload_client_enum.proto"; -import "google/ads/googleads/v15/errors/collection_size_error.proto"; -import "google/ads/googleads/v15/errors/conversion_adjustment_upload_error.proto"; -import "google/ads/googleads/v15/errors/conversion_upload_error.proto"; -import "google/ads/googleads/v15/errors/date_error.proto"; -import "google/ads/googleads/v15/errors/distinct_error.proto"; -import "google/ads/googleads/v15/errors/field_error.proto"; -import "google/ads/googleads/v15/errors/mutate_error.proto"; -import "google/ads/googleads/v15/errors/not_allowlisted_error.proto"; -import "google/ads/googleads/v15/errors/string_format_error.proto"; -import "google/ads/googleads/v15/errors/string_length_error.proto"; +package google.ads.googleads.v18.resources; + +import "google/ads/googleads/v18/enums/offline_conversion_diagnostic_status_enum.proto"; +import "google/ads/googleads/v18/enums/offline_event_upload_client_enum.proto"; +import "google/ads/googleads/v18/errors/collection_size_error.proto"; +import "google/ads/googleads/v18/errors/conversion_adjustment_upload_error.proto"; +import "google/ads/googleads/v18/errors/conversion_upload_error.proto"; +import "google/ads/googleads/v18/errors/date_error.proto"; +import "google/ads/googleads/v18/errors/distinct_error.proto"; +import "google/ads/googleads/v18/errors/field_error.proto"; +import "google/ads/googleads/v18/errors/mutate_error.proto"; +import "google/ads/googleads/v18/errors/not_allowlisted_error.proto"; +import "google/ads/googleads/v18/errors/string_format_error.proto"; +import "google/ads/googleads/v18/errors/string_length_error.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "OfflineConversionUploadClientSummaryProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; -// Offline conversion upload client summary. +// Offline conversion upload summary at customer level. message OfflineConversionUploadClientSummary { option (google.api.resource) = { type: "googleads.googleapis.com/OfflineConversionUploadClientSummary" pattern: "customers/{customer_id}/offlineConversionUploadClientSummaries/{client}" }; - // Output only. The resource name of the offline conversion upload client - // summary. Offline conversion upload client summary resource names have the - // form: + // Output only. The resource name of the offline conversion upload summary at + // customer level. Offline conversion upload client summary resource names + // have the form: // // `customers/{customer_id}/offlineConversionUploadClientSummaries/{client}` string resource_name = 1 [ @@ -60,14 +60,13 @@ message OfflineConversionUploadClientSummary { ]; // Output only. Client type of the upload event. - google.ads.googleads.v15.enums.OfflineEventUploadClientEnum + google.ads.googleads.v18.enums.OfflineEventUploadClientEnum .OfflineEventUploadClient client = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Overall status for offline conversion client summary. Status - // is generated - // from most recent calendar day with upload stats - google.ads.googleads.v15.enums.OfflineConversionDiagnosticStatusEnum + // is generated from most recent calendar day with upload stats. + google.ads.googleads.v18.enums.OfflineConversionDiagnosticStatusEnum .OfflineConversionDiagnosticStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -80,6 +79,12 @@ message OfflineConversionUploadClientSummary { // Output only. Successful rate. double success_rate = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Total count of pending uploaded events. + int64 pending_event_count = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The ratio of total pending events to total events. + double pending_rate = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Date for the latest upload batch. The format is "yyyy-mm-dd // hh:mm:ss", and it's in the time zone of the Google Ads account. string last_upload_date_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -106,6 +111,9 @@ message OfflineConversionSummary { // Output only. Total count of failed event. int64 failed_count = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Total count of pending uploaded event. + int64 pending_count = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Dimension key for summary. oneof dimension_key { // Output only. Dimension key for last N jobs. @@ -131,45 +139,45 @@ message OfflineConversionError { // Error with description. oneof error_code { // Output only. Collection size error. - google.ads.googleads.v15.errors.CollectionSizeErrorEnum.CollectionSizeError + google.ads.googleads.v18.errors.CollectionSizeErrorEnum.CollectionSizeError collection_size_error = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Conversion adjustment upload error. - google.ads.googleads.v15.errors.ConversionAdjustmentUploadErrorEnum + google.ads.googleads.v18.errors.ConversionAdjustmentUploadErrorEnum .ConversionAdjustmentUploadError conversion_adjustment_upload_error = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Conversion upload error. - google.ads.googleads.v15.errors.ConversionUploadErrorEnum + google.ads.googleads.v18.errors.ConversionUploadErrorEnum .ConversionUploadError conversion_upload_error = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Date error. - google.ads.googleads.v15.errors.DateErrorEnum.DateError date_error = 4 + google.ads.googleads.v18.errors.DateErrorEnum.DateError date_error = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Distinct error. - google.ads.googleads.v15.errors.DistinctErrorEnum.DistinctError + google.ads.googleads.v18.errors.DistinctErrorEnum.DistinctError distinct_error = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Field error. - google.ads.googleads.v15.errors.FieldErrorEnum.FieldError field_error = 6 + google.ads.googleads.v18.errors.FieldErrorEnum.FieldError field_error = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Mutate error. - google.ads.googleads.v15.errors.MutateErrorEnum.MutateError mutate_error = 7 + google.ads.googleads.v18.errors.MutateErrorEnum.MutateError mutate_error = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Not allowlisted error. - google.ads.googleads.v15.errors.NotAllowlistedErrorEnum.NotAllowlistedError + google.ads.googleads.v18.errors.NotAllowlistedErrorEnum.NotAllowlistedError not_allowlisted_error = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. String format error. - google.ads.googleads.v15.errors.StringFormatErrorEnum.StringFormatError + google.ads.googleads.v18.errors.StringFormatErrorEnum.StringFormatError string_format_error = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. String length error. - google.ads.googleads.v15.errors.StringLengthErrorEnum.StringLengthError + google.ads.googleads.v18.errors.StringLengthErrorEnum.StringLengthError string_length_error = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; } } diff --git a/google/ads/googleads/v18/resources/offline_conversion_upload_conversion_action_summary.proto b/google/ads/googleads/v18/resources/offline_conversion_upload_conversion_action_summary.proto new file mode 100644 index 000000000..4d91ee3c0 --- /dev/null +++ b/google/ads/googleads/v18/resources/offline_conversion_upload_conversion_action_summary.proto @@ -0,0 +1,96 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.resources; + +import "google/ads/googleads/v18/enums/offline_conversion_diagnostic_status_enum.proto"; +import "google/ads/googleads/v18/enums/offline_event_upload_client_enum.proto"; +import "google/ads/googleads/v18/resources/offline_conversion_upload_client_summary.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "OfflineConversionUploadConversionActionSummaryProto"; +option java_package = "com.google.ads.googleads.v18.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; + +// Offline conversion upload summary at conversion action level. +message OfflineConversionUploadConversionActionSummary { + option (google.api.resource) = { + type: "googleads.googleapis.com/OfflineConversionUploadConversionActionSummary" + pattern: "customers/{customer_id}/offlineConversionUploadConversionActionSummaries/{conversion_type_id}~{client}" + }; + + // Output only. The resource name of the offline conversion upload summary at + // conversion action level. Offline conversion upload conversion action + // summary resource names have the form: + // + // `customers/{customer_id}/offlineConversionUploadConversionActionSummaries/{conversion_action_id}~{client}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/OfflineConversionUploadConversionActionSummary" + } + ]; + + // Output only. Client type of the upload event. + google.ads.googleads.v18.enums.OfflineEventUploadClientEnum + .OfflineEventUploadClient client = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Conversion action id. + int64 conversion_action_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the conversion action. + string conversion_action_name = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Overall status for offline conversion upload conversion action + // summary. Status is generated from most recent calendar day with upload + // stats. + google.ads.googleads.v18.enums.OfflineConversionDiagnosticStatusEnum + .OfflineConversionDiagnosticStatus status = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Total count of uploaded events. + int64 total_event_count = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Total count of successful uploaded events. + int64 successful_event_count = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Total count of pending uploaded events. + int64 pending_event_count = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Date for the latest upload batch. The format is "yyyy-mm-dd + // hh:mm:ss", and it's in the time zone of the Google Ads account. + string last_upload_date_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Summary of history stats by last N days. + repeated OfflineConversionSummary daily_summaries = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Summary of history stats by last N jobs. + repeated OfflineConversionSummary job_summaries = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Details for each error code. Alerts are generated from most + // recent calendar day with upload stats. + repeated OfflineConversionAlert alerts = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v15/resources/offline_user_data_job.proto b/google/ads/googleads/v18/resources/offline_user_data_job.proto similarity index 76% rename from google/ads/googleads/v15/resources/offline_user_data_job.proto rename to google/ads/googleads/v18/resources/offline_user_data_job.proto index c48de9309..5b6c686a8 100644 --- a/google/ads/googleads/v15/resources/offline_user_data_job.proto +++ b/google/ads/googleads/v18/resources/offline_user_data_job.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/offline_user_data.proto"; -import "google/ads/googleads/v15/enums/offline_user_data_job_failure_reason.proto"; -import "google/ads/googleads/v15/enums/offline_user_data_job_match_rate_range.proto"; -import "google/ads/googleads/v15/enums/offline_user_data_job_status.proto"; -import "google/ads/googleads/v15/enums/offline_user_data_job_type.proto"; +import "google/ads/googleads/v18/common/offline_user_data.proto"; +import "google/ads/googleads/v18/enums/offline_user_data_job_failure_reason.proto"; +import "google/ads/googleads/v18/enums/offline_user_data_job_match_rate_range.proto"; +import "google/ads/googleads/v18/enums/offline_user_data_job_status.proto"; +import "google/ads/googleads/v18/enums/offline_user_data_job_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "OfflineUserDataJobProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the offline user data job resource. @@ -63,17 +63,17 @@ message OfflineUserDataJob { optional int64 external_id = 10 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Type of the job. - google.ads.googleads.v15.enums.OfflineUserDataJobTypeEnum + google.ads.googleads.v18.enums.OfflineUserDataJobTypeEnum .OfflineUserDataJobType type = 4 [(google.api.field_behavior) = IMMUTABLE]; // Output only. Status of the job. - google.ads.googleads.v15.enums.OfflineUserDataJobStatusEnum + google.ads.googleads.v18.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.v15.enums.OfflineUserDataJobFailureReasonEnum + google.ads.googleads.v18.enums.OfflineUserDataJobFailureReasonEnum .OfflineUserDataJobFailureReason failure_reason = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -84,12 +84,12 @@ message OfflineUserDataJob { // Metadata of the job. oneof metadata { // Immutable. Metadata for data updates to a CRM-based user list. - google.ads.googleads.v15.common.CustomerMatchUserListMetadata + google.ads.googleads.v18.common.CustomerMatchUserListMetadata customer_match_user_list_metadata = 7 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Metadata for store sales data update. - google.ads.googleads.v15.common.StoreSalesMetadata store_sales_metadata = 8 + google.ads.googleads.v18.common.StoreSalesMetadata store_sales_metadata = 8 [(google.api.field_behavior) = IMMUTABLE]; } } @@ -100,7 +100,7 @@ message OfflineUserDataJobMetadata { // the estimated match rate when the status of the job is "RUNNING" and final // match rate when the final match rate is available after the status of the // job is "SUCCESS/FAILED". - google.ads.googleads.v15.enums.OfflineUserDataJobMatchRateRangeEnum + google.ads.googleads.v18.enums.OfflineUserDataJobMatchRateRangeEnum .OfflineUserDataJobMatchRateRange match_rate_range = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/operating_system_version_constant.proto b/google/ads/googleads/v18/resources/operating_system_version_constant.proto similarity index 83% rename from google/ads/googleads/v15/resources/operating_system_version_constant.proto rename to google/ads/googleads/v18/resources/operating_system_version_constant.proto index aa9ab1172..54d4a4711 100644 --- a/google/ads/googleads/v15/resources/operating_system_version_constant.proto +++ b/google/ads/googleads/v18/resources/operating_system_version_constant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/operating_system_version_operator_type.proto"; +import "google/ads/googleads/v18/enums/operating_system_version_operator_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "OperatingSystemVersionConstantProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the operating system version constant resource. @@ -67,7 +67,7 @@ message OperatingSystemVersionConstant { // Output only. Determines whether this constant represents a single version // or a range of versions. - google.ads.googleads.v15.enums.OperatingSystemVersionOperatorTypeEnum + google.ads.googleads.v18.enums.OperatingSystemVersionOperatorTypeEnum .OperatingSystemVersionOperatorType operator_type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/paid_organic_search_term_view.proto b/google/ads/googleads/v18/resources/paid_organic_search_term_view.proto similarity index 83% rename from google/ads/googleads/v15/resources/paid_organic_search_term_view.proto rename to google/ads/googleads/v18/resources/paid_organic_search_term_view.proto index 286043b86..5c08d11ad 100644 --- a/google/ads/googleads/v15/resources/paid_organic_search_term_view.proto +++ b/google/ads/googleads/v18/resources/paid_organic_search_term_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "PaidOrganicSearchTermViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the PaidOrganicSearchTermView resource. diff --git a/google/ads/googleads/v15/resources/parental_status_view.proto b/google/ads/googleads/v18/resources/parental_status_view.proto similarity index 80% rename from google/ads/googleads/v15/resources/parental_status_view.proto rename to google/ads/googleads/v18/resources/parental_status_view.proto index c7340d1a2..3d0f2378e 100644 --- a/google/ads/googleads/v15/resources/parental_status_view.proto +++ b/google/ads/googleads/v18/resources/parental_status_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ParentalStatusViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the parental status view resource. diff --git a/google/ads/googleads/v15/resources/payments_account.proto b/google/ads/googleads/v18/resources/payments_account.proto similarity index 88% rename from google/ads/googleads/v15/resources/payments_account.proto rename to google/ads/googleads/v18/resources/payments_account.proto index 61b99e657..e252c049b 100644 --- a/google/ads/googleads/v15/resources/payments_account.proto +++ b/google/ads/googleads/v18/resources/payments_account.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "PaymentsAccountProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the PaymentsAccount resource. diff --git a/google/ads/googleads/v15/resources/per_store_view.proto b/google/ads/googleads/v18/resources/per_store_view.proto similarity index 82% rename from google/ads/googleads/v15/resources/per_store_view.proto rename to google/ads/googleads/v18/resources/per_store_view.proto index 17bfb0b50..e969d78b1 100644 --- a/google/ads/googleads/v15/resources/per_store_view.proto +++ b/google/ads/googleads/v18/resources/per_store_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "PerStoreViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the PerStoreView resource. diff --git a/google/ads/googleads/v18/resources/performance_max_placement_view.proto b/google/ads/googleads/v18/resources/performance_max_placement_view.proto new file mode 100644 index 000000000..bc72d4c0f --- /dev/null +++ b/google/ads/googleads/v18/resources/performance_max_placement_view.proto @@ -0,0 +1,71 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.resources; + +import "google/ads/googleads/v18/enums/placement_type.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "PerformanceMaxPlacementViewProto"; +option java_package = "com.google.ads.googleads.v18.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; + +// Proto file describing the Performance Max placement view resource. + +// A view with impression metrics for Performance Max campaign placements. +message PerformanceMaxPlacementView { + option (google.api.resource) = { + type: "googleads.googleapis.com/PerformanceMaxPlacementView" + pattern: "customers/{customer_id}/performanceMaxPlacementViews/{base_64_placement}" + plural: "performanceMaxPlacementViews" + singular: "performanceMaxPlacementView" + }; + + // Output only. The resource name of the Performance Max placement view. + // Performance Max placement view resource names have the form: + // + // `customers/{customer_id}/performanceMaxPlacementViews/{base_64_placement}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/PerformanceMaxPlacementView" + } + ]; + + // Output only. The default placement string, such as the website URL, mobile + // application ID, or a YouTube video ID. + optional string placement = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name displayed to represent the placement, such as the URL + // name for websites, YouTube video name for YouTube videos, and translated + // mobile app name for mobile apps. + optional string display_name = 3 [(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 = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Type of the placement. Possible values for Performance Max + // placements are WEBSITE, MOBILE_APPLICATION, or YOUTUBE_VIDEO. + google.ads.googleads.v18.enums.PlacementTypeEnum.PlacementType + placement_type = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/googleads/v15/resources/product_category_constant.proto b/google/ads/googleads/v18/resources/product_category_constant.proto similarity index 83% rename from google/ads/googleads/v15/resources/product_category_constant.proto rename to google/ads/googleads/v18/resources/product_category_constant.proto index 4c5cc8bfa..0d3c37990 100644 --- a/google/ads/googleads/v15/resources/product_category_constant.proto +++ b/google/ads/googleads/v18/resources/product_category_constant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/product_category_level.proto"; -import "google/ads/googleads/v15/enums/product_category_state.proto"; +import "google/ads/googleads/v18/enums/product_category_level.proto"; +import "google/ads/googleads/v18/enums/product_category_state.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ProductCategoryConstantProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the ProductCategoryConstant resource. @@ -81,11 +81,11 @@ message ProductCategoryConstant { ]; // Output only. Level of the product category. - google.ads.googleads.v15.enums.ProductCategoryLevelEnum.ProductCategoryLevel + google.ads.googleads.v18.enums.ProductCategoryLevelEnum.ProductCategoryLevel level = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. State of the product category. - google.ads.googleads.v15.enums.ProductCategoryStateEnum.ProductCategoryState + google.ads.googleads.v18.enums.ProductCategoryStateEnum.ProductCategoryState state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. List of all available localizations of the product category. diff --git a/google/ads/googleads/v15/resources/product_group_view.proto b/google/ads/googleads/v18/resources/product_group_view.proto similarity index 80% rename from google/ads/googleads/v15/resources/product_group_view.proto rename to google/ads/googleads/v18/resources/product_group_view.proto index f4ee55b5a..45dc4895c 100644 --- a/google/ads/googleads/v15/resources/product_group_view.proto +++ b/google/ads/googleads/v18/resources/product_group_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ProductGroupViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the ProductGroup View resource. diff --git a/google/ads/googleads/v15/resources/product_link.proto b/google/ads/googleads/v18/resources/product_link.proto similarity index 74% rename from google/ads/googleads/v15/resources/product_link.proto rename to google/ads/googleads/v18/resources/product_link.proto index b01020442..ef6a30c22 100644 --- a/google/ads/googleads/v15/resources/product_link.proto +++ b/google/ads/googleads/v18/resources/product_link.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/linked_product_type.proto"; +import "google/ads/googleads/v18/enums/linked_product_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ProductLinkProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Represents the data sharing connection between a Google // Ads customer and another product. @@ -54,7 +54,7 @@ message ProductLink { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The type of the linked product. - google.ads.googleads.v15.enums.LinkedProductTypeEnum.LinkedProductType type = + google.ads.googleads.v18.enums.LinkedProductTypeEnum.LinkedProductType type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // A product linked to this account. @@ -70,6 +70,10 @@ message ProductLink { // Immutable. Google Merchant Center link. MerchantCenterIdentifier merchant_center = 12 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Advertising Partner link. + AdvertisingPartnerIdentifier advertising_partner = 13 + [(google.api.field_behavior) = OUTPUT_ONLY]; } } @@ -105,3 +109,17 @@ message MerchantCenterIdentifier { optional int64 merchant_center_id = 1 [(google.api.field_behavior) = IMMUTABLE]; } + +// The identifier for the Advertising Partner Google Ads account. +message AdvertisingPartnerIdentifier { + // Output only. The resource name of the advertising partner Google Ads + // account. This field is required and should not be empty when creating a new + // Advertising Partner link. It is unable to be modified after the creation of + // the link. + optional string customer = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + } + ]; +} diff --git a/google/ads/googleads/v15/resources/product_link_invitation.proto b/google/ads/googleads/v18/resources/product_link_invitation.proto similarity index 72% rename from google/ads/googleads/v15/resources/product_link_invitation.proto rename to google/ads/googleads/v18/resources/product_link_invitation.proto index cef2afe50..f362051f3 100644 --- a/google/ads/googleads/v15/resources/product_link_invitation.proto +++ b/google/ads/googleads/v18/resources/product_link_invitation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/linked_product_type.proto"; -import "google/ads/googleads/v15/enums/product_link_invitation_status.proto"; +import "google/ads/googleads/v18/enums/linked_product_type.proto"; +import "google/ads/googleads/v18/enums/product_link_invitation_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ProductLinkInvitationProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Represents an invitation for data sharing connection between a Google Ads // account and another account. @@ -56,14 +56,14 @@ message ProductLinkInvitation { // Output only. The status of the product link invitation. // This field is read only. - google.ads.googleads.v15.enums.ProductLinkInvitationStatusEnum + google.ads.googleads.v18.enums.ProductLinkInvitationStatusEnum .ProductLinkInvitationStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The type of the invited account. // This field is read only and can be used for filtering invitations with // {@code GoogleAdsService.SearchGoogleAdsRequest}. - google.ads.googleads.v15.enums.LinkedProductTypeEnum.LinkedProductType type = + google.ads.googleads.v18.enums.LinkedProductTypeEnum.LinkedProductType type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // An account invited to link to this Google Ads account. @@ -75,6 +75,10 @@ message ProductLinkInvitation { // Output only. Merchant Center link invitation. MerchantCenterLinkInvitationIdentifier merchant_center = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Advertising Partner link invitation. + AdvertisingPartnerLinkInvitationIdentifier advertising_partner = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; } } @@ -91,3 +95,15 @@ message MerchantCenterLinkInvitationIdentifier { // This field is read only int64 merchant_center_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; } + +// The identifier for the Advertising Partner Google Ads account. +message AdvertisingPartnerLinkInvitationIdentifier { + // Immutable. The resource name of the advertising partner Google Ads account. + // This field is read only. + optional string customer = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Customer" + } + ]; +} diff --git a/google/ads/googleads/v15/resources/qualifying_question.proto b/google/ads/googleads/v18/resources/qualifying_question.proto similarity index 83% rename from google/ads/googleads/v15/resources/qualifying_question.proto rename to google/ads/googleads/v18/resources/qualifying_question.proto index 7254ffdfd..4934eb170 100644 --- a/google/ads/googleads/v15/resources/qualifying_question.proto +++ b/google/ads/googleads/v18/resources/qualifying_question.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "QualifyingQuestionProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the PerStoreView resource. diff --git a/google/ads/googleads/v15/resources/recommendation.proto b/google/ads/googleads/v18/resources/recommendation.proto similarity index 85% rename from google/ads/googleads/v15/resources/recommendation.proto rename to google/ads/googleads/v18/resources/recommendation.proto index b3886ef38..fec2ec0ae 100644 --- a/google/ads/googleads/v15/resources/recommendation.proto +++ b/google/ads/googleads/v18/resources/recommendation.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,27 +14,28 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; - -import "google/ads/googleads/v15/common/criteria.proto"; -import "google/ads/googleads/v15/enums/app_bidding_goal.proto"; -import "google/ads/googleads/v15/enums/keyword_match_type.proto"; -import "google/ads/googleads/v15/enums/recommendation_type.proto"; -import "google/ads/googleads/v15/enums/shopping_add_products_to_campaign_recommendation_enum.proto"; -import "google/ads/googleads/v15/enums/target_cpa_opt_in_recommendation_goal.proto"; -import "google/ads/googleads/v15/resources/ad.proto"; -import "google/ads/googleads/v15/resources/asset.proto"; +package google.ads.googleads.v18.resources; + +import "google/ads/googleads/v18/common/criteria.proto"; +import "google/ads/googleads/v18/enums/ad_strength.proto"; +import "google/ads/googleads/v18/enums/app_bidding_goal.proto"; +import "google/ads/googleads/v18/enums/keyword_match_type.proto"; +import "google/ads/googleads/v18/enums/recommendation_type.proto"; +import "google/ads/googleads/v18/enums/shopping_add_products_to_campaign_recommendation_enum.proto"; +import "google/ads/googleads/v18/enums/target_cpa_opt_in_recommendation_goal.proto"; +import "google/ads/googleads/v18/resources/ad.proto"; +import "google/ads/googleads/v18/resources/asset.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "RecommendationProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Recommendation resource. @@ -86,6 +87,10 @@ message Recommendation { // Output only. Number of conversions. optional double conversions = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Sum of the conversion value of the conversions. + optional double conversions_value = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Number of video views for a video ad campaign. optional double video_views = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -133,7 +138,7 @@ message Recommendation { } // Output only. The recommended keyword. - google.ads.googleads.v15.common.KeywordInfo keyword = 1 + google.ads.googleads.v18.common.KeywordInfo keyword = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. A list of search terms this keyword matches. The same search @@ -167,7 +172,7 @@ message Recommendation { // The Target CPA opt-in option with impact estimate. message TargetCpaOptInRecommendationOption { // Output only. The goal achieved by this option. - google.ads.googleads.v15.enums.TargetCpaOptInRecommendationGoalEnum + google.ads.googleads.v18.enums.TargetCpaOptInRecommendationGoalEnum .TargetCpaOptInRecommendationGoal goal = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -252,11 +257,11 @@ message Recommendation { message KeywordMatchTypeRecommendation { // Output only. The existing keyword where the match type should be more // broad. - google.ads.googleads.v15.common.KeywordInfo keyword = 1 + google.ads.googleads.v18.common.KeywordInfo keyword = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The recommended new match type. - google.ads.googleads.v15.enums.KeywordMatchTypeEnum.KeywordMatchType + google.ads.googleads.v18.enums.KeywordMatchTypeEnum.KeywordMatchType recommended_match_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -313,7 +318,7 @@ message Recommendation { // The use broad match keyword recommendation. message UseBroadMatchKeywordRecommendation { // Output only. Sample of keywords to be expanded to Broad Match. - repeated google.ads.googleads.v15.common.KeywordInfo keyword = 1 + repeated google.ads.googleads.v18.common.KeywordInfo keyword = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Total number of keywords to be expanded to Broad Match in @@ -436,7 +441,7 @@ message Recommendation { string feed_label = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The reason why no products are attached to the campaign. - google.ads.googleads.v15.enums + google.ads.googleads.v18.enums .ShoppingAddProductsToCampaignRecommendationEnum.Reason reason = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -491,7 +496,7 @@ message Recommendation { // Output only. Represents the goal towards which the bidding strategy // should optimize. Only populated for App Campaigns. - optional google.ads.googleads.v15.enums.AppBiddingGoalEnum.AppBiddingGoal + optional google.ads.googleads.v18.enums.AppBiddingGoalEnum.AppBiddingGoal app_bidding_goal = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -552,6 +557,79 @@ message Recommendation { [(google.api.field_behavior) = OUTPUT_ONLY]; } + // Recommendation to opt into Maximize Conversion Value bidding strategy. + message MaximizeConversionValueOptInRecommendation {} + + // Recommendation to deploy Google Tag on more pages. + message ImproveGoogleTagCoverageRecommendation {} + + // Recommendation to turn on Final URL expansion for your Performance Max + // campaigns. + message PerformanceMaxFinalUrlOptInRecommendation {} + + // The recommendation to update a customer list that hasn't been updated in + // the last 90 days. The customer receiving the recommendation is not + // necessarily the owner account. The owner account should update the customer + // list. + message RefreshCustomerMatchListRecommendation { + // Output only. The user list ID. + int64 user_list_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the list. + string user_list_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Days since last refresh. + int64 days_since_last_refresh = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The top spending account. + repeated AccountInfo top_spending_account = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. User lists can be shared with other accounts by the owner. + // targeting_accounts_count is the number of those accounts that can use it + // for targeting. + int64 targeting_accounts_count = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The owner account. This is the account that should update + // the customer list. + AccountInfo owner_account = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Wrapper for information about a Google Ads account. + message AccountInfo { + // Output only. The customer ID of the account. + int64 customer_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The descriptive name of the account. + string descriptive_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The Custom Audience Opt In recommendation. + message CustomAudienceOptInRecommendation { + // Output only. The list of keywords to use for custom audience creation. + repeated google.ads.googleads.v18.common.KeywordInfo keywords = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The lead form asset recommendation. + message LeadFormAssetRecommendation {} + + // The improve Demand Gen ad strength recommendation. + message ImproveDemandGenAdStrengthRecommendation { + // Output only. The resource name of the ad that can be improved. + string ad = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The current ad strength. + google.ads.googleads.v18.enums.AdStrengthEnum.AdStrength ad_strength = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A list of recommendations to improve the ad strength. + repeated string demand_gen_asset_action_items = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + // Immutable. The resource name of the recommendation. // // `customers/{customer_id}/recommendations/{recommendation_id}` @@ -563,7 +641,7 @@ message Recommendation { ]; // Output only. The type of recommendation. - google.ads.googleads.v15.enums.RecommendationTypeEnum.RecommendationType + google.ads.googleads.v18.enums.RecommendationTypeEnum.RecommendationType type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The impact on account performance as a result of applying the @@ -602,7 +680,8 @@ message Recommendation { // SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX, // DYNAMIC_IMAGE_EXTENSION_OPT_IN, RAISE_TARGET_CPA, LOWER_TARGET_ROAS, // FORECASTING_SET_TARGET_CPA, - // SET_TARGET_CPA, SET_TARGET_ROAS + // SET_TARGET_CPA, SET_TARGET_ROAS, MAXIMIZE_CONVERSION_VALUE_OPT_IN, + // IMPROVE_GOOGLE_TAG_COVERAGE, PERFORMANCE_MAX_FINAL_URL_OPT_IN optional string campaign = 25 [ (google.api.field_behavior) = OUTPUT_ONLY, (google.api.resource_reference) = { @@ -854,5 +933,39 @@ message Recommendation { // Output only. The set target ROAS recommendation. ForecastingSetTargetRoasRecommendation set_target_roas_recommendation = 62 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Maximize Conversion Value opt-in recommendation. + MaximizeConversionValueOptInRecommendation + maximize_conversion_value_opt_in_recommendation = 63 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Recommendation to deploy Google Tag on more pages. + ImproveGoogleTagCoverageRecommendation + improve_google_tag_coverage_recommendation = 64 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Recommendation to turn on Final URL expansion for your + // Performance Max campaigns. + PerformanceMaxFinalUrlOptInRecommendation + performance_max_final_url_opt_in_recommendation = 65 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The refresh customer list recommendation. + RefreshCustomerMatchListRecommendation + refresh_customer_match_list_recommendation = 66 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The custom audience opt in recommendation. + CustomAudienceOptInRecommendation custom_audience_opt_in_recommendation = 67 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The lead form asset recommendation. + LeadFormAssetRecommendation lead_form_asset_recommendation = 68 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The improve Demand Gen ad strength recommendation. + ImproveDemandGenAdStrengthRecommendation + improve_demand_gen_ad_strength_recommendation = 69 + [(google.api.field_behavior) = OUTPUT_ONLY]; } } diff --git a/google/ads/googleads/v15/resources/recommendation_subscription.proto b/google/ads/googleads/v18/resources/recommendation_subscription.proto similarity index 80% rename from google/ads/googleads/v15/resources/recommendation_subscription.proto rename to google/ads/googleads/v18/resources/recommendation_subscription.proto index 09a924af8..5e41a1555 100644 --- a/google/ads/googleads/v15/resources/recommendation_subscription.proto +++ b/google/ads/googleads/v18/resources/recommendation_subscription.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/recommendation_subscription_status.proto"; -import "google/ads/googleads/v15/enums/recommendation_type.proto"; +import "google/ads/googleads/v18/enums/recommendation_subscription_status.proto"; +import "google/ads/googleads/v18/enums/recommendation_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "RecommendationSubscriptionProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the RecommendationSubscription resource. @@ -50,7 +50,7 @@ message RecommendationSubscription { ]; // Required. Immutable. The type of recommendation subscribed to. - google.ads.googleads.v15.enums.RecommendationTypeEnum.RecommendationType + google.ads.googleads.v18.enums.RecommendationTypeEnum.RecommendationType type = 2 [ (google.api.field_behavior) = REQUIRED, (google.api.field_behavior) = IMMUTABLE @@ -69,7 +69,7 @@ message RecommendationSubscription { [(google.api.field_behavior) = OUTPUT_ONLY]; // Required. Status of the subscription, either enabled or paused. - optional google.ads.googleads.v15.enums.RecommendationSubscriptionStatusEnum + optional google.ads.googleads.v18.enums.RecommendationSubscriptionStatusEnum .RecommendationSubscriptionStatus status = 5 [(google.api.field_behavior) = REQUIRED]; } diff --git a/google/ads/googleads/v15/resources/remarketing_action.proto b/google/ads/googleads/v18/resources/remarketing_action.proto similarity index 81% rename from google/ads/googleads/v15/resources/remarketing_action.proto rename to google/ads/googleads/v18/resources/remarketing_action.proto index b4c06412a..3508bae49 100644 --- a/google/ads/googleads/v15/resources/remarketing_action.proto +++ b/google/ads/googleads/v18/resources/remarketing_action.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/tag_snippet.proto"; +import "google/ads/googleads/v18/common/tag_snippet.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "RemarketingActionProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Remarketing Action resource. @@ -61,6 +61,6 @@ message RemarketingAction { optional string name = 6; // Output only. The snippets used for tracking remarketing actions. - repeated google.ads.googleads.v15.common.TagSnippet tag_snippets = 4 + repeated google.ads.googleads.v18.common.TagSnippet tag_snippets = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/search_term_view.proto b/google/ads/googleads/v18/resources/search_term_view.proto similarity index 81% rename from google/ads/googleads/v15/resources/search_term_view.proto rename to google/ads/googleads/v18/resources/search_term_view.proto index 6f9923e7d..f526d4d1a 100644 --- a/google/ads/googleads/v15/resources/search_term_view.proto +++ b/google/ads/googleads/v18/resources/search_term_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/search_term_targeting_status.proto"; +import "google/ads/googleads/v18/enums/search_term_targeting_status.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "SearchTermViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the SearchTermView resource. @@ -63,7 +63,7 @@ message SearchTermView { // Output only. Indicates whether the search term is currently one of your // targeted or excluded keywords. - google.ads.googleads.v15.enums.SearchTermTargetingStatusEnum + google.ads.googleads.v18.enums.SearchTermTargetingStatusEnum .SearchTermTargetingStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/shared_criterion.proto b/google/ads/googleads/v18/resources/shared_criterion.proto similarity index 73% rename from google/ads/googleads/v15/resources/shared_criterion.proto rename to google/ads/googleads/v18/resources/shared_criterion.proto index cfc097143..670709be8 100644 --- a/google/ads/googleads/v15/resources/shared_criterion.proto +++ b/google/ads/googleads/v18/resources/shared_criterion.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/criteria.proto"; -import "google/ads/googleads/v15/enums/criterion_type.proto"; +import "google/ads/googleads/v18/common/criteria.proto"; +import "google/ads/googleads/v18/enums/criterion_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "SharedCriterionProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the SharedCriterion resource. @@ -64,7 +64,7 @@ message SharedCriterion { optional int64 criterion_id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The type of the criterion. - google.ads.googleads.v15.enums.CriterionTypeEnum.CriterionType type = 4 + google.ads.googleads.v18.enums.CriterionTypeEnum.CriterionType type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // The criterion. @@ -72,31 +72,31 @@ message SharedCriterion { // Exactly one must be set. oneof criterion { // Immutable. Keyword. - google.ads.googleads.v15.common.KeywordInfo keyword = 3 + google.ads.googleads.v18.common.KeywordInfo keyword = 3 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. YouTube Video. - google.ads.googleads.v15.common.YouTubeVideoInfo youtube_video = 5 + google.ads.googleads.v18.common.YouTubeVideoInfo youtube_video = 5 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. YouTube Channel. - google.ads.googleads.v15.common.YouTubeChannelInfo youtube_channel = 6 + google.ads.googleads.v18.common.YouTubeChannelInfo youtube_channel = 6 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Placement. - google.ads.googleads.v15.common.PlacementInfo placement = 7 + google.ads.googleads.v18.common.PlacementInfo placement = 7 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Mobile App Category. - google.ads.googleads.v15.common.MobileAppCategoryInfo mobile_app_category = + google.ads.googleads.v18.common.MobileAppCategoryInfo mobile_app_category = 8 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Mobile application. - google.ads.googleads.v15.common.MobileApplicationInfo mobile_application = 9 + google.ads.googleads.v18.common.MobileApplicationInfo mobile_application = 9 [(google.api.field_behavior) = IMMUTABLE]; // Immutable. Brand. - google.ads.googleads.v15.common.BrandInfo brand = 12 + google.ads.googleads.v18.common.BrandInfo brand = 12 [(google.api.field_behavior) = IMMUTABLE]; } } diff --git a/google/ads/googleads/v15/resources/shared_set.proto b/google/ads/googleads/v18/resources/shared_set.proto similarity index 80% rename from google/ads/googleads/v15/resources/shared_set.proto rename to google/ads/googleads/v18/resources/shared_set.proto index a101dd7bc..836df01d4 100644 --- a/google/ads/googleads/v15/resources/shared_set.proto +++ b/google/ads/googleads/v18/resources/shared_set.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/enums/shared_set_status.proto"; -import "google/ads/googleads/v15/enums/shared_set_type.proto"; +import "google/ads/googleads/v18/enums/shared_set_status.proto"; +import "google/ads/googleads/v18/enums/shared_set_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "SharedSetProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the SharedSet resource. @@ -56,7 +56,7 @@ message SharedSet { // Immutable. The type of this shared set: each shared set holds only a single // kind of resource. Required. Immutable. - google.ads.googleads.v15.enums.SharedSetTypeEnum.SharedSetType type = 3 + google.ads.googleads.v18.enums.SharedSetTypeEnum.SharedSetType type = 3 [(google.api.field_behavior) = IMMUTABLE]; // The name of this shared set. Required. @@ -67,7 +67,7 @@ message SharedSet { optional string name = 9; // Output only. The status of this shared set. Read only. - google.ads.googleads.v15.enums.SharedSetStatusEnum.SharedSetStatus status = 5 + google.ads.googleads.v18.enums.SharedSetStatusEnum.SharedSetStatus status = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The number of shared criteria within this shared set. Read diff --git a/google/ads/googleads/v15/resources/shopping_performance_view.proto b/google/ads/googleads/v18/resources/shopping_performance_view.proto similarity index 83% rename from google/ads/googleads/v15/resources/shopping_performance_view.proto rename to google/ads/googleads/v18/resources/shopping_performance_view.proto index e6625184a..504b74ddd 100644 --- a/google/ads/googleads/v15/resources/shopping_performance_view.proto +++ b/google/ads/googleads/v18/resources/shopping_performance_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ShoppingPerformanceViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the ShoppingPerformanceView resource. diff --git a/google/ads/googleads/v18/resources/shopping_product.proto b/google/ads/googleads/v18/resources/shopping_product.proto new file mode 100644 index 000000000..bdf4fef31 --- /dev/null +++ b/google/ads/googleads/v18/resources/shopping_product.proto @@ -0,0 +1,303 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.resources; + +import "google/ads/googleads/v18/enums/product_availability.proto"; +import "google/ads/googleads/v18/enums/product_channel.proto"; +import "google/ads/googleads/v18/enums/product_channel_exclusivity.proto"; +import "google/ads/googleads/v18/enums/product_condition.proto"; +import "google/ads/googleads/v18/enums/product_issue_severity.proto"; +import "google/ads/googleads/v18/enums/product_status.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "ShoppingProductProto"; +option java_package = "com.google.ads.googleads.v18.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; + +// Proto file describing the ShoppingProduct resource. + +// A shopping product from Google Merchant Center that can be advertised by +// campaigns. +// +// The resource returns currently existing products from Google Merchant Center +// accounts linked with the customer. A campaign includes a product by +// specifying its merchant id (or, if available, the Multi Client Account id of +// the merchant) in the `ShoppingSetting`, and can limit the inclusion to +// products having a specified feed label. Standard Shopping campaigns can also +// limit the inclusion through a `campaign_criterion.listing_scope`. +// +// Queries to this resource specify a scope: +// Account: +// - Filters on campaigns or ad groups are not specified. +// - All products from the linked Google Merchant Center accounts are +// returned. +// - Metrics and some fields (see the per-field documentation) are aggregated +// across all Shopping and Performance Max campaigns that include a product. +// Campaign: +// - An equality filter on `campaign` is specified. Supported campaign types +// are Shopping, Performance Max, Demand Gen, Video. +// - Only products that are included by the specified campaign are returned. +// - Metrics and some fields (see the per-field documentation) are restricted +// to the specified campaign. +// Ad group: +// - An equality filter on `ad group` and `campaign` is specified. Supported +// campaign types are Shopping, Demand Gen, Video. +// - Only products that are included by the specified campaign are returned. +// - Metrics and some fields (see the per-field documentation) are restricted +// to the specified ad group. +// Note that segmentation by date segments is not permitted and will return +// UNSUPPORTED_DATE_SEGMENTATION error. On the other hand, filtering on date +// segments is allowed. +message ShoppingProduct { + option (google.api.resource) = { + type: "googleads.googleapis.com/ShoppingProduct" + pattern: "customers/{customer_id}/shoppingProducts/{merchant_center_id}~{channel}~{language_code}~{feed_label}~{item_id}" + plural: "shoppingProducts" + singular: "shoppingProduct" + }; + + // An issue affecting whether a product can show in ads. + message ProductIssue { + // Output only. The error code that identifies the issue. + string error_code = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The severity of the issue in Google Ads. + google.ads.googleads.v18.enums.ProductIssueSeverityEnum.ProductIssueSeverity + ads_severity = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The name of the product's attribute, if any, that triggered + // the issue. + optional string attribute_name = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The short description of the issue in English. + string description = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The detailed description of the issue in English. + string detail = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The URL of the Help Center article for the issue. + string documentation = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. List of upper-case two-letter ISO 3166-1 codes of the + // regions affected by the issue. If empty, all regions are affected. + repeated string affected_regions = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The resource name of the shopping product. + // Shopping product resource names have the form: + // + // `customers/{customer_id}/shoppingProducts/{merchant_center_id}~{channel}~{language_code}~{feed_label}~{item_id}` + string resource_name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ShoppingProduct" + } + ]; + + // Output only. The id of the merchant that owns the product. + int64 merchant_center_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The product channel describing the locality of the product. + google.ads.googleads.v18.enums.ProductChannelEnum.ProductChannel channel = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The language code as provided by the merchant, in BCP 47 + // format. + string language_code = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The product feed label as provided by the merchant. + string feed_label = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The item id of the product as provided by the merchant. + string item_id = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The id of the Multi Client Account of the merchant, if + // present. + optional int64 multi_client_account_id = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The title of the product as provided by the merchant. + optional string title = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The brand of the product as provided by the merchant. + optional string brand = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The price of the product in micros as provided by the + // merchant, in the currency specified in `currency_code` (e.g. $2.97 is + // reported as 2970000). + optional int64 price_micros = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The currency code as provided by the merchant, in ISO 4217 + // format. + optional string currency_code = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The channel exclusivity of the product as provided by the + // merchant. + optional google.ads.googleads.v18.enums.ProductChannelExclusivityEnum + .ProductChannelExclusivity channel_exclusivity = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The condition of the product as provided by the merchant. + optional google.ads.googleads.v18.enums.ProductConditionEnum.ProductCondition + condition = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The availability of the product as provided by the merchant. + optional + google.ads.googleads.v18.enums.ProductAvailabilityEnum.ProductAvailability + availability = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Upper-case two-letter ISO 3166-1 code of the regions where the + // product is intended to be shown in ads. + repeated string target_countries = 15 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The custom attribute 0 of the product as provided by the + // merchant. + optional string custom_attribute0 = 16 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The custom attribute 1 of the product as provided by the + // merchant. + optional string custom_attribute1 = 17 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The custom attribute 2 of the product as provided by the + // merchant. + optional string custom_attribute2 = 18 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The custom attribute 3 of the product as provided by the + // merchant. + optional string custom_attribute3 = 19 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The custom attribute 4 of the product as provided by the + // merchant. + optional string custom_attribute4 = 20 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The category level 1 of the product. + optional string category_level1 = 21 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ProductCategoryConstant" + } + ]; + + // Output only. The category level 2 of the product. + optional string category_level2 = 22 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ProductCategoryConstant" + } + ]; + + // Output only. The category level 3 of the product. + optional string category_level3 = 23 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ProductCategoryConstant" + } + ]; + + // Output only. The category level 4 of the product. + optional string category_level4 = 24 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ProductCategoryConstant" + } + ]; + + // Output only. The category level 5 of the product. + optional string category_level5 = 25 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ProductCategoryConstant" + } + ]; + + // Output only. The product type level 1 as provided by the merchant. + optional string product_type_level1 = 26 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The product type level 2 as provided by the merchant. + optional string product_type_level2 = 27 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The product type level 3 as provided by the merchant. + optional string product_type_level3 = 28 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The product type level 4 as provided by the merchant. + optional string product_type_level4 = 29 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The product type level 5 as provided by the merchant. + optional string product_type_level5 = 30 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The effective maximum cost-per-click (effective max. CPC) of + // the product. This field is available only if the query specifies the + // campaign or ad group scope, and if the campaign uses manual bidding. The + // value is the highest bid set for the product in product groups across all + // enabled ad groups. It represents the most you're willing to pay for a click + // on the product. This field can take up to 24 hours to update. + optional int64 effective_max_cpc_micros = 31 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The status that indicates whether the product can show in ads. + // The value of this field is restricted to the scope specified in the query, + // see the documentation of the resource. + // This field can take up to 24 hours to update. + google.ads.googleads.v18.enums.ProductStatusEnum.ProductStatus status = 32 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The list of issues affecting whether the product can show in + // ads. The value of this field is restricted to the scope specified in the + // query, see the documentation of the resource. This field can take up to 24 + // hours to update. + repeated ProductIssue issues = 33 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A campaign that includes the product. + // This field is selectable only in the campaign scope, which requires an + // equality filter on `campaign`. + optional string campaign = 34 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/Campaign" + } + ]; + + // Output only. An ad group of a campaign that includes the product. + // This field is selectable only in the ad group scope, which requires an + // equality filter on `campaign` and `ad_group`. + optional string ad_group = 35 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroup" + } + ]; +} diff --git a/google/ads/googleads/v15/resources/smart_campaign_search_term_view.proto b/google/ads/googleads/v18/resources/smart_campaign_search_term_view.proto similarity index 84% rename from google/ads/googleads/v15/resources/smart_campaign_search_term_view.proto rename to google/ads/googleads/v18/resources/smart_campaign_search_term_view.proto index a35fef148..7c2854711 100644 --- a/google/ads/googleads/v15/resources/smart_campaign_search_term_view.proto +++ b/google/ads/googleads/v18/resources/smart_campaign_search_term_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "SmartCampaignSearchTermViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the SmartCampaignSearchTermView resource. diff --git a/google/ads/googleads/v15/resources/smart_campaign_setting.proto b/google/ads/googleads/v18/resources/smart_campaign_setting.proto similarity index 91% rename from google/ads/googleads/v15/resources/smart_campaign_setting.proto rename to google/ads/googleads/v18/resources/smart_campaign_setting.proto index 140fde951..baec6d538 100644 --- a/google/ads/googleads/v15/resources/smart_campaign_setting.proto +++ b/google/ads/googleads/v18/resources/smart_campaign_setting.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "SmartCampaignSettingProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Smart campaign setting resource. diff --git a/google/ads/googleads/v15/resources/third_party_app_analytics_link.proto b/google/ads/googleads/v18/resources/third_party_app_analytics_link.proto similarity index 84% rename from google/ads/googleads/v15/resources/third_party_app_analytics_link.proto rename to google/ads/googleads/v18/resources/third_party_app_analytics_link.proto index bd0c2a40a..96a4f2cad 100644 --- a/google/ads/googleads/v15/resources/third_party_app_analytics_link.proto +++ b/google/ads/googleads/v18/resources/third_party_app_analytics_link.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "ThirdPartyAppAnalyticsLinkProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // A data sharing connection, allowing the import of third party app analytics // into a Google Ads Customer. diff --git a/google/ads/googleads/v15/resources/topic_constant.proto b/google/ads/googleads/v18/resources/topic_constant.proto similarity index 86% rename from google/ads/googleads/v15/resources/topic_constant.proto rename to google/ads/googleads/v18/resources/topic_constant.proto index 646b68938..6fb034110 100644 --- a/google/ads/googleads/v15/resources/topic_constant.proto +++ b/google/ads/googleads/v18/resources/topic_constant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "TopicConstantProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the Topic Constant resource. diff --git a/google/ads/googleads/v15/resources/topic_view.proto b/google/ads/googleads/v18/resources/topic_view.proto similarity index 79% rename from google/ads/googleads/v15/resources/topic_view.proto rename to google/ads/googleads/v18/resources/topic_view.proto index 8a826282a..874bb3026 100644 --- a/google/ads/googleads/v15/resources/topic_view.proto +++ b/google/ads/googleads/v18/resources/topic_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "TopicViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the topic view resource. diff --git a/google/ads/googleads/v15/resources/travel_activity_group_view.proto b/google/ads/googleads/v18/resources/travel_activity_group_view.proto similarity index 81% rename from google/ads/googleads/v15/resources/travel_activity_group_view.proto rename to google/ads/googleads/v18/resources/travel_activity_group_view.proto index 540985c2d..eba3e40cb 100644 --- a/google/ads/googleads/v15/resources/travel_activity_group_view.proto +++ b/google/ads/googleads/v18/resources/travel_activity_group_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "TravelActivityGroupViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the travel activity group view resource. diff --git a/google/ads/googleads/v15/resources/travel_activity_performance_view.proto b/google/ads/googleads/v18/resources/travel_activity_performance_view.proto similarity index 81% rename from google/ads/googleads/v15/resources/travel_activity_performance_view.proto rename to google/ads/googleads/v18/resources/travel_activity_performance_view.proto index 08e8df03d..ddde56f35 100644 --- a/google/ads/googleads/v15/resources/travel_activity_performance_view.proto +++ b/google/ads/googleads/v18/resources/travel_activity_performance_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "TravelActivityPerformanceViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the travel activity performance view resource. diff --git a/google/ads/googleads/v15/resources/user_interest.proto b/google/ads/googleads/v18/resources/user_interest.proto similarity index 80% rename from google/ads/googleads/v15/resources/user_interest.proto rename to google/ads/googleads/v18/resources/user_interest.proto index b64bce29a..f07fe8e20 100644 --- a/google/ads/googleads/v15/resources/user_interest.proto +++ b/google/ads/googleads/v18/resources/user_interest.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/criterion_category_availability.proto"; -import "google/ads/googleads/v15/enums/user_interest_taxonomy_type.proto"; +import "google/ads/googleads/v18/common/criterion_category_availability.proto"; +import "google/ads/googleads/v18/enums/user_interest_taxonomy_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "UserInterestProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the User Interest resource. @@ -51,7 +51,7 @@ message UserInterest { ]; // Output only. Taxonomy type of the user interest. - google.ads.googleads.v15.enums.UserInterestTaxonomyTypeEnum + google.ads.googleads.v18.enums.UserInterestTaxonomyTypeEnum .UserInterestTaxonomyType taxonomy_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -76,6 +76,6 @@ message UserInterest { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Availability information of the user interest. - repeated google.ads.googleads.v15.common.CriterionCategoryAvailability + repeated google.ads.googleads.v18.common.CriterionCategoryAvailability availabilities = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/googleads/v15/resources/user_list.proto b/google/ads/googleads/v18/resources/user_list.proto similarity index 77% rename from google/ads/googleads/v15/resources/user_list.proto rename to google/ads/googleads/v18/resources/user_list.proto index 89c756873..5ef9b3df2 100644 --- a/google/ads/googleads/v15/resources/user_list.proto +++ b/google/ads/googleads/v18/resources/user_list.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,26 +14,26 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; -import "google/ads/googleads/v15/common/user_lists.proto"; -import "google/ads/googleads/v15/enums/access_reason.proto"; -import "google/ads/googleads/v15/enums/user_list_access_status.proto"; -import "google/ads/googleads/v15/enums/user_list_closing_reason.proto"; -import "google/ads/googleads/v15/enums/user_list_membership_status.proto"; -import "google/ads/googleads/v15/enums/user_list_size_range.proto"; -import "google/ads/googleads/v15/enums/user_list_type.proto"; +import "google/ads/googleads/v18/common/user_lists.proto"; +import "google/ads/googleads/v18/enums/access_reason.proto"; +import "google/ads/googleads/v18/enums/user_list_access_status.proto"; +import "google/ads/googleads/v18/enums/user_list_closing_reason.proto"; +import "google/ads/googleads/v18/enums/user_list_membership_status.proto"; +import "google/ads/googleads/v18/enums/user_list_size_range.proto"; +import "google/ads/googleads/v18/enums/user_list_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "UserListProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the User List resource. @@ -75,7 +75,7 @@ message UserList { // Membership status of this user list. Indicates whether a user list is open // or active. Only open user lists can accumulate more users and can be // targeted to. - google.ads.googleads.v15.enums.UserListMembershipStatusEnum + google.ads.googleads.v18.enums.UserListMembershipStatusEnum .UserListMembershipStatus membership_status = 6; // An ID from external system. It is used by user list sellers to correlate @@ -87,7 +87,9 @@ message UserList { // However, for CRM based userlists, this field can be set to 10000 which // means no expiration. // - // It'll be ignored for logical_user_list. + // This field is ignored for logical_user_list and rule_based_user_list types. + // Membership to lists of these types depends on the rules defined by the + // lists. optional int64 membership_life_span = 30; // Output only. Estimated number of users in this user list, on the Google @@ -102,7 +104,7 @@ message UserList { // Google Display Network. // // This field is read-only. - google.ads.googleads.v15.enums.UserListSizeRangeEnum.UserListSizeRange + google.ads.googleads.v18.enums.UserListSizeRangeEnum.UserListSizeRange size_range_for_display = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Estimated number of users in this user list in the google.com @@ -117,33 +119,33 @@ message UserList { // Search ads. // // This field is read-only. - google.ads.googleads.v15.enums.UserListSizeRangeEnum.UserListSizeRange + google.ads.googleads.v18.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.v15.enums.UserListTypeEnum.UserListType type = 13 + google.ads.googleads.v18.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.v15.enums.UserListClosingReasonEnum.UserListClosingReason + google.ads.googleads.v18.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.v15.enums.AccessReasonEnum.AccessReason access_reason = + google.ads.googleads.v18.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.v15.enums.UserListAccessStatusEnum.UserListAccessStatus + google.ads.googleads.v18.enums.UserListAccessStatusEnum.UserListAccessStatus account_user_list_status = 16; // Indicates if this user list is eligible for Google Search Network. @@ -169,26 +171,26 @@ message UserList { // Exactly one must be set. oneof user_list { // User list of CRM users provided by the advertiser. - google.ads.googleads.v15.common.CrmBasedUserListInfo crm_based_user_list = + google.ads.googleads.v18.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.v15.common.SimilarUserListInfo similar_user_list = 20 + google.ads.googleads.v18.common.SimilarUserListInfo similar_user_list = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; // User list generated by a rule. - google.ads.googleads.v15.common.RuleBasedUserListInfo rule_based_user_list = + google.ads.googleads.v18.common.RuleBasedUserListInfo rule_based_user_list = 21; // User list that is a custom combination of user lists and user interests. - google.ads.googleads.v15.common.LogicalUserListInfo logical_user_list = 22; + google.ads.googleads.v18.common.LogicalUserListInfo logical_user_list = 22; // User list targeting as a collection of conversion or remarketing actions. - google.ads.googleads.v15.common.BasicUserListInfo basic_user_list = 23; + google.ads.googleads.v18.common.BasicUserListInfo basic_user_list = 23; // Immutable. Lookalike User List. - google.ads.googleads.v15.common.LookalikeUserListInfo lookalike_user_list = + google.ads.googleads.v18.common.LookalikeUserListInfo lookalike_user_list = 36 [(google.api.field_behavior) = IMMUTABLE]; } } diff --git a/google/ads/googleads/v18/resources/user_list_customer_type.proto b/google/ads/googleads/v18/resources/user_list_customer_type.proto new file mode 100644 index 000000000..234de1e82 --- /dev/null +++ b/google/ads/googleads/v18/resources/user_list_customer_type.proto @@ -0,0 +1,62 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.resources; + +import "google/ads/googleads/v18/enums/user_list_customer_type_category.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "UserListCustomerTypeProto"; +option java_package = "com.google.ads.googleads.v18.resources"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; + +// A user list customer type +message UserListCustomerType { + option (google.api.resource) = { + type: "googleads.googleapis.com/UserListCustomerType" + pattern: "customers/{customer_id}/userListCustomerTypes/{user_list_id}~{semantic_label}" + }; + + // Immutable. The resource name of the user list customer type + // User list customer type resource names have the form: + // `customers/{customer_id}/userListCustomerTypes/{user_list_id}~{customer_type_category}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/UserListCustomerType" + } + ]; + + // Immutable. The resource name for the user list this user list customer type + // is associated with + string user_list = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/UserList" + } + ]; + + // Immutable. The user list customer type category + google.ads.googleads.v18.enums.UserListCustomerTypeCategoryEnum + .UserListCustomerTypeCategory customer_type_category = 3 + [(google.api.field_behavior) = IMMUTABLE]; +} diff --git a/google/ads/googleads/v15/resources/user_location_view.proto b/google/ads/googleads/v18/resources/user_location_view.proto similarity index 85% rename from google/ads/googleads/v15/resources/user_location_view.proto rename to google/ads/googleads/v18/resources/user_location_view.proto index 274fa1055..6d9c90988 100644 --- a/google/ads/googleads/v15/resources/user_location_view.proto +++ b/google/ads/googleads/v18/resources/user_location_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "UserLocationViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the user location view resource. diff --git a/google/ads/googleads/v15/resources/video.proto b/google/ads/googleads/v18/resources/video.proto similarity index 83% rename from google/ads/googleads/v15/resources/video.proto rename to google/ads/googleads/v18/resources/video.proto index 6a443cf91..b69f189ea 100644 --- a/google/ads/googleads/v15/resources/video.proto +++ b/google/ads/googleads/v18/resources/video.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "VideoProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the video resource. diff --git a/google/ads/googleads/v15/resources/webpage_view.proto b/google/ads/googleads/v18/resources/webpage_view.proto similarity index 80% rename from google/ads/googleads/v15/resources/webpage_view.proto rename to google/ads/googleads/v18/resources/webpage_view.proto index 3ebb32b10..0235246f4 100644 --- a/google/ads/googleads/v15/resources/webpage_view.proto +++ b/google/ads/googleads/v18/resources/webpage_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,19 +14,19 @@ syntax = "proto3"; -package google.ads.googleads.v15.resources; +package google.ads.googleads.v18.resources; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/resources;resources"; option java_multiple_files = true; option java_outer_classname = "WebpageViewProto"; -option java_package = "com.google.ads.googleads.v15.resources"; +option java_package = "com.google.ads.googleads.v18.resources"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources"; -option ruby_package = "Google::Ads::GoogleAds::V15::Resources"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Resources"; +option ruby_package = "Google::Ads::GoogleAds::V18::Resources"; // Proto file describing the webpage view resource. diff --git a/google/ads/googleads/v15/services/BUILD.bazel b/google/ads/googleads/v18/services/BUILD.bazel similarity index 94% rename from google/ads/googleads/v15/services/BUILD.bazel rename to google/ads/googleads/v18/services/BUILD.bazel index 1dfe451f4..b8f6e44ac 100644 --- a/google/ads/googleads/v15/services/BUILD.bazel +++ b/google/ads/googleads/v18/services/BUILD.bazel @@ -27,10 +27,10 @@ proto_library( name = "services_proto", srcs = glob(["*.proto"]), deps = [ - "//google/ads/googleads/v15/common:common_proto", - "//google/ads/googleads/v15/enums:enums_proto", - "//google/ads/googleads/v15/errors:errors_proto", - "//google/ads/googleads/v15/resources:resources_proto", + "//google/ads/googleads/v18/common:common_proto", + "//google/ads/googleads/v18/enums:enums_proto", + "//google/ads/googleads/v18/errors:errors_proto", + "//google/ads/googleads/v18/resources:resources_proto", "//google/api:annotations_proto", "//google/api:client_proto", "//google/api:field_behavior_proto", diff --git a/google/ads/googleads/v15/services/account_budget_proposal_service.proto b/google/ads/googleads/v18/services/account_budget_proposal_service.proto similarity index 88% rename from google/ads/googleads/v15/services/account_budget_proposal_service.proto rename to google/ads/googleads/v18/services/account_budget_proposal_service.proto index 5a5afb497..811d30e88 100644 --- a/google/ads/googleads/v15/services/account_budget_proposal_service.proto +++ b/google/ads/googleads/v18/services/account_budget_proposal_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/account_budget_proposal.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AccountBudgetProposalServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the AccountBudgetProposal service. @@ -67,7 +67,7 @@ service AccountBudgetProposalService { rpc MutateAccountBudgetProposal(MutateAccountBudgetProposalRequest) returns (MutateAccountBudgetProposalResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/accountBudgetProposals:mutate" + post: "/v18/customers/{customer_id=*}/accountBudgetProposals:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operation"; @@ -75,7 +75,7 @@ service AccountBudgetProposalService { } // Request message for -// [AccountBudgetProposalService.MutateAccountBudgetProposal][google.ads.googleads.v15.services.AccountBudgetProposalService.MutateAccountBudgetProposal]. +// [AccountBudgetProposalService.MutateAccountBudgetProposal][google.ads.googleads.v18.services.AccountBudgetProposalService.MutateAccountBudgetProposal]. message MutateAccountBudgetProposalRequest { // Required. The ID of the customer. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -107,7 +107,7 @@ message AccountBudgetProposalOperation { // existing budget, end an actively running budget, or remove an approved // budget scheduled to start in the future. // No resource name is expected for the new proposal. - google.ads.googleads.v15.resources.AccountBudgetProposal create = 2; + google.ads.googleads.v18.resources.AccountBudgetProposal create = 2; // Remove operation: A resource name for the removed proposal is expected, // in this format: diff --git a/google/ads/googleads/v15/services/account_link_service.proto b/google/ads/googleads/v18/services/account_link_service.proto similarity index 86% rename from google/ads/googleads/v15/services/account_link_service.proto rename to google/ads/googleads/v18/services/account_link_service.proto index 371372605..030ada5e9 100644 --- a/google/ads/googleads/v15/services/account_link_service.proto +++ b/google/ads/googleads/v18/services/account_link_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/account_link.proto"; +import "google/ads/googleads/v18/resources/account_link.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -24,14 +24,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AccountLinkServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // This service allows management of links between Google Ads accounts and other // accounts. @@ -55,7 +55,7 @@ service AccountLinkService { rpc CreateAccountLink(CreateAccountLinkRequest) returns (CreateAccountLinkResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/accountLinks:create" + post: "/v18/customers/{customer_id=*}/accountLinks:create" body: "*" }; option (google.api.method_signature) = "customer_id,account_link"; @@ -79,7 +79,7 @@ service AccountLinkService { rpc MutateAccountLink(MutateAccountLinkRequest) returns (MutateAccountLinkResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/accountLinks:mutate" + post: "/v18/customers/{customer_id=*}/accountLinks:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operation"; @@ -87,18 +87,18 @@ service AccountLinkService { } // Request message for -// [AccountLinkService.CreateAccountLink][google.ads.googleads.v15.services.AccountLinkService.CreateAccountLink]. +// [AccountLinkService.CreateAccountLink][google.ads.googleads.v18.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.v15.resources.AccountLink account_link = 2 + google.ads.googleads.v18.resources.AccountLink account_link = 2 [(google.api.field_behavior) = REQUIRED]; } // Response message for -// [AccountLinkService.CreateAccountLink][google.ads.googleads.v15.services.AccountLinkService.CreateAccountLink]. +// [AccountLinkService.CreateAccountLink][google.ads.googleads.v18.services.AccountLinkService.CreateAccountLink]. message CreateAccountLinkResponse { // Returned for successful operations. Resource name of the account link. string resource_name = 1 [(google.api.resource_reference) = { @@ -107,7 +107,7 @@ message CreateAccountLinkResponse { } // Request message for -// [AccountLinkService.MutateAccountLink][google.ads.googleads.v15.services.AccountLinkService.MutateAccountLink]. +// [AccountLinkService.MutateAccountLink][google.ads.googleads.v18.services.AccountLinkService.MutateAccountLink]. message MutateAccountLinkRequest { // Required. The ID of the customer being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -135,7 +135,7 @@ message AccountLinkOperation { oneof operation { // Update operation: The account link is expected to have // a valid resource name. - google.ads.googleads.v15.resources.AccountLink update = 2; + google.ads.googleads.v18.resources.AccountLink update = 2; // Remove operation: A resource name for the account link to remove is // expected, in this format: diff --git a/google/ads/googleads/v15/services/ad_group_ad_label_service.proto b/google/ads/googleads/v18/services/ad_group_ad_label_service.proto similarity index 86% rename from google/ads/googleads/v15/services/ad_group_ad_label_service.proto rename to google/ads/googleads/v18/services/ad_group_ad_label_service.proto index c66531f38..3c4b0d0bb 100644 --- a/google/ads/googleads/v15/services/ad_group_ad_label_service.proto +++ b/google/ads/googleads/v18/services/ad_group_ad_label_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/ad_group_ad_label.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupAdLabelServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Ad Group Ad Label service. @@ -56,7 +56,7 @@ service AdGroupAdLabelService { rpc MutateAdGroupAdLabels(MutateAdGroupAdLabelsRequest) returns (MutateAdGroupAdLabelsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/adGroupAdLabels:mutate" + post: "/v18/customers/{customer_id=*}/adGroupAdLabels:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -64,7 +64,7 @@ service AdGroupAdLabelService { } // Request message for -// [AdGroupAdLabelService.MutateAdGroupAdLabels][google.ads.googleads.v15.services.AdGroupAdLabelService.MutateAdGroupAdLabels]. +// [AdGroupAdLabelService.MutateAdGroupAdLabels][google.ads.googleads.v18.services.AdGroupAdLabelService.MutateAdGroupAdLabels]. message MutateAdGroupAdLabelsRequest { // Required. ID of the customer whose ad group ad labels are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -90,7 +90,7 @@ message AdGroupAdLabelOperation { oneof operation { // Create operation: No resource name is expected for the new ad group ad // label. - google.ads.googleads.v15.resources.AdGroupAdLabel create = 1; + google.ads.googleads.v18.resources.AdGroupAdLabel create = 1; // Remove operation: A resource name for the ad group ad label // being removed, in this format: diff --git a/google/ads/googleads/v15/services/ad_group_ad_service.proto b/google/ads/googleads/v18/services/ad_group_ad_service.proto similarity index 65% rename from google/ads/googleads/v15/services/ad_group_ad_service.proto rename to google/ads/googleads/v18/services/ad_group_ad_service.proto index 2598b9d8f..8f9b492b9 100644 --- a/google/ads/googleads/v15/services/ad_group_ad_service.proto +++ b/google/ads/googleads/v18/services/ad_group_ad_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,26 +14,28 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/common/policy.proto"; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/ad_group_ad.proto"; +import "google/ads/googleads/v18/common/policy.proto"; +import "google/ads/googleads/v18/enums/asset_field_type.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/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/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupAdServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Ad Group Ad service. @@ -91,15 +93,36 @@ service AdGroupAdService { rpc MutateAdGroupAds(MutateAdGroupAdsRequest) returns (MutateAdGroupAdsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/adGroupAds:mutate" + post: "/v18/customers/{customer_id=*}/adGroupAds:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; } + + // Remove automatically created assets from an ad. + // + // List of thrown errors: + // [AdError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [AutomaticallyCreatedAssetRemovalError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc RemoveAutomaticallyCreatedAssets(RemoveAutomaticallyCreatedAssetsRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v18/{ad_group_ad=customers/*/adGroupAds/*}:removeAutomaticallyCreatedAssets" + body: "*" + }; + option (google.api.method_signature) = "ad_group_ad,assets_with_field_type"; + } } // Request message for -// [AdGroupAdService.MutateAdGroupAds][google.ads.googleads.v15.services.AdGroupAdService.MutateAdGroupAds]. +// [AdGroupAdService.MutateAdGroupAds][google.ads.googleads.v18.services.AdGroupAdService.MutateAdGroupAds]. message MutateAdGroupAdsRequest { // Required. The ID of the customer whose ads are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -120,7 +143,7 @@ message MutateAdGroupAdsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -130,16 +153,16 @@ message AdGroupAdOperation { google.protobuf.FieldMask update_mask = 4; // Configuration for how policies are validated. - google.ads.googleads.v15.common.PolicyValidationParameter + google.ads.googleads.v18.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.v15.resources.AdGroupAd create = 1; + google.ads.googleads.v18.resources.AdGroupAd create = 1; // Update operation: The ad is expected to have a valid resource name. - google.ads.googleads.v15.resources.AdGroupAd update = 2; + google.ads.googleads.v18.resources.AdGroupAd update = 2; // Remove operation: A resource name for the removed ad is expected, // in this format: @@ -173,5 +196,35 @@ message MutateAdGroupAdResult { // The mutated ad group ad with only mutable fields after mutate. The field // will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.AdGroupAd ad_group_ad = 2; + google.ads.googleads.v18.resources.AdGroupAd ad_group_ad = 2; +} + +// Request message for +// [AdGroupAdService.RemoveAutomaticallyCreatedAssetsRequest][]. +message RemoveAutomaticallyCreatedAssetsRequest { + // Required. The resource name of the AdGroupAd from which to remove + // automatically created assets. + string ad_group_ad = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/AdGroupAd" + } + ]; + + // Required. List of assets with field type to be removed from the AdGroupAd. + repeated AssetsWithFieldType assets_with_field_type = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// The combination of system asset and field type to remove. +message AssetsWithFieldType { + // Required. The resource name of the asset to be removed. + string asset = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "googleads.googleapis.com/Asset" } + ]; + + // Required. The asset field type. + google.ads.googleads.v18.enums.AssetFieldTypeEnum.AssetFieldType + asset_field_type = 2 [(google.api.field_behavior) = REQUIRED]; } diff --git a/google/ads/googleads/v15/services/ad_group_asset_service.proto b/google/ads/googleads/v18/services/ad_group_asset_service.proto similarity index 84% rename from google/ads/googleads/v15/services/ad_group_asset_service.proto rename to google/ads/googleads/v18/services/ad_group_asset_service.proto index 4ee6a8e7a..7c7c88d19 100644 --- a/google/ads/googleads/v15/services/ad_group_asset_service.proto +++ b/google/ads/googleads/v18/services/ad_group_asset_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/ad_group_asset.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/ad_group_asset.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupAssetServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the AdGroupAsset service. @@ -59,7 +59,7 @@ service AdGroupAssetService { rpc MutateAdGroupAssets(MutateAdGroupAssetsRequest) returns (MutateAdGroupAssetsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/adGroupAssets:mutate" + post: "/v18/customers/{customer_id=*}/adGroupAssets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -67,7 +67,7 @@ service AdGroupAssetService { } // Request message for -// [AdGroupAssetService.MutateAdGroupAssets][google.ads.googleads.v15.services.AdGroupAssetService.MutateAdGroupAssets]. +// [AdGroupAssetService.MutateAdGroupAssets][google.ads.googleads.v18.services.AdGroupAssetService.MutateAdGroupAssets]. message MutateAdGroupAssetsRequest { // Required. The ID of the customer whose ad group assets are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -88,7 +88,7 @@ message MutateAdGroupAssetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -101,11 +101,11 @@ message AdGroupAssetOperation { oneof operation { // Create operation: No resource name is expected for the new ad group // asset. - google.ads.googleads.v15.resources.AdGroupAsset create = 1; + google.ads.googleads.v18.resources.AdGroupAsset create = 1; // Update operation: The ad group asset is expected to have a valid resource // name. - google.ads.googleads.v15.resources.AdGroupAsset update = 3; + google.ads.googleads.v18.resources.AdGroupAsset update = 3; // Remove operation: A resource name for the removed ad group asset is // expected, in this format: @@ -139,5 +139,5 @@ message MutateAdGroupAssetResult { // The mutated ad group asset with only mutable fields after // mutate. The field will only be returned when response_content_type is set // to "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.AdGroupAsset ad_group_asset = 2; + google.ads.googleads.v18.resources.AdGroupAsset ad_group_asset = 2; } diff --git a/google/ads/googleads/v15/services/ad_group_asset_set_service.proto b/google/ads/googleads/v18/services/ad_group_asset_set_service.proto similarity index 83% rename from google/ads/googleads/v15/services/ad_group_asset_set_service.proto rename to google/ads/googleads/v18/services/ad_group_asset_set_service.proto index 687fcb2bb..40f7b884a 100644 --- a/google/ads/googleads/v15/services/ad_group_asset_set_service.proto +++ b/google/ads/googleads/v18/services/ad_group_asset_set_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/ad_group_asset_set.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/ad_group_asset_set.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupAssetSetServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the AdGroupAssetSet service. @@ -45,7 +45,7 @@ service AdGroupAssetSetService { rpc MutateAdGroupAssetSets(MutateAdGroupAssetSetsRequest) returns (MutateAdGroupAssetSetsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/adGroupAssetSets:mutate" + post: "/v18/customers/{customer_id=*}/adGroupAssetSets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -53,7 +53,7 @@ service AdGroupAssetSetService { } // Request message for -// [AdGroupAssetSetService.MutateAdGroupAssetSets][google.ads.googleads.v15.services.AdGroupAssetSetService.MutateAdGroupAssetSets]. +// [AdGroupAssetSetService.MutateAdGroupAssetSets][google.ads.googleads.v18.services.AdGroupAssetSetService.MutateAdGroupAssetSets]. message MutateAdGroupAssetSetsRequest { // Required. The ID of the customer whose ad group asset sets are being // modified. @@ -76,7 +76,7 @@ message MutateAdGroupAssetSetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -86,7 +86,7 @@ message AdGroupAssetSetOperation { oneof operation { // Create operation: No resource name is expected for the new ad group asset // set. - google.ads.googleads.v15.resources.AdGroupAssetSet create = 1; + google.ads.googleads.v18.resources.AdGroupAssetSet create = 1; // Remove operation: A resource name for the removed ad group asset set is // expected, in this format: @@ -119,5 +119,5 @@ message MutateAdGroupAssetSetResult { // The mutated ad group asset set with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.AdGroupAssetSet ad_group_asset_set = 2; + google.ads.googleads.v18.resources.AdGroupAssetSet ad_group_asset_set = 2; } diff --git a/google/ads/googleads/v15/services/ad_group_bid_modifier_service.proto b/google/ads/googleads/v18/services/ad_group_bid_modifier_service.proto similarity index 85% rename from google/ads/googleads/v15/services/ad_group_bid_modifier_service.proto rename to google/ads/googleads/v18/services/ad_group_bid_modifier_service.proto index 98c2e5fd7..a96e69f73 100644 --- a/google/ads/googleads/v15/services/ad_group_bid_modifier_service.proto +++ b/google/ads/googleads/v18/services/ad_group_bid_modifier_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/ad_group_bid_modifier.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/ad_group_bid_modifier.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupBidModifierServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Ad Group Bid Modifier service. @@ -71,7 +71,7 @@ service AdGroupBidModifierService { rpc MutateAdGroupBidModifiers(MutateAdGroupBidModifiersRequest) returns (MutateAdGroupBidModifiersResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/adGroupBidModifiers:mutate" + post: "/v18/customers/{customer_id=*}/adGroupBidModifiers:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -79,7 +79,7 @@ service AdGroupBidModifierService { } // Request message for -// [AdGroupBidModifierService.MutateAdGroupBidModifiers][google.ads.googleads.v15.services.AdGroupBidModifierService.MutateAdGroupBidModifiers]. +// [AdGroupBidModifierService.MutateAdGroupBidModifiers][google.ads.googleads.v18.services.AdGroupBidModifierService.MutateAdGroupBidModifiers]. message MutateAdGroupBidModifiersRequest { // Required. ID of the customer whose ad group bid modifiers are being // modified. @@ -102,7 +102,7 @@ message MutateAdGroupBidModifiersRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -115,11 +115,11 @@ message AdGroupBidModifierOperation { oneof operation { // Create operation: No resource name is expected for the new ad group bid // modifier. - google.ads.googleads.v15.resources.AdGroupBidModifier create = 1; + google.ads.googleads.v18.resources.AdGroupBidModifier create = 1; // Update operation: The ad group bid modifier is expected to have a valid // resource name. - google.ads.googleads.v15.resources.AdGroupBidModifier update = 2; + google.ads.googleads.v18.resources.AdGroupBidModifier update = 2; // Remove operation: A resource name for the removed ad group bid modifier // is expected, in this format: @@ -153,6 +153,6 @@ message MutateAdGroupBidModifierResult { // The mutated ad group bid modifier with only mutable fields after mutate. // The field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.AdGroupBidModifier ad_group_bid_modifier = + google.ads.googleads.v18.resources.AdGroupBidModifier ad_group_bid_modifier = 2; } diff --git a/google/ads/googleads/v15/services/ad_group_criterion_customizer_service.proto b/google/ads/googleads/v18/services/ad_group_criterion_customizer_service.proto similarity index 84% rename from google/ads/googleads/v15/services/ad_group_criterion_customizer_service.proto rename to google/ads/googleads/v18/services/ad_group_criterion_customizer_service.proto index ad879752f..c8fb58e2c 100644 --- a/google/ads/googleads/v15/services/ad_group_criterion_customizer_service.proto +++ b/google/ads/googleads/v18/services/ad_group_criterion_customizer_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/ad_group_criterion_customizer.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupCriterionCustomizerServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the AdGroupCriterionCustomizer service. @@ -46,7 +46,7 @@ service AdGroupCriterionCustomizerService { MutateAdGroupCriterionCustomizersRequest) returns (MutateAdGroupCriterionCustomizersResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/AdGroupCriterionCustomizers:mutate" + post: "/v18/customers/{customer_id=*}/AdGroupCriterionCustomizers:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -54,7 +54,7 @@ service AdGroupCriterionCustomizerService { } // Request message for -// [AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers][google.ads.googleads.v15.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers]. +// [AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers][google.ads.googleads.v18.services.AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers]. message MutateAdGroupCriterionCustomizersRequest { // Required. The ID of the customer whose ad group criterion customizers are // being modified. @@ -77,7 +77,7 @@ message MutateAdGroupCriterionCustomizersRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -87,7 +87,7 @@ message AdGroupCriterionCustomizerOperation { oneof operation { // Create operation: No resource name is expected for the new ad group // criterion customizer. - google.ads.googleads.v15.resources.AdGroupCriterionCustomizer create = 1; + google.ads.googleads.v18.resources.AdGroupCriterionCustomizer create = 1; // Remove operation: A resource name for the removed ad group criterion // customizer is expected, in this format: @@ -121,6 +121,6 @@ message MutateAdGroupCriterionCustomizerResult { // The mutated AdGroupCriterionCustomizer with only mutable fields after // mutate. The field will only be returned when response_content_type is set // to "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.AdGroupCriterionCustomizer + google.ads.googleads.v18.resources.AdGroupCriterionCustomizer ad_group_criterion_customizer = 2; } diff --git a/google/ads/googleads/v15/services/ad_group_criterion_label_service.proto b/google/ads/googleads/v18/services/ad_group_criterion_label_service.proto similarity index 87% rename from google/ads/googleads/v15/services/ad_group_criterion_label_service.proto rename to google/ads/googleads/v18/services/ad_group_criterion_label_service.proto index 4fd42e723..05e242e7e 100644 --- a/google/ads/googleads/v15/services/ad_group_criterion_label_service.proto +++ b/google/ads/googleads/v18/services/ad_group_criterion_label_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/ad_group_criterion_label.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupCriterionLabelServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Ad Group Criterion Label service. @@ -54,7 +54,7 @@ service AdGroupCriterionLabelService { rpc MutateAdGroupCriterionLabels(MutateAdGroupCriterionLabelsRequest) returns (MutateAdGroupCriterionLabelsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/adGroupCriterionLabels:mutate" + post: "/v18/customers/{customer_id=*}/adGroupCriterionLabels:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -62,7 +62,7 @@ service AdGroupCriterionLabelService { } // Request message for -// [AdGroupCriterionLabelService.MutateAdGroupCriterionLabels][google.ads.googleads.v15.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels]. +// [AdGroupCriterionLabelService.MutateAdGroupCriterionLabels][google.ads.googleads.v18.services.AdGroupCriterionLabelService.MutateAdGroupCriterionLabels]. message MutateAdGroupCriterionLabelsRequest { // Required. ID of the customer whose ad group criterion labels are being // modified. @@ -89,7 +89,7 @@ message AdGroupCriterionLabelOperation { oneof operation { // Create operation: No resource name is expected for the new ad group // label. - google.ads.googleads.v15.resources.AdGroupCriterionLabel create = 1; + google.ads.googleads.v18.resources.AdGroupCriterionLabel create = 1; // Remove operation: A resource name for the ad group criterion label // being removed, in this format: diff --git a/google/ads/googleads/v15/services/ad_group_criterion_service.proto b/google/ads/googleads/v18/services/ad_group_criterion_service.proto similarity index 85% rename from google/ads/googleads/v15/services/ad_group_criterion_service.proto rename to google/ads/googleads/v18/services/ad_group_criterion_service.proto index 6b416b0e3..accddb590 100644 --- a/google/ads/googleads/v15/services/ad_group_criterion_service.proto +++ b/google/ads/googleads/v18/services/ad_group_criterion_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,11 +14,11 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/common/policy.proto"; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/ad_group_criterion.proto"; +import "google/ads/googleads/v18/common/policy.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/ad_group_criterion.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -26,14 +26,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupCriterionServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Ad Group Criterion service. @@ -81,7 +81,7 @@ service AdGroupCriterionService { rpc MutateAdGroupCriteria(MutateAdGroupCriteriaRequest) returns (MutateAdGroupCriteriaResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/adGroupCriteria:mutate" + post: "/v18/customers/{customer_id=*}/adGroupCriteria:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -89,7 +89,7 @@ service AdGroupCriterionService { } // Request message for -// [AdGroupCriterionService.MutateAdGroupCriteria][google.ads.googleads.v15.services.AdGroupCriterionService.MutateAdGroupCriteria]. +// [AdGroupCriterionService.MutateAdGroupCriteria][google.ads.googleads.v18.services.AdGroupCriterionService.MutateAdGroupCriteria]. message MutateAdGroupCriteriaRequest { // Required. ID of the customer whose criteria are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -110,7 +110,7 @@ message MutateAdGroupCriteriaRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -128,17 +128,17 @@ message AdGroupCriterionOperation { // to serve. They may begin serving at a later time due to a change in // policies, re-review of the resource, or a change in advertiser // certificates. - repeated google.ads.googleads.v15.common.PolicyViolationKey + repeated google.ads.googleads.v18.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.v15.resources.AdGroupCriterion create = 1; + google.ads.googleads.v18.resources.AdGroupCriterion create = 1; // Update operation: The criterion is expected to have a valid resource // name. - google.ads.googleads.v15.resources.AdGroupCriterion update = 2; + google.ads.googleads.v18.resources.AdGroupCriterion update = 2; // Remove operation: A resource name for the removed criterion is expected, // in this format: @@ -172,5 +172,5 @@ message MutateAdGroupCriterionResult { // The mutated ad group criterion with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.AdGroupCriterion ad_group_criterion = 2; + google.ads.googleads.v18.resources.AdGroupCriterion ad_group_criterion = 2; } diff --git a/google/ads/googleads/v15/services/ad_group_customizer_service.proto b/google/ads/googleads/v18/services/ad_group_customizer_service.proto similarity index 83% rename from google/ads/googleads/v15/services/ad_group_customizer_service.proto rename to google/ads/googleads/v18/services/ad_group_customizer_service.proto index f481d33c2..d35376fa2 100644 --- a/google/ads/googleads/v15/services/ad_group_customizer_service.proto +++ b/google/ads/googleads/v18/services/ad_group_customizer_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/ad_group_customizer.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupCustomizerServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the AdGroupCustomizer service. @@ -45,7 +45,7 @@ service AdGroupCustomizerService { rpc MutateAdGroupCustomizers(MutateAdGroupCustomizersRequest) returns (MutateAdGroupCustomizersResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/adGroupCustomizers:mutate" + post: "/v18/customers/{customer_id=*}/adGroupCustomizers:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -53,7 +53,7 @@ service AdGroupCustomizerService { } // Request message for -// [AdGroupCustomizerService.MutateAdGroupCustomizers][google.ads.googleads.v15.services.AdGroupCustomizerService.MutateAdGroupCustomizers]. +// [AdGroupCustomizerService.MutateAdGroupCustomizers][google.ads.googleads.v18.services.AdGroupCustomizerService.MutateAdGroupCustomizers]. message MutateAdGroupCustomizersRequest { // Required. The ID of the customer whose ad group customizers are being // modified. @@ -76,7 +76,7 @@ message MutateAdGroupCustomizersRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -86,7 +86,7 @@ message AdGroupCustomizerOperation { oneof operation { // Create operation: No resource name is expected for the new ad group // customizer - google.ads.googleads.v15.resources.AdGroupCustomizer create = 1; + google.ads.googleads.v18.resources.AdGroupCustomizer create = 1; // Remove operation: A resource name for the removed ad group customizer is // expected, in this format: @@ -119,5 +119,5 @@ message MutateAdGroupCustomizerResult { // The mutated AdGroupCustomizer with only mutable fields after mutate. // The field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.AdGroupCustomizer ad_group_customizer = 2; + google.ads.googleads.v18.resources.AdGroupCustomizer ad_group_customizer = 2; } diff --git a/google/ads/googleads/v15/services/ad_group_extension_setting_service.proto b/google/ads/googleads/v18/services/ad_group_extension_setting_service.proto similarity index 86% rename from google/ads/googleads/v15/services/ad_group_extension_setting_service.proto rename to google/ads/googleads/v18/services/ad_group_extension_setting_service.proto index e6a11132f..ccca7e25b 100644 --- a/google/ads/googleads/v15/services/ad_group_extension_setting_service.proto +++ b/google/ads/googleads/v18/services/ad_group_extension_setting_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/ad_group_extension_setting.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/ad_group_extension_setting.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupExtensionSettingServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the AdGroupExtensionSetting service. @@ -76,7 +76,7 @@ service AdGroupExtensionSettingService { rpc MutateAdGroupExtensionSettings(MutateAdGroupExtensionSettingsRequest) returns (MutateAdGroupExtensionSettingsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/adGroupExtensionSettings:mutate" + post: "/v18/customers/{customer_id=*}/adGroupExtensionSettings:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -84,7 +84,7 @@ service AdGroupExtensionSettingService { } // Request message for -// [AdGroupExtensionSettingService.MutateAdGroupExtensionSettings][google.ads.googleads.v15.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings]. +// [AdGroupExtensionSettingService.MutateAdGroupExtensionSettings][google.ads.googleads.v18.services.AdGroupExtensionSettingService.MutateAdGroupExtensionSettings]. message MutateAdGroupExtensionSettingsRequest { // Required. The ID of the customer whose ad group extension settings are // being modified. @@ -113,18 +113,18 @@ message AdGroupExtensionSettingOperation { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.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.v15.resources.AdGroupExtensionSetting create = 1; + google.ads.googleads.v18.resources.AdGroupExtensionSetting create = 1; // Update operation: The ad group extension setting is expected to have a // valid resource name. - google.ads.googleads.v15.resources.AdGroupExtensionSetting update = 2; + google.ads.googleads.v18.resources.AdGroupExtensionSetting update = 2; // Remove operation: A resource name for the removed ad group extension // setting is expected, in this format: @@ -158,6 +158,6 @@ message MutateAdGroupExtensionSettingResult { // The mutated AdGroupExtensionSetting with only mutable fields after mutate. // The field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.AdGroupExtensionSetting + google.ads.googleads.v18.resources.AdGroupExtensionSetting ad_group_extension_setting = 2; } diff --git a/google/ads/googleads/v15/services/ad_group_feed_service.proto b/google/ads/googleads/v18/services/ad_group_feed_service.proto similarity index 85% rename from google/ads/googleads/v15/services/ad_group_feed_service.proto rename to google/ads/googleads/v18/services/ad_group_feed_service.proto index d231cbe67..b6858ab02 100644 --- a/google/ads/googleads/v15/services/ad_group_feed_service.proto +++ b/google/ads/googleads/v18/services/ad_group_feed_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/ad_group_feed.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/ad_group_feed.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupFeedServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the AdGroupFeed service. @@ -70,7 +70,7 @@ service AdGroupFeedService { rpc MutateAdGroupFeeds(MutateAdGroupFeedsRequest) returns (MutateAdGroupFeedsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/adGroupFeeds:mutate" + post: "/v18/customers/{customer_id=*}/adGroupFeeds:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -78,7 +78,7 @@ service AdGroupFeedService { } // Request message for -// [AdGroupFeedService.MutateAdGroupFeeds][google.ads.googleads.v15.services.AdGroupFeedService.MutateAdGroupFeeds]. +// [AdGroupFeedService.MutateAdGroupFeeds][google.ads.googleads.v18.services.AdGroupFeedService.MutateAdGroupFeeds]. message MutateAdGroupFeedsRequest { // Required. The ID of the customer whose ad group feeds are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -99,7 +99,7 @@ message MutateAdGroupFeedsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -111,11 +111,11 @@ message AdGroupFeedOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new ad group feed. - google.ads.googleads.v15.resources.AdGroupFeed create = 1; + google.ads.googleads.v18.resources.AdGroupFeed create = 1; // Update operation: The ad group feed is expected to have a valid resource // name. - google.ads.googleads.v15.resources.AdGroupFeed update = 2; + google.ads.googleads.v18.resources.AdGroupFeed update = 2; // Remove operation: A resource name for the removed ad group feed is // expected, in this format: @@ -149,5 +149,5 @@ message MutateAdGroupFeedResult { // The mutated ad group feed with only mutable fields after mutate. The field // will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.AdGroupFeed ad_group_feed = 2; + google.ads.googleads.v18.resources.AdGroupFeed ad_group_feed = 2; } diff --git a/google/ads/googleads/v15/services/ad_group_label_service.proto b/google/ads/googleads/v18/services/ad_group_label_service.proto similarity index 86% rename from google/ads/googleads/v15/services/ad_group_label_service.proto rename to google/ads/googleads/v18/services/ad_group_label_service.proto index 2a0b01c42..35a468408 100644 --- a/google/ads/googleads/v15/services/ad_group_label_service.proto +++ b/google/ads/googleads/v18/services/ad_group_label_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/ad_group_label.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupLabelServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Ad Group Label service. @@ -57,7 +57,7 @@ service AdGroupLabelService { rpc MutateAdGroupLabels(MutateAdGroupLabelsRequest) returns (MutateAdGroupLabelsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/adGroupLabels:mutate" + post: "/v18/customers/{customer_id=*}/adGroupLabels:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -65,7 +65,7 @@ service AdGroupLabelService { } // Request message for -// [AdGroupLabelService.MutateAdGroupLabels][google.ads.googleads.v15.services.AdGroupLabelService.MutateAdGroupLabels]. +// [AdGroupLabelService.MutateAdGroupLabels][google.ads.googleads.v18.services.AdGroupLabelService.MutateAdGroupLabels]. message MutateAdGroupLabelsRequest { // Required. ID of the customer whose ad group labels are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -91,7 +91,7 @@ message AdGroupLabelOperation { oneof operation { // Create operation: No resource name is expected for the new ad group // label. - google.ads.googleads.v15.resources.AdGroupLabel create = 1; + google.ads.googleads.v18.resources.AdGroupLabel create = 1; // Remove operation: A resource name for the ad group label // being removed, in this format: diff --git a/google/ads/googleads/v15/services/ad_group_service.proto b/google/ads/googleads/v18/services/ad_group_service.proto similarity index 85% rename from google/ads/googleads/v15/services/ad_group_service.proto rename to google/ads/googleads/v18/services/ad_group_service.proto index 44dcec58c..76be43256 100644 --- a/google/ads/googleads/v15/services/ad_group_service.proto +++ b/google/ads/googleads/v18/services/ad_group_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/ad_group.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/ad_group.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AdGroupServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Ad Group service. @@ -77,7 +77,7 @@ service AdGroupService { // [UrlFieldError]() rpc MutateAdGroups(MutateAdGroupsRequest) returns (MutateAdGroupsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/adGroups:mutate" + post: "/v18/customers/{customer_id=*}/adGroups:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -85,7 +85,7 @@ service AdGroupService { } // Request message for -// [AdGroupService.MutateAdGroups][google.ads.googleads.v15.services.AdGroupService.MutateAdGroups]. +// [AdGroupService.MutateAdGroups][google.ads.googleads.v18.services.AdGroupService.MutateAdGroups]. message MutateAdGroupsRequest { // Required. The ID of the customer whose ad groups are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -106,7 +106,7 @@ message MutateAdGroupsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -118,10 +118,10 @@ message AdGroupOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new ad group. - google.ads.googleads.v15.resources.AdGroup create = 1; + google.ads.googleads.v18.resources.AdGroup create = 1; // Update operation: The ad group is expected to have a valid resource name. - google.ads.googleads.v15.resources.AdGroup update = 2; + google.ads.googleads.v18.resources.AdGroup update = 2; // Remove operation: A resource name for the removed ad group is expected, // in this format: @@ -154,5 +154,5 @@ message MutateAdGroupResult { // The mutated ad group with only mutable fields after mutate. The field will // only be returned when response_content_type is set to "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.AdGroup ad_group = 2; + google.ads.googleads.v18.resources.AdGroup ad_group = 2; } diff --git a/google/ads/googleads/v15/services/ad_parameter_service.proto b/google/ads/googleads/v18/services/ad_parameter_service.proto similarity index 84% rename from google/ads/googleads/v15/services/ad_parameter_service.proto rename to google/ads/googleads/v18/services/ad_parameter_service.proto index 418c491e5..8f1fb9553 100644 --- a/google/ads/googleads/v15/services/ad_parameter_service.proto +++ b/google/ads/googleads/v18/services/ad_parameter_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/ad_parameter.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/ad_parameter.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AdParameterServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Ad Parameter service. @@ -60,7 +60,7 @@ service AdParameterService { rpc MutateAdParameters(MutateAdParametersRequest) returns (MutateAdParametersResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/adParameters:mutate" + post: "/v18/customers/{customer_id=*}/adParameters:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -68,7 +68,7 @@ service AdParameterService { } // Request message for -// [AdParameterService.MutateAdParameters][google.ads.googleads.v15.services.AdParameterService.MutateAdParameters] +// [AdParameterService.MutateAdParameters][google.ads.googleads.v18.services.AdParameterService.MutateAdParameters] message MutateAdParametersRequest { // Required. The ID of the customer whose ad parameters are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -89,7 +89,7 @@ message MutateAdParametersRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -101,11 +101,11 @@ message AdParameterOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new ad parameter. - google.ads.googleads.v15.resources.AdParameter create = 1; + google.ads.googleads.v18.resources.AdParameter create = 1; // Update operation: The ad parameter is expected to have a valid resource // name. - google.ads.googleads.v15.resources.AdParameter update = 2; + google.ads.googleads.v18.resources.AdParameter update = 2; // Remove operation: A resource name for the ad parameter to remove is // expected in this format: @@ -139,5 +139,5 @@ message MutateAdParameterResult { // The mutated AdParameter with only mutable fields after mutate. The field // will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.AdParameter ad_parameter = 2; + google.ads.googleads.v18.resources.AdParameter ad_parameter = 2; } diff --git a/google/ads/googleads/v15/services/ad_service.proto b/google/ads/googleads/v18/services/ad_service.proto similarity index 74% rename from google/ads/googleads/v15/services/ad_service.proto rename to google/ads/googleads/v18/services/ad_service.proto index a76300aab..cf214916c 100644 --- a/google/ads/googleads/v15/services/ad_service.proto +++ b/google/ads/googleads/v18/services/ad_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,11 +14,11 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/common/policy.proto"; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/ad.proto"; +import "google/ads/googleads/v18/common/policy.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/ad.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -26,14 +26,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AdServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Ad service. @@ -42,22 +42,6 @@ service AdService { option (google.api.default_host) = "googleads.googleapis.com"; option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; - // Returns the requested ad in full detail. - // - // List of thrown errors: - // [AuthenticationError]() - // [AuthorizationError]() - // [HeaderError]() - // [InternalError]() - // [QuotaError]() - // [RequestError]() - rpc GetAd(GetAdRequest) returns (google.ads.googleads.v15.resources.Ad) { - option (google.api.http) = { - get: "/v15/{resource_name=customers/*/ads/*}" - }; - option (google.api.method_signature) = "resource_name"; - } - // Updates ads. Operation statuses are returned. Updating ads is not supported // for TextAd, ExpandedDynamicSearchAd, GmailAd and ImageAd. // @@ -102,7 +86,7 @@ service AdService { // [UrlFieldError]() rpc MutateAds(MutateAdsRequest) returns (MutateAdsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/ads:mutate" + post: "/v18/customers/{customer_id=*}/ads:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -110,17 +94,7 @@ service AdService { } // Request message for -// [AdService.GetAd][google.ads.googleads.v15.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.v15.services.AdService.MutateAds]. +// [AdService.MutateAds][google.ads.googleads.v18.services.AdService.MutateAds]. message MutateAdsRequest { // Required. The ID of the customer whose ads are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -136,7 +110,7 @@ message MutateAdsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; // If true, the request is validated but not executed. Only errors are @@ -150,7 +124,7 @@ message AdOperation { google.protobuf.FieldMask update_mask = 2; // Configuration for how policies are validated. - google.ads.googleads.v15.common.PolicyValidationParameter + google.ads.googleads.v18.common.PolicyValidationParameter policy_validation_parameter = 3; // The mutate operation. @@ -159,7 +133,7 @@ message AdOperation { // in this format: // // `customers/{customer_id}/ads/{ad_id}` - google.ads.googleads.v15.resources.Ad update = 1; + google.ads.googleads.v18.resources.Ad update = 1; } } @@ -184,5 +158,5 @@ message MutateAdResult { // The mutated ad with only mutable fields after mutate. The field will only // be returned when response_content_type is set to "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.Ad ad = 2; + google.ads.googleads.v18.resources.Ad ad = 2; } diff --git a/google/ads/googleads/v15/services/asset_group_asset_service.proto b/google/ads/googleads/v18/services/asset_group_asset_service.proto similarity index 85% rename from google/ads/googleads/v15/services/asset_group_asset_service.proto rename to google/ads/googleads/v18/services/asset_group_asset_service.proto index ff601aade..1178e26ac 100644 --- a/google/ads/googleads/v15/services/asset_group_asset_service.proto +++ b/google/ads/googleads/v18/services/asset_group_asset_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/asset_group_asset.proto"; +import "google/ads/googleads/v18/resources/asset_group_asset.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -24,14 +24,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AssetGroupAssetServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the AssetGroupAsset service. @@ -45,7 +45,7 @@ service AssetGroupAssetService { rpc MutateAssetGroupAssets(MutateAssetGroupAssetsRequest) returns (MutateAssetGroupAssetsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/assetGroupAssets:mutate" + post: "/v18/customers/{customer_id=*}/assetGroupAssets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -53,7 +53,7 @@ service AssetGroupAssetService { } // Request message for -// [AssetGroupAssetService.MutateAssetGroupAssets][google.ads.googleads.v15.services.AssetGroupAssetService.MutateAssetGroupAssets]. +// [AssetGroupAssetService.MutateAssetGroupAssets][google.ads.googleads.v18.services.AssetGroupAssetService.MutateAssetGroupAssets]. message MutateAssetGroupAssetsRequest { // Required. The ID of the customer whose asset group assets are being // modified. @@ -84,11 +84,11 @@ message AssetGroupAssetOperation { oneof operation { // Create operation: No resource name is expected for the new asset group // asset. - google.ads.googleads.v15.resources.AssetGroupAsset create = 1; + google.ads.googleads.v18.resources.AssetGroupAsset create = 1; // Update operation: The asset group asset is expected to have a valid // resource name. - google.ads.googleads.v15.resources.AssetGroupAsset update = 2; + google.ads.googleads.v18.resources.AssetGroupAsset update = 2; // Remove operation: A resource name for the removed asset group asset is // expected, in this format: diff --git a/google/ads/googleads/v15/services/asset_group_listing_group_filter_service.proto b/google/ads/googleads/v18/services/asset_group_listing_group_filter_service.proto similarity index 84% rename from google/ads/googleads/v15/services/asset_group_listing_group_filter_service.proto rename to google/ads/googleads/v18/services/asset_group_listing_group_filter_service.proto index 03cd778f3..a66bd5716 100644 --- a/google/ads/googleads/v15/services/asset_group_listing_group_filter_service.proto +++ b/google/ads/googleads/v18/services/asset_group_listing_group_filter_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/asset_group_listing_group_filter.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AssetGroupListingGroupFilterServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the AssetGroupListingGroupFilter service. @@ -46,7 +46,7 @@ service AssetGroupListingGroupFilterService { MutateAssetGroupListingGroupFiltersRequest) returns (MutateAssetGroupListingGroupFiltersResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/assetGroupListingGroupFilters:mutate" + post: "/v18/customers/{customer_id=*}/assetGroupListingGroupFilters:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -54,7 +54,7 @@ service AssetGroupListingGroupFilterService { } // Request message for -// [AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters][google.ads.googleads.v15.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters]. +// [AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters][google.ads.googleads.v18.services.AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters]. // partial_failure is not supported because the tree needs to be validated // together. message MutateAssetGroupListingGroupFiltersRequest { @@ -73,7 +73,7 @@ message MutateAssetGroupListingGroupFiltersRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; } @@ -86,11 +86,11 @@ message AssetGroupListingGroupFilterOperation { oneof operation { // Create operation: No resource name is expected for the new asset group // listing group filter. - google.ads.googleads.v15.resources.AssetGroupListingGroupFilter create = 1; + google.ads.googleads.v18.resources.AssetGroupListingGroupFilter create = 1; // Update operation: The asset group listing group filter is expected to // have a valid resource name. - google.ads.googleads.v15.resources.AssetGroupListingGroupFilter update = 2; + google.ads.googleads.v18.resources.AssetGroupListingGroupFilter update = 2; // Remove operation: A resource name for the removed asset group listing // group filter is expected, in this format: @@ -120,6 +120,6 @@ message MutateAssetGroupListingGroupFilterResult { // The mutated AssetGroupListingGroupFilter with only mutable fields after // mutate. The field will only be returned when response_content_type is set // to "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.AssetGroupListingGroupFilter + google.ads.googleads.v18.resources.AssetGroupListingGroupFilter asset_group_listing_group_filter = 2; } diff --git a/google/ads/googleads/v15/services/asset_group_service.proto b/google/ads/googleads/v18/services/asset_group_service.proto similarity index 84% rename from google/ads/googleads/v15/services/asset_group_service.proto rename to google/ads/googleads/v18/services/asset_group_service.proto index 8b098b018..0fd4c34a9 100644 --- a/google/ads/googleads/v15/services/asset_group_service.proto +++ b/google/ads/googleads/v18/services/asset_group_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/asset_group.proto"; +import "google/ads/googleads/v18/resources/asset_group.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -24,14 +24,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AssetGroupServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the AssetGroup service. @@ -45,7 +45,7 @@ service AssetGroupService { rpc MutateAssetGroups(MutateAssetGroupsRequest) returns (MutateAssetGroupsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/assetGroups:mutate" + post: "/v18/customers/{customer_id=*}/assetGroups:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -53,7 +53,7 @@ service AssetGroupService { } // Request message for -// [AssetGroupService.MutateAssetGroups][google.ads.googleads.v15.services.AssetGroupService.MutateAssetGroups]. +// [AssetGroupService.MutateAssetGroups][google.ads.googleads.v18.services.AssetGroupService.MutateAssetGroups]. message MutateAssetGroupsRequest { // Required. The ID of the customer whose asset groups are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -75,11 +75,11 @@ message AssetGroupOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new asset group - google.ads.googleads.v15.resources.AssetGroup create = 1; + google.ads.googleads.v18.resources.AssetGroup create = 1; // Update operation: The asset group is expected to have a valid resource // name. - google.ads.googleads.v15.resources.AssetGroup update = 2; + google.ads.googleads.v18.resources.AssetGroup update = 2; // Remove operation: A resource name for the removed asset group is // expected, in this format: diff --git a/google/ads/googleads/v15/services/asset_group_signal_service.proto b/google/ads/googleads/v18/services/asset_group_signal_service.proto similarity index 83% rename from google/ads/googleads/v15/services/asset_group_signal_service.proto rename to google/ads/googleads/v18/services/asset_group_signal_service.proto index e57453489..695c3d32c 100644 --- a/google/ads/googleads/v15/services/asset_group_signal_service.proto +++ b/google/ads/googleads/v18/services/asset_group_signal_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,25 +14,25 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/common/policy.proto"; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/asset_group_signal.proto"; +import "google/ads/googleads/v18/common/policy.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AssetGroupSignalServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the AssetGroupSignal service. @@ -46,7 +46,7 @@ service AssetGroupSignalService { rpc MutateAssetGroupSignals(MutateAssetGroupSignalsRequest) returns (MutateAssetGroupSignalsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/assetGroupSignals:mutate" + post: "/v18/customers/{customer_id=*}/assetGroupSignals:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -54,7 +54,7 @@ service AssetGroupSignalService { } // Request message for -// [AssetGroupSignalService.MutateAssetGroupSignals][google.ads.googleads.v15.services.AssetGroupSignalService.MutateAssetGroupSignals]. +// [AssetGroupSignalService.MutateAssetGroupSignals][google.ads.googleads.v18.services.AssetGroupSignalService.MutateAssetGroupSignals]. message MutateAssetGroupSignalsRequest { // Required. The ID of the customer whose asset group signals are being // modified. @@ -76,7 +76,7 @@ message MutateAssetGroupSignalsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -91,14 +91,14 @@ message AssetGroupSignalOperation { // 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.v15.common.PolicyViolationKey + repeated google.ads.googleads.v18.common.PolicyViolationKey exempt_policy_violation_keys = 3 [(google.api.field_behavior) = OPTIONAL]; // The mutate operation. Update is not supported. oneof operation { // Create operation: No resource name is expected for the new asset group // signal. - google.ads.googleads.v15.resources.AssetGroupSignal create = 1; + google.ads.googleads.v18.resources.AssetGroupSignal create = 1; // Remove operation: A resource name for the removed asset group signal is // expected, in this format: @@ -131,5 +131,5 @@ message MutateAssetGroupSignalResult { // The mutated AssetGroupSignal with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.AssetGroupSignal asset_group_signal = 2; + google.ads.googleads.v18.resources.AssetGroupSignal asset_group_signal = 2; } diff --git a/google/ads/googleads/v15/services/asset_service.proto b/google/ads/googleads/v18/services/asset_service.proto similarity index 85% rename from google/ads/googleads/v15/services/asset_service.proto rename to google/ads/googleads/v18/services/asset_service.proto index 128b17d04..96fed10e9 100644 --- a/google/ads/googleads/v15/services/asset_service.proto +++ b/google/ads/googleads/v18/services/asset_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/asset.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/asset.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AssetServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Asset service. @@ -75,7 +75,7 @@ service AssetService { // [YoutubeVideoRegistrationError]() rpc MutateAssets(MutateAssetsRequest) returns (MutateAssetsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/assets:mutate" + post: "/v18/customers/{customer_id=*}/assets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -83,7 +83,7 @@ service AssetService { } // Request message for -// [AssetService.MutateAssets][google.ads.googleads.v15.services.AssetService.MutateAssets] +// [AssetService.MutateAssets][google.ads.googleads.v18.services.AssetService.MutateAssets] message MutateAssetsRequest { // Required. The ID of the customer whose assets are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -100,7 +100,7 @@ message MutateAssetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 3; // If true, the request is validated but not executed. Only errors are @@ -119,13 +119,13 @@ message AssetOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new asset. - google.ads.googleads.v15.resources.Asset create = 1; + google.ads.googleads.v18.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.v15.resources.Asset update = 2; + google.ads.googleads.v18.resources.Asset update = 2; } } @@ -150,5 +150,5 @@ message MutateAssetResult { // The mutated asset with only mutable fields after mutate. The field will // only be returned when response_content_type is set to "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.Asset asset = 2; + google.ads.googleads.v18.resources.Asset asset = 2; } diff --git a/google/ads/googleads/v15/services/asset_set_asset_service.proto b/google/ads/googleads/v18/services/asset_set_asset_service.proto similarity index 83% rename from google/ads/googleads/v15/services/asset_set_asset_service.proto rename to google/ads/googleads/v18/services/asset_set_asset_service.proto index 27e201dfc..35ba4addf 100644 --- a/google/ads/googleads/v15/services/asset_set_asset_service.proto +++ b/google/ads/googleads/v18/services/asset_set_asset_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/asset_set_asset.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AssetSetAssetServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the AssetSetAsset service. @@ -45,7 +45,7 @@ service AssetSetAssetService { rpc MutateAssetSetAssets(MutateAssetSetAssetsRequest) returns (MutateAssetSetAssetsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/assetSetAssets:mutate" + post: "/v18/customers/{customer_id=*}/assetSetAssets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -53,7 +53,7 @@ service AssetSetAssetService { } // Request message for -// [AssetSetAssetService.MutateAssetSetAssets][google.ads.googleads.v15.services.AssetSetAssetService.MutateAssetSetAssets]. +// [AssetSetAssetService.MutateAssetSetAssets][google.ads.googleads.v18.services.AssetSetAssetService.MutateAssetSetAssets]. message MutateAssetSetAssetsRequest { // Required. The ID of the customer whose asset set assets are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -74,7 +74,7 @@ message MutateAssetSetAssetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -84,7 +84,7 @@ message AssetSetAssetOperation { oneof operation { // Create operation: No resource name is expected for the new asset set // asset - google.ads.googleads.v15.resources.AssetSetAsset create = 1; + google.ads.googleads.v18.resources.AssetSetAsset create = 1; // Remove operation: A resource name for the removed asset set asset is // expected, in this format: @@ -117,5 +117,5 @@ message MutateAssetSetAssetResult { // The mutated asset set asset with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.AssetSetAsset asset_set_asset = 2; + google.ads.googleads.v18.resources.AssetSetAsset asset_set_asset = 2; } diff --git a/google/ads/googleads/v15/services/asset_set_service.proto b/google/ads/googleads/v18/services/asset_set_service.proto similarity index 82% rename from google/ads/googleads/v15/services/asset_set_service.proto rename to google/ads/googleads/v18/services/asset_set_service.proto index 9ac40d1cd..3b736662a 100644 --- a/google/ads/googleads/v15/services/asset_set_service.proto +++ b/google/ads/googleads/v18/services/asset_set_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/asset_set.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/asset_set.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AssetSetServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the AssetSet service. @@ -46,7 +46,7 @@ service AssetSetService { rpc MutateAssetSets(MutateAssetSetsRequest) returns (MutateAssetSetsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/assetSets:mutate" + post: "/v18/customers/{customer_id=*}/assetSets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -54,7 +54,7 @@ service AssetSetService { } // Request message for -// [AssetSetService.MutateAssetSets][google.ads.googleads.v15.services.AssetSetService.MutateAssetSets]. +// [AssetSetService.MutateAssetSets][google.ads.googleads.v18.services.AssetSetService.MutateAssetSets]. message MutateAssetSetsRequest { // Required. The ID of the customer whose asset sets are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -75,7 +75,7 @@ message MutateAssetSetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -87,11 +87,11 @@ message AssetSetOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new asset set - google.ads.googleads.v15.resources.AssetSet create = 1; + google.ads.googleads.v18.resources.AssetSet create = 1; // Update operation: The asset set is expected to have a valid resource // name. - google.ads.googleads.v15.resources.AssetSet update = 2; + google.ads.googleads.v18.resources.AssetSet update = 2; // Remove operation: A resource name for the removed asset set is // expected, in this format: @@ -123,5 +123,5 @@ message MutateAssetSetResult { // The mutated asset set with only mutable fields after mutate. The field will // only be returned when response_content_type is set to "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.AssetSet asset_set = 2; + google.ads.googleads.v18.resources.AssetSet asset_set = 2; } diff --git a/google/ads/googleads/v15/services/audience_insights_service.proto b/google/ads/googleads/v18/services/audience_insights_service.proto similarity index 63% rename from google/ads/googleads/v15/services/audience_insights_service.proto rename to google/ads/googleads/v18/services/audience_insights_service.proto index f6d703038..e19167714 100644 --- a/google/ads/googleads/v15/services/audience_insights_service.proto +++ b/google/ads/googleads/v18/services/audience_insights_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/common/criteria.proto"; -import "google/ads/googleads/v15/common/dates.proto"; -import "google/ads/googleads/v15/enums/audience_insights_dimension.proto"; +import "google/ads/googleads/v18/common/criteria.proto"; +import "google/ads/googleads/v18/common/dates.proto"; +import "google/ads/googleads/v18/enums/audience_insights_dimension.proto"; +import "google/ads/googleads/v18/enums/audience_insights_marketing_objective.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AudienceInsightsServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the audience insights service. @@ -55,7 +56,7 @@ service AudienceInsightsService { rpc GenerateInsightsFinderReport(GenerateInsightsFinderReportRequest) returns (GenerateInsightsFinderReportResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}:generateInsightsFinderReport" + post: "/v18/customers/{customer_id=*}:generateInsightsFinderReport" body: "*" }; option (google.api.method_signature) = @@ -76,7 +77,7 @@ service AudienceInsightsService { rpc ListAudienceInsightsAttributes(ListAudienceInsightsAttributesRequest) returns (ListAudienceInsightsAttributesResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}:searchAudienceInsightsAttributes" + post: "/v18/customers/{customer_id=*}:searchAudienceInsightsAttributes" body: "*" }; option (google.api.method_signature) = "customer_id,dimensions,query_text"; @@ -96,7 +97,7 @@ service AudienceInsightsService { rpc ListInsightsEligibleDates(ListInsightsEligibleDatesRequest) returns (ListInsightsEligibleDatesResponse) { option (google.api.http) = { - post: "/v15/audienceInsights:listInsightsEligibleDates" + post: "/v18/audienceInsights:listInsightsEligibleDates" body: "*" }; } @@ -119,7 +120,7 @@ service AudienceInsightsService { GenerateAudienceCompositionInsightsRequest) returns (GenerateAudienceCompositionInsightsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}:generateAudienceCompositionInsights" + post: "/v18/customers/{customer_id=*}:generateAudienceCompositionInsights" body: "*" }; option (google.api.method_signature) = "customer_id,audience,dimensions"; @@ -142,15 +143,63 @@ service AudienceInsightsService { GenerateSuggestedTargetingInsightsRequest) returns (GenerateSuggestedTargetingInsightsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}:generateSuggestedTargetingInsights" + post: "/v18/customers/{customer_id=*}:generateSuggestedTargetingInsights" body: "*" }; - option (google.api.method_signature) = "customer_id,audience"; + } + + // Returns a collection of audience attributes along with estimates of the + // overlap between their potential YouTube reach and that of a given input + // attribute. + // + // List of thrown errors: + // [AudienceInsightsError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + rpc GenerateAudienceOverlapInsights(GenerateAudienceOverlapInsightsRequest) + returns (GenerateAudienceOverlapInsightsResponse) { + option (google.api.http) = { + post: "/v18/customers/{customer_id=*}:generateAudienceOverlapInsights" + body: "*" + }; + option (google.api.method_signature) = + "customer_id,country_location,primary_attribute,dimensions"; + } + + // Returns potential reach metrics for targetable audiences. + // + // This method helps answer questions like "How many Men aged 18+ interested + // in Camping can be reached on YouTube?" + // + // List of thrown errors: + // [AudienceInsightsError]() + // [AuthenticationError]() + // [AuthorizationError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + rpc GenerateTargetingSuggestionMetrics( + GenerateTargetingSuggestionMetricsRequest) + returns (GenerateTargetingSuggestionMetricsResponse) { + option (google.api.http) = { + post: "/v18/customers/{customer_id=*}:generateTargetingSuggestionMetrics" + body: "*" + }; + option (google.api.method_signature) = "customer_id,audiences"; } } // Request message for -// [AudienceInsightsService.GenerateInsightsFinderReport][google.ads.googleads.v15.services.AudienceInsightsService.GenerateInsightsFinderReport]. +// [AudienceInsightsService.GenerateInsightsFinderReport][google.ads.googleads.v18.services.AudienceInsightsService.GenerateInsightsFinderReport]. message GenerateInsightsFinderReportRequest { // Required. The ID of the customer. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -171,7 +220,7 @@ message GenerateInsightsFinderReportRequest { } // The response message for -// [AudienceInsightsService.GenerateInsightsFinderReport][google.ads.googleads.v15.services.AudienceInsightsService.GenerateInsightsFinderReport], +// [AudienceInsightsService.GenerateInsightsFinderReport][google.ads.googleads.v18.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 @@ -180,7 +229,7 @@ message GenerateInsightsFinderReportResponse { } // Request message for -// [AudienceInsightsService.GenerateAudienceCompositionInsights][google.ads.googleads.v15.services.AudienceInsightsService.GenerateAudienceCompositionInsights]. +// [AudienceInsightsService.GenerateAudienceCompositionInsights][google.ads.googleads.v18.services.AudienceInsightsService.GenerateAudienceCompositionInsights]. message GenerateAudienceCompositionInsightsRequest { // Required. The ID of the customer. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -199,7 +248,7 @@ message GenerateAudienceCompositionInsightsRequest { // Required. The audience dimensions for which composition insights should be // returned. - repeated google.ads.googleads.v15.enums.AudienceInsightsDimensionEnum + repeated google.ads.googleads.v18.enums.AudienceInsightsDimensionEnum .AudienceInsightsDimension dimensions = 4 [(google.api.field_behavior) = REQUIRED]; @@ -208,7 +257,7 @@ message GenerateAudienceCompositionInsightsRequest { } // Response message for -// [AudienceInsightsService.GenerateAudienceCompositionInsights][google.ads.googleads.v15.services.AudienceInsightsService.GenerateAudienceCompositionInsights]. +// [AudienceInsightsService.GenerateAudienceCompositionInsights][google.ads.googleads.v18.services.AudienceInsightsService.GenerateAudienceCompositionInsights]. message GenerateAudienceCompositionInsightsResponse { // The contents of the insights report, organized into sections. // Each section is associated with one of the AudienceInsightsDimension values @@ -217,31 +266,28 @@ message GenerateAudienceCompositionInsightsResponse { } // Request message for -// [AudienceInsightsService.GenerateSuggestedTargetingInsights][google.ads.googleads.v15.services.AudienceInsightsService.GenerateSuggestedTargetingInsights]. +// [AudienceInsightsService.GenerateSuggestedTargetingInsights][google.ads.googleads.v18.services.AudienceInsightsService.GenerateSuggestedTargetingInsights]. message GenerateSuggestedTargetingInsightsRequest { // Required. The ID of the customer. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. The audience of interest for which insights are being requested. - InsightsAudience audience = 2 [(google.api.field_behavior) = REQUIRED]; - - // Optional. The baseline audience. The default, if unspecified, is all - // people in the same country as the audience of interest. - InsightsAudience baseline_audience = 3 - [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The one-month range of historical data to use for insights, in - // the format "yyyy-mm". If unset, insights will be returned for the last - // thirty days of data. - string data_month = 4 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The name of the customer being planned for. This is a // user-defined value. string customer_insights_group = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The audience to get suggestions for. + oneof audience_input { + // Provide a seed audience to get suggestions for. + InsightsAudienceDefinition audience_definition = 6; + + // Provide a text description of an audience to get AI-generated targeting + // suggestions. This can take around 5 or more seconds to complete. + InsightsAudienceDescription audience_description = 7; + } } // Response message for -// [AudienceInsightsService.GenerateSuggestedTargetingInsights][google.ads.googleads.v15.services.AudienceInsightsService.GenerateSuggestedTargetingInsights]. +// [AudienceInsightsService.GenerateSuggestedTargetingInsights][google.ads.googleads.v18.services.AudienceInsightsService.GenerateSuggestedTargetingInsights]. message GenerateSuggestedTargetingInsightsResponse { // Suggested insights for targetable audiences. repeated TargetingSuggestionMetrics suggestions = 1; @@ -254,11 +300,14 @@ message TargetingSuggestionMetrics { repeated AudienceInsightsAttributeMetadata locations = 1; // Suggested age targeting; may be empty indicating no age targeting. - repeated google.ads.googleads.v15.common.AgeRangeInfo age_ranges = 2; + repeated google.ads.googleads.v18.common.AgeRangeInfo age_ranges = 2; // Suggested gender targeting. If present, this attribute has dimension // GENDER. - google.ads.googleads.v15.common.GenderInfo gender = 3; + google.ads.googleads.v18.common.GenderInfo gender = 3; + + // A Parental Status value (parent, or not a parent). + google.ads.googleads.v18.common.ParentalStatusInfo parental_status = 8; // Suggested audience segments to target. These attributes all have dimension // AFFINITY_USER_INTEREST or IN_MARKET_USER_INTEREST @@ -278,13 +327,13 @@ message TargetingSuggestionMetrics { } // Request message for -// [AudienceInsightsService.ListAudienceInsightsAttributes][google.ads.googleads.v15.services.AudienceInsightsService.ListAudienceInsightsAttributes]. +// [AudienceInsightsService.ListAudienceInsightsAttributes][google.ads.googleads.v18.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.v15.enums.AudienceInsightsDimensionEnum + repeated google.ads.googleads.v18.enums.AudienceInsightsDimensionEnum .AudienceInsightsDimension dimensions = 2 [(google.api.field_behavior) = REQUIRED]; @@ -303,23 +352,30 @@ message ListAudienceInsightsAttributesRequest { // will be located in these countries. If this field is absent, then location // attributes are not filtered by country. Setting this field when // SUB_COUNTRY_LOCATION attributes are not requested will return an error. - repeated google.ads.googleads.v15.common.LocationInfo + repeated google.ads.googleads.v18.common.LocationInfo location_country_filters = 5; + + // If present, potential YouTube reach estimates within the specified market + // will be returned for attributes for which they are available. Reach is + // only available for the AGE_RANGE, GENDER, AFFINITY_USER_INTEREST and + // IN_MARKET_USER_INTEREST dimensions, and may not be available for every + // attribute of those dimensions in every market. + google.ads.googleads.v18.common.LocationInfo youtube_reach_location = 6; } // Response message for -// [AudienceInsightsService.ListAudienceInsightsAttributes][google.ads.googleads.v15.services.AudienceInsightsService.ListAudienceInsightsAttributes]. +// [AudienceInsightsService.ListAudienceInsightsAttributes][google.ads.googleads.v18.services.AudienceInsightsService.ListAudienceInsightsAttributes]. message ListAudienceInsightsAttributesResponse { // The attributes matching the search query. repeated AudienceInsightsAttributeMetadata attributes = 1; } // Request message for -// [AudienceInsightsService.ListInsightsEligibleDates][google.ads.googleads.v15.services.AudienceInsightsService.ListInsightsEligibleDates]. +// [AudienceInsightsService.ListInsightsEligibleDates][google.ads.googleads.v18.services.AudienceInsightsService.ListInsightsEligibleDates]. message ListInsightsEligibleDatesRequest {} // Response message for -// [AudienceInsightsService.ListInsightsEligibleDates][google.ads.googleads.v15.services.AudienceInsightsService.ListInsightsEligibleDates]. +// [AudienceInsightsService.ListInsightsEligibleDates][google.ads.googleads.v18.services.AudienceInsightsService.ListInsightsEligibleDates]. message ListInsightsEligibleDatesResponse { // The months for which AudienceInsights data is currently // available, each represented as a string in the form "YYYY-MM". @@ -327,9 +383,96 @@ message ListInsightsEligibleDatesResponse { // The actual dates covered by the "last 30 days" date range that will be used // implicitly for - // [AudienceInsightsService.GenerateAudienceCompositionInsights][google.ads.googleads.v15.services.AudienceInsightsService.GenerateAudienceCompositionInsights] + // [AudienceInsightsService.GenerateAudienceCompositionInsights][google.ads.googleads.v18.services.AudienceInsightsService.GenerateAudienceCompositionInsights] // requests that have no data_month set. - google.ads.googleads.v15.common.DateRange last_thirty_days = 2; + google.ads.googleads.v18.common.DateRange last_thirty_days = 2; +} + +// Request message for +// [AudienceInsightsService.GenerateAudienceOverlapInsights][google.ads.googleads.v18.services.AudienceInsightsService.GenerateAudienceOverlapInsights]. +message GenerateAudienceOverlapInsightsRequest { + // Required. The ID of the customer. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The country in which to calculate the sizes and overlaps of + // audiences. + google.ads.googleads.v18.common.LocationInfo country_location = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The audience attribute that should be intersected with all other + // eligible audiences. This must be an Affinity or In-Market UserInterest, an + // AgeRange or a Gender. + AudienceInsightsAttribute primary_attribute = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The types of attributes of which to calculate the overlap with + // the primary_attribute. The values must be a subset of + // AFFINITY_USER_INTEREST, IN_MARKET_USER_INTEREST, AGE_RANGE and GENDER. + repeated google.ads.googleads.v18.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.GenerateAudienceOverlapInsights][google.ads.googleads.v18.services.AudienceInsightsService.GenerateAudienceOverlapInsights]. +message GenerateAudienceOverlapInsightsResponse { + // Metadata for the primary attribute, including potential YouTube reach. + AudienceInsightsAttributeMetadata primary_attribute_metadata = 1; + + // Lists of attributes and their overlap with the primary attribute, one list + // per requested dimension. + repeated DimensionOverlapResult dimension_results = 2; +} + +// A list of audience attributes of a single dimension, including their overlap +// with a primary attribute, returned as part of a +// [GenerateAudienceOverlapInsightsResponse][google.ads.googleads.v18.services.GenerateAudienceOverlapInsightsResponse]. +message DimensionOverlapResult { + // The dimension of all the attributes in this section. + google.ads.googleads.v18.enums.AudienceInsightsDimensionEnum + .AudienceInsightsDimension dimension = 1; + + // The attributes and their overlap with the primary attribute. + repeated AudienceOverlapItem items = 2; +} + +// An audience attribute, with metadata including the overlap between this +// attribute's potential YouTube reach and that of a primary attribute. +message AudienceOverlapItem { + // The attribute and its metadata, including potential YouTube reach. + AudienceInsightsAttributeMetadata attribute_metadata = 1; + + // The estimated size of the intersection of this audience attribute with the + // primary attribute, that is, the number of reachable YouTube users who match + // BOTH the primary attribute and this one. + int64 potential_youtube_reach_intersection = 2; +} + +// Request message for +// [AudienceInsightsService.GenerateTargetingSuggestionMetrics]. +message GenerateTargetingSuggestionMetricsRequest { + // Required. The ID of the customer. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Audiences to request metrics for. + repeated BasicInsightsAudience audiences = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. The name of the customer being planned for. This is a + // user-defined value. + string customer_insights_group = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [AudienceInsightsService.GenerateTargetingSuggestionMetrics][google.ads.googleads.v18.services.AudienceInsightsService.GenerateTargetingSuggestionMetrics]. +message GenerateTargetingSuggestionMetricsResponse { + // Suggested targetable audiences. There will be one suggestion for each + // [GenerateTargetingSuggestionMetricsRequest.audiences] requested, matching + // the order requested. + repeated TargetingSuggestionMetrics suggestions = 1; } // An audience attribute that can be used to request insights about the @@ -338,16 +481,16 @@ message AudienceInsightsAttribute { // An audience attribute. oneof attribute { // An audience attribute defined by an age range. - google.ads.googleads.v15.common.AgeRangeInfo age_range = 1; + google.ads.googleads.v18.common.AgeRangeInfo age_range = 1; // An audience attribute defined by a gender. - google.ads.googleads.v15.common.GenderInfo gender = 2; + google.ads.googleads.v18.common.GenderInfo gender = 2; // An audience attribute defined by a geographic location. - google.ads.googleads.v15.common.LocationInfo location = 3; + google.ads.googleads.v18.common.LocationInfo location = 3; // An Affinity or In-Market audience. - google.ads.googleads.v15.common.UserInterestInfo user_interest = 4; + google.ads.googleads.v18.common.UserInterestInfo user_interest = 4; // An audience attribute defined by interest in a topic represented by a // Knowledge Graph entity. @@ -361,13 +504,13 @@ message AudienceInsightsAttribute { AudienceInsightsDynamicLineup dynamic_lineup = 7; // A Parental Status value (parent, or not a parent). - google.ads.googleads.v15.common.ParentalStatusInfo parental_status = 8; + google.ads.googleads.v18.common.ParentalStatusInfo parental_status = 8; // A household income percentile range. - google.ads.googleads.v15.common.IncomeRangeInfo income_range = 9; + google.ads.googleads.v18.common.IncomeRangeInfo income_range = 9; // A YouTube channel. - google.ads.googleads.v15.common.YouTubeChannelInfo youtube_channel = 10; + google.ads.googleads.v18.common.YouTubeChannelInfo youtube_channel = 10; } } @@ -405,25 +548,25 @@ message AudienceInsightsDynamicLineup { // A description of an audience used for requesting insights. message BasicInsightsAudience { // Required. The countries for this audience. - repeated google.ads.googleads.v15.common.LocationInfo country_location = 1 + repeated google.ads.googleads.v18.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.v15.common.LocationInfo sub_country_locations = + repeated google.ads.googleads.v18.common.LocationInfo sub_country_locations = 2; // Gender for the audience. If absent, the audience does not restrict by // gender. - google.ads.googleads.v15.common.GenderInfo gender = 3; + google.ads.googleads.v18.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.v15.common.AgeRangeInfo age_ranges = 4; + repeated google.ads.googleads.v18.common.AgeRangeInfo age_ranges = 4; // User interests defining this audience. Affinity and In-Market audiences // are supported. - repeated google.ads.googleads.v15.common.UserInterestInfo user_interests = 5; + repeated google.ads.googleads.v18.common.UserInterestInfo user_interests = 5; // Topics, represented by Knowledge Graph entities and/or Product & Service // categories, that this audience is interested in. @@ -434,7 +577,7 @@ message BasicInsightsAudience { // search. message AudienceInsightsAttributeMetadata { // The type of the attribute. - google.ads.googleads.v15.enums.AudienceInsightsDimensionEnum + google.ads.googleads.v18.enums.AudienceInsightsDimensionEnum .AudienceInsightsDimension dimension = 1; // The attribute itself. @@ -443,9 +586,6 @@ message AudienceInsightsAttributeMetadata { // The human-readable name of the attribute. string display_name = 3; - // A relevance score for this attribute, between 0 and 1. - double score = 4; - // A string that supplements the display_name to identify the attribute. // If the dimension is TOPIC, this is a brief description of the // Knowledge Graph entity, such as "American singer-songwriter". @@ -454,6 +594,14 @@ message AudienceInsightsAttributeMetadata { // "/Apparel/Clothing/Outerwear". string display_info = 5; + // An estimate of the number of reachable YouTube users matching this + // attribute in the requested location, or zero if that information is not + // available for this attribute. Only populated in + // GenerateAudienceOverlapInsightsResponses and in + // ListAudienceInsightsAttributesResponses when youtube_reach_location is + // present in the request. + int64 potential_youtube_reach = 9; + // Metadata specific to the dimension of this attribute. oneof dimension_metadata { // Special metadata for a YouTube channel. @@ -464,6 +612,9 @@ message AudienceInsightsAttributeMetadata { // Special metadata for a Location. LocationAttributeMetadata location_attribute_metadata = 8; + + // Special metadata for a User Interest. + UserInterestAttributeMetadata user_interest_attribute_metadata = 10; } } @@ -478,7 +629,7 @@ message DynamicLineupAttributeMetadata { // A YouTube channel returned as an example of the content in a lineup. message SampleChannel { // A YouTube channel. - google.ads.googleads.v15.common.YouTubeChannelInfo youtube_channel = 1; + google.ads.googleads.v18.common.YouTubeChannelInfo youtube_channel = 1; // The name of the sample channel. string display_name = 2; @@ -488,7 +639,7 @@ message DynamicLineupAttributeMetadata { } // The national market associated with the lineup. - google.ads.googleads.v15.common.LocationInfo inventory_country = 1; + google.ads.googleads.v18.common.LocationInfo inventory_country = 1; // The median number of impressions per month on this lineup. optional int64 median_monthly_inventory = 2; @@ -506,37 +657,82 @@ message DynamicLineupAttributeMetadata { // Metadata associated with a Location attribute. message LocationAttributeMetadata { // The country location of the sub country location. - google.ads.googleads.v15.common.LocationInfo country_location = 1; + google.ads.googleads.v18.common.LocationInfo country_location = 1; +} + +// Metadata associated with a User Interest attribute. +message UserInterestAttributeMetadata { + // English language text description of the user interest category (200 + // characters max). + string user_interest_description = 1; +} + +// A structured definition of the audience of interest for which insights are +// being requested in AudienceInsightsService. +message InsightsAudienceDefinition { + // Required. The audience of interest for which insights are being requested. + InsightsAudience audience = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The baseline audience. The default, if unspecified, is all people + // in the same country as the audience of interest. + InsightsAudience baseline_audience = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The one-month range of historical data to use for insights, in + // the format "yyyy-mm". If unset, insights will be returned for the last + // thirty days of data. + string data_month = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// A text description of the audience of interest for which insights are being +// requested in AudienceInsightsService. +message InsightsAudienceDescription { + // Required. The countries for the audience. + repeated google.ads.googleads.v18.common.LocationInfo country_locations = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. An English language text description of an audience to get + // suggestions for. Maximum length is 2000 characters. For example, "Women in + // their 30s who love to travel". + string audience_description = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional marketing objective which will influence the type of + // suggestions produced. AWARENESS will provide affinity audience segments, + // while CONSIDERATION will provide in-market audience segments. Leaving it + // unset will provide both. + google.ads.googleads.v18.enums.AudienceInsightsMarketingObjectiveEnum + .AudienceInsightsMarketingObjective marketing_objective = 3 + [(google.api.field_behavior) = OPTIONAL]; } // 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.v15.common.LocationInfo country_locations = 1 + repeated google.ads.googleads.v18.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.v15.common.LocationInfo sub_country_locations = + repeated google.ads.googleads.v18.common.LocationInfo sub_country_locations = 2; // Gender for the audience. If absent, the audience does not restrict by // gender. - google.ads.googleads.v15.common.GenderInfo gender = 3; + google.ads.googleads.v18.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.v15.common.AgeRangeInfo age_ranges = 4; + repeated google.ads.googleads.v18.common.AgeRangeInfo age_ranges = 4; // Parental status for the audience. If absent, the audience does not // restrict by parental status. - google.ads.googleads.v15.common.ParentalStatusInfo parental_status = 5; + google.ads.googleads.v18.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.v15.common.IncomeRangeInfo income_ranges = 6; + repeated google.ads.googleads.v18.common.IncomeRangeInfo income_ranges = 6; // Dynamic lineups representing the YouTube content viewed by the audience. repeated AudienceInsightsDynamicLineup dynamic_lineups = 7; @@ -565,7 +761,7 @@ message InsightsAudienceAttributeGroup { // composition insights report. message AudienceCompositionSection { // The type of the attributes in this section. - google.ads.googleads.v15.enums.AudienceInsightsDimensionEnum + google.ads.googleads.v18.enums.AudienceInsightsDimensionEnum .AudienceInsightsDimension dimension = 1; // The most relevant segments for this audience. If dimension is GENDER, diff --git a/google/ads/googleads/v15/services/audience_service.proto b/google/ads/googleads/v18/services/audience_service.proto similarity index 81% rename from google/ads/googleads/v15/services/audience_service.proto rename to google/ads/googleads/v18/services/audience_service.proto index d2124824f..b84ec030d 100644 --- a/google/ads/googleads/v15/services/audience_service.proto +++ b/google/ads/googleads/v18/services/audience_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/audience.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/audience.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "AudienceServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Audience service. @@ -48,7 +48,7 @@ service AudienceService { rpc MutateAudiences(MutateAudiencesRequest) returns (MutateAudiencesResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/audiences:mutate" + post: "/v18/customers/{customer_id=*}/audiences:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -56,7 +56,7 @@ service AudienceService { } // Request message for -// [AudienceService.MutateAudiences][google.ads.googleads.v15.services.AudienceService.MutateAudiences]. +// [AudienceService.MutateAudiences][google.ads.googleads.v18.services.AudienceService.MutateAudiences]. message MutateAudiencesRequest { // Required. The ID of the customer whose audiences are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -76,7 +76,7 @@ message MutateAudiencesRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -100,11 +100,11 @@ message AudienceOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new audience - google.ads.googleads.v15.resources.Audience create = 1; + google.ads.googleads.v18.resources.Audience create = 1; // Update operation: The audience is expected to have a valid resource // name. - google.ads.googleads.v15.resources.Audience update = 2; + google.ads.googleads.v18.resources.Audience update = 2; } } @@ -118,5 +118,5 @@ message MutateAudienceResult { // The mutated Audience with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.Audience audience = 2; + google.ads.googleads.v18.resources.Audience audience = 2; } diff --git a/google/ads/googleads/v15/services/batch_job_service.proto b/google/ads/googleads/v18/services/batch_job_service.proto similarity index 86% rename from google/ads/googleads/v15/services/batch_job_service.proto rename to google/ads/googleads/v18/services/batch_job_service.proto index 0d5f38da6..dbf1a91bb 100644 --- a/google/ads/googleads/v15/services/batch_job_service.proto +++ b/google/ads/googleads/v18/services/batch_job_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,11 +14,11 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/batch_job.proto"; -import "google/ads/googleads/v15/services/google_ads_service.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/batch_job.proto"; +import "google/ads/googleads/v18/services/google_ads_service.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -27,14 +27,14 @@ import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "BatchJobServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the BatchJobService. @@ -55,7 +55,7 @@ service BatchJobService { // [ResourceCountLimitExceededError]() rpc MutateBatchJob(MutateBatchJobRequest) returns (MutateBatchJobResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/batchJobs:mutate" + post: "/v18/customers/{customer_id=*}/batchJobs:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operation"; @@ -75,7 +75,7 @@ service BatchJobService { rpc ListBatchJobResults(ListBatchJobResultsRequest) returns (ListBatchJobResultsResponse) { option (google.api.http) = { - get: "/v15/{resource_name=customers/*/batchJobs/*}:listResults" + get: "/v18/{resource_name=customers/*/batchJobs/*}:listResults" }; option (google.api.method_signature) = "resource_name"; } @@ -96,13 +96,13 @@ service BatchJobService { // [RequestError]() rpc RunBatchJob(RunBatchJobRequest) returns (google.longrunning.Operation) { option (google.api.http) = { - post: "/v15/{resource_name=customers/*/batchJobs/*}:run" + post: "/v18/{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.v15.resources.BatchJob.BatchJobMetadata" + metadata_type: "google.ads.googleads.v18.resources.BatchJob.BatchJobMetadata" }; } @@ -120,7 +120,7 @@ service BatchJobService { rpc AddBatchJobOperations(AddBatchJobOperationsRequest) returns (AddBatchJobOperationsResponse) { option (google.api.http) = { - post: "/v15/{resource_name=customers/*/batchJobs/*}:addOperations" + post: "/v18/{resource_name=customers/*/batchJobs/*}:addOperations" body: "*" }; option (google.api.method_signature) = @@ -130,7 +130,7 @@ service BatchJobService { } // Request message for -// [BatchJobService.MutateBatchJob][google.ads.googleads.v15.services.BatchJobService.MutateBatchJob]. +// [BatchJobService.MutateBatchJob][google.ads.googleads.v18.services.BatchJobService.MutateBatchJob]. message MutateBatchJobRequest { // Required. The ID of the customer for which to create a batch job. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -144,7 +144,7 @@ message BatchJobOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new batch job. - google.ads.googleads.v15.resources.BatchJob create = 1; + google.ads.googleads.v18.resources.BatchJob create = 1; // Remove operation: The batch job must not have been run. A resource name // for the removed batch job is expected, in this format: @@ -157,7 +157,7 @@ message BatchJobOperation { } // Response message for -// [BatchJobService.MutateBatchJob][google.ads.googleads.v15.services.BatchJobService.MutateBatchJob]. +// [BatchJobService.MutateBatchJob][google.ads.googleads.v18.services.BatchJobService.MutateBatchJob]. message MutateBatchJobResponse { // The result for the mutate. MutateBatchJobResult result = 1; @@ -172,7 +172,7 @@ message MutateBatchJobResult { } // Request message for -// [BatchJobService.RunBatchJob][google.ads.googleads.v15.services.BatchJobService.RunBatchJob]. +// [BatchJobService.RunBatchJob][google.ads.googleads.v18.services.BatchJobService.RunBatchJob]. message RunBatchJobRequest { // Required. The resource name of the BatchJob to run. string resource_name = 1 [ @@ -184,7 +184,7 @@ message RunBatchJobRequest { } // Request message for -// [BatchJobService.AddBatchJobOperations][google.ads.googleads.v15.services.BatchJobService.AddBatchJobOperations]. +// [BatchJobService.AddBatchJobOperations][google.ads.googleads.v18.services.BatchJobService.AddBatchJobOperations]. message AddBatchJobOperationsRequest { // Required. The resource name of the batch job. string resource_name = 1 [ @@ -216,7 +216,7 @@ message AddBatchJobOperationsRequest { } // Response message for -// [BatchJobService.AddBatchJobOperations][google.ads.googleads.v15.services.BatchJobService.AddBatchJobOperations]. +// [BatchJobService.AddBatchJobOperations][google.ads.googleads.v18.services.BatchJobService.AddBatchJobOperations]. message AddBatchJobOperationsResponse { // The total number of operations added so far for this batch job. int64 total_operations = 1; @@ -228,7 +228,7 @@ message AddBatchJobOperationsResponse { } // Request message for -// [BatchJobService.ListBatchJobResults][google.ads.googleads.v15.services.BatchJobService.ListBatchJobResults]. +// [BatchJobService.ListBatchJobResults][google.ads.googleads.v18.services.BatchJobService.ListBatchJobResults]. message ListBatchJobResultsRequest { // Required. The resource name of the batch job whose results are being // listed. @@ -252,12 +252,12 @@ message ListBatchJobResultsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; } // Response message for -// [BatchJobService.ListBatchJobResults][google.ads.googleads.v15.services.BatchJobService.ListBatchJobResults]. +// [BatchJobService.ListBatchJobResults][google.ads.googleads.v18.services.BatchJobService.ListBatchJobResults]. message ListBatchJobResultsResponse { // The list of rows that matched the query. repeated BatchJobResult results = 1; diff --git a/google/ads/googleads/v15/services/bidding_data_exclusion_service.proto b/google/ads/googleads/v18/services/bidding_data_exclusion_service.proto similarity index 83% rename from google/ads/googleads/v15/services/bidding_data_exclusion_service.proto rename to google/ads/googleads/v18/services/bidding_data_exclusion_service.proto index 2955fdd2d..3f5c0aafd 100644 --- a/google/ads/googleads/v15/services/bidding_data_exclusion_service.proto +++ b/google/ads/googleads/v18/services/bidding_data_exclusion_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/bidding_data_exclusion.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/bidding_data_exclusion.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "BiddingDataExclusionServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Service to manage bidding data exclusions. service BiddingDataExclusionService { @@ -44,7 +44,7 @@ service BiddingDataExclusionService { rpc MutateBiddingDataExclusions(MutateBiddingDataExclusionsRequest) returns (MutateBiddingDataExclusionsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/biddingDataExclusions:mutate" + post: "/v18/customers/{customer_id=*}/biddingDataExclusions:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -52,7 +52,7 @@ service BiddingDataExclusionService { } // Request message for -// [BiddingDataExclusionService.MutateBiddingDataExclusions][google.ads.googleads.v15.services.BiddingDataExclusionService.MutateBiddingDataExclusions]. +// [BiddingDataExclusionService.MutateBiddingDataExclusions][google.ads.googleads.v18.services.BiddingDataExclusionService.MutateBiddingDataExclusions]. message MutateBiddingDataExclusionsRequest { // Required. ID of the customer whose data exclusions are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -73,7 +73,7 @@ message MutateBiddingDataExclusionsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -86,11 +86,11 @@ message BiddingDataExclusionOperation { oneof operation { // Create operation: No resource name is expected for the new data // exclusion. - google.ads.googleads.v15.resources.BiddingDataExclusion create = 1; + google.ads.googleads.v18.resources.BiddingDataExclusion create = 1; // Update operation: The data exclusion is expected to have a valid // resource name. - google.ads.googleads.v15.resources.BiddingDataExclusion update = 2; + google.ads.googleads.v18.resources.BiddingDataExclusion update = 2; // Remove operation: A resource name for the removed data exclusion // is expected, in this format: @@ -124,6 +124,6 @@ message MutateBiddingDataExclusionsResult { // The mutated bidding data exclusion with only mutable fields after mutate. // The field will only be returned when response_content_type is set // to "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.BiddingDataExclusion + google.ads.googleads.v18.resources.BiddingDataExclusion bidding_data_exclusion = 2; } diff --git a/google/ads/googleads/v15/services/bidding_seasonality_adjustment_service.proto b/google/ads/googleads/v18/services/bidding_seasonality_adjustment_service.proto similarity index 84% rename from google/ads/googleads/v15/services/bidding_seasonality_adjustment_service.proto rename to google/ads/googleads/v18/services/bidding_seasonality_adjustment_service.proto index be5835b8f..0d47dcf7e 100644 --- a/google/ads/googleads/v15/services/bidding_seasonality_adjustment_service.proto +++ b/google/ads/googleads/v18/services/bidding_seasonality_adjustment_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/bidding_seasonality_adjustment.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/bidding_seasonality_adjustment.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "BiddingSeasonalityAdjustmentServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Service to manage bidding seasonality adjustments. service BiddingSeasonalityAdjustmentService { @@ -45,7 +45,7 @@ service BiddingSeasonalityAdjustmentService { MutateBiddingSeasonalityAdjustmentsRequest) returns (MutateBiddingSeasonalityAdjustmentsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/biddingSeasonalityAdjustments:mutate" + post: "/v18/customers/{customer_id=*}/biddingSeasonalityAdjustments:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -53,7 +53,7 @@ service BiddingSeasonalityAdjustmentService { } // Request message for -// [BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments][google.ads.googleads.v15.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments]. +// [BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments][google.ads.googleads.v18.services.BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments]. message MutateBiddingSeasonalityAdjustmentsRequest { // Required. ID of the customer whose seasonality adjustments are being // modified. @@ -76,7 +76,7 @@ message MutateBiddingSeasonalityAdjustmentsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -89,11 +89,11 @@ message BiddingSeasonalityAdjustmentOperation { oneof operation { // Create operation: No resource name is expected for the new seasonality // adjustment. - google.ads.googleads.v15.resources.BiddingSeasonalityAdjustment create = 1; + google.ads.googleads.v18.resources.BiddingSeasonalityAdjustment create = 1; // Update operation: The seasonality adjustment is expected to have a valid // resource name. - google.ads.googleads.v15.resources.BiddingSeasonalityAdjustment update = 2; + google.ads.googleads.v18.resources.BiddingSeasonalityAdjustment update = 2; // Remove operation: A resource name for the removed seasonality adjustment // is expected, in this format: @@ -127,6 +127,6 @@ message MutateBiddingSeasonalityAdjustmentsResult { // The mutated bidding seasonality adjustment with only mutable fields after // mutate. The field will only be returned when response_content_type is set // to "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.BiddingSeasonalityAdjustment + google.ads.googleads.v18.resources.BiddingSeasonalityAdjustment bidding_seasonality_adjustment = 2; } diff --git a/google/ads/googleads/v15/services/bidding_strategy_service.proto b/google/ads/googleads/v18/services/bidding_strategy_service.proto similarity index 85% rename from google/ads/googleads/v15/services/bidding_strategy_service.proto rename to google/ads/googleads/v18/services/bidding_strategy_service.proto index ddea8c5a7..c1d062d84 100644 --- a/google/ads/googleads/v15/services/bidding_strategy_service.proto +++ b/google/ads/googleads/v18/services/bidding_strategy_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/bidding_strategy.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/bidding_strategy.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "BiddingStrategyServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Bidding Strategy service. @@ -74,7 +74,7 @@ service BiddingStrategyService { rpc MutateBiddingStrategies(MutateBiddingStrategiesRequest) returns (MutateBiddingStrategiesResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/biddingStrategies:mutate" + post: "/v18/customers/{customer_id=*}/biddingStrategies:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -82,7 +82,7 @@ service BiddingStrategyService { } // Request message for -// [BiddingStrategyService.MutateBiddingStrategies][google.ads.googleads.v15.services.BiddingStrategyService.MutateBiddingStrategies]. +// [BiddingStrategyService.MutateBiddingStrategies][google.ads.googleads.v18.services.BiddingStrategyService.MutateBiddingStrategies]. message MutateBiddingStrategiesRequest { // Required. The ID of the customer whose bidding strategies are being // modified. @@ -105,7 +105,7 @@ message MutateBiddingStrategiesRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -118,11 +118,11 @@ message BiddingStrategyOperation { oneof operation { // Create operation: No resource name is expected for the new bidding // strategy. - google.ads.googleads.v15.resources.BiddingStrategy create = 1; + google.ads.googleads.v18.resources.BiddingStrategy create = 1; // Update operation: The bidding strategy is expected to have a valid // resource name. - google.ads.googleads.v15.resources.BiddingStrategy update = 2; + google.ads.googleads.v18.resources.BiddingStrategy update = 2; // Remove operation: A resource name for the removed bidding strategy is // expected, in this format: @@ -156,5 +156,5 @@ message MutateBiddingStrategyResult { // The mutated bidding strategy with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.BiddingStrategy bidding_strategy = 2; + google.ads.googleads.v18.resources.BiddingStrategy bidding_strategy = 2; } diff --git a/google/ads/googleads/v15/services/billing_setup_service.proto b/google/ads/googleads/v18/services/billing_setup_service.proto similarity index 87% rename from google/ads/googleads/v15/services/billing_setup_service.proto rename to google/ads/googleads/v18/services/billing_setup_service.proto index e6066d85e..3ec28ffdb 100644 --- a/google/ads/googleads/v15/services/billing_setup_service.proto +++ b/google/ads/googleads/v18/services/billing_setup_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/billing_setup.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "BillingSetupServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the BillingSetup service. @@ -62,7 +62,7 @@ service BillingSetupService { rpc MutateBillingSetup(MutateBillingSetupRequest) returns (MutateBillingSetupResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/billingSetups:mutate" + post: "/v18/customers/{customer_id=*}/billingSetups:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operation"; @@ -87,7 +87,7 @@ message BillingSetupOperation { oneof operation { // Creates a billing setup. No resource name is expected for the new billing // setup. - google.ads.googleads.v15.resources.BillingSetup create = 2; + google.ads.googleads.v18.resources.BillingSetup create = 2; // Resource name of the billing setup to remove. A setup cannot be // removed unless it is in a pending state or its scheduled start time is in diff --git a/google/ads/googleads/v15/services/brand_suggestion_service.proto b/google/ads/googleads/v18/services/brand_suggestion_service.proto similarity index 80% rename from google/ads/googleads/v15/services/brand_suggestion_service.proto rename to google/ads/googleads/v18/services/brand_suggestion_service.proto index 663404e52..502fd9f21 100644 --- a/google/ads/googleads/v15/services/brand_suggestion_service.proto +++ b/google/ads/googleads/v18/services/brand_suggestion_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/brand_state.proto"; +import "google/ads/googleads/v18/enums/brand_state.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "BrandSuggestionServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the MerchantCenterLink service. @@ -41,7 +41,7 @@ service BrandSuggestionService { // customer. rpc SuggestBrands(SuggestBrandsRequest) returns (SuggestBrandsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}:suggestBrands" + post: "/v18/customers/{customer_id=*}:suggestBrands" body: "*" }; option (google.api.method_signature) = "customer_id,brand_prefix"; @@ -49,7 +49,7 @@ service BrandSuggestionService { } // Request message for -// [BrandSuggestionService.SuggestBrands][google.ads.googleads.v15.services.BrandSuggestionService.SuggestBrands]. +// [BrandSuggestionService.SuggestBrands][google.ads.googleads.v18.services.BrandSuggestionService.SuggestBrands]. message SuggestBrandsRequest { // Required. The ID of the customer onto which to apply the brand suggestion // operation. @@ -64,7 +64,7 @@ message SuggestBrandsRequest { } // Response message for -// [BrandSuggestionService.SuggestBrands][google.ads.googleads.v15.services.BrandSuggestionService.SuggestBrands]. +// [BrandSuggestionService.SuggestBrands][google.ads.googleads.v18.services.BrandSuggestionService.SuggestBrands]. message SuggestBrandsResponse { // Generated brand suggestions of verified brands for the given prefix. repeated BrandSuggestion brands = 1; @@ -82,5 +82,5 @@ message BrandSuggestion { repeated string urls = 3; // Current state of the brand. - google.ads.googleads.v15.enums.BrandStateEnum.BrandState state = 4; + google.ads.googleads.v18.enums.BrandStateEnum.BrandState state = 4; } diff --git a/google/ads/googleads/v15/services/campaign_asset_service.proto b/google/ads/googleads/v18/services/campaign_asset_service.proto similarity index 84% rename from google/ads/googleads/v15/services/campaign_asset_service.proto rename to google/ads/googleads/v18/services/campaign_asset_service.proto index f5c54f01d..6755d60c6 100644 --- a/google/ads/googleads/v15/services/campaign_asset_service.proto +++ b/google/ads/googleads/v18/services/campaign_asset_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/campaign_asset.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/campaign_asset.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignAssetServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the CampaignAsset service. @@ -60,7 +60,7 @@ service CampaignAssetService { rpc MutateCampaignAssets(MutateCampaignAssetsRequest) returns (MutateCampaignAssetsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/campaignAssets:mutate" + post: "/v18/customers/{customer_id=*}/campaignAssets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -68,7 +68,7 @@ service CampaignAssetService { } // Request message for -// [CampaignAssetService.MutateCampaignAssets][google.ads.googleads.v15.services.CampaignAssetService.MutateCampaignAssets]. +// [CampaignAssetService.MutateCampaignAssets][google.ads.googleads.v18.services.CampaignAssetService.MutateCampaignAssets]. message MutateCampaignAssetsRequest { // Required. The ID of the customer whose campaign assets are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -89,7 +89,7 @@ message MutateCampaignAssetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -102,11 +102,11 @@ message CampaignAssetOperation { oneof operation { // Create operation: No resource name is expected for the new campaign // asset. - google.ads.googleads.v15.resources.CampaignAsset create = 1; + google.ads.googleads.v18.resources.CampaignAsset create = 1; // Update operation: The campaign asset is expected to have a valid resource // name. - google.ads.googleads.v15.resources.CampaignAsset update = 3; + google.ads.googleads.v18.resources.CampaignAsset update = 3; // Remove operation: A resource name for the removed campaign asset is // expected, in this format: @@ -140,5 +140,5 @@ message MutateCampaignAssetResult { // The mutated campaign asset with only mutable fields after // mutate. The field will only be returned when response_content_type is set // to "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.CampaignAsset campaign_asset = 2; + google.ads.googleads.v18.resources.CampaignAsset campaign_asset = 2; } diff --git a/google/ads/googleads/v15/services/campaign_asset_set_service.proto b/google/ads/googleads/v18/services/campaign_asset_set_service.proto similarity index 83% rename from google/ads/googleads/v15/services/campaign_asset_set_service.proto rename to google/ads/googleads/v18/services/campaign_asset_set_service.proto index c2b292786..1485d6793 100644 --- a/google/ads/googleads/v15/services/campaign_asset_set_service.proto +++ b/google/ads/googleads/v18/services/campaign_asset_set_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/campaign_asset_set.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignAssetSetServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the CampaignAssetSet service. @@ -45,7 +45,7 @@ service CampaignAssetSetService { rpc MutateCampaignAssetSets(MutateCampaignAssetSetsRequest) returns (MutateCampaignAssetSetsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/campaignAssetSets:mutate" + post: "/v18/customers/{customer_id=*}/campaignAssetSets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -53,7 +53,7 @@ service CampaignAssetSetService { } // Request message for -// [CampaignAssetSetService.MutateCampaignAssetSets][google.ads.googleads.v15.services.CampaignAssetSetService.MutateCampaignAssetSets]. +// [CampaignAssetSetService.MutateCampaignAssetSets][google.ads.googleads.v18.services.CampaignAssetSetService.MutateCampaignAssetSets]. message MutateCampaignAssetSetsRequest { // Required. The ID of the customer whose campaign asset sets are being // modified. @@ -76,7 +76,7 @@ message MutateCampaignAssetSetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -86,7 +86,7 @@ message CampaignAssetSetOperation { oneof operation { // Create operation: No resource name is expected for the new campaign asset // set. - google.ads.googleads.v15.resources.CampaignAssetSet create = 1; + google.ads.googleads.v18.resources.CampaignAssetSet create = 1; // Remove operation: A resource name for the removed campaign asset set is // expected, in this format: @@ -119,5 +119,5 @@ message MutateCampaignAssetSetResult { // The mutated campaign asset set with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.CampaignAssetSet campaign_asset_set = 2; + google.ads.googleads.v18.resources.CampaignAssetSet campaign_asset_set = 2; } diff --git a/google/ads/googleads/v15/services/campaign_bid_modifier_service.proto b/google/ads/googleads/v18/services/campaign_bid_modifier_service.proto similarity index 85% rename from google/ads/googleads/v15/services/campaign_bid_modifier_service.proto rename to google/ads/googleads/v18/services/campaign_bid_modifier_service.proto index 88dab7c43..008734073 100644 --- a/google/ads/googleads/v15/services/campaign_bid_modifier_service.proto +++ b/google/ads/googleads/v18/services/campaign_bid_modifier_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/campaign_bid_modifier.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/campaign_bid_modifier.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignBidModifierServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Campaign Bid Modifier service. @@ -70,7 +70,7 @@ service CampaignBidModifierService { rpc MutateCampaignBidModifiers(MutateCampaignBidModifiersRequest) returns (MutateCampaignBidModifiersResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/campaignBidModifiers:mutate" + post: "/v18/customers/{customer_id=*}/campaignBidModifiers:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -78,7 +78,7 @@ service CampaignBidModifierService { } // Request message for -// [CampaignBidModifierService.MutateCampaignBidModifiers][google.ads.googleads.v15.services.CampaignBidModifierService.MutateCampaignBidModifiers]. +// [CampaignBidModifierService.MutateCampaignBidModifiers][google.ads.googleads.v18.services.CampaignBidModifierService.MutateCampaignBidModifiers]. message MutateCampaignBidModifiersRequest { // Required. ID of the customer whose campaign bid modifiers are being // modified. @@ -101,7 +101,7 @@ message MutateCampaignBidModifiersRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -114,11 +114,11 @@ message CampaignBidModifierOperation { oneof operation { // Create operation: No resource name is expected for the new campaign bid // modifier. - google.ads.googleads.v15.resources.CampaignBidModifier create = 1; + google.ads.googleads.v18.resources.CampaignBidModifier create = 1; // Update operation: The campaign bid modifier is expected to have a valid // resource name. - google.ads.googleads.v15.resources.CampaignBidModifier update = 2; + google.ads.googleads.v18.resources.CampaignBidModifier update = 2; // Remove operation: A resource name for the removed campaign bid modifier // is expected, in this format: @@ -152,6 +152,6 @@ message MutateCampaignBidModifierResult { // The mutated campaign bid modifier with only mutable fields after mutate. // The field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.CampaignBidModifier campaign_bid_modifier = + google.ads.googleads.v18.resources.CampaignBidModifier campaign_bid_modifier = 2; } diff --git a/google/ads/googleads/v15/services/campaign_budget_service.proto b/google/ads/googleads/v18/services/campaign_budget_service.proto similarity index 84% rename from google/ads/googleads/v15/services/campaign_budget_service.proto rename to google/ads/googleads/v18/services/campaign_budget_service.proto index e6165cba7..b1b0d1e21 100644 --- a/google/ads/googleads/v15/services/campaign_budget_service.proto +++ b/google/ads/googleads/v18/services/campaign_budget_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/campaign_budget.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/campaign_budget.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignBudgetServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Campaign Budget service. @@ -65,7 +65,7 @@ service CampaignBudgetService { rpc MutateCampaignBudgets(MutateCampaignBudgetsRequest) returns (MutateCampaignBudgetsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/campaignBudgets:mutate" + post: "/v18/customers/{customer_id=*}/campaignBudgets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -73,7 +73,7 @@ service CampaignBudgetService { } // Request message for -// [CampaignBudgetService.MutateCampaignBudgets][google.ads.googleads.v15.services.CampaignBudgetService.MutateCampaignBudgets]. +// [CampaignBudgetService.MutateCampaignBudgets][google.ads.googleads.v18.services.CampaignBudgetService.MutateCampaignBudgets]. message MutateCampaignBudgetsRequest { // Required. The ID of the customer whose campaign budgets are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -94,7 +94,7 @@ message MutateCampaignBudgetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -106,11 +106,11 @@ message CampaignBudgetOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new budget. - google.ads.googleads.v15.resources.CampaignBudget create = 1; + google.ads.googleads.v18.resources.CampaignBudget create = 1; // Update operation: The campaign budget is expected to have a valid // resource name. - google.ads.googleads.v15.resources.CampaignBudget update = 2; + google.ads.googleads.v18.resources.CampaignBudget update = 2; // Remove operation: A resource name for the removed budget is expected, in // this format: @@ -144,5 +144,5 @@ message MutateCampaignBudgetResult { // The mutated campaign budget with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.CampaignBudget campaign_budget = 2; + google.ads.googleads.v18.resources.CampaignBudget campaign_budget = 2; } diff --git a/google/ads/googleads/v15/services/campaign_conversion_goal_service.proto b/google/ads/googleads/v18/services/campaign_conversion_goal_service.proto similarity index 83% rename from google/ads/googleads/v15/services/campaign_conversion_goal_service.proto rename to google/ads/googleads/v18/services/campaign_conversion_goal_service.proto index 42a9a615c..5fc112fa5 100644 --- a/google/ads/googleads/v15/services/campaign_conversion_goal_service.proto +++ b/google/ads/googleads/v18/services/campaign_conversion_goal_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/campaign_conversion_goal.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignConversionGoalServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the CampaignConversionGoal service. @@ -44,7 +44,7 @@ service CampaignConversionGoalService { rpc MutateCampaignConversionGoals(MutateCampaignConversionGoalsRequest) returns (MutateCampaignConversionGoalsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/campaignConversionGoals:mutate" + post: "/v18/customers/{customer_id=*}/campaignConversionGoals:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -52,7 +52,7 @@ service CampaignConversionGoalService { } // Request message for -// [CampaignConversionGoalService.MutateCampaignConversionGoals][google.ads.googleads.v15.services.CampaignConversionGoalService.MutateCampaignConversionGoals]. +// [CampaignConversionGoalService.MutateCampaignConversionGoals][google.ads.googleads.v18.services.CampaignConversionGoalService.MutateCampaignConversionGoals]. message MutateCampaignConversionGoalsRequest { // Required. The ID of the customer whose campaign conversion goals are being // modified. @@ -77,7 +77,7 @@ message CampaignConversionGoalOperation { oneof operation { // Update operation: The customer conversion goal is expected to have a // valid resource name. - google.ads.googleads.v15.resources.CampaignConversionGoal update = 1; + google.ads.googleads.v18.resources.CampaignConversionGoal update = 1; } } diff --git a/google/ads/googleads/v15/services/campaign_criterion_service.proto b/google/ads/googleads/v18/services/campaign_criterion_service.proto similarity index 85% rename from google/ads/googleads/v15/services/campaign_criterion_service.proto rename to google/ads/googleads/v18/services/campaign_criterion_service.proto index faca7b9f9..57e1efba7 100644 --- a/google/ads/googleads/v15/services/campaign_criterion_service.proto +++ b/google/ads/googleads/v18/services/campaign_criterion_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/campaign_criterion.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/campaign_criterion.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignCriterionServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Campaign Criterion service. @@ -76,7 +76,7 @@ service CampaignCriterionService { rpc MutateCampaignCriteria(MutateCampaignCriteriaRequest) returns (MutateCampaignCriteriaResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/campaignCriteria:mutate" + post: "/v18/customers/{customer_id=*}/campaignCriteria:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -84,7 +84,7 @@ service CampaignCriterionService { } // Request message for -// [CampaignCriterionService.MutateCampaignCriteria][google.ads.googleads.v15.services.CampaignCriterionService.MutateCampaignCriteria]. +// [CampaignCriterionService.MutateCampaignCriteria][google.ads.googleads.v18.services.CampaignCriterionService.MutateCampaignCriteria]. message MutateCampaignCriteriaRequest { // Required. The ID of the customer whose criteria are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -105,7 +105,7 @@ message MutateCampaignCriteriaRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -117,11 +117,11 @@ message CampaignCriterionOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new criterion. - google.ads.googleads.v15.resources.CampaignCriterion create = 1; + google.ads.googleads.v18.resources.CampaignCriterion create = 1; // Update operation: The criterion is expected to have a valid resource // name. - google.ads.googleads.v15.resources.CampaignCriterion update = 2; + google.ads.googleads.v18.resources.CampaignCriterion update = 2; // Remove operation: A resource name for the removed criterion is expected, // in this format: @@ -155,5 +155,5 @@ message MutateCampaignCriterionResult { // The mutated campaign criterion with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.CampaignCriterion campaign_criterion = 2; + google.ads.googleads.v18.resources.CampaignCriterion campaign_criterion = 2; } diff --git a/google/ads/googleads/v15/services/campaign_customizer_service.proto b/google/ads/googleads/v18/services/campaign_customizer_service.proto similarity index 84% rename from google/ads/googleads/v15/services/campaign_customizer_service.proto rename to google/ads/googleads/v18/services/campaign_customizer_service.proto index e5b9fefd3..6f19cd45b 100644 --- a/google/ads/googleads/v15/services/campaign_customizer_service.proto +++ b/google/ads/googleads/v18/services/campaign_customizer_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/campaign_customizer.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignCustomizerServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the CampaignCustomizer service. @@ -45,7 +45,7 @@ service CampaignCustomizerService { rpc MutateCampaignCustomizers(MutateCampaignCustomizersRequest) returns (MutateCampaignCustomizersResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/campaignCustomizers:mutate" + post: "/v18/customers/{customer_id=*}/campaignCustomizers:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -53,7 +53,7 @@ service CampaignCustomizerService { } // Request message for -// [CampaignCustomizerService.MutateCampaignCustomizers][google.ads.googleads.v15.services.CampaignCustomizerService.MutateCampaignCustomizers]. +// [CampaignCustomizerService.MutateCampaignCustomizers][google.ads.googleads.v18.services.CampaignCustomizerService.MutateCampaignCustomizers]. message MutateCampaignCustomizersRequest { // Required. The ID of the customer whose campaign customizers are being // modified. @@ -76,7 +76,7 @@ message MutateCampaignCustomizersRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -86,7 +86,7 @@ message CampaignCustomizerOperation { oneof operation { // Create operation: No resource name is expected for the new campaign // customizer - google.ads.googleads.v15.resources.CampaignCustomizer create = 1; + google.ads.googleads.v18.resources.CampaignCustomizer create = 1; // Remove operation: A resource name for the removed campaign customizer is // expected, in this format: @@ -119,5 +119,5 @@ message MutateCampaignCustomizerResult { // The mutated CampaignCustomizer with only mutable fields after mutate. // The field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.CampaignCustomizer campaign_customizer = 2; + google.ads.googleads.v18.resources.CampaignCustomizer campaign_customizer = 2; } diff --git a/google/ads/googleads/v15/services/campaign_draft_service.proto b/google/ads/googleads/v18/services/campaign_draft_service.proto similarity index 86% rename from google/ads/googleads/v15/services/campaign_draft_service.proto rename to google/ads/googleads/v18/services/campaign_draft_service.proto index 1f4f89b53..166292442 100644 --- a/google/ads/googleads/v15/services/campaign_draft_service.proto +++ b/google/ads/googleads/v18/services/campaign_draft_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/campaign_draft.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/campaign_draft.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -27,14 +27,14 @@ import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignDraftServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Campaign Draft service. @@ -60,7 +60,7 @@ service CampaignDraftService { rpc MutateCampaignDrafts(MutateCampaignDraftsRequest) returns (MutateCampaignDraftsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/campaignDrafts:mutate" + post: "/v18/customers/{customer_id=*}/campaignDrafts:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -73,7 +73,7 @@ service CampaignDraftService { // is done. Only a done status is returned in the response. See the status // in the Campaign Draft resource to determine if the promotion was // successful. If the LRO failed, use - // [CampaignDraftService.ListCampaignDraftAsyncErrors][google.ads.googleads.v15.services.CampaignDraftService.ListCampaignDraftAsyncErrors] + // [CampaignDraftService.ListCampaignDraftAsyncErrors][google.ads.googleads.v18.services.CampaignDraftService.ListCampaignDraftAsyncErrors] // to view the list of error reasons. // // List of thrown errors: @@ -87,7 +87,7 @@ service CampaignDraftService { rpc PromoteCampaignDraft(PromoteCampaignDraftRequest) returns (google.longrunning.Operation) { option (google.api.http) = { - post: "/v15/{campaign_draft=customers/*/campaignDrafts/*}:promote" + post: "/v18/{campaign_draft=customers/*/campaignDrafts/*}:promote" body: "*" }; option (google.api.method_signature) = "campaign_draft"; @@ -111,14 +111,14 @@ service CampaignDraftService { rpc ListCampaignDraftAsyncErrors(ListCampaignDraftAsyncErrorsRequest) returns (ListCampaignDraftAsyncErrorsResponse) { option (google.api.http) = { - get: "/v15/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" + get: "/v18/{resource_name=customers/*/campaignDrafts/*}:listAsyncErrors" }; option (google.api.method_signature) = "resource_name"; } } // Request message for -// [CampaignDraftService.MutateCampaignDrafts][google.ads.googleads.v15.services.CampaignDraftService.MutateCampaignDrafts]. +// [CampaignDraftService.MutateCampaignDrafts][google.ads.googleads.v18.services.CampaignDraftService.MutateCampaignDrafts]. message MutateCampaignDraftsRequest { // Required. The ID of the customer whose campaign drafts are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -139,12 +139,12 @@ message MutateCampaignDraftsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } // Request message for -// [CampaignDraftService.PromoteCampaignDraft][google.ads.googleads.v15.services.CampaignDraftService.PromoteCampaignDraft]. +// [CampaignDraftService.PromoteCampaignDraft][google.ads.googleads.v18.services.CampaignDraftService.PromoteCampaignDraft]. message PromoteCampaignDraftRequest { // Required. The resource name of the campaign draft to promote. string campaign_draft = 1 [ @@ -168,11 +168,11 @@ message CampaignDraftOperation { oneof operation { // Create operation: No resource name is expected for the new campaign // draft. - google.ads.googleads.v15.resources.CampaignDraft create = 1; + google.ads.googleads.v18.resources.CampaignDraft create = 1; // Update operation: The campaign draft is expected to have a valid // resource name. - google.ads.googleads.v15.resources.CampaignDraft update = 2; + google.ads.googleads.v18.resources.CampaignDraft update = 2; // Remove operation: The campaign draft is expected to have a valid // resource name, in this format: @@ -206,11 +206,11 @@ message MutateCampaignDraftResult { // The mutated campaign draft with only mutable fields after mutate. The field // will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.CampaignDraft campaign_draft = 2; + google.ads.googleads.v18.resources.CampaignDraft campaign_draft = 2; } // Request message for -// [CampaignDraftService.ListCampaignDraftAsyncErrors][google.ads.googleads.v15.services.CampaignDraftService.ListCampaignDraftAsyncErrors]. +// [CampaignDraftService.ListCampaignDraftAsyncErrors][google.ads.googleads.v18.services.CampaignDraftService.ListCampaignDraftAsyncErrors]. message ListCampaignDraftAsyncErrorsRequest { // Required. The name of the campaign draft from which to retrieve the async // errors. @@ -234,7 +234,7 @@ message ListCampaignDraftAsyncErrorsRequest { } // Response message for -// [CampaignDraftService.ListCampaignDraftAsyncErrors][google.ads.googleads.v15.services.CampaignDraftService.ListCampaignDraftAsyncErrors]. +// [CampaignDraftService.ListCampaignDraftAsyncErrors][google.ads.googleads.v18.services.CampaignDraftService.ListCampaignDraftAsyncErrors]. message ListCampaignDraftAsyncErrorsResponse { // Details of the errors when performing the asynchronous operation. repeated google.rpc.Status errors = 1; diff --git a/google/ads/googleads/v15/services/campaign_extension_setting_service.proto b/google/ads/googleads/v18/services/campaign_extension_setting_service.proto similarity index 86% rename from google/ads/googleads/v15/services/campaign_extension_setting_service.proto rename to google/ads/googleads/v18/services/campaign_extension_setting_service.proto index f09ede3a4..d60d6f055 100644 --- a/google/ads/googleads/v15/services/campaign_extension_setting_service.proto +++ b/google/ads/googleads/v18/services/campaign_extension_setting_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/campaign_extension_setting.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/campaign_extension_setting.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignExtensionSettingServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the CampaignExtensionSetting service. @@ -75,7 +75,7 @@ service CampaignExtensionSettingService { rpc MutateCampaignExtensionSettings(MutateCampaignExtensionSettingsRequest) returns (MutateCampaignExtensionSettingsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/campaignExtensionSettings:mutate" + post: "/v18/customers/{customer_id=*}/campaignExtensionSettings:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -83,7 +83,7 @@ service CampaignExtensionSettingService { } // Request message for -// [CampaignExtensionSettingService.MutateCampaignExtensionSettings][google.ads.googleads.v15.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings]. +// [CampaignExtensionSettingService.MutateCampaignExtensionSettings][google.ads.googleads.v18.services.CampaignExtensionSettingService.MutateCampaignExtensionSettings]. message MutateCampaignExtensionSettingsRequest { // Required. The ID of the customer whose campaign extension settings are // being modified. @@ -106,7 +106,7 @@ message MutateCampaignExtensionSettingsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -119,11 +119,11 @@ message CampaignExtensionSettingOperation { oneof operation { // Create operation: No resource name is expected for the new campaign // extension setting. - google.ads.googleads.v15.resources.CampaignExtensionSetting create = 1; + google.ads.googleads.v18.resources.CampaignExtensionSetting create = 1; // Update operation: The campaign extension setting is expected to have a // valid resource name. - google.ads.googleads.v15.resources.CampaignExtensionSetting update = 2; + google.ads.googleads.v18.resources.CampaignExtensionSetting update = 2; // Remove operation: A resource name for the removed campaign extension // setting is expected, in this format: @@ -157,6 +157,6 @@ message MutateCampaignExtensionSettingResult { // The mutated campaign extension setting with only mutable fields after // mutate. The field will only be returned when response_content_type is set // to "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.CampaignExtensionSetting + google.ads.googleads.v18.resources.CampaignExtensionSetting campaign_extension_setting = 2; } diff --git a/google/ads/googleads/v15/services/campaign_feed_service.proto b/google/ads/googleads/v18/services/campaign_feed_service.proto similarity index 85% rename from google/ads/googleads/v15/services/campaign_feed_service.proto rename to google/ads/googleads/v18/services/campaign_feed_service.proto index 8ea8f3537..2466a1d6c 100644 --- a/google/ads/googleads/v15/services/campaign_feed_service.proto +++ b/google/ads/googleads/v18/services/campaign_feed_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/campaign_feed.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/campaign_feed.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignFeedServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the CampaignFeed service. @@ -71,7 +71,7 @@ service CampaignFeedService { rpc MutateCampaignFeeds(MutateCampaignFeedsRequest) returns (MutateCampaignFeedsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/campaignFeeds:mutate" + post: "/v18/customers/{customer_id=*}/campaignFeeds:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -79,7 +79,7 @@ service CampaignFeedService { } // Request message for -// [CampaignFeedService.MutateCampaignFeeds][google.ads.googleads.v15.services.CampaignFeedService.MutateCampaignFeeds]. +// [CampaignFeedService.MutateCampaignFeeds][google.ads.googleads.v18.services.CampaignFeedService.MutateCampaignFeeds]. message MutateCampaignFeedsRequest { // Required. The ID of the customer whose campaign feeds are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -100,7 +100,7 @@ message MutateCampaignFeedsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -112,11 +112,11 @@ message CampaignFeedOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new campaign feed. - google.ads.googleads.v15.resources.CampaignFeed create = 1; + google.ads.googleads.v18.resources.CampaignFeed create = 1; // Update operation: The campaign feed is expected to have a valid resource // name. - google.ads.googleads.v15.resources.CampaignFeed update = 2; + google.ads.googleads.v18.resources.CampaignFeed update = 2; // Remove operation: A resource name for the removed campaign feed is // expected, in this format: @@ -150,5 +150,5 @@ message MutateCampaignFeedResult { // The mutated campaign feed with only mutable fields after mutate. The field // will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.CampaignFeed campaign_feed = 2; + google.ads.googleads.v18.resources.CampaignFeed campaign_feed = 2; } diff --git a/google/ads/googleads/v15/services/campaign_group_service.proto b/google/ads/googleads/v18/services/campaign_group_service.proto similarity index 83% rename from google/ads/googleads/v15/services/campaign_group_service.proto rename to google/ads/googleads/v18/services/campaign_group_service.proto index 69da6e83a..a508a4b48 100644 --- a/google/ads/googleads/v15/services/campaign_group_service.proto +++ b/google/ads/googleads/v18/services/campaign_group_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/campaign_group.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/campaign_group.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignGroupServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Campaign group service. @@ -46,7 +46,7 @@ service CampaignGroupService { rpc MutateCampaignGroups(MutateCampaignGroupsRequest) returns (MutateCampaignGroupsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/campaignGroups:mutate" + post: "/v18/customers/{customer_id=*}/campaignGroups:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -54,7 +54,7 @@ service CampaignGroupService { } // Request message for -// [CampaignGroupService.MutateCampaignGroups][google.ads.googleads.v15.services.CampaignGroupService.MutateCampaignGroups]. +// [CampaignGroupService.MutateCampaignGroups][google.ads.googleads.v18.services.CampaignGroupService.MutateCampaignGroups]. message MutateCampaignGroupsRequest { // Required. The ID of the customer whose campaign groups are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -75,7 +75,7 @@ message MutateCampaignGroupsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -88,11 +88,11 @@ message CampaignGroupOperation { oneof operation { // Create operation: No resource name is expected for the new campaign // group. - google.ads.googleads.v15.resources.CampaignGroup create = 1; + google.ads.googleads.v18.resources.CampaignGroup create = 1; // Update operation: The campaign group is expected to have a valid // resource name. - google.ads.googleads.v15.resources.CampaignGroup update = 2; + google.ads.googleads.v18.resources.CampaignGroup update = 2; // Remove operation: A resource name for the removed campaign group is // expected, in this format: @@ -129,5 +129,5 @@ message MutateCampaignGroupResult { // The mutated campaign group with only mutable fields after mutate. The field // will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.CampaignGroup campaign_group = 2; + google.ads.googleads.v18.resources.CampaignGroup campaign_group = 2; } diff --git a/google/ads/googleads/v15/services/campaign_label_service.proto b/google/ads/googleads/v18/services/campaign_label_service.proto similarity index 86% rename from google/ads/googleads/v15/services/campaign_label_service.proto rename to google/ads/googleads/v18/services/campaign_label_service.proto index e82dfb89f..b84caa71e 100644 --- a/google/ads/googleads/v15/services/campaign_label_service.proto +++ b/google/ads/googleads/v18/services/campaign_label_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/campaign_label.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignLabelServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Campaign Label service. @@ -57,7 +57,7 @@ service CampaignLabelService { rpc MutateCampaignLabels(MutateCampaignLabelsRequest) returns (MutateCampaignLabelsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/campaignLabels:mutate" + post: "/v18/customers/{customer_id=*}/campaignLabels:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -65,7 +65,7 @@ service CampaignLabelService { } // Request message for -// [CampaignLabelService.MutateCampaignLabels][google.ads.googleads.v15.services.CampaignLabelService.MutateCampaignLabels]. +// [CampaignLabelService.MutateCampaignLabels][google.ads.googleads.v18.services.CampaignLabelService.MutateCampaignLabels]. message MutateCampaignLabelsRequest { // Required. ID of the customer whose campaign-label relationships are being // modified. @@ -93,7 +93,7 @@ message CampaignLabelOperation { oneof operation { // Create operation: No resource name is expected for the new campaign-label // relationship. - google.ads.googleads.v15.resources.CampaignLabel create = 1; + google.ads.googleads.v18.resources.CampaignLabel create = 1; // Remove operation: A resource name for the campaign-label relationship // being removed, in this format: diff --git a/google/ads/googleads/v15/services/campaign_lifecycle_goal_service.proto b/google/ads/googleads/v18/services/campaign_lifecycle_goal_service.proto similarity index 71% rename from google/ads/googleads/v15/services/campaign_lifecycle_goal_service.proto rename to google/ads/googleads/v18/services/campaign_lifecycle_goal_service.proto index 5bc063531..3e4a41d17 100644 --- a/google/ads/googleads/v15/services/campaign_lifecycle_goal_service.proto +++ b/google/ads/googleads/v18/services/campaign_lifecycle_goal_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,26 +14,26 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/campaign_lifecycle_goal.proto"; +import "google/ads/googleads/v18/resources/campaign_lifecycle_goal.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignLifecycleGoalServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Service to configure campaign lifecycle goals. -service CampaignLifecycleService { +service CampaignLifecycleGoalService { option (google.api.default_host) = "googleads.googleapis.com"; option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; @@ -50,7 +50,7 @@ service CampaignLifecycleService { rpc ConfigureCampaignLifecycleGoals(ConfigureCampaignLifecycleGoalsRequest) returns (ConfigureCampaignLifecycleGoalsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/campaignLifecycleGoal:configureCampaignLifecycleGoals" + post: "/v18/customers/{customer_id=*}/campaignLifecycleGoal:configureCampaignLifecycleGoals" body: "*" }; option (google.api.method_signature) = "customer_id,operation"; @@ -58,7 +58,7 @@ service CampaignLifecycleService { } // Request message for -// [CampaignLifecycleService.configureCampaignLifecycleGoals][]. +// [CampaignLifecycleGoalService.configureCampaignLifecycleGoals][]. message ConfigureCampaignLifecycleGoalsRequest { // Required. The ID of the customer performing the upload. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -81,19 +81,18 @@ message CampaignLifecycleGoalOperation { // The mutate operation. oneof operation { - // Create operation: to create a new campaign lifecycle goal or update an - // existing campaign lifecycle goal. When creating a new campaign lifecycle - // goal, all required fields, including campaign field, needs to be set. - // Resource name and field mask needs to be empty. When updating an existing - // campaign lifecycle goal, resource name and field mask need to be set, and - // campaign field needs to be empty. Partial update based on field mask is - // supported when updating an existing campaign lifecycle goal. - google.ads.googleads.v15.resources.CampaignLifecycleGoal create = 1; + // Create operation: Create a new campaign lifecycle goal. The campaign + // field should be set for this operation. + google.ads.googleads.v18.resources.CampaignLifecycleGoal create = 1; + + // Update operation: Update an existing campaign lifecycle goal. The + // campaign field should not be set for this operation. + google.ads.googleads.v18.resources.CampaignLifecycleGoal update = 3; } } // Response message for -// [CampaignLifecycleService.configureCampaignLifecycleGoals][]. +// [CampaignLifecycleGoalService.configureCampaignLifecycleGoals][]. message ConfigureCampaignLifecycleGoalsResponse { // Result for the campaign lifecycle goal configuration. ConfigureCampaignLifecycleGoalsResult result = 1; diff --git a/google/ads/googleads/v15/services/campaign_service.proto b/google/ads/googleads/v18/services/campaign_service.proto similarity index 85% rename from google/ads/googleads/v15/services/campaign_service.proto rename to google/ads/googleads/v18/services/campaign_service.proto index c8fb4c2e3..e9e7c0f36 100644 --- a/google/ads/googleads/v15/services/campaign_service.proto +++ b/google/ads/googleads/v18/services/campaign_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/campaign.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/campaign.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Campaign service. @@ -82,7 +82,7 @@ service CampaignService { rpc MutateCampaigns(MutateCampaignsRequest) returns (MutateCampaignsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/campaigns:mutate" + post: "/v18/customers/{customer_id=*}/campaigns:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -90,7 +90,7 @@ service CampaignService { } // Request message for -// [CampaignService.MutateCampaigns][google.ads.googleads.v15.services.CampaignService.MutateCampaigns]. +// [CampaignService.MutateCampaigns][google.ads.googleads.v18.services.CampaignService.MutateCampaigns]. message MutateCampaignsRequest { // Required. The ID of the customer whose campaigns are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -111,7 +111,7 @@ message MutateCampaignsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -123,11 +123,11 @@ message CampaignOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new campaign. - google.ads.googleads.v15.resources.Campaign create = 1; + google.ads.googleads.v18.resources.Campaign create = 1; // Update operation: The campaign is expected to have a valid // resource name. - google.ads.googleads.v15.resources.Campaign update = 2; + google.ads.googleads.v18.resources.Campaign update = 2; // Remove operation: A resource name for the removed campaign is // expected, in this format: @@ -160,5 +160,5 @@ message MutateCampaignResult { // The mutated campaign with only mutable fields after mutate. The field will // only be returned when response_content_type is set to "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.Campaign campaign = 2; + google.ads.googleads.v18.resources.Campaign campaign = 2; } diff --git a/google/ads/googleads/v15/services/campaign_shared_set_service.proto b/google/ads/googleads/v18/services/campaign_shared_set_service.proto similarity index 85% rename from google/ads/googleads/v15/services/campaign_shared_set_service.proto rename to google/ads/googleads/v18/services/campaign_shared_set_service.proto index 7a7f458f7..33bc40014 100644 --- a/google/ads/googleads/v15/services/campaign_shared_set_service.proto +++ b/google/ads/googleads/v18/services/campaign_shared_set_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/campaign_shared_set.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CampaignSharedSetServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Campaign Shared Set service. @@ -68,7 +68,7 @@ service CampaignSharedSetService { rpc MutateCampaignSharedSets(MutateCampaignSharedSetsRequest) returns (MutateCampaignSharedSetsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/campaignSharedSets:mutate" + post: "/v18/customers/{customer_id=*}/campaignSharedSets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -76,7 +76,7 @@ service CampaignSharedSetService { } // Request message for -// [CampaignSharedSetService.MutateCampaignSharedSets][google.ads.googleads.v15.services.CampaignSharedSetService.MutateCampaignSharedSets]. +// [CampaignSharedSetService.MutateCampaignSharedSets][google.ads.googleads.v18.services.CampaignSharedSetService.MutateCampaignSharedSets]. message MutateCampaignSharedSetsRequest { // Required. The ID of the customer whose campaign shared sets are being // modified. @@ -99,7 +99,7 @@ message MutateCampaignSharedSetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -109,7 +109,7 @@ message CampaignSharedSetOperation { oneof operation { // Create operation: No resource name is expected for the new campaign // shared set. - google.ads.googleads.v15.resources.CampaignSharedSet create = 1; + google.ads.googleads.v18.resources.CampaignSharedSet create = 1; // Remove operation: A resource name for the removed campaign shared set is // expected, in this format: @@ -143,5 +143,5 @@ message MutateCampaignSharedSetResult { // The mutated campaign shared set with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.CampaignSharedSet campaign_shared_set = 2; + google.ads.googleads.v18.resources.CampaignSharedSet campaign_shared_set = 2; } diff --git a/google/ads/googleads/v18/services/content_creator_insights_service.proto b/google/ads/googleads/v18/services/content_creator_insights_service.proto new file mode 100644 index 000000000..2262606b1 --- /dev/null +++ b/google/ads/googleads/v18/services/content_creator_insights_service.proto @@ -0,0 +1,155 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.services; + +import "google/ads/googleads/v18/common/audience_insights_attribute.proto"; +import "google/ads/googleads/v18/common/criteria.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ContentCreatorInsightsServiceProto"; +option java_package = "com.google.ads.googleads.v18.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; + +// Proto file describing the content creator insights service. + +// Content Creator Insights Service helps users find information about YouTube +// Creators and their content and how these creators and their audiences can be +// reached with Google Ads. Accessible to allowlisted customers only. +service ContentCreatorInsightsService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Returns insights for a collection of YouTube Creators and Channels. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RangeError]() + // [RequestError]() + rpc GenerateCreatorInsights(GenerateCreatorInsightsRequest) + returns (GenerateCreatorInsightsResponse) { + option (google.api.http) = { + post: "/v18/customers/{customer_id=*}:generateCreatorInsights" + body: "*" + }; + } +} + +// Request message for [ContentCreatorInsightsService.GenerateCreatorInsights] +message GenerateCreatorInsightsRequest { + // The audience attributes (such as Age, Gender, Affinity, and In-Market) and + // creator attributes (such as creator location and creator's content topics) + // used to search for top creators. + message SearchAttributes { + // Optional. Audience attributes that describe an audience of viewers. This + // is used to search for creators whose own viewers match the input + // audience. + repeated google.ads.googleads.v18.common.AudienceInsightsAttribute + audience_attributes = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Creator attributes that describe a collection of types of + // content. This is used to search for creators whose content matches the + // input creator attributes. + repeated google.ads.googleads.v18.common.AudienceInsightsAttribute + creator_attributes = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // A collection of YouTube Channels. + message YouTubeChannels { + // Optional. The YouTube Channel IDs to fetch creator insights for. + repeated google.ads.googleads.v18.common.YouTubeChannelInfo + youtube_channels = 1 [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. The ID of the customer. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The name of the customer being planned for. This is a + // user-defined value. + string customer_insights_group = 2 [(google.api.field_behavior) = REQUIRED]; + + // A criteria used to search for creators and creator insights. + oneof criteria { + // The list of attributes to search for top creators in. + SearchAttributes search_attributes = 3; + + // The list of YouTube Channel IDs to fetch creator insights for. + YouTubeChannels search_channels = 4; + } +} + +// Response message for [ContentCreatorInsightsService.GenerateCreatorInsights] +message GenerateCreatorInsightsResponse { + // A collection of YouTube Creators, each containing a collection of YouTube + // Channels maintained by the YouTube Creator. + repeated YouTubeCreatorInsights creator_insights = 1; +} + +// A YouTube creator and the insights for this creator. +message YouTubeCreatorInsights { + // The name of the creator. + string creator_name = 1; + + // The list of YouTube Channels + repeated YouTubeChannelInsights creator_channels = 2; +} + +// YouTube Channel metrics. +message YouTubeMetrics { + // The number of subscribers. + int64 subscriber_count = 1; + + // The total number of views. + int64 views_count = 2; +} + +// YouTube Channel insights, and its metadata (such as channel name and channel +// ID), returned for a creator insights response. +message YouTubeChannelInsights { + // The name of the YouTube Channel. + string display_name = 1; + + // The YouTube Channel ID. + google.ads.googleads.v18.common.YouTubeChannelInfo youtube_channel = 2; + + // The metrics for a YouTube Channel. + YouTubeMetrics channel_metrics = 3; + + // The types of audiences and demographics associated with a channel's main + // audience. Audiences and demographics will have a breakdown of subscriber + // share across dimensions of the same value. + repeated google.ads.googleads.v18.common.AudienceInsightsAttributeMetadata + channel_audience_demographics = 4; + + // The attributes associated with the content made by a channel. + repeated google.ads.googleads.v18.common.AudienceInsightsAttributeMetadata + channel_attributes = 5; + + // Metadata string associated with the type of channel. + string channel_type = 6; +} diff --git a/google/ads/googleads/v15/services/conversion_action_service.proto b/google/ads/googleads/v18/services/conversion_action_service.proto similarity index 84% rename from google/ads/googleads/v15/services/conversion_action_service.proto rename to google/ads/googleads/v18/services/conversion_action_service.proto index f2d02aea4..b2cad9362 100644 --- a/google/ads/googleads/v15/services/conversion_action_service.proto +++ b/google/ads/googleads/v18/services/conversion_action_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/conversion_action.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/conversion_action.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "ConversionActionServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Conversion Action service. @@ -64,7 +64,7 @@ service ConversionActionService { rpc MutateConversionActions(MutateConversionActionsRequest) returns (MutateConversionActionsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/conversionActions:mutate" + post: "/v18/customers/{customer_id=*}/conversionActions:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -72,7 +72,7 @@ service ConversionActionService { } // Request message for -// [ConversionActionService.MutateConversionActions][google.ads.googleads.v15.services.ConversionActionService.MutateConversionActions]. +// [ConversionActionService.MutateConversionActions][google.ads.googleads.v18.services.ConversionActionService.MutateConversionActions]. message MutateConversionActionsRequest { // Required. The ID of the customer whose conversion actions are being // modified. @@ -95,7 +95,7 @@ message MutateConversionActionsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -108,11 +108,11 @@ message ConversionActionOperation { oneof operation { // Create operation: No resource name is expected for the new conversion // action. - google.ads.googleads.v15.resources.ConversionAction create = 1; + google.ads.googleads.v18.resources.ConversionAction create = 1; // Update operation: The conversion action is expected to have a valid // resource name. - google.ads.googleads.v15.resources.ConversionAction update = 2; + google.ads.googleads.v18.resources.ConversionAction update = 2; // Remove operation: A resource name for the removed conversion action is // expected, in this format: @@ -125,7 +125,7 @@ message ConversionActionOperation { } // Response message for -// [ConversionActionService.MutateConversionActions][google.ads.googleads.v15.services.ConversionActionService.MutateConversionActions]. +// [ConversionActionService.MutateConversionActions][google.ads.googleads.v18.services.ConversionActionService.MutateConversionActions]. message MutateConversionActionsResponse { // Errors that pertain to operation failures in the partial failure mode. // Returned only when partial_failure = true and all errors occur inside the @@ -147,5 +147,5 @@ message MutateConversionActionResult { // The mutated conversion action with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.ConversionAction conversion_action = 2; + google.ads.googleads.v18.resources.ConversionAction conversion_action = 2; } diff --git a/google/ads/googleads/v15/services/conversion_adjustment_upload_service.proto b/google/ads/googleads/v18/services/conversion_adjustment_upload_service.proto similarity index 91% rename from google/ads/googleads/v15/services/conversion_adjustment_upload_service.proto rename to google/ads/googleads/v18/services/conversion_adjustment_upload_service.proto index 7d470fca8..17b74cb0d 100644 --- a/google/ads/googleads/v15/services/conversion_adjustment_upload_service.proto +++ b/google/ads/googleads/v18/services/conversion_adjustment_upload_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/common/offline_user_data.proto"; -import "google/ads/googleads/v15/enums/conversion_adjustment_type.proto"; +import "google/ads/googleads/v18/common/offline_user_data.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "ConversionAdjustmentUploadServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Service to upload conversion adjustments. service ConversionAdjustmentUploadService { @@ -50,7 +50,7 @@ service ConversionAdjustmentUploadService { rpc UploadConversionAdjustments(UploadConversionAdjustmentsRequest) returns (UploadConversionAdjustmentsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}:uploadConversionAdjustments" + post: "/v18/customers/{customer_id=*}:uploadConversionAdjustments" body: "*" }; option (google.api.method_signature) = @@ -59,7 +59,7 @@ service ConversionAdjustmentUploadService { } // Request message for -// [ConversionAdjustmentUploadService.UploadConversionAdjustments][google.ads.googleads.v15.services.ConversionAdjustmentUploadService.UploadConversionAdjustments]. +// [ConversionAdjustmentUploadService.UploadConversionAdjustments][google.ads.googleads.v18.services.ConversionAdjustmentUploadService.UploadConversionAdjustments]. message UploadConversionAdjustmentsRequest { // Required. The ID of the customer performing the upload. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -90,7 +90,7 @@ message UploadConversionAdjustmentsRequest { } // Response message for -// [ConversionAdjustmentUploadService.UploadConversionAdjustments][google.ads.googleads.v15.services.ConversionAdjustmentUploadService.UploadConversionAdjustments]. +// [ConversionAdjustmentUploadService.UploadConversionAdjustments][google.ads.googleads.v18.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 @@ -133,7 +133,7 @@ message ConversionAdjustment { optional string adjustment_date_time = 9; // The adjustment type. - google.ads.googleads.v15.enums.ConversionAdjustmentTypeEnum + google.ads.googleads.v18.enums.ConversionAdjustmentTypeEnum .ConversionAdjustmentType adjustment_type = 5; // Information needed to restate the conversion's value. @@ -149,7 +149,7 @@ message ConversionAdjustment { // ConversionAdjustmentUploadService only accepts user identifiers in // enhancements. The maximum number of user identifiers for each // enhancement is 5. - repeated google.ads.googleads.v15.common.UserIdentifier user_identifiers = 10; + repeated google.ads.googleads.v18.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. @@ -209,6 +209,6 @@ message ConversionAdjustmentResult { optional string adjustment_date_time = 8; // The adjustment type. - google.ads.googleads.v15.enums.ConversionAdjustmentTypeEnum + google.ads.googleads.v18.enums.ConversionAdjustmentTypeEnum .ConversionAdjustmentType adjustment_type = 5; } diff --git a/google/ads/googleads/v15/services/conversion_custom_variable_service.proto b/google/ads/googleads/v18/services/conversion_custom_variable_service.proto similarity index 83% rename from google/ads/googleads/v15/services/conversion_custom_variable_service.proto rename to google/ads/googleads/v18/services/conversion_custom_variable_service.proto index df0ea8bc8..5ab5cf912 100644 --- a/google/ads/googleads/v15/services/conversion_custom_variable_service.proto +++ b/google/ads/googleads/v18/services/conversion_custom_variable_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/conversion_custom_variable.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/conversion_custom_variable.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "ConversionCustomVariableServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Conversion Custom Variable service. @@ -56,7 +56,7 @@ service ConversionCustomVariableService { rpc MutateConversionCustomVariables(MutateConversionCustomVariablesRequest) returns (MutateConversionCustomVariablesResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/conversionCustomVariables:mutate" + post: "/v18/customers/{customer_id=*}/conversionCustomVariables:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -64,7 +64,7 @@ service ConversionCustomVariableService { } // Request message for -// [ConversionCustomVariableService.MutateConversionCustomVariables][google.ads.googleads.v15.services.ConversionCustomVariableService.MutateConversionCustomVariables]. +// [ConversionCustomVariableService.MutateConversionCustomVariables][google.ads.googleads.v18.services.ConversionCustomVariableService.MutateConversionCustomVariables]. message MutateConversionCustomVariablesRequest { // Required. The ID of the customer whose conversion custom variables are // being modified. @@ -87,7 +87,7 @@ message MutateConversionCustomVariablesRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -100,16 +100,16 @@ message ConversionCustomVariableOperation { oneof operation { // Create operation: No resource name is expected for the new conversion // custom variable. - google.ads.googleads.v15.resources.ConversionCustomVariable create = 1; + google.ads.googleads.v18.resources.ConversionCustomVariable create = 1; // Update operation: The conversion custom variable is expected to have a // valid resource name. - google.ads.googleads.v15.resources.ConversionCustomVariable update = 2; + google.ads.googleads.v18.resources.ConversionCustomVariable update = 2; } } // Response message for -// [ConversionCustomVariableService.MutateConversionCustomVariables][google.ads.googleads.v15.services.ConversionCustomVariableService.MutateConversionCustomVariables]. +// [ConversionCustomVariableService.MutateConversionCustomVariables][google.ads.googleads.v18.services.ConversionCustomVariableService.MutateConversionCustomVariables]. message MutateConversionCustomVariablesResponse { // Errors that pertain to operation failures in the partial failure mode. // Returned only when partial_failure = true and all errors occur inside the @@ -131,6 +131,6 @@ message MutateConversionCustomVariableResult { // The mutated conversion custom variable with only mutable fields after // mutate. The field will only be returned when response_content_type is set // to "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.ConversionCustomVariable + google.ads.googleads.v18.resources.ConversionCustomVariable conversion_custom_variable = 2; } diff --git a/google/ads/googleads/v15/services/conversion_goal_campaign_config_service.proto b/google/ads/googleads/v18/services/conversion_goal_campaign_config_service.proto similarity index 82% rename from google/ads/googleads/v15/services/conversion_goal_campaign_config_service.proto rename to google/ads/googleads/v18/services/conversion_goal_campaign_config_service.proto index 3fb27dba1..3a41be8ec 100644 --- a/google/ads/googleads/v15/services/conversion_goal_campaign_config_service.proto +++ b/google/ads/googleads/v18/services/conversion_goal_campaign_config_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/conversion_goal_campaign_config.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "ConversionGoalCampaignConfigServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the ConversionGoalCampaignConfig service. @@ -46,7 +46,7 @@ service ConversionGoalCampaignConfigService { MutateConversionGoalCampaignConfigsRequest) returns (MutateConversionGoalCampaignConfigsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/conversionGoalCampaignConfigs:mutate" + post: "/v18/customers/{customer_id=*}/conversionGoalCampaignConfigs:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -54,7 +54,7 @@ service ConversionGoalCampaignConfigService { } // Request message for -// [ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs][google.ads.googleads.v15.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs]. +// [ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs][google.ads.googleads.v18.services.ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs]. message MutateConversionGoalCampaignConfigsRequest { // Required. The ID of the customer whose custom conversion goals are being // modified. @@ -71,7 +71,7 @@ message MutateConversionGoalCampaignConfigsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; } @@ -84,7 +84,7 @@ message ConversionGoalCampaignConfigOperation { oneof operation { // Update operation: The conversion goal campaign config is expected to have // a valid resource name. - google.ads.googleads.v15.resources.ConversionGoalCampaignConfig update = 1; + google.ads.googleads.v18.resources.ConversionGoalCampaignConfig update = 1; } } @@ -104,6 +104,6 @@ message MutateConversionGoalCampaignConfigResult { // The mutated ConversionGoalCampaignConfig with only mutable fields after // mutate. The field will only be returned when response_content_type is set // to "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.ConversionGoalCampaignConfig + google.ads.googleads.v18.resources.ConversionGoalCampaignConfig conversion_goal_campaign_config = 2; } diff --git a/google/ads/googleads/v15/services/conversion_upload_service.proto b/google/ads/googleads/v18/services/conversion_upload_service.proto similarity index 92% rename from google/ads/googleads/v15/services/conversion_upload_service.proto rename to google/ads/googleads/v18/services/conversion_upload_service.proto index 0dca828b5..37ee89c38 100644 --- a/google/ads/googleads/v15/services/conversion_upload_service.proto +++ b/google/ads/googleads/v18/services/conversion_upload_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,25 +14,25 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/common/consent.proto"; -import "google/ads/googleads/v15/common/offline_user_data.proto"; -import "google/ads/googleads/v15/enums/conversion_environment_enum.proto"; +import "google/ads/googleads/v18/common/consent.proto"; +import "google/ads/googleads/v18/common/offline_user_data.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "ConversionUploadServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Service to upload conversions. service ConversionUploadService { @@ -53,7 +53,7 @@ service ConversionUploadService { rpc UploadClickConversions(UploadClickConversionsRequest) returns (UploadClickConversionsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}:uploadClickConversions" + post: "/v18/customers/{customer_id=*}:uploadClickConversions" body: "*" }; option (google.api.method_signature) = @@ -73,7 +73,7 @@ service ConversionUploadService { rpc UploadCallConversions(UploadCallConversionsRequest) returns (UploadCallConversionsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}:uploadCallConversions" + post: "/v18/customers/{customer_id=*}:uploadCallConversions" body: "*" }; option (google.api.method_signature) = @@ -82,7 +82,7 @@ service ConversionUploadService { } // Request message for -// [ConversionUploadService.UploadClickConversions][google.ads.googleads.v15.services.ConversionUploadService.UploadClickConversions]. +// [ConversionUploadService.UploadClickConversions][google.ads.googleads.v18.services.ConversionUploadService.UploadClickConversions]. message UploadClickConversionsRequest { // Required. The ID of the customer performing the upload. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -133,7 +133,7 @@ message UploadClickConversionsRequest { } // Response message for -// [ConversionUploadService.UploadClickConversions][google.ads.googleads.v15.services.ConversionUploadService.UploadClickConversions]. +// [ConversionUploadService.UploadClickConversions][google.ads.googleads.v18.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 @@ -153,7 +153,7 @@ message UploadClickConversionsResponse { } // Request message for -// [ConversionUploadService.UploadCallConversions][google.ads.googleads.v15.services.ConversionUploadService.UploadCallConversions]. +// [ConversionUploadService.UploadCallConversions][google.ads.googleads.v18.services.ConversionUploadService.UploadCallConversions]. message UploadCallConversionsRequest { // Required. The ID of the customer performing the upload. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -177,7 +177,7 @@ message UploadCallConversionsRequest { } // Response message for -// [ConversionUploadService.UploadCallConversions][google.ads.googleads.v15.services.ConversionUploadService.UploadCallConversions]. +// [ConversionUploadService.UploadCallConversions][google.ads.googleads.v18.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 @@ -242,14 +242,14 @@ message ClickConversion { // The user identifiers associated with this conversion. Only hashed_email and // hashed_phone_number are supported for conversion uploads. The maximum // number of user identifiers for each conversion is 5. - repeated google.ads.googleads.v15.common.UserIdentifier user_identifiers = 17; + repeated google.ads.googleads.v18.common.UserIdentifier user_identifiers = 17; // The environment this conversion was recorded on, for example, App or Web. - google.ads.googleads.v15.enums.ConversionEnvironmentEnum.ConversionEnvironment + google.ads.googleads.v18.enums.ConversionEnvironmentEnum.ConversionEnvironment conversion_environment = 20; // The consent setting for the event. - google.ads.googleads.v15.common.Consent consent = 23; + google.ads.googleads.v18.common.Consent consent = 23; } // A call conversion. @@ -285,7 +285,7 @@ message CallConversion { repeated CustomVariable custom_variables = 13; // The consent setting for the event. - google.ads.googleads.v15.common.Consent consent = 14; + google.ads.googleads.v18.common.Consent consent = 14; } // Contains additional information about externally attributed conversions. @@ -321,7 +321,7 @@ message ClickConversionResult { // The user identifiers associated with this conversion. Only hashed_email and // hashed_phone_number are supported for conversion uploads. The maximum // number of user identifiers for each conversion is 5. - repeated google.ads.googleads.v15.common.UserIdentifier user_identifiers = 7; + repeated google.ads.googleads.v18.common.UserIdentifier user_identifiers = 7; } // Identifying information for a successfully processed CallConversionUpload. diff --git a/google/ads/googleads/v15/services/conversion_value_rule_service.proto b/google/ads/googleads/v18/services/conversion_value_rule_service.proto similarity index 83% rename from google/ads/googleads/v15/services/conversion_value_rule_service.proto rename to google/ads/googleads/v18/services/conversion_value_rule_service.proto index 0838304bc..54ba44d05 100644 --- a/google/ads/googleads/v15/services/conversion_value_rule_service.proto +++ b/google/ads/googleads/v18/services/conversion_value_rule_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/conversion_value_rule.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/conversion_value_rule.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "ConversionValueRuleServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Conversion Value Rule service. @@ -46,7 +46,7 @@ service ConversionValueRuleService { rpc MutateConversionValueRules(MutateConversionValueRulesRequest) returns (MutateConversionValueRulesResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/conversionValueRules:mutate" + post: "/v18/customers/{customer_id=*}/conversionValueRules:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -54,7 +54,7 @@ service ConversionValueRuleService { } // Request message for -// [ConversionValueRuleService.MutateConversionValueRules][google.ads.googleads.v15.services.ConversionValueRuleService.MutateConversionValueRules]. +// [ConversionValueRuleService.MutateConversionValueRules][google.ads.googleads.v18.services.ConversionValueRuleService.MutateConversionValueRules]. message MutateConversionValueRulesRequest { // Required. The ID of the customer whose conversion value rules are being // modified. @@ -77,7 +77,7 @@ message MutateConversionValueRulesRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; } @@ -90,11 +90,11 @@ message ConversionValueRuleOperation { oneof operation { // Create operation: No resource name is expected for the new conversion // value rule. - google.ads.googleads.v15.resources.ConversionValueRule create = 1; + google.ads.googleads.v18.resources.ConversionValueRule create = 1; // Update operation: The conversion value rule is expected to have a valid // resource name. - google.ads.googleads.v15.resources.ConversionValueRule update = 2; + google.ads.googleads.v18.resources.ConversionValueRule update = 2; // Remove operation: A resource name for the removed conversion value rule // is expected, in this format: @@ -107,7 +107,7 @@ message ConversionValueRuleOperation { } // Response message for -// [ConversionValueRuleService.MutateConversionValueRules][google.ads.googleads.v15.services.ConversionValueRuleService.MutateConversionValueRules]. +// [ConversionValueRuleService.MutateConversionValueRules][google.ads.googleads.v18.services.ConversionValueRuleService.MutateConversionValueRules]. message MutateConversionValueRulesResponse { // All results for the mutate. repeated MutateConversionValueRuleResult results = 2; @@ -129,6 +129,6 @@ message MutateConversionValueRuleResult { // The mutated conversion value rule with only mutable fields after // mutate. The field will only be returned when response_content_type is set // to "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.ConversionValueRule conversion_value_rule = + google.ads.googleads.v18.resources.ConversionValueRule conversion_value_rule = 2; } diff --git a/google/ads/googleads/v15/services/conversion_value_rule_set_service.proto b/google/ads/googleads/v18/services/conversion_value_rule_set_service.proto similarity index 83% rename from google/ads/googleads/v15/services/conversion_value_rule_set_service.proto rename to google/ads/googleads/v18/services/conversion_value_rule_set_service.proto index 66603a7e1..2c1ea04ae 100644 --- a/google/ads/googleads/v15/services/conversion_value_rule_set_service.proto +++ b/google/ads/googleads/v18/services/conversion_value_rule_set_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/conversion_value_rule_set.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/conversion_value_rule_set.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "ConversionValueRuleSetServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Conversion Value Rule Set service. @@ -46,7 +46,7 @@ service ConversionValueRuleSetService { rpc MutateConversionValueRuleSets(MutateConversionValueRuleSetsRequest) returns (MutateConversionValueRuleSetsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/conversionValueRuleSets:mutate" + post: "/v18/customers/{customer_id=*}/conversionValueRuleSets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -54,7 +54,7 @@ service ConversionValueRuleSetService { } // Request message for -// [ConversionValueRuleSetService.MutateConversionValueRuleSets][google.ads.googleads.v15.services.ConversionValueRuleSetService.MutateConversionValueRuleSets]. +// [ConversionValueRuleSetService.MutateConversionValueRuleSets][google.ads.googleads.v18.services.ConversionValueRuleSetService.MutateConversionValueRuleSets]. message MutateConversionValueRuleSetsRequest { // Required. The ID of the customer whose conversion value rule sets are being // modified. @@ -77,7 +77,7 @@ message MutateConversionValueRuleSetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; } @@ -90,11 +90,11 @@ message ConversionValueRuleSetOperation { oneof operation { // Create operation: No resource name is expected for the new conversion // value rule set. - google.ads.googleads.v15.resources.ConversionValueRuleSet create = 1; + google.ads.googleads.v18.resources.ConversionValueRuleSet create = 1; // Update operation: The conversion value rule set is expected to have a // valid resource name. - google.ads.googleads.v15.resources.ConversionValueRuleSet update = 2; + google.ads.googleads.v18.resources.ConversionValueRuleSet update = 2; // Remove operation: A resource name for the removed conversion value rule // set is expected, in this format: @@ -107,7 +107,7 @@ message ConversionValueRuleSetOperation { } // Response message for -// [ConversionValueRuleSetService.MutateConversionValueRuleSets][google.ads.googleads.v15.services.ConversionValueRuleSetService.MutateConversionValueRuleSets]. +// [ConversionValueRuleSetService.MutateConversionValueRuleSets][google.ads.googleads.v18.services.ConversionValueRuleSetService.MutateConversionValueRuleSets]. message MutateConversionValueRuleSetsResponse { // All results for the mutate. repeated MutateConversionValueRuleSetResult results = 1; @@ -129,6 +129,6 @@ message MutateConversionValueRuleSetResult { // The mutated conversion value rule set with only mutable fields after // mutate. The field will only be returned when response_content_type is set // to "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.ConversionValueRuleSet + google.ads.googleads.v18.resources.ConversionValueRuleSet conversion_value_rule_set = 2; } diff --git a/google/ads/googleads/v15/services/custom_audience_service.proto b/google/ads/googleads/v18/services/custom_audience_service.proto similarity index 84% rename from google/ads/googleads/v15/services/custom_audience_service.proto rename to google/ads/googleads/v18/services/custom_audience_service.proto index afe2c3302..97af52579 100644 --- a/google/ads/googleads/v15/services/custom_audience_service.proto +++ b/google/ads/googleads/v18/services/custom_audience_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/custom_audience.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomAudienceServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Custom Audience service. @@ -58,7 +58,7 @@ service CustomAudienceService { rpc MutateCustomAudiences(MutateCustomAudiencesRequest) returns (MutateCustomAudiencesResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/customAudiences:mutate" + post: "/v18/customers/{customer_id=*}/customAudiences:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -66,7 +66,7 @@ service CustomAudienceService { } // Request message for -// [CustomAudienceService.MutateCustomAudiences][google.ads.googleads.v15.services.CustomAudienceService.MutateCustomAudiences]. +// [CustomAudienceService.MutateCustomAudiences][google.ads.googleads.v18.services.CustomAudienceService.MutateCustomAudiences]. message MutateCustomAudiencesRequest { // Required. The ID of the customer whose custom audiences are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -89,11 +89,11 @@ message CustomAudienceOperation { oneof operation { // Create operation: No resource name is expected for the new custom // audience. - google.ads.googleads.v15.resources.CustomAudience create = 1; + google.ads.googleads.v18.resources.CustomAudience create = 1; // Update operation: The custom audience is expected to have a valid // resource name. - google.ads.googleads.v15.resources.CustomAudience update = 2; + google.ads.googleads.v18.resources.CustomAudience update = 2; // Remove operation: A resource name for the removed custom audience is // expected, in this format: diff --git a/google/ads/googleads/v15/services/custom_conversion_goal_service.proto b/google/ads/googleads/v18/services/custom_conversion_goal_service.proto similarity index 80% rename from google/ads/googleads/v15/services/custom_conversion_goal_service.proto rename to google/ads/googleads/v18/services/custom_conversion_goal_service.proto index ee25cf20a..e252fe345 100644 --- a/google/ads/googleads/v15/services/custom_conversion_goal_service.proto +++ b/google/ads/googleads/v18/services/custom_conversion_goal_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/custom_conversion_goal.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomConversionGoalServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the CustomConversionGoal service. @@ -45,7 +45,7 @@ service CustomConversionGoalService { rpc MutateCustomConversionGoals(MutateCustomConversionGoalsRequest) returns (MutateCustomConversionGoalsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/customConversionGoals:mutate" + post: "/v18/customers/{customer_id=*}/customConversionGoals:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -53,7 +53,7 @@ service CustomConversionGoalService { } // Request message for -// [CustomConversionGoalService.MutateCustomConversionGoals][google.ads.googleads.v15.services.CustomConversionGoalService.MutateCustomConversionGoals]. +// [CustomConversionGoalService.MutateCustomConversionGoals][google.ads.googleads.v18.services.CustomConversionGoalService.MutateCustomConversionGoals]. message MutateCustomConversionGoalsRequest { // Required. The ID of the customer whose custom conversion goals are being // modified. @@ -70,7 +70,7 @@ message MutateCustomConversionGoalsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 4; } @@ -83,16 +83,16 @@ message CustomConversionGoalOperation { oneof operation { // Create operation: No resource name is expected for the new custom // conversion goal - google.ads.googleads.v15.resources.CustomConversionGoal create = 1; + google.ads.googleads.v18.resources.CustomConversionGoal create = 1; // Update operation: The custom conversion goal is expected to have a // valid resource name. - google.ads.googleads.v15.resources.CustomConversionGoal update = 2; + google.ads.googleads.v18.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}' + // 'customers/{customer_id}/customConversionGoals/{goal_id}' string remove = 3 [(google.api.resource_reference) = { type: "googleads.googleapis.com/CustomConversionGoal" }]; @@ -115,6 +115,6 @@ message MutateCustomConversionGoalResult { // The mutated CustomConversionGoal with only mutable fields after mutate. // The field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.CustomConversionGoal + google.ads.googleads.v18.resources.CustomConversionGoal custom_conversion_goal = 2; } diff --git a/google/ads/googleads/v15/services/custom_interest_service.proto b/google/ads/googleads/v18/services/custom_interest_service.proto similarity index 83% rename from google/ads/googleads/v15/services/custom_interest_service.proto rename to google/ads/googleads/v18/services/custom_interest_service.proto index ced1ae5c3..b4bc52725 100644 --- a/google/ads/googleads/v15/services/custom_interest_service.proto +++ b/google/ads/googleads/v18/services/custom_interest_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/custom_interest.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomInterestServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Custom Interest service. @@ -56,7 +56,7 @@ service CustomInterestService { rpc MutateCustomInterests(MutateCustomInterestsRequest) returns (MutateCustomInterestsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/customInterests:mutate" + post: "/v18/customers/{customer_id=*}/customInterests:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -64,7 +64,7 @@ service CustomInterestService { } // Request message for -// [CustomInterestService.MutateCustomInterests][google.ads.googleads.v15.services.CustomInterestService.MutateCustomInterests]. +// [CustomInterestService.MutateCustomInterests][google.ads.googleads.v18.services.CustomInterestService.MutateCustomInterests]. message MutateCustomInterestsRequest { // Required. The ID of the customer whose custom interests are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -87,11 +87,11 @@ message CustomInterestOperation { oneof operation { // Create operation: No resource name is expected for the new custom // interest. - google.ads.googleads.v15.resources.CustomInterest create = 1; + google.ads.googleads.v18.resources.CustomInterest create = 1; // Update operation: The custom interest is expected to have a valid // resource name. - google.ads.googleads.v15.resources.CustomInterest update = 2; + google.ads.googleads.v18.resources.CustomInterest update = 2; } } diff --git a/google/ads/googleads/v15/services/customer_asset_service.proto b/google/ads/googleads/v18/services/customer_asset_service.proto similarity index 84% rename from google/ads/googleads/v15/services/customer_asset_service.proto rename to google/ads/googleads/v18/services/customer_asset_service.proto index 3fdbf45be..2529c4b85 100644 --- a/google/ads/googleads/v15/services/customer_asset_service.proto +++ b/google/ads/googleads/v18/services/customer_asset_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/customer_asset.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/customer_asset.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerAssetServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the CustomerAsset service. @@ -57,7 +57,7 @@ service CustomerAssetService { rpc MutateCustomerAssets(MutateCustomerAssetsRequest) returns (MutateCustomerAssetsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/customerAssets:mutate" + post: "/v18/customers/{customer_id=*}/customerAssets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -65,7 +65,7 @@ service CustomerAssetService { } // Request message for -// [CustomerAssetService.MutateCustomerAssets][google.ads.googleads.v15.services.CustomerAssetService.MutateCustomerAssets]. +// [CustomerAssetService.MutateCustomerAssets][google.ads.googleads.v18.services.CustomerAssetService.MutateCustomerAssets]. message MutateCustomerAssetsRequest { // Required. The ID of the customer whose customer assets are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -86,7 +86,7 @@ message MutateCustomerAssetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -99,11 +99,11 @@ message CustomerAssetOperation { oneof operation { // Create operation: No resource name is expected for the new customer // asset. - google.ads.googleads.v15.resources.CustomerAsset create = 1; + google.ads.googleads.v18.resources.CustomerAsset create = 1; // Update operation: The customer asset is expected to have a valid resource // name. - google.ads.googleads.v15.resources.CustomerAsset update = 3; + google.ads.googleads.v18.resources.CustomerAsset update = 3; // Remove operation: A resource name for the removed customer asset is // expected, in this format: @@ -137,5 +137,5 @@ message MutateCustomerAssetResult { // The mutated customer asset with only mutable fields after // mutate. The field will only be returned when response_content_type is set // to "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.CustomerAsset customer_asset = 2; + google.ads.googleads.v18.resources.CustomerAsset customer_asset = 2; } diff --git a/google/ads/googleads/v15/services/customer_asset_set_service.proto b/google/ads/googleads/v18/services/customer_asset_set_service.proto similarity index 83% rename from google/ads/googleads/v15/services/customer_asset_set_service.proto rename to google/ads/googleads/v18/services/customer_asset_set_service.proto index b8c6c3505..ad3305913 100644 --- a/google/ads/googleads/v15/services/customer_asset_set_service.proto +++ b/google/ads/googleads/v18/services/customer_asset_set_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/customer_asset_set.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/customer_asset_set.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerAssetSetServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the CustomerAssetSet service. @@ -45,7 +45,7 @@ service CustomerAssetSetService { rpc MutateCustomerAssetSets(MutateCustomerAssetSetsRequest) returns (MutateCustomerAssetSetsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/customerAssetSets:mutate" + post: "/v18/customers/{customer_id=*}/customerAssetSets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -53,7 +53,7 @@ service CustomerAssetSetService { } // Request message for -// [CustomerAssetSetService.MutateCustomerAssetSets][google.ads.googleads.v15.services.CustomerAssetSetService.MutateCustomerAssetSets]. +// [CustomerAssetSetService.MutateCustomerAssetSets][google.ads.googleads.v18.services.CustomerAssetSetService.MutateCustomerAssetSets]. message MutateCustomerAssetSetsRequest { // Required. The ID of the customer whose customer asset sets are being // modified. @@ -76,7 +76,7 @@ message MutateCustomerAssetSetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -86,7 +86,7 @@ message CustomerAssetSetOperation { oneof operation { // Create operation: No resource name is expected for the new customer asset // set. - google.ads.googleads.v15.resources.CustomerAssetSet create = 1; + google.ads.googleads.v18.resources.CustomerAssetSet create = 1; // Remove operation: A resource name for the removed customer asset set is // expected, in this format: @@ -119,5 +119,5 @@ message MutateCustomerAssetSetResult { // The mutated customer asset set with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.CustomerAssetSet customer_asset_set = 2; + google.ads.googleads.v18.resources.CustomerAssetSet customer_asset_set = 2; } diff --git a/google/ads/googleads/v15/services/customer_client_link_service.proto b/google/ads/googleads/v18/services/customer_client_link_service.proto similarity index 83% rename from google/ads/googleads/v15/services/customer_client_link_service.proto rename to google/ads/googleads/v18/services/customer_client_link_service.proto index 50e1a4336..9386b4499 100644 --- a/google/ads/googleads/v15/services/customer_client_link_service.proto +++ b/google/ads/googleads/v18/services/customer_client_link_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/customer_client_link.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerClientLinkServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Service to manage customer client links. service CustomerClientLinkService { @@ -55,7 +55,7 @@ service CustomerClientLinkService { rpc MutateCustomerClientLink(MutateCustomerClientLinkRequest) returns (MutateCustomerClientLinkResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/customerClientLinks:mutate" + post: "/v18/customers/{customer_id=*}/customerClientLinks:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operation"; @@ -63,7 +63,7 @@ service CustomerClientLinkService { } // Request message for -// [CustomerClientLinkService.MutateCustomerClientLink][google.ads.googleads.v15.services.CustomerClientLinkService.MutateCustomerClientLink]. +// [CustomerClientLinkService.MutateCustomerClientLink][google.ads.googleads.v18.services.CustomerClientLinkService.MutateCustomerClientLink]. message MutateCustomerClientLinkRequest { // Required. The ID of the customer whose customer link are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -85,10 +85,10 @@ message CustomerClientLinkOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new link. - google.ads.googleads.v15.resources.CustomerClientLink create = 1; + google.ads.googleads.v18.resources.CustomerClientLink create = 1; // Update operation: The link is expected to have a valid resource name. - google.ads.googleads.v15.resources.CustomerClientLink update = 2; + google.ads.googleads.v18.resources.CustomerClientLink update = 2; } } diff --git a/google/ads/googleads/v15/services/customer_conversion_goal_service.proto b/google/ads/googleads/v18/services/customer_conversion_goal_service.proto similarity index 83% rename from google/ads/googleads/v15/services/customer_conversion_goal_service.proto rename to google/ads/googleads/v18/services/customer_conversion_goal_service.proto index f547e734b..17bbe35ca 100644 --- a/google/ads/googleads/v15/services/customer_conversion_goal_service.proto +++ b/google/ads/googleads/v18/services/customer_conversion_goal_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/customer_conversion_goal.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerConversionGoalServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the CustomerConversionGoal service. @@ -44,7 +44,7 @@ service CustomerConversionGoalService { rpc MutateCustomerConversionGoals(MutateCustomerConversionGoalsRequest) returns (MutateCustomerConversionGoalsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/customerConversionGoals:mutate" + post: "/v18/customers/{customer_id=*}/customerConversionGoals:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -52,7 +52,7 @@ service CustomerConversionGoalService { } // Request message for -// [CustomerConversionGoalService.MutateCustomerConversionGoals][google.ads.googleads.v15.services.CustomerConversionGoalService.MutateCustomerConversionGoals]. +// [CustomerConversionGoalService.MutateCustomerConversionGoals][google.ads.googleads.v18.services.CustomerConversionGoalService.MutateCustomerConversionGoals]. message MutateCustomerConversionGoalsRequest { // Required. The ID of the customer whose customer conversion goals are being // modified. @@ -77,7 +77,7 @@ message CustomerConversionGoalOperation { oneof operation { // Update operation: The customer conversion goal is expected to have a // valid resource name. - google.ads.googleads.v15.resources.CustomerConversionGoal update = 1; + google.ads.googleads.v18.resources.CustomerConversionGoal update = 1; } } diff --git a/google/ads/googleads/v15/services/customer_customizer_service.proto b/google/ads/googleads/v18/services/customer_customizer_service.proto similarity index 84% rename from google/ads/googleads/v15/services/customer_customizer_service.proto rename to google/ads/googleads/v18/services/customer_customizer_service.proto index 7c956cd5a..3198c52d8 100644 --- a/google/ads/googleads/v15/services/customer_customizer_service.proto +++ b/google/ads/googleads/v18/services/customer_customizer_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/customer_customizer.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerCustomizerServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the CustomerCustomizer service. @@ -45,7 +45,7 @@ service CustomerCustomizerService { rpc MutateCustomerCustomizers(MutateCustomerCustomizersRequest) returns (MutateCustomerCustomizersResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/CustomerCustomizers:mutate" + post: "/v18/customers/{customer_id=*}/CustomerCustomizers:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -53,7 +53,7 @@ service CustomerCustomizerService { } // Request message for -// [CustomerCustomizerService.MutateCustomerCustomizers][google.ads.googleads.v15.services.CustomerCustomizerService.MutateCustomerCustomizers]. +// [CustomerCustomizerService.MutateCustomerCustomizers][google.ads.googleads.v18.services.CustomerCustomizerService.MutateCustomerCustomizers]. message MutateCustomerCustomizersRequest { // Required. The ID of the customer whose customer customizers are being // modified. @@ -76,7 +76,7 @@ message MutateCustomerCustomizersRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -86,7 +86,7 @@ message CustomerCustomizerOperation { oneof operation { // Create operation: No resource name is expected for the new customer // customizer - google.ads.googleads.v15.resources.CustomerCustomizer create = 1; + google.ads.googleads.v18.resources.CustomerCustomizer create = 1; // Remove operation: A resource name for the removed customer customizer is // expected, in this format: @@ -119,5 +119,5 @@ message MutateCustomerCustomizerResult { // The mutated CustomerCustomizer with only mutable fields after mutate. // The field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.CustomerCustomizer customer_customizer = 2; + google.ads.googleads.v18.resources.CustomerCustomizer customer_customizer = 2; } diff --git a/google/ads/googleads/v15/services/customer_extension_setting_service.proto b/google/ads/googleads/v18/services/customer_extension_setting_service.proto similarity index 86% rename from google/ads/googleads/v15/services/customer_extension_setting_service.proto rename to google/ads/googleads/v18/services/customer_extension_setting_service.proto index e9266cc6b..b5b620ef4 100644 --- a/google/ads/googleads/v15/services/customer_extension_setting_service.proto +++ b/google/ads/googleads/v18/services/customer_extension_setting_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/customer_extension_setting.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/customer_extension_setting.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerExtensionSettingServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the CustomerExtensionSetting service. @@ -73,7 +73,7 @@ service CustomerExtensionSettingService { rpc MutateCustomerExtensionSettings(MutateCustomerExtensionSettingsRequest) returns (MutateCustomerExtensionSettingsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/customerExtensionSettings:mutate" + post: "/v18/customers/{customer_id=*}/customerExtensionSettings:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -81,7 +81,7 @@ service CustomerExtensionSettingService { } // Request message for -// [CustomerExtensionSettingService.MutateCustomerExtensionSettings][google.ads.googleads.v15.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings]. +// [CustomerExtensionSettingService.MutateCustomerExtensionSettings][google.ads.googleads.v18.services.CustomerExtensionSettingService.MutateCustomerExtensionSettings]. message MutateCustomerExtensionSettingsRequest { // Required. The ID of the customer whose customer extension settings are // being modified. @@ -104,7 +104,7 @@ message MutateCustomerExtensionSettingsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -117,11 +117,11 @@ message CustomerExtensionSettingOperation { oneof operation { // Create operation: No resource name is expected for the new customer // extension setting. - google.ads.googleads.v15.resources.CustomerExtensionSetting create = 1; + google.ads.googleads.v18.resources.CustomerExtensionSetting create = 1; // Update operation: The customer extension setting is expected to have a // valid resource name. - google.ads.googleads.v15.resources.CustomerExtensionSetting update = 2; + google.ads.googleads.v18.resources.CustomerExtensionSetting update = 2; // Remove operation: A resource name for the removed customer extension // setting is expected, in this format: @@ -155,6 +155,6 @@ message MutateCustomerExtensionSettingResult { // The mutated CustomerExtensionSetting with only mutable fields after mutate. // The field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.CustomerExtensionSetting + google.ads.googleads.v18.resources.CustomerExtensionSetting customer_extension_setting = 2; } diff --git a/google/ads/googleads/v15/services/customer_feed_service.proto b/google/ads/googleads/v18/services/customer_feed_service.proto similarity index 84% rename from google/ads/googleads/v15/services/customer_feed_service.proto rename to google/ads/googleads/v18/services/customer_feed_service.proto index 200bf65ec..cfe868eb7 100644 --- a/google/ads/googleads/v15/services/customer_feed_service.proto +++ b/google/ads/googleads/v18/services/customer_feed_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/customer_feed.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/customer_feed.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerFeedServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the CustomerFeed service. @@ -70,7 +70,7 @@ service CustomerFeedService { rpc MutateCustomerFeeds(MutateCustomerFeedsRequest) returns (MutateCustomerFeedsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/customerFeeds:mutate" + post: "/v18/customers/{customer_id=*}/customerFeeds:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -78,7 +78,7 @@ service CustomerFeedService { } // Request message for -// [CustomerFeedService.MutateCustomerFeeds][google.ads.googleads.v15.services.CustomerFeedService.MutateCustomerFeeds]. +// [CustomerFeedService.MutateCustomerFeeds][google.ads.googleads.v18.services.CustomerFeedService.MutateCustomerFeeds]. message MutateCustomerFeedsRequest { // Required. The ID of the customer whose customer feeds are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -99,7 +99,7 @@ message MutateCustomerFeedsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -111,11 +111,11 @@ message CustomerFeedOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new customer feed. - google.ads.googleads.v15.resources.CustomerFeed create = 1; + google.ads.googleads.v18.resources.CustomerFeed create = 1; // Update operation: The customer feed is expected to have a valid resource // name. - google.ads.googleads.v15.resources.CustomerFeed update = 2; + google.ads.googleads.v18.resources.CustomerFeed update = 2; // Remove operation: A resource name for the removed customer feed is // expected, in this format: @@ -149,5 +149,5 @@ message MutateCustomerFeedResult { // The mutated customer feed with only mutable fields after mutate. The field // will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.CustomerFeed customer_feed = 2; + google.ads.googleads.v18.resources.CustomerFeed customer_feed = 2; } diff --git a/google/ads/googleads/v15/services/customer_label_service.proto b/google/ads/googleads/v18/services/customer_label_service.proto similarity index 86% rename from google/ads/googleads/v15/services/customer_label_service.proto rename to google/ads/googleads/v18/services/customer_label_service.proto index b59967331..88c183c32 100644 --- a/google/ads/googleads/v15/services/customer_label_service.proto +++ b/google/ads/googleads/v18/services/customer_label_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/customer_label.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerLabelServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Customer Label service. @@ -55,7 +55,7 @@ service CustomerLabelService { rpc MutateCustomerLabels(MutateCustomerLabelsRequest) returns (MutateCustomerLabelsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/customerLabels:mutate" + post: "/v18/customers/{customer_id=*}/customerLabels:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -63,7 +63,7 @@ service CustomerLabelService { } // Request message for -// [CustomerLabelService.MutateCustomerLabels][google.ads.googleads.v15.services.CustomerLabelService.MutateCustomerLabels]. +// [CustomerLabelService.MutateCustomerLabels][google.ads.googleads.v18.services.CustomerLabelService.MutateCustomerLabels]. message MutateCustomerLabelsRequest { // Required. ID of the customer whose customer-label relationships are being // modified. @@ -91,7 +91,7 @@ message CustomerLabelOperation { oneof operation { // Create operation: No resource name is expected for the new customer-label // relationship. - google.ads.googleads.v15.resources.CustomerLabel create = 1; + google.ads.googleads.v18.resources.CustomerLabel create = 1; // Remove operation: A resource name for the customer-label relationship // being removed, in this format: diff --git a/google/ads/googleads/v15/services/customer_lifecycle_goal_service.proto b/google/ads/googleads/v18/services/customer_lifecycle_goal_service.proto similarity index 72% rename from google/ads/googleads/v15/services/customer_lifecycle_goal_service.proto rename to google/ads/googleads/v18/services/customer_lifecycle_goal_service.proto index b8ad7ad22..81772032c 100644 --- a/google/ads/googleads/v15/services/customer_lifecycle_goal_service.proto +++ b/google/ads/googleads/v18/services/customer_lifecycle_goal_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,26 +14,26 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/customer_lifecycle_goal.proto"; +import "google/ads/googleads/v18/resources/customer_lifecycle_goal.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerLifecycleGoalServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Service to configure customer lifecycle goals. -service CustomerLifecycleService { +service CustomerLifecycleGoalService { option (google.api.default_host) = "googleads.googleapis.com"; option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; @@ -50,7 +50,7 @@ service CustomerLifecycleService { rpc ConfigureCustomerLifecycleGoals(ConfigureCustomerLifecycleGoalsRequest) returns (ConfigureCustomerLifecycleGoalsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/customerLifecycleGoal:configureCustomerLifecycleGoals" + post: "/v18/customers/{customer_id=*}/customerLifecycleGoal:configureCustomerLifecycleGoals" body: "*" }; option (google.api.method_signature) = "customer_id,operation"; @@ -58,7 +58,7 @@ service CustomerLifecycleService { } // Request message for -// [CustomerLifecycleService.configureCustomerLifecycleGoals][]. +// [CustomerLifecycleGoalService.configureCustomerLifecycleGoals][]. message ConfigureCustomerLifecycleGoalsRequest { // Required. The ID of the customer performing the upload. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -81,19 +81,16 @@ message CustomerLifecycleGoalOperation { // The mutate operation. oneof operation { - // Create operation: to create a new customer lifecycle goal or update an - // existing customer lifecycle goal. When creating a new customer lifecycle - // goal, all required fields needs to be set. Resource name and field mask - // needs to be empty. When updating an existing customer lifecycle goal, - // resource name and field mask need to be set. Partial update based on - // field mask is supported when updating an existing customer lifecycle - // goal. - google.ads.googleads.v15.resources.CustomerLifecycleGoal create = 1; + // Create operation: Create a new customer lifecycle goal. + google.ads.googleads.v18.resources.CustomerLifecycleGoal create = 1; + + // Update operation: Update an existing customer lifecycle goal. + google.ads.googleads.v18.resources.CustomerLifecycleGoal update = 3; } } // Response message for -// [CustomerLifecycleService.configureCustomerLifecycleGoals][]. +// [CustomerLifecycleGoalService.configureCustomerLifecycleGoals][]. message ConfigureCustomerLifecycleGoalsResponse { // result for the customer lifecycle goal configuration. ConfigureCustomerLifecycleGoalsResult result = 1; diff --git a/google/ads/googleads/v15/services/customer_manager_link_service.proto b/google/ads/googleads/v18/services/customer_manager_link_service.proto similarity index 88% rename from google/ads/googleads/v15/services/customer_manager_link_service.proto rename to google/ads/googleads/v18/services/customer_manager_link_service.proto index e7950d4c4..98bba37aa 100644 --- a/google/ads/googleads/v15/services/customer_manager_link_service.proto +++ b/google/ads/googleads/v18/services/customer_manager_link_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/customer_manager_link.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerManagerLinkServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Service to manage customer-manager links. service CustomerManagerLinkService { @@ -54,7 +54,7 @@ service CustomerManagerLinkService { rpc MutateCustomerManagerLink(MutateCustomerManagerLinkRequest) returns (MutateCustomerManagerLinkResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/customerManagerLinks:mutate" + post: "/v18/customers/{customer_id=*}/customerManagerLinks:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -79,7 +79,7 @@ service CustomerManagerLinkService { rpc MoveManagerLink(MoveManagerLinkRequest) returns (MoveManagerLinkResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" + post: "/v18/customers/{customer_id=*}/customerManagerLinks:moveManagerLink" body: "*" }; option (google.api.method_signature) = @@ -88,7 +88,7 @@ service CustomerManagerLinkService { } // Request message for -// [CustomerManagerLinkService.MutateCustomerManagerLink][google.ads.googleads.v15.services.CustomerManagerLinkService.MutateCustomerManagerLink]. +// [CustomerManagerLinkService.MutateCustomerManagerLink][google.ads.googleads.v18.services.CustomerManagerLinkService.MutateCustomerManagerLink]. message MutateCustomerManagerLinkRequest { // Required. The ID of the customer whose customer manager links are being // modified. @@ -105,7 +105,7 @@ message MutateCustomerManagerLinkRequest { } // Request message for -// [CustomerManagerLinkService.MoveManagerLink][google.ads.googleads.v15.services.CustomerManagerLinkService.MoveManagerLink]. +// [CustomerManagerLinkService.MoveManagerLink][google.ads.googleads.v18.services.CustomerManagerLinkService.MoveManagerLink]. message MoveManagerLinkRequest { // Required. The ID of the client customer that is being moved. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -138,7 +138,7 @@ message CustomerManagerLinkOperation { // The mutate operation. oneof operation { // Update operation: The link is expected to have a valid resource name. - google.ads.googleads.v15.resources.CustomerManagerLink update = 2; + google.ads.googleads.v18.resources.CustomerManagerLink update = 2; } } diff --git a/google/ads/googleads/v15/services/customer_negative_criterion_service.proto b/google/ads/googleads/v18/services/customer_negative_criterion_service.proto similarity index 85% rename from google/ads/googleads/v15/services/customer_negative_criterion_service.proto rename to google/ads/googleads/v18/services/customer_negative_criterion_service.proto index 20f049537..26a08634b 100644 --- a/google/ads/googleads/v15/services/customer_negative_criterion_service.proto +++ b/google/ads/googleads/v18/services/customer_negative_criterion_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/customer_negative_criterion.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerNegativeCriterionServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Customer Negative Criterion service. @@ -56,7 +56,7 @@ service CustomerNegativeCriterionService { rpc MutateCustomerNegativeCriteria(MutateCustomerNegativeCriteriaRequest) returns (MutateCustomerNegativeCriteriaResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/customerNegativeCriteria:mutate" + post: "/v18/customers/{customer_id=*}/customerNegativeCriteria:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -64,7 +64,7 @@ service CustomerNegativeCriterionService { } // Request message for -// [CustomerNegativeCriterionService.MutateCustomerNegativeCriteria][google.ads.googleads.v15.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria]. +// [CustomerNegativeCriterionService.MutateCustomerNegativeCriteria][google.ads.googleads.v18.services.CustomerNegativeCriterionService.MutateCustomerNegativeCriteria]. message MutateCustomerNegativeCriteriaRequest { // Required. The ID of the customer whose criteria are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -85,7 +85,7 @@ message MutateCustomerNegativeCriteriaRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -94,7 +94,7 @@ message CustomerNegativeCriterionOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new criterion. - google.ads.googleads.v15.resources.CustomerNegativeCriterion create = 1; + google.ads.googleads.v18.resources.CustomerNegativeCriterion create = 1; // Remove operation: A resource name for the removed criterion is expected, // in this format: @@ -127,6 +127,6 @@ message MutateCustomerNegativeCriteriaResult { // The mutated criterion with only mutable fields after mutate. The field will // only be returned when response_content_type is set to "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.CustomerNegativeCriterion + google.ads.googleads.v18.resources.CustomerNegativeCriterion customer_negative_criterion = 2; } diff --git a/google/ads/googleads/v15/services/customer_service.proto b/google/ads/googleads/v18/services/customer_service.proto similarity index 82% rename from google/ads/googleads/v15/services/customer_service.proto rename to google/ads/googleads/v18/services/customer_service.proto index cb8fc5cf1..4524bb307 100644 --- a/google/ads/googleads/v15/services/customer_service.proto +++ b/google/ads/googleads/v18/services/customer_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,25 +14,25 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/access_role.proto"; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/customer.proto"; +import "google/ads/googleads/v18/enums/access_role.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Customer service. @@ -55,7 +55,7 @@ service CustomerService { // [UrlFieldError]() rpc MutateCustomer(MutateCustomerRequest) returns (MutateCustomerResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}:mutate" + post: "/v18/customers/{customer_id=*}:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operation"; @@ -74,7 +74,7 @@ service CustomerService { rpc ListAccessibleCustomers(ListAccessibleCustomersRequest) returns (ListAccessibleCustomersResponse) { option (google.api.http) = { - get: "/v15/customers:listAccessibleCustomers" + get: "/v18/customers:listAccessibleCustomers" }; } @@ -95,7 +95,7 @@ service CustomerService { rpc CreateCustomerClient(CreateCustomerClientRequest) returns (CreateCustomerClientResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}:createCustomerClient" + post: "/v18/customers/{customer_id=*}:createCustomerClient" body: "*" }; option (google.api.method_signature) = "customer_id,customer_client"; @@ -103,7 +103,7 @@ service CustomerService { } // Request message for -// [CustomerService.MutateCustomer][google.ads.googleads.v15.services.CustomerService.MutateCustomer]. +// [CustomerService.MutateCustomer][google.ads.googleads.v18.services.CustomerService.MutateCustomer]. message MutateCustomerRequest { // Required. The ID of the customer being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -117,12 +117,12 @@ message MutateCustomerRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 6; } // Request message for -// [CustomerService.CreateCustomerClient][google.ads.googleads.v15.services.CustomerService.CreateCustomerClient]. +// [CustomerService.CreateCustomerClient][google.ads.googleads.v18.services.CustomerService.CreateCustomerClient]. message CreateCustomerClientRequest { // Required. The ID of the Manager under whom client customer is being // created. @@ -130,7 +130,7 @@ message CreateCustomerClientRequest { // Required. The new client customer to create. The resource name on this // customer will be ignored. - google.ads.googleads.v15.resources.Customer customer_client = 2 + google.ads.googleads.v18.resources.Customer customer_client = 2 [(google.api.field_behavior) = REQUIRED]; // Email address of the user who should be invited on the created client @@ -139,7 +139,7 @@ message CreateCustomerClientRequest { // The proposed role of user on the created client customer. // Accessible only to customers on the allow-list. - google.ads.googleads.v15.enums.AccessRoleEnum.AccessRole access_role = 4; + google.ads.googleads.v18.enums.AccessRoleEnum.AccessRole access_role = 4; // If true, the request is validated but not executed. Only errors are // returned, not results. @@ -149,7 +149,7 @@ message CreateCustomerClientRequest { // A single update on a customer. message CustomerOperation { // Mutate operation. Only updates are supported for customer. - google.ads.googleads.v15.resources.Customer update = 1; + google.ads.googleads.v18.resources.Customer update = 1; // FieldMask that determines which resource fields are modified in an update. google.protobuf.FieldMask update_mask = 2; @@ -183,15 +183,15 @@ message MutateCustomerResult { // The mutated customer with only mutable fields after mutate. The fields will // only be returned when response_content_type is set to "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.Customer customer = 2; + google.ads.googleads.v18.resources.Customer customer = 2; } // Request message for -// [CustomerService.ListAccessibleCustomers][google.ads.googleads.v15.services.CustomerService.ListAccessibleCustomers]. +// [CustomerService.ListAccessibleCustomers][google.ads.googleads.v18.services.CustomerService.ListAccessibleCustomers]. message ListAccessibleCustomersRequest {} // Response message for -// [CustomerService.ListAccessibleCustomers][google.ads.googleads.v15.services.CustomerService.ListAccessibleCustomers]. +// [CustomerService.ListAccessibleCustomers][google.ads.googleads.v18.services.CustomerService.ListAccessibleCustomers]. message ListAccessibleCustomersResponse { // Resource name of customers directly accessible by the // user authenticating the call. diff --git a/google/ads/googleads/v15/services/customer_sk_ad_network_conversion_value_schema_service.proto b/google/ads/googleads/v18/services/customer_sk_ad_network_conversion_value_schema_service.proto similarity index 75% rename from google/ads/googleads/v15/services/customer_sk_ad_network_conversion_value_schema_service.proto rename to google/ads/googleads/v18/services/customer_sk_ad_network_conversion_value_schema_service.proto index c62e998cc..eee05f92a 100644 --- a/google/ads/googleads/v15/services/customer_sk_ad_network_conversion_value_schema_service.proto +++ b/google/ads/googleads/v18/services/customer_sk_ad_network_conversion_value_schema_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/customer_sk_ad_network_conversion_value_schema.proto"; +import "google/ads/googleads/v18/resources/customer_sk_ad_network_conversion_value_schema.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; +import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerSkAdNetworkConversionValueSchemaServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Customer Negative Criterion service. @@ -49,7 +51,7 @@ service CustomerSkAdNetworkConversionValueSchemaService { MutateCustomerSkAdNetworkConversionValueSchemaRequest) returns (MutateCustomerSkAdNetworkConversionValueSchemaResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/customerSkAdNetworkConversionValueSchemas:mutate" + post: "/v18/customers/{customer_id=*}/customerSkAdNetworkConversionValueSchemas:mutate" body: "*" }; } @@ -58,12 +60,12 @@ service CustomerSkAdNetworkConversionValueSchemaService { // A single update operation for a CustomerSkAdNetworkConversionValueSchema. message CustomerSkAdNetworkConversionValueSchemaOperation { // Update operation: The schema is expected to have a valid resource name. - google.ads.googleads.v15.resources.CustomerSkAdNetworkConversionValueSchema + google.ads.googleads.v18.resources.CustomerSkAdNetworkConversionValueSchema update = 1; } // Request message for -// [CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema][google.ads.googleads.v15.services.CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema]. +// [CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema][google.ads.googleads.v18.services.CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConversionValueSchema]. message MutateCustomerSkAdNetworkConversionValueSchemaRequest { // The ID of the customer whose shared sets are being modified. string customer_id = 1; @@ -74,6 +76,11 @@ message MutateCustomerSkAdNetworkConversionValueSchemaRequest { // If true, the request is validated but not executed. Only errors are // returned, not results. bool validate_only = 3; + + // Optional. If true, enables returning warnings. Warnings return error + // messages and error codes without blocking the execution of the mutate + // operation. + bool enable_warnings = 4 [(google.api.field_behavior) = OPTIONAL]; } // The result for the CustomerSkAdNetworkConversionValueSchema mutate. @@ -91,4 +98,8 @@ message MutateCustomerSkAdNetworkConversionValueSchemaResult { message MutateCustomerSkAdNetworkConversionValueSchemaResponse { // All results for the mutate. MutateCustomerSkAdNetworkConversionValueSchemaResult result = 1; + + // Non blocking errors that provides schema validation failure details. + // Returned only when enable_warnings = true. + google.rpc.Status warning = 2; } diff --git a/google/ads/googleads/v15/services/customer_user_access_invitation_service.proto b/google/ads/googleads/v18/services/customer_user_access_invitation_service.proto similarity index 84% rename from google/ads/googleads/v15/services/customer_user_access_invitation_service.proto rename to google/ads/googleads/v18/services/customer_user_access_invitation_service.proto index d0b190fa1..14a75ed1b 100644 --- a/google/ads/googleads/v15/services/customer_user_access_invitation_service.proto +++ b/google/ads/googleads/v18/services/customer_user_access_invitation_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/customer_user_access_invitation.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerUserAccessInvitationServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the CustomerUserAccessInvitation service. @@ -53,7 +53,7 @@ service CustomerUserAccessInvitationService { MutateCustomerUserAccessInvitationRequest) returns (MutateCustomerUserAccessInvitationResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/customerUserAccessInvitations:mutate" + post: "/v18/customers/{customer_id=*}/customerUserAccessInvitations:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operation"; @@ -61,7 +61,7 @@ service CustomerUserAccessInvitationService { } // Request message for -// [CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation][google.ads.googleads.v15.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation] +// [CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation][google.ads.googleads.v18.services.CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation] message MutateCustomerUserAccessInvitationRequest { // Required. The ID of the customer whose access invitation is being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -77,7 +77,7 @@ message CustomerUserAccessInvitationOperation { oneof operation { // Create operation: No resource name is expected for the new access // invitation. - google.ads.googleads.v15.resources.CustomerUserAccessInvitation create = 1; + google.ads.googleads.v18.resources.CustomerUserAccessInvitation create = 1; // Remove operation: A resource name for the revoke invitation is // expected, in this format: diff --git a/google/ads/googleads/v15/services/customer_user_access_service.proto b/google/ads/googleads/v18/services/customer_user_access_service.proto similarity index 84% rename from google/ads/googleads/v15/services/customer_user_access_service.proto rename to google/ads/googleads/v18/services/customer_user_access_service.proto index 65364a7cf..2d786226f 100644 --- a/google/ads/googleads/v15/services/customer_user_access_service.proto +++ b/google/ads/googleads/v18/services/customer_user_access_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/customer_user_access.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomerUserAccessServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // This service manages the permissions of a user on a given customer. service CustomerUserAccessService { @@ -53,7 +53,7 @@ service CustomerUserAccessService { rpc MutateCustomerUserAccess(MutateCustomerUserAccessRequest) returns (MutateCustomerUserAccessResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/customerUserAccesses:mutate" + post: "/v18/customers/{customer_id=*}/customerUserAccesses:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operation"; @@ -61,7 +61,7 @@ service CustomerUserAccessService { } // Mutate Request for -// [CustomerUserAccessService.MutateCustomerUserAccess][google.ads.googleads.v15.services.CustomerUserAccessService.MutateCustomerUserAccess]. +// [CustomerUserAccessService.MutateCustomerUserAccess][google.ads.googleads.v18.services.CustomerUserAccessService.MutateCustomerUserAccess]. message MutateCustomerUserAccessRequest { // Required. The ID of the customer being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -80,7 +80,7 @@ message CustomerUserAccessOperation { oneof operation { // Update operation: The customer user access is expected to have a valid // resource name. - google.ads.googleads.v15.resources.CustomerUserAccess update = 1; + google.ads.googleads.v18.resources.CustomerUserAccess update = 1; // Remove operation: A resource name for the removed access is // expected, in this format: diff --git a/google/ads/googleads/v15/services/customizer_attribute_service.proto b/google/ads/googleads/v18/services/customizer_attribute_service.proto similarity index 84% rename from google/ads/googleads/v15/services/customizer_attribute_service.proto rename to google/ads/googleads/v18/services/customizer_attribute_service.proto index 57bc86001..c34d84082 100644 --- a/google/ads/googleads/v15/services/customizer_attribute_service.proto +++ b/google/ads/googleads/v18/services/customizer_attribute_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/customizer_attribute.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/customizer_attribute.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "CustomizerAttributeServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the CustomizerAttribute service. @@ -46,7 +46,7 @@ service CustomizerAttributeService { rpc MutateCustomizerAttributes(MutateCustomizerAttributesRequest) returns (MutateCustomizerAttributesResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/customizerAttributes:mutate" + post: "/v18/customers/{customer_id=*}/customizerAttributes:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -54,7 +54,7 @@ service CustomizerAttributeService { } // Request message for -// [CustomizerAttributeService.MutateCustomizerAttributes][google.ads.googleads.v15.services.CustomizerAttributeService.MutateCustomizerAttributes]. +// [CustomizerAttributeService.MutateCustomizerAttributes][google.ads.googleads.v18.services.CustomizerAttributeService.MutateCustomizerAttributes]. message MutateCustomizerAttributesRequest { // Required. The ID of the customer whose customizer attributes are being // modified. @@ -77,7 +77,7 @@ message MutateCustomizerAttributesRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -90,7 +90,7 @@ message CustomizerAttributeOperation { oneof operation { // Create operation: No resource name is expected for the new customizer // attribute - google.ads.googleads.v15.resources.CustomizerAttribute create = 1; + google.ads.googleads.v18.resources.CustomizerAttribute create = 1; // Remove operation: A resource name for the removed customizer attribute is // expected, in this format: @@ -123,6 +123,6 @@ message MutateCustomizerAttributeResult { // The mutated CustomizerAttribute with only mutable fields after mutate. // The field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.CustomizerAttribute customizer_attribute = + google.ads.googleads.v18.resources.CustomizerAttribute customizer_attribute = 2; } diff --git a/google/ads/googleads/v18/services/data_link_service.proto b/google/ads/googleads/v18/services/data_link_service.proto new file mode 100644 index 000000000..7444ab991 --- /dev/null +++ b/google/ads/googleads/v18/services/data_link_service.proto @@ -0,0 +1,83 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.services; + +import "google/ads/googleads/v18/resources/data_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.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; +option java_multiple_files = true; +option java_outer_classname = "DataLinkServiceProto"; +option java_package = "com.google.ads.googleads.v18.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; + +// This service allows management of data links between a Google +// Ads customer and another data entity. +service DataLinkService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates a data link. The requesting Google Ads account name and account ID + // will be shared with the third party (such as YouTube creators for video + // links) to whom you are creating the link with. Only customers on the + // allow-list can create data links. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [DatabaseError]() + // [DataLinkError]() + // [FieldError]() + // [HeaderError]() + // [InternalError]() + // [MutateError]() + // [QuotaError]() + // [RequestError]() + rpc CreateDataLink(CreateDataLinkRequest) returns (CreateDataLinkResponse) { + option (google.api.http) = { + post: "/v18/customers/{customer_id=*}/dataLinks:create" + body: "*" + }; + option (google.api.method_signature) = "customer_id,data_link"; + } +} + +// Request message for +// [DataLinkService.CreateDataLink][google.ads.googleads.v18.services.DataLinkService.CreateDataLink]. +message CreateDataLinkRequest { + // Required. The ID of the customer for which the data link is created. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The data link to be created. + google.ads.googleads.v18.resources.DataLink data_link = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for +// [DataLinkService.CreateDataLink][google.ads.googleads.v18.services.DataLinkService.CreateDataLink]. +message CreateDataLinkResponse { + // Returned for successful operations. Resource name of the data link. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/DataLink" + }]; +} diff --git a/google/ads/googleads/v15/services/experiment_arm_service.proto b/google/ads/googleads/v18/services/experiment_arm_service.proto similarity index 83% rename from google/ads/googleads/v15/services/experiment_arm_service.proto rename to google/ads/googleads/v18/services/experiment_arm_service.proto index 2bdbf9676..42f747a14 100644 --- a/google/ads/googleads/v15/services/experiment_arm_service.proto +++ b/google/ads/googleads/v18/services/experiment_arm_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/experiment_arm.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/experiment_arm.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "ExperimentArmServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Experiment Arm service. @@ -55,7 +55,7 @@ service ExperimentArmService { rpc MutateExperimentArms(MutateExperimentArmsRequest) returns (MutateExperimentArmsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/experimentArms:mutate" + post: "/v18/customers/{customer_id=*}/experimentArms:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -63,7 +63,7 @@ service ExperimentArmService { } // Request message for -// [ExperimentArmService.MutateExperimentArms][google.ads.googleads.v15.services.ExperimentArmService.MutateExperimentArms]. +// [ExperimentArmService.MutateExperimentArms][google.ads.googleads.v18.services.ExperimentArmService.MutateExperimentArms]. message MutateExperimentArmsRequest { // Required. The ID of the customer whose experiments are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -84,7 +84,7 @@ message MutateExperimentArmsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -96,11 +96,11 @@ message ExperimentArmOperation { // The mutate operation. oneof operation { // Create operation - google.ads.googleads.v15.resources.ExperimentArm create = 1; + google.ads.googleads.v18.resources.ExperimentArm create = 1; // Update operation: The experiment arm is expected to have a valid // resource name. - google.ads.googleads.v15.resources.ExperimentArm update = 2; + google.ads.googleads.v18.resources.ExperimentArm update = 2; // Remove operation: The experiment arm is expected to have a valid // resource name, in this format: @@ -134,5 +134,5 @@ message MutateExperimentArmResult { // The mutated experiment arm with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.ExperimentArm experiment_arm = 2; + google.ads.googleads.v18.resources.ExperimentArm experiment_arm = 2; } diff --git a/google/ads/googleads/v15/services/experiment_service.proto b/google/ads/googleads/v18/services/experiment_service.proto similarity index 89% rename from google/ads/googleads/v15/services/experiment_service.proto rename to google/ads/googleads/v18/services/experiment_service.proto index 1225325f1..35650cb4a 100644 --- a/google/ads/googleads/v15/services/experiment_service.proto +++ b/google/ads/googleads/v18/services/experiment_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/experiment.proto"; +import "google/ads/googleads/v18/resources/experiment.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -26,14 +26,14 @@ import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "ExperimentServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Experiment service. @@ -55,7 +55,7 @@ service ExperimentService { rpc MutateExperiments(MutateExperimentsRequest) returns (MutateExperimentsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/experiments:mutate" + post: "/v18/customers/{customer_id=*}/experiments:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -75,7 +75,7 @@ service ExperimentService { // [RequestError]() rpc EndExperiment(EndExperimentRequest) returns (google.protobuf.Empty) { option (google.api.http) = { - post: "/v15/{experiment=customers/*/experiments/*}:endExperiment" + post: "/v18/{experiment=customers/*/experiments/*}:endExperiment" body: "*" }; option (google.api.method_signature) = "experiment"; @@ -95,7 +95,7 @@ service ExperimentService { rpc ListExperimentAsyncErrors(ListExperimentAsyncErrorsRequest) returns (ListExperimentAsyncErrorsResponse) { option (google.api.http) = { - get: "/v15/{resource_name=customers/*/experiments/*}:listExperimentAsyncErrors" + get: "/v18/{resource_name=customers/*/experiments/*}:listExperimentAsyncErrors" }; option (google.api.method_signature) = "resource_name"; } @@ -114,7 +114,7 @@ service ExperimentService { rpc GraduateExperiment(GraduateExperimentRequest) returns (google.protobuf.Empty) { option (google.api.http) = { - post: "/v15/{experiment=customers/*/experiments/*}:graduateExperiment" + post: "/v18/{experiment=customers/*/experiments/*}:graduateExperiment" body: "*" }; option (google.api.method_signature) = @@ -148,13 +148,13 @@ service ExperimentService { rpc ScheduleExperiment(ScheduleExperimentRequest) returns (google.longrunning.Operation) { option (google.api.http) = { - post: "/v15/{resource_name=customers/*/experiments/*}:scheduleExperiment" + post: "/v18/{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.v15.services.ScheduleExperimentMetadata" + metadata_type: "google.ads.googleads.v18.services.ScheduleExperimentMetadata" }; } @@ -177,19 +177,19 @@ service ExperimentService { rpc PromoteExperiment(PromoteExperimentRequest) returns (google.longrunning.Operation) { option (google.api.http) = { - post: "/v15/{resource_name=customers/*/experiments/*}:promoteExperiment" + post: "/v18/{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.v15.services.PromoteExperimentMetadata" + metadata_type: "google.ads.googleads.v18.services.PromoteExperimentMetadata" }; } } // Request message for -// [ExperimentService.MutateExperiments][google.ads.googleads.v15.services.ExperimentService.MutateExperiments]. +// [ExperimentService.MutateExperiments][google.ads.googleads.v18.services.ExperimentService.MutateExperiments]. message MutateExperimentsRequest { // Required. The ID of the customer whose experiments are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -217,11 +217,11 @@ message ExperimentOperation { // The mutate operation. oneof operation { // Create operation - google.ads.googleads.v15.resources.Experiment create = 1; + google.ads.googleads.v18.resources.Experiment create = 1; // Update operation: The experiment is expected to have a valid // resource name. - google.ads.googleads.v15.resources.Experiment update = 2; + google.ads.googleads.v18.resources.Experiment update = 2; // Remove operation: The experiment is expected to have a valid // resource name, in this format: @@ -254,7 +254,7 @@ message MutateExperimentResult { } // Request message for -// [ExperimentService.EndExperiment][google.ads.googleads.v15.services.ExperimentService.EndExperiment]. +// [ExperimentService.EndExperiment][google.ads.googleads.v18.services.ExperimentService.EndExperiment]. message EndExperimentRequest { // Required. The resource name of the campaign experiment to end. string experiment = 1 [ @@ -270,7 +270,7 @@ message EndExperimentRequest { } // Request message for -// [ExperimentService.ListExperimentAsyncErrors][google.ads.googleads.v15.services.ExperimentService.ListExperimentAsyncErrors]. +// [ExperimentService.ListExperimentAsyncErrors][google.ads.googleads.v18.services.ExperimentService.ListExperimentAsyncErrors]. message ListExperimentAsyncErrorsRequest { // Required. The name of the experiment from which to retrieve the async // errors. @@ -295,7 +295,7 @@ message ListExperimentAsyncErrorsRequest { } // Response message for -// [ExperimentService.ListExperimentAsyncErrors][google.ads.googleads.v15.services.ExperimentService.ListExperimentAsyncErrors]. +// [ExperimentService.ListExperimentAsyncErrors][google.ads.googleads.v18.services.ExperimentService.ListExperimentAsyncErrors]. message ListExperimentAsyncErrorsResponse { // details of the errors when performing the asynchronous operation. repeated google.rpc.Status errors = 1; @@ -308,7 +308,7 @@ message ListExperimentAsyncErrorsResponse { } // Request message for -// [ExperimentService.GraduateExperiment][google.ads.googleads.v15.services.ExperimentService.GraduateExperiment]. +// [ExperimentService.GraduateExperiment][google.ads.googleads.v18.services.ExperimentService.GraduateExperiment]. message GraduateExperimentRequest { // Required. The experiment to be graduated. string experiment = 1 [ @@ -350,7 +350,7 @@ message CampaignBudgetMapping { } // Request message for -// [ExperimentService.ScheduleExperiment][google.ads.googleads.v15.services.ExperimentService.ScheduleExperiment]. +// [ExperimentService.ScheduleExperiment][google.ads.googleads.v18.services.ExperimentService.ScheduleExperiment]. message ScheduleExperimentRequest { // Required. The scheduled experiment. string resource_name = 1 [ @@ -377,7 +377,7 @@ message ScheduleExperimentMetadata { } // Request message for -// [ExperimentService.PromoteExperiment][google.ads.googleads.v15.services.ExperimentService.PromoteExperiment]. +// [ExperimentService.PromoteExperiment][google.ads.googleads.v18.services.ExperimentService.PromoteExperiment]. message PromoteExperimentRequest { // Required. The resource name of the experiment to promote. string resource_name = 1 [ diff --git a/google/ads/googleads/v15/services/extension_feed_item_service.proto b/google/ads/googleads/v18/services/extension_feed_item_service.proto similarity index 85% rename from google/ads/googleads/v15/services/extension_feed_item_service.proto rename to google/ads/googleads/v18/services/extension_feed_item_service.proto index 0be13fb9c..b93d73bbb 100644 --- a/google/ads/googleads/v15/services/extension_feed_item_service.proto +++ b/google/ads/googleads/v18/services/extension_feed_item_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/extension_feed_item.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/extension_feed_item.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "ExtensionFeedItemServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the ExtensionFeedItem service. @@ -71,7 +71,7 @@ service ExtensionFeedItemService { rpc MutateExtensionFeedItems(MutateExtensionFeedItemsRequest) returns (MutateExtensionFeedItemsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/extensionFeedItems:mutate" + post: "/v18/customers/{customer_id=*}/extensionFeedItems:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -79,7 +79,7 @@ service ExtensionFeedItemService { } // Request message for -// [ExtensionFeedItemService.MutateExtensionFeedItems][google.ads.googleads.v15.services.ExtensionFeedItemService.MutateExtensionFeedItems]. +// [ExtensionFeedItemService.MutateExtensionFeedItems][google.ads.googleads.v18.services.ExtensionFeedItemService.MutateExtensionFeedItems]. message MutateExtensionFeedItemsRequest { // Required. The ID of the customer whose extension feed items are being // modified. @@ -102,7 +102,7 @@ message MutateExtensionFeedItemsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -115,11 +115,11 @@ message ExtensionFeedItemOperation { oneof operation { // Create operation: No resource name is expected for the new extension // feed item. - google.ads.googleads.v15.resources.ExtensionFeedItem create = 1; + google.ads.googleads.v18.resources.ExtensionFeedItem create = 1; // Update operation: The extension feed item is expected to have a // valid resource name. - google.ads.googleads.v15.resources.ExtensionFeedItem update = 2; + google.ads.googleads.v18.resources.ExtensionFeedItem update = 2; // Remove operation: A resource name for the removed extension feed item // is expected, in this format: @@ -153,5 +153,5 @@ message MutateExtensionFeedItemResult { // The mutated extension feed item with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.ExtensionFeedItem extension_feed_item = 2; + google.ads.googleads.v18.resources.ExtensionFeedItem extension_feed_item = 2; } diff --git a/google/ads/googleads/v15/services/feed_item_service.proto b/google/ads/googleads/v18/services/feed_item_service.proto similarity index 84% rename from google/ads/googleads/v15/services/feed_item_service.proto rename to google/ads/googleads/v18/services/feed_item_service.proto index 86415c001..1e5502e30 100644 --- a/google/ads/googleads/v15/services/feed_item_service.proto +++ b/google/ads/googleads/v18/services/feed_item_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/feed_item.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/feed_item.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "FeedItemServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the FeedItem service. @@ -73,7 +73,7 @@ service FeedItemService { rpc MutateFeedItems(MutateFeedItemsRequest) returns (MutateFeedItemsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/feedItems:mutate" + post: "/v18/customers/{customer_id=*}/feedItems:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -81,7 +81,7 @@ service FeedItemService { } // Request message for -// [FeedItemService.MutateFeedItems][google.ads.googleads.v15.services.FeedItemService.MutateFeedItems]. +// [FeedItemService.MutateFeedItems][google.ads.googleads.v18.services.FeedItemService.MutateFeedItems]. message MutateFeedItemsRequest { // Required. The ID of the customer whose feed items are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -102,7 +102,7 @@ message MutateFeedItemsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -114,11 +114,11 @@ message FeedItemOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new feed item. - google.ads.googleads.v15.resources.FeedItem create = 1; + google.ads.googleads.v18.resources.FeedItem create = 1; // Update operation: The feed item is expected to have a valid resource // name. - google.ads.googleads.v15.resources.FeedItem update = 2; + google.ads.googleads.v18.resources.FeedItem update = 2; // Remove operation: A resource name for the removed feed item is // expected, in this format: @@ -151,5 +151,5 @@ message MutateFeedItemResult { // The mutated feed item with only mutable fields after mutate. The field will // only be returned when response_content_type is set to "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.FeedItem feed_item = 2; + google.ads.googleads.v18.resources.FeedItem feed_item = 2; } diff --git a/google/ads/googleads/v15/services/feed_item_set_link_service.proto b/google/ads/googleads/v18/services/feed_item_set_link_service.proto similarity index 86% rename from google/ads/googleads/v15/services/feed_item_set_link_service.proto rename to google/ads/googleads/v18/services/feed_item_set_link_service.proto index 4c5ad2001..e362f9c13 100644 --- a/google/ads/googleads/v15/services/feed_item_set_link_service.proto +++ b/google/ads/googleads/v18/services/feed_item_set_link_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/feed_item_set_link.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "FeedItemSetLinkServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the FeedItemSetLink service. @@ -51,7 +51,7 @@ service FeedItemSetLinkService { rpc MutateFeedItemSetLinks(MutateFeedItemSetLinksRequest) returns (MutateFeedItemSetLinksResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/feedItemSetLinks:mutate" + post: "/v18/customers/{customer_id=*}/feedItemSetLinks:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -59,7 +59,7 @@ service FeedItemSetLinkService { } // Request message for -// [FeedItemSetLinkService.MutateFeedItemSetLinks][google.ads.googleads.v15.services.FeedItemSetLinkService.MutateFeedItemSetLinks]. +// [FeedItemSetLinkService.MutateFeedItemSetLinks][google.ads.googleads.v18.services.FeedItemSetLinkService.MutateFeedItemSetLinks]. message MutateFeedItemSetLinksRequest { // Required. The ID of the customer whose feed item set links are being // modified. @@ -87,7 +87,7 @@ message FeedItemSetLinkOperation { oneof operation { // Create operation: No resource name is expected for the // new feed item set link. - google.ads.googleads.v15.resources.FeedItemSetLink create = 1; + google.ads.googleads.v18.resources.FeedItemSetLink create = 1; // Remove operation: A resource name for the removed feed item set link is // expected, in this format: diff --git a/google/ads/googleads/v15/services/feed_item_set_service.proto b/google/ads/googleads/v18/services/feed_item_set_service.proto similarity index 86% rename from google/ads/googleads/v15/services/feed_item_set_service.proto rename to google/ads/googleads/v18/services/feed_item_set_service.proto index 2d46cdb10..845c3db63 100644 --- a/google/ads/googleads/v15/services/feed_item_set_service.proto +++ b/google/ads/googleads/v18/services/feed_item_set_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/feed_item_set.proto"; +import "google/ads/googleads/v18/resources/feed_item_set.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -24,14 +24,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "FeedItemSetServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the FeedItemSet service. @@ -54,7 +54,7 @@ service FeedItemSetService { rpc MutateFeedItemSets(MutateFeedItemSetsRequest) returns (MutateFeedItemSetsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/feedItemSets:mutate" + post: "/v18/customers/{customer_id=*}/feedItemSets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -62,7 +62,7 @@ service FeedItemSetService { } // Request message for -// [FeedItemSetService.MutateFeedItemSets][google.ads.googleads.v15.services.FeedItemSetService.MutateFeedItemSets]. +// [FeedItemSetService.MutateFeedItemSets][google.ads.googleads.v18.services.FeedItemSetService.MutateFeedItemSets]. message MutateFeedItemSetsRequest { // Required. The ID of the customer whose feed item sets are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -90,11 +90,11 @@ message FeedItemSetOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new feed item set - google.ads.googleads.v15.resources.FeedItemSet create = 1; + google.ads.googleads.v18.resources.FeedItemSet create = 1; // Update operation: The feed item set is expected to have a valid resource // name. - google.ads.googleads.v15.resources.FeedItemSet update = 2; + google.ads.googleads.v18.resources.FeedItemSet update = 2; // Remove operation: A resource name for the removed feed item is // expected, in this format: diff --git a/google/ads/googleads/v15/services/feed_item_target_service.proto b/google/ads/googleads/v18/services/feed_item_target_service.proto similarity index 85% rename from google/ads/googleads/v15/services/feed_item_target_service.proto rename to google/ads/googleads/v18/services/feed_item_target_service.proto index 33243844a..98002ba75 100644 --- a/google/ads/googleads/v15/services/feed_item_target_service.proto +++ b/google/ads/googleads/v18/services/feed_item_target_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/feed_item_target.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "FeedItemTargetServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the FeedItemTarget service. @@ -65,7 +65,7 @@ service FeedItemTargetService { rpc MutateFeedItemTargets(MutateFeedItemTargetsRequest) returns (MutateFeedItemTargetsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/feedItemTargets:mutate" + post: "/v18/customers/{customer_id=*}/feedItemTargets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -73,7 +73,7 @@ service FeedItemTargetService { } // Request message for -// [FeedItemTargetService.MutateFeedItemTargets][google.ads.googleads.v15.services.FeedItemTargetService.MutateFeedItemTargets]. +// [FeedItemTargetService.MutateFeedItemTargets][google.ads.googleads.v18.services.FeedItemTargetService.MutateFeedItemTargets]. message MutateFeedItemTargetsRequest { // Required. The ID of the customer whose feed item targets are being // modified. @@ -92,7 +92,7 @@ message MutateFeedItemTargetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; // If true, the request is validated but not executed. Only errors are @@ -106,7 +106,7 @@ message FeedItemTargetOperation { oneof operation { // Create operation: No resource name is expected for the new feed item // target. - google.ads.googleads.v15.resources.FeedItemTarget create = 1; + google.ads.googleads.v18.resources.FeedItemTarget create = 1; // Remove operation: A resource name for the removed feed item target is // expected, in this format: @@ -140,5 +140,5 @@ message MutateFeedItemTargetResult { // The mutated feed item target with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.FeedItemTarget feed_item_target = 2; + google.ads.googleads.v18.resources.FeedItemTarget feed_item_target = 2; } diff --git a/google/ads/googleads/v15/services/feed_mapping_service.proto b/google/ads/googleads/v18/services/feed_mapping_service.proto similarity index 85% rename from google/ads/googleads/v15/services/feed_mapping_service.proto rename to google/ads/googleads/v18/services/feed_mapping_service.proto index e5415ec27..34b7aceba 100644 --- a/google/ads/googleads/v15/services/feed_mapping_service.proto +++ b/google/ads/googleads/v18/services/feed_mapping_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/feed_mapping.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "FeedMappingServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the FeedMapping service. @@ -66,7 +66,7 @@ service FeedMappingService { rpc MutateFeedMappings(MutateFeedMappingsRequest) returns (MutateFeedMappingsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/feedMappings:mutate" + post: "/v18/customers/{customer_id=*}/feedMappings:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -74,7 +74,7 @@ service FeedMappingService { } // Request message for -// [FeedMappingService.MutateFeedMappings][google.ads.googleads.v15.services.FeedMappingService.MutateFeedMappings]. +// [FeedMappingService.MutateFeedMappings][google.ads.googleads.v18.services.FeedMappingService.MutateFeedMappings]. message MutateFeedMappingsRequest { // Required. The ID of the customer whose feed mappings are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -95,7 +95,7 @@ message MutateFeedMappingsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -104,7 +104,7 @@ message FeedMappingOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new feed mapping. - google.ads.googleads.v15.resources.FeedMapping create = 1; + google.ads.googleads.v18.resources.FeedMapping create = 1; // Remove operation: A resource name for the removed feed mapping is // expected, in this format: @@ -138,5 +138,5 @@ message MutateFeedMappingResult { // The mutated feed mapping with only mutable fields after mutate. The field // will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.FeedMapping feed_mapping = 2; + google.ads.googleads.v18.resources.FeedMapping feed_mapping = 2; } diff --git a/google/ads/googleads/v15/services/feed_service.proto b/google/ads/googleads/v18/services/feed_service.proto similarity index 84% rename from google/ads/googleads/v15/services/feed_service.proto rename to google/ads/googleads/v18/services/feed_service.proto index 9c3c2cced..2610169ca 100644 --- a/google/ads/googleads/v15/services/feed_service.proto +++ b/google/ads/googleads/v18/services/feed_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/feed.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/feed.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "FeedServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Feed service. @@ -71,7 +71,7 @@ service FeedService { // [StringLengthError]() rpc MutateFeeds(MutateFeedsRequest) returns (MutateFeedsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/feeds:mutate" + post: "/v18/customers/{customer_id=*}/feeds:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -79,7 +79,7 @@ service FeedService { } // Request message for -// [FeedService.MutateFeeds][google.ads.googleads.v15.services.FeedService.MutateFeeds]. +// [FeedService.MutateFeeds][google.ads.googleads.v18.services.FeedService.MutateFeeds]. message MutateFeedsRequest { // Required. The ID of the customer whose feeds are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -100,7 +100,7 @@ message MutateFeedsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -112,11 +112,11 @@ message FeedOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new feed. - google.ads.googleads.v15.resources.Feed create = 1; + google.ads.googleads.v18.resources.Feed create = 1; // Update operation: The feed is expected to have a valid resource // name. - google.ads.googleads.v15.resources.Feed update = 2; + google.ads.googleads.v18.resources.Feed update = 2; // Remove operation: A resource name for the removed feed is // expected, in this format: @@ -149,5 +149,5 @@ message MutateFeedResult { // The mutated feed with only mutable fields after mutate. The field will only // be returned when response_content_type is set to "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.Feed feed = 2; + google.ads.googleads.v18.resources.Feed feed = 2; } diff --git a/google/ads/googleads/v15/services/geo_target_constant_service.proto b/google/ads/googleads/v18/services/geo_target_constant_service.proto similarity index 83% rename from google/ads/googleads/v15/services/geo_target_constant_service.proto rename to google/ads/googleads/v18/services/geo_target_constant_service.proto index 0882526d8..f9e4269c2 100644 --- a/google/ads/googleads/v15/services/geo_target_constant_service.proto +++ b/google/ads/googleads/v18/services/geo_target_constant_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/geo_target_constant.proto"; +import "google/ads/googleads/v18/resources/geo_target_constant.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "GeoTargetConstantServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Geo target constant service. @@ -49,14 +49,14 @@ service GeoTargetConstantService { rpc SuggestGeoTargetConstants(SuggestGeoTargetConstantsRequest) returns (SuggestGeoTargetConstantsResponse) { option (google.api.http) = { - post: "/v15/geoTargetConstants:suggest" + post: "/v18/geoTargetConstants:suggest" body: "*" }; } } // Request message for -// [GeoTargetConstantService.SuggestGeoTargetConstants][google.ads.googleads.v15.services.GeoTargetConstantService.SuggestGeoTargetConstants]. +// [GeoTargetConstantService.SuggestGeoTargetConstants][google.ads.googleads.v18.services.GeoTargetConstantService.SuggestGeoTargetConstants]. message SuggestGeoTargetConstantsRequest { // A list of location names. message LocationNames { @@ -89,7 +89,7 @@ message SuggestGeoTargetConstantsRequest { } // Response message for -// [GeoTargetConstantService.SuggestGeoTargetConstants][google.ads.googleads.v15.services.GeoTargetConstantService.SuggestGeoTargetConstants]. +// [GeoTargetConstantService.SuggestGeoTargetConstants][google.ads.googleads.v18.services.GeoTargetConstantService.SuggestGeoTargetConstants]. message SuggestGeoTargetConstantsResponse { // Geo target constant suggestions. repeated GeoTargetConstantSuggestion geo_target_constant_suggestions = 1; @@ -112,9 +112,9 @@ message GeoTargetConstantSuggestion { optional string search_term = 8; // The GeoTargetConstant result. - google.ads.googleads.v15.resources.GeoTargetConstant geo_target_constant = 4; + google.ads.googleads.v18.resources.GeoTargetConstant geo_target_constant = 4; // The list of parents of the geo target constant. - repeated google.ads.googleads.v15.resources.GeoTargetConstant + repeated google.ads.googleads.v18.resources.GeoTargetConstant geo_target_constant_parents = 5; } diff --git a/google/ads/googleads/v15/services/google_ads_field_service.proto b/google/ads/googleads/v18/services/google_ads_field_service.proto similarity index 81% rename from google/ads/googleads/v15/services/google_ads_field_service.proto rename to google/ads/googleads/v18/services/google_ads_field_service.proto index 7de7e66e8..1819998c0 100644 --- a/google/ads/googleads/v15/services/google_ads_field_service.proto +++ b/google/ads/googleads/v18/services/google_ads_field_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/google_ads_field.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "GoogleAdsFieldServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the GoogleAdsFieldService. @@ -48,9 +48,9 @@ service GoogleAdsFieldService { // [QuotaError]() // [RequestError]() rpc GetGoogleAdsField(GetGoogleAdsFieldRequest) - returns (google.ads.googleads.v15.resources.GoogleAdsField) { + returns (google.ads.googleads.v18.resources.GoogleAdsField) { option (google.api.http) = { - get: "/v15/{resource_name=googleAdsFields/*}" + get: "/v18/{resource_name=googleAdsFields/*}" }; option (google.api.method_signature) = "resource_name"; } @@ -68,7 +68,7 @@ service GoogleAdsFieldService { rpc SearchGoogleAdsFields(SearchGoogleAdsFieldsRequest) returns (SearchGoogleAdsFieldsResponse) { option (google.api.http) = { - post: "/v15/googleAdsFields:search" + post: "/v18/googleAdsFields:search" body: "*" }; option (google.api.method_signature) = "query"; @@ -76,7 +76,7 @@ service GoogleAdsFieldService { } // Request message for -// [GoogleAdsFieldService.GetGoogleAdsField][google.ads.googleads.v15.services.GoogleAdsFieldService.GetGoogleAdsField]. +// [GoogleAdsFieldService.GetGoogleAdsField][google.ads.googleads.v18.services.GoogleAdsFieldService.GetGoogleAdsField]. message GetGoogleAdsFieldRequest { // Required. The resource name of the field to get. string resource_name = 1 [ @@ -88,7 +88,7 @@ message GetGoogleAdsFieldRequest { } // Request message for -// [GoogleAdsFieldService.SearchGoogleAdsFields][google.ads.googleads.v15.services.GoogleAdsFieldService.SearchGoogleAdsFields]. +// [GoogleAdsFieldService.SearchGoogleAdsFields][google.ads.googleads.v18.services.GoogleAdsFieldService.SearchGoogleAdsFields]. message SearchGoogleAdsFieldsRequest { // Required. The query string. string query = 1 [(google.api.field_behavior) = REQUIRED]; @@ -105,10 +105,10 @@ message SearchGoogleAdsFieldsRequest { } // Response message for -// [GoogleAdsFieldService.SearchGoogleAdsFields][google.ads.googleads.v15.services.GoogleAdsFieldService.SearchGoogleAdsFields]. +// [GoogleAdsFieldService.SearchGoogleAdsFields][google.ads.googleads.v18.services.GoogleAdsFieldService.SearchGoogleAdsFields]. message SearchGoogleAdsFieldsResponse { // The list of fields that matched the query. - repeated google.ads.googleads.v15.resources.GoogleAdsField results = 1; + repeated google.ads.googleads.v18.resources.GoogleAdsField results = 1; // Pagination token used to retrieve the next page of results. Pass the // content of this string as the `page_token` attribute of the next request. diff --git a/google/ads/googleads/v15/services/google_ads_service.proto b/google/ads/googleads/v18/services/google_ads_service.proto similarity index 59% rename from google/ads/googleads/v15/services/google_ads_service.proto rename to google/ads/googleads/v18/services/google_ads_service.proto index a7796f9a7..bb5ed814d 100644 --- a/google/ads/googleads/v15/services/google_ads_service.proto +++ b/google/ads/googleads/v18/services/google_ads_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,272 +14,282 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; - -import "google/ads/googleads/v15/common/metrics.proto"; -import "google/ads/googleads/v15/common/segments.proto"; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/enums/summary_row_setting.proto"; -import "google/ads/googleads/v15/resources/accessible_bidding_strategy.proto"; -import "google/ads/googleads/v15/resources/account_budget.proto"; -import "google/ads/googleads/v15/resources/account_budget_proposal.proto"; -import "google/ads/googleads/v15/resources/account_link.proto"; -import "google/ads/googleads/v15/resources/ad_group.proto"; -import "google/ads/googleads/v15/resources/ad_group_ad.proto"; -import "google/ads/googleads/v15/resources/ad_group_ad_asset_combination_view.proto"; -import "google/ads/googleads/v15/resources/ad_group_ad_asset_view.proto"; -import "google/ads/googleads/v15/resources/ad_group_ad_label.proto"; -import "google/ads/googleads/v15/resources/ad_group_asset.proto"; -import "google/ads/googleads/v15/resources/ad_group_asset_set.proto"; -import "google/ads/googleads/v15/resources/ad_group_audience_view.proto"; -import "google/ads/googleads/v15/resources/ad_group_bid_modifier.proto"; -import "google/ads/googleads/v15/resources/ad_group_criterion.proto"; -import "google/ads/googleads/v15/resources/ad_group_criterion_customizer.proto"; -import "google/ads/googleads/v15/resources/ad_group_criterion_label.proto"; -import "google/ads/googleads/v15/resources/ad_group_criterion_simulation.proto"; -import "google/ads/googleads/v15/resources/ad_group_customizer.proto"; -import "google/ads/googleads/v15/resources/ad_group_extension_setting.proto"; -import "google/ads/googleads/v15/resources/ad_group_feed.proto"; -import "google/ads/googleads/v15/resources/ad_group_label.proto"; -import "google/ads/googleads/v15/resources/ad_group_simulation.proto"; -import "google/ads/googleads/v15/resources/ad_parameter.proto"; -import "google/ads/googleads/v15/resources/ad_schedule_view.proto"; -import "google/ads/googleads/v15/resources/age_range_view.proto"; -import "google/ads/googleads/v15/resources/android_privacy_shared_key_google_ad_group.proto"; -import "google/ads/googleads/v15/resources/android_privacy_shared_key_google_campaign.proto"; -import "google/ads/googleads/v15/resources/android_privacy_shared_key_google_network_type.proto"; -import "google/ads/googleads/v15/resources/asset.proto"; -import "google/ads/googleads/v15/resources/asset_field_type_view.proto"; -import "google/ads/googleads/v15/resources/asset_group.proto"; -import "google/ads/googleads/v15/resources/asset_group_asset.proto"; -import "google/ads/googleads/v15/resources/asset_group_listing_group_filter.proto"; -import "google/ads/googleads/v15/resources/asset_group_product_group_view.proto"; -import "google/ads/googleads/v15/resources/asset_group_signal.proto"; -import "google/ads/googleads/v15/resources/asset_group_top_combination_view.proto"; -import "google/ads/googleads/v15/resources/asset_set.proto"; -import "google/ads/googleads/v15/resources/asset_set_asset.proto"; -import "google/ads/googleads/v15/resources/asset_set_type_view.proto"; -import "google/ads/googleads/v15/resources/audience.proto"; -import "google/ads/googleads/v15/resources/batch_job.proto"; -import "google/ads/googleads/v15/resources/bidding_data_exclusion.proto"; -import "google/ads/googleads/v15/resources/bidding_seasonality_adjustment.proto"; -import "google/ads/googleads/v15/resources/bidding_strategy.proto"; -import "google/ads/googleads/v15/resources/bidding_strategy_simulation.proto"; -import "google/ads/googleads/v15/resources/billing_setup.proto"; -import "google/ads/googleads/v15/resources/call_view.proto"; -import "google/ads/googleads/v15/resources/campaign.proto"; -import "google/ads/googleads/v15/resources/campaign_asset.proto"; -import "google/ads/googleads/v15/resources/campaign_asset_set.proto"; -import "google/ads/googleads/v15/resources/campaign_audience_view.proto"; -import "google/ads/googleads/v15/resources/campaign_bid_modifier.proto"; -import "google/ads/googleads/v15/resources/campaign_budget.proto"; -import "google/ads/googleads/v15/resources/campaign_conversion_goal.proto"; -import "google/ads/googleads/v15/resources/campaign_criterion.proto"; -import "google/ads/googleads/v15/resources/campaign_customizer.proto"; -import "google/ads/googleads/v15/resources/campaign_draft.proto"; -import "google/ads/googleads/v15/resources/campaign_extension_setting.proto"; -import "google/ads/googleads/v15/resources/campaign_feed.proto"; -import "google/ads/googleads/v15/resources/campaign_group.proto"; -import "google/ads/googleads/v15/resources/campaign_label.proto"; -import "google/ads/googleads/v15/resources/campaign_lifecycle_goal.proto"; -import "google/ads/googleads/v15/resources/campaign_search_term_insight.proto"; -import "google/ads/googleads/v15/resources/campaign_shared_set.proto"; -import "google/ads/googleads/v15/resources/campaign_simulation.proto"; -import "google/ads/googleads/v15/resources/carrier_constant.proto"; -import "google/ads/googleads/v15/resources/change_event.proto"; -import "google/ads/googleads/v15/resources/change_status.proto"; -import "google/ads/googleads/v15/resources/click_view.proto"; -import "google/ads/googleads/v15/resources/combined_audience.proto"; -import "google/ads/googleads/v15/resources/conversion_action.proto"; -import "google/ads/googleads/v15/resources/conversion_custom_variable.proto"; -import "google/ads/googleads/v15/resources/conversion_goal_campaign_config.proto"; -import "google/ads/googleads/v15/resources/conversion_value_rule.proto"; -import "google/ads/googleads/v15/resources/conversion_value_rule_set.proto"; -import "google/ads/googleads/v15/resources/currency_constant.proto"; -import "google/ads/googleads/v15/resources/custom_audience.proto"; -import "google/ads/googleads/v15/resources/custom_conversion_goal.proto"; -import "google/ads/googleads/v15/resources/custom_interest.proto"; -import "google/ads/googleads/v15/resources/customer.proto"; -import "google/ads/googleads/v15/resources/customer_asset.proto"; -import "google/ads/googleads/v15/resources/customer_asset_set.proto"; -import "google/ads/googleads/v15/resources/customer_client.proto"; -import "google/ads/googleads/v15/resources/customer_client_link.proto"; -import "google/ads/googleads/v15/resources/customer_conversion_goal.proto"; -import "google/ads/googleads/v15/resources/customer_customizer.proto"; -import "google/ads/googleads/v15/resources/customer_extension_setting.proto"; -import "google/ads/googleads/v15/resources/customer_feed.proto"; -import "google/ads/googleads/v15/resources/customer_label.proto"; -import "google/ads/googleads/v15/resources/customer_lifecycle_goal.proto"; -import "google/ads/googleads/v15/resources/customer_manager_link.proto"; -import "google/ads/googleads/v15/resources/customer_negative_criterion.proto"; -import "google/ads/googleads/v15/resources/customer_search_term_insight.proto"; -import "google/ads/googleads/v15/resources/customer_user_access.proto"; -import "google/ads/googleads/v15/resources/customer_user_access_invitation.proto"; -import "google/ads/googleads/v15/resources/customizer_attribute.proto"; -import "google/ads/googleads/v15/resources/detail_placement_view.proto"; -import "google/ads/googleads/v15/resources/detailed_demographic.proto"; -import "google/ads/googleads/v15/resources/display_keyword_view.proto"; -import "google/ads/googleads/v15/resources/distance_view.proto"; -import "google/ads/googleads/v15/resources/domain_category.proto"; -import "google/ads/googleads/v15/resources/dynamic_search_ads_search_term_view.proto"; -import "google/ads/googleads/v15/resources/expanded_landing_page_view.proto"; -import "google/ads/googleads/v15/resources/experiment.proto"; -import "google/ads/googleads/v15/resources/experiment_arm.proto"; -import "google/ads/googleads/v15/resources/extension_feed_item.proto"; -import "google/ads/googleads/v15/resources/feed.proto"; -import "google/ads/googleads/v15/resources/feed_item.proto"; -import "google/ads/googleads/v15/resources/feed_item_set.proto"; -import "google/ads/googleads/v15/resources/feed_item_set_link.proto"; -import "google/ads/googleads/v15/resources/feed_item_target.proto"; -import "google/ads/googleads/v15/resources/feed_mapping.proto"; -import "google/ads/googleads/v15/resources/feed_placeholder_view.proto"; -import "google/ads/googleads/v15/resources/gender_view.proto"; -import "google/ads/googleads/v15/resources/geo_target_constant.proto"; -import "google/ads/googleads/v15/resources/geographic_view.proto"; -import "google/ads/googleads/v15/resources/group_placement_view.proto"; -import "google/ads/googleads/v15/resources/hotel_group_view.proto"; -import "google/ads/googleads/v15/resources/hotel_performance_view.proto"; -import "google/ads/googleads/v15/resources/hotel_reconciliation.proto"; -import "google/ads/googleads/v15/resources/income_range_view.proto"; -import "google/ads/googleads/v15/resources/keyword_plan.proto"; -import "google/ads/googleads/v15/resources/keyword_plan_ad_group.proto"; -import "google/ads/googleads/v15/resources/keyword_plan_ad_group_keyword.proto"; -import "google/ads/googleads/v15/resources/keyword_plan_campaign.proto"; -import "google/ads/googleads/v15/resources/keyword_plan_campaign_keyword.proto"; -import "google/ads/googleads/v15/resources/keyword_theme_constant.proto"; -import "google/ads/googleads/v15/resources/keyword_view.proto"; -import "google/ads/googleads/v15/resources/label.proto"; -import "google/ads/googleads/v15/resources/landing_page_view.proto"; -import "google/ads/googleads/v15/resources/language_constant.proto"; -import "google/ads/googleads/v15/resources/lead_form_submission_data.proto"; -import "google/ads/googleads/v15/resources/life_event.proto"; -import "google/ads/googleads/v15/resources/local_services_lead.proto"; -import "google/ads/googleads/v15/resources/local_services_lead_conversation.proto"; -import "google/ads/googleads/v15/resources/local_services_verification_artifact.proto"; -import "google/ads/googleads/v15/resources/location_view.proto"; -import "google/ads/googleads/v15/resources/managed_placement_view.proto"; -import "google/ads/googleads/v15/resources/media_file.proto"; -import "google/ads/googleads/v15/resources/mobile_app_category_constant.proto"; -import "google/ads/googleads/v15/resources/mobile_device_constant.proto"; -import "google/ads/googleads/v15/resources/offline_conversion_upload_client_summary.proto"; -import "google/ads/googleads/v15/resources/offline_user_data_job.proto"; -import "google/ads/googleads/v15/resources/operating_system_version_constant.proto"; -import "google/ads/googleads/v15/resources/paid_organic_search_term_view.proto"; -import "google/ads/googleads/v15/resources/parental_status_view.proto"; -import "google/ads/googleads/v15/resources/per_store_view.proto"; -import "google/ads/googleads/v15/resources/product_category_constant.proto"; -import "google/ads/googleads/v15/resources/product_group_view.proto"; -import "google/ads/googleads/v15/resources/product_link.proto"; -import "google/ads/googleads/v15/resources/product_link_invitation.proto"; -import "google/ads/googleads/v15/resources/qualifying_question.proto"; -import "google/ads/googleads/v15/resources/recommendation.proto"; -import "google/ads/googleads/v15/resources/recommendation_subscription.proto"; -import "google/ads/googleads/v15/resources/remarketing_action.proto"; -import "google/ads/googleads/v15/resources/search_term_view.proto"; -import "google/ads/googleads/v15/resources/shared_criterion.proto"; -import "google/ads/googleads/v15/resources/shared_set.proto"; -import "google/ads/googleads/v15/resources/shopping_performance_view.proto"; -import "google/ads/googleads/v15/resources/smart_campaign_search_term_view.proto"; -import "google/ads/googleads/v15/resources/smart_campaign_setting.proto"; -import "google/ads/googleads/v15/resources/third_party_app_analytics_link.proto"; -import "google/ads/googleads/v15/resources/topic_constant.proto"; -import "google/ads/googleads/v15/resources/topic_view.proto"; -import "google/ads/googleads/v15/resources/travel_activity_group_view.proto"; -import "google/ads/googleads/v15/resources/travel_activity_performance_view.proto"; -import "google/ads/googleads/v15/resources/user_interest.proto"; -import "google/ads/googleads/v15/resources/user_list.proto"; -import "google/ads/googleads/v15/resources/user_location_view.proto"; -import "google/ads/googleads/v15/resources/video.proto"; -import "google/ads/googleads/v15/resources/webpage_view.proto"; -import "google/ads/googleads/v15/services/ad_group_ad_label_service.proto"; -import "google/ads/googleads/v15/services/ad_group_ad_service.proto"; -import "google/ads/googleads/v15/services/ad_group_asset_service.proto"; -import "google/ads/googleads/v15/services/ad_group_bid_modifier_service.proto"; -import "google/ads/googleads/v15/services/ad_group_criterion_customizer_service.proto"; -import "google/ads/googleads/v15/services/ad_group_criterion_label_service.proto"; -import "google/ads/googleads/v15/services/ad_group_criterion_service.proto"; -import "google/ads/googleads/v15/services/ad_group_customizer_service.proto"; -import "google/ads/googleads/v15/services/ad_group_extension_setting_service.proto"; -import "google/ads/googleads/v15/services/ad_group_feed_service.proto"; -import "google/ads/googleads/v15/services/ad_group_label_service.proto"; -import "google/ads/googleads/v15/services/ad_group_service.proto"; -import "google/ads/googleads/v15/services/ad_parameter_service.proto"; -import "google/ads/googleads/v15/services/ad_service.proto"; -import "google/ads/googleads/v15/services/asset_group_asset_service.proto"; -import "google/ads/googleads/v15/services/asset_group_listing_group_filter_service.proto"; -import "google/ads/googleads/v15/services/asset_group_service.proto"; -import "google/ads/googleads/v15/services/asset_group_signal_service.proto"; -import "google/ads/googleads/v15/services/asset_service.proto"; -import "google/ads/googleads/v15/services/asset_set_asset_service.proto"; -import "google/ads/googleads/v15/services/asset_set_service.proto"; -import "google/ads/googleads/v15/services/audience_service.proto"; -import "google/ads/googleads/v15/services/bidding_data_exclusion_service.proto"; -import "google/ads/googleads/v15/services/bidding_seasonality_adjustment_service.proto"; -import "google/ads/googleads/v15/services/bidding_strategy_service.proto"; -import "google/ads/googleads/v15/services/campaign_asset_service.proto"; -import "google/ads/googleads/v15/services/campaign_asset_set_service.proto"; -import "google/ads/googleads/v15/services/campaign_bid_modifier_service.proto"; -import "google/ads/googleads/v15/services/campaign_budget_service.proto"; -import "google/ads/googleads/v15/services/campaign_conversion_goal_service.proto"; -import "google/ads/googleads/v15/services/campaign_criterion_service.proto"; -import "google/ads/googleads/v15/services/campaign_customizer_service.proto"; -import "google/ads/googleads/v15/services/campaign_draft_service.proto"; -import "google/ads/googleads/v15/services/campaign_extension_setting_service.proto"; -import "google/ads/googleads/v15/services/campaign_feed_service.proto"; -import "google/ads/googleads/v15/services/campaign_group_service.proto"; -import "google/ads/googleads/v15/services/campaign_label_service.proto"; -import "google/ads/googleads/v15/services/campaign_service.proto"; -import "google/ads/googleads/v15/services/campaign_shared_set_service.proto"; -import "google/ads/googleads/v15/services/conversion_action_service.proto"; -import "google/ads/googleads/v15/services/conversion_custom_variable_service.proto"; -import "google/ads/googleads/v15/services/conversion_goal_campaign_config_service.proto"; -import "google/ads/googleads/v15/services/conversion_value_rule_service.proto"; -import "google/ads/googleads/v15/services/conversion_value_rule_set_service.proto"; -import "google/ads/googleads/v15/services/custom_conversion_goal_service.proto"; -import "google/ads/googleads/v15/services/customer_asset_service.proto"; -import "google/ads/googleads/v15/services/customer_conversion_goal_service.proto"; -import "google/ads/googleads/v15/services/customer_customizer_service.proto"; -import "google/ads/googleads/v15/services/customer_extension_setting_service.proto"; -import "google/ads/googleads/v15/services/customer_feed_service.proto"; -import "google/ads/googleads/v15/services/customer_label_service.proto"; -import "google/ads/googleads/v15/services/customer_negative_criterion_service.proto"; -import "google/ads/googleads/v15/services/customer_service.proto"; -import "google/ads/googleads/v15/services/customizer_attribute_service.proto"; -import "google/ads/googleads/v15/services/experiment_arm_service.proto"; -import "google/ads/googleads/v15/services/experiment_service.proto"; -import "google/ads/googleads/v15/services/extension_feed_item_service.proto"; -import "google/ads/googleads/v15/services/feed_item_service.proto"; -import "google/ads/googleads/v15/services/feed_item_set_link_service.proto"; -import "google/ads/googleads/v15/services/feed_item_set_service.proto"; -import "google/ads/googleads/v15/services/feed_item_target_service.proto"; -import "google/ads/googleads/v15/services/feed_mapping_service.proto"; -import "google/ads/googleads/v15/services/feed_service.proto"; -import "google/ads/googleads/v15/services/keyword_plan_ad_group_keyword_service.proto"; -import "google/ads/googleads/v15/services/keyword_plan_ad_group_service.proto"; -import "google/ads/googleads/v15/services/keyword_plan_campaign_keyword_service.proto"; -import "google/ads/googleads/v15/services/keyword_plan_campaign_service.proto"; -import "google/ads/googleads/v15/services/keyword_plan_service.proto"; -import "google/ads/googleads/v15/services/label_service.proto"; -import "google/ads/googleads/v15/services/recommendation_subscription_service.proto"; -import "google/ads/googleads/v15/services/remarketing_action_service.proto"; -import "google/ads/googleads/v15/services/shared_criterion_service.proto"; -import "google/ads/googleads/v15/services/shared_set_service.proto"; -import "google/ads/googleads/v15/services/smart_campaign_setting_service.proto"; -import "google/ads/googleads/v15/services/user_list_service.proto"; +package google.ads.googleads.v18.services; + +import "google/ads/googleads/v18/common/metrics.proto"; +import "google/ads/googleads/v18/common/segments.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/enums/summary_row_setting.proto"; +import "google/ads/googleads/v18/resources/accessible_bidding_strategy.proto"; +import "google/ads/googleads/v18/resources/account_budget.proto"; +import "google/ads/googleads/v18/resources/account_budget_proposal.proto"; +import "google/ads/googleads/v18/resources/account_link.proto"; +import "google/ads/googleads/v18/resources/ad.proto"; +import "google/ads/googleads/v18/resources/ad_group.proto"; +import "google/ads/googleads/v18/resources/ad_group_ad.proto"; +import "google/ads/googleads/v18/resources/ad_group_ad_asset_combination_view.proto"; +import "google/ads/googleads/v18/resources/ad_group_ad_asset_view.proto"; +import "google/ads/googleads/v18/resources/ad_group_ad_label.proto"; +import "google/ads/googleads/v18/resources/ad_group_asset.proto"; +import "google/ads/googleads/v18/resources/ad_group_asset_set.proto"; +import "google/ads/googleads/v18/resources/ad_group_audience_view.proto"; +import "google/ads/googleads/v18/resources/ad_group_bid_modifier.proto"; +import "google/ads/googleads/v18/resources/ad_group_criterion.proto"; +import "google/ads/googleads/v18/resources/ad_group_criterion_customizer.proto"; +import "google/ads/googleads/v18/resources/ad_group_criterion_label.proto"; +import "google/ads/googleads/v18/resources/ad_group_criterion_simulation.proto"; +import "google/ads/googleads/v18/resources/ad_group_customizer.proto"; +import "google/ads/googleads/v18/resources/ad_group_extension_setting.proto"; +import "google/ads/googleads/v18/resources/ad_group_feed.proto"; +import "google/ads/googleads/v18/resources/ad_group_label.proto"; +import "google/ads/googleads/v18/resources/ad_group_simulation.proto"; +import "google/ads/googleads/v18/resources/ad_parameter.proto"; +import "google/ads/googleads/v18/resources/ad_schedule_view.proto"; +import "google/ads/googleads/v18/resources/age_range_view.proto"; +import "google/ads/googleads/v18/resources/android_privacy_shared_key_google_ad_group.proto"; +import "google/ads/googleads/v18/resources/android_privacy_shared_key_google_campaign.proto"; +import "google/ads/googleads/v18/resources/android_privacy_shared_key_google_network_type.proto"; +import "google/ads/googleads/v18/resources/asset.proto"; +import "google/ads/googleads/v18/resources/asset_field_type_view.proto"; +import "google/ads/googleads/v18/resources/asset_group.proto"; +import "google/ads/googleads/v18/resources/asset_group_asset.proto"; +import "google/ads/googleads/v18/resources/asset_group_listing_group_filter.proto"; +import "google/ads/googleads/v18/resources/asset_group_product_group_view.proto"; +import "google/ads/googleads/v18/resources/asset_group_signal.proto"; +import "google/ads/googleads/v18/resources/asset_group_top_combination_view.proto"; +import "google/ads/googleads/v18/resources/asset_set.proto"; +import "google/ads/googleads/v18/resources/asset_set_asset.proto"; +import "google/ads/googleads/v18/resources/asset_set_type_view.proto"; +import "google/ads/googleads/v18/resources/audience.proto"; +import "google/ads/googleads/v18/resources/batch_job.proto"; +import "google/ads/googleads/v18/resources/bidding_data_exclusion.proto"; +import "google/ads/googleads/v18/resources/bidding_seasonality_adjustment.proto"; +import "google/ads/googleads/v18/resources/bidding_strategy.proto"; +import "google/ads/googleads/v18/resources/bidding_strategy_simulation.proto"; +import "google/ads/googleads/v18/resources/billing_setup.proto"; +import "google/ads/googleads/v18/resources/call_view.proto"; +import "google/ads/googleads/v18/resources/campaign.proto"; +import "google/ads/googleads/v18/resources/campaign_aggregate_asset_view.proto"; +import "google/ads/googleads/v18/resources/campaign_asset.proto"; +import "google/ads/googleads/v18/resources/campaign_asset_set.proto"; +import "google/ads/googleads/v18/resources/campaign_audience_view.proto"; +import "google/ads/googleads/v18/resources/campaign_bid_modifier.proto"; +import "google/ads/googleads/v18/resources/campaign_budget.proto"; +import "google/ads/googleads/v18/resources/campaign_conversion_goal.proto"; +import "google/ads/googleads/v18/resources/campaign_criterion.proto"; +import "google/ads/googleads/v18/resources/campaign_customizer.proto"; +import "google/ads/googleads/v18/resources/campaign_draft.proto"; +import "google/ads/googleads/v18/resources/campaign_extension_setting.proto"; +import "google/ads/googleads/v18/resources/campaign_feed.proto"; +import "google/ads/googleads/v18/resources/campaign_group.proto"; +import "google/ads/googleads/v18/resources/campaign_label.proto"; +import "google/ads/googleads/v18/resources/campaign_lifecycle_goal.proto"; +import "google/ads/googleads/v18/resources/campaign_search_term_insight.proto"; +import "google/ads/googleads/v18/resources/campaign_shared_set.proto"; +import "google/ads/googleads/v18/resources/campaign_simulation.proto"; +import "google/ads/googleads/v18/resources/carrier_constant.proto"; +import "google/ads/googleads/v18/resources/change_event.proto"; +import "google/ads/googleads/v18/resources/change_status.proto"; +import "google/ads/googleads/v18/resources/channel_aggregate_asset_view.proto"; +import "google/ads/googleads/v18/resources/click_view.proto"; +import "google/ads/googleads/v18/resources/combined_audience.proto"; +import "google/ads/googleads/v18/resources/content_criterion_view.proto"; +import "google/ads/googleads/v18/resources/conversion_action.proto"; +import "google/ads/googleads/v18/resources/conversion_custom_variable.proto"; +import "google/ads/googleads/v18/resources/conversion_goal_campaign_config.proto"; +import "google/ads/googleads/v18/resources/conversion_value_rule.proto"; +import "google/ads/googleads/v18/resources/conversion_value_rule_set.proto"; +import "google/ads/googleads/v18/resources/currency_constant.proto"; +import "google/ads/googleads/v18/resources/custom_audience.proto"; +import "google/ads/googleads/v18/resources/custom_conversion_goal.proto"; +import "google/ads/googleads/v18/resources/custom_interest.proto"; +import "google/ads/googleads/v18/resources/customer.proto"; +import "google/ads/googleads/v18/resources/customer_asset.proto"; +import "google/ads/googleads/v18/resources/customer_asset_set.proto"; +import "google/ads/googleads/v18/resources/customer_client.proto"; +import "google/ads/googleads/v18/resources/customer_client_link.proto"; +import "google/ads/googleads/v18/resources/customer_conversion_goal.proto"; +import "google/ads/googleads/v18/resources/customer_customizer.proto"; +import "google/ads/googleads/v18/resources/customer_extension_setting.proto"; +import "google/ads/googleads/v18/resources/customer_feed.proto"; +import "google/ads/googleads/v18/resources/customer_label.proto"; +import "google/ads/googleads/v18/resources/customer_lifecycle_goal.proto"; +import "google/ads/googleads/v18/resources/customer_manager_link.proto"; +import "google/ads/googleads/v18/resources/customer_negative_criterion.proto"; +import "google/ads/googleads/v18/resources/customer_search_term_insight.proto"; +import "google/ads/googleads/v18/resources/customer_user_access.proto"; +import "google/ads/googleads/v18/resources/customer_user_access_invitation.proto"; +import "google/ads/googleads/v18/resources/customizer_attribute.proto"; +import "google/ads/googleads/v18/resources/data_link.proto"; +import "google/ads/googleads/v18/resources/detail_placement_view.proto"; +import "google/ads/googleads/v18/resources/detailed_demographic.proto"; +import "google/ads/googleads/v18/resources/display_keyword_view.proto"; +import "google/ads/googleads/v18/resources/distance_view.proto"; +import "google/ads/googleads/v18/resources/domain_category.proto"; +import "google/ads/googleads/v18/resources/dynamic_search_ads_search_term_view.proto"; +import "google/ads/googleads/v18/resources/expanded_landing_page_view.proto"; +import "google/ads/googleads/v18/resources/experiment.proto"; +import "google/ads/googleads/v18/resources/experiment_arm.proto"; +import "google/ads/googleads/v18/resources/extension_feed_item.proto"; +import "google/ads/googleads/v18/resources/feed.proto"; +import "google/ads/googleads/v18/resources/feed_item.proto"; +import "google/ads/googleads/v18/resources/feed_item_set.proto"; +import "google/ads/googleads/v18/resources/feed_item_set_link.proto"; +import "google/ads/googleads/v18/resources/feed_item_target.proto"; +import "google/ads/googleads/v18/resources/feed_mapping.proto"; +import "google/ads/googleads/v18/resources/feed_placeholder_view.proto"; +import "google/ads/googleads/v18/resources/gender_view.proto"; +import "google/ads/googleads/v18/resources/geo_target_constant.proto"; +import "google/ads/googleads/v18/resources/geographic_view.proto"; +import "google/ads/googleads/v18/resources/group_placement_view.proto"; +import "google/ads/googleads/v18/resources/hotel_group_view.proto"; +import "google/ads/googleads/v18/resources/hotel_performance_view.proto"; +import "google/ads/googleads/v18/resources/hotel_reconciliation.proto"; +import "google/ads/googleads/v18/resources/income_range_view.proto"; +import "google/ads/googleads/v18/resources/keyword_plan.proto"; +import "google/ads/googleads/v18/resources/keyword_plan_ad_group.proto"; +import "google/ads/googleads/v18/resources/keyword_plan_ad_group_keyword.proto"; +import "google/ads/googleads/v18/resources/keyword_plan_campaign.proto"; +import "google/ads/googleads/v18/resources/keyword_plan_campaign_keyword.proto"; +import "google/ads/googleads/v18/resources/keyword_theme_constant.proto"; +import "google/ads/googleads/v18/resources/keyword_view.proto"; +import "google/ads/googleads/v18/resources/label.proto"; +import "google/ads/googleads/v18/resources/landing_page_view.proto"; +import "google/ads/googleads/v18/resources/language_constant.proto"; +import "google/ads/googleads/v18/resources/lead_form_submission_data.proto"; +import "google/ads/googleads/v18/resources/life_event.proto"; +import "google/ads/googleads/v18/resources/local_services_employee.proto"; +import "google/ads/googleads/v18/resources/local_services_lead.proto"; +import "google/ads/googleads/v18/resources/local_services_lead_conversation.proto"; +import "google/ads/googleads/v18/resources/local_services_verification_artifact.proto"; +import "google/ads/googleads/v18/resources/location_view.proto"; +import "google/ads/googleads/v18/resources/managed_placement_view.proto"; +import "google/ads/googleads/v18/resources/media_file.proto"; +import "google/ads/googleads/v18/resources/mobile_app_category_constant.proto"; +import "google/ads/googleads/v18/resources/mobile_device_constant.proto"; +import "google/ads/googleads/v18/resources/offline_conversion_upload_client_summary.proto"; +import "google/ads/googleads/v18/resources/offline_conversion_upload_conversion_action_summary.proto"; +import "google/ads/googleads/v18/resources/offline_user_data_job.proto"; +import "google/ads/googleads/v18/resources/operating_system_version_constant.proto"; +import "google/ads/googleads/v18/resources/paid_organic_search_term_view.proto"; +import "google/ads/googleads/v18/resources/parental_status_view.proto"; +import "google/ads/googleads/v18/resources/per_store_view.proto"; +import "google/ads/googleads/v18/resources/performance_max_placement_view.proto"; +import "google/ads/googleads/v18/resources/product_category_constant.proto"; +import "google/ads/googleads/v18/resources/product_group_view.proto"; +import "google/ads/googleads/v18/resources/product_link.proto"; +import "google/ads/googleads/v18/resources/product_link_invitation.proto"; +import "google/ads/googleads/v18/resources/qualifying_question.proto"; +import "google/ads/googleads/v18/resources/recommendation.proto"; +import "google/ads/googleads/v18/resources/recommendation_subscription.proto"; +import "google/ads/googleads/v18/resources/remarketing_action.proto"; +import "google/ads/googleads/v18/resources/search_term_view.proto"; +import "google/ads/googleads/v18/resources/shared_criterion.proto"; +import "google/ads/googleads/v18/resources/shared_set.proto"; +import "google/ads/googleads/v18/resources/shopping_performance_view.proto"; +import "google/ads/googleads/v18/resources/shopping_product.proto"; +import "google/ads/googleads/v18/resources/smart_campaign_search_term_view.proto"; +import "google/ads/googleads/v18/resources/smart_campaign_setting.proto"; +import "google/ads/googleads/v18/resources/third_party_app_analytics_link.proto"; +import "google/ads/googleads/v18/resources/topic_constant.proto"; +import "google/ads/googleads/v18/resources/topic_view.proto"; +import "google/ads/googleads/v18/resources/travel_activity_group_view.proto"; +import "google/ads/googleads/v18/resources/travel_activity_performance_view.proto"; +import "google/ads/googleads/v18/resources/user_interest.proto"; +import "google/ads/googleads/v18/resources/user_list.proto"; +import "google/ads/googleads/v18/resources/user_list_customer_type.proto"; +import "google/ads/googleads/v18/resources/user_location_view.proto"; +import "google/ads/googleads/v18/resources/video.proto"; +import "google/ads/googleads/v18/resources/webpage_view.proto"; +import "google/ads/googleads/v18/services/ad_group_ad_label_service.proto"; +import "google/ads/googleads/v18/services/ad_group_ad_service.proto"; +import "google/ads/googleads/v18/services/ad_group_asset_service.proto"; +import "google/ads/googleads/v18/services/ad_group_bid_modifier_service.proto"; +import "google/ads/googleads/v18/services/ad_group_criterion_customizer_service.proto"; +import "google/ads/googleads/v18/services/ad_group_criterion_label_service.proto"; +import "google/ads/googleads/v18/services/ad_group_criterion_service.proto"; +import "google/ads/googleads/v18/services/ad_group_customizer_service.proto"; +import "google/ads/googleads/v18/services/ad_group_extension_setting_service.proto"; +import "google/ads/googleads/v18/services/ad_group_feed_service.proto"; +import "google/ads/googleads/v18/services/ad_group_label_service.proto"; +import "google/ads/googleads/v18/services/ad_group_service.proto"; +import "google/ads/googleads/v18/services/ad_parameter_service.proto"; +import "google/ads/googleads/v18/services/ad_service.proto"; +import "google/ads/googleads/v18/services/asset_group_asset_service.proto"; +import "google/ads/googleads/v18/services/asset_group_listing_group_filter_service.proto"; +import "google/ads/googleads/v18/services/asset_group_service.proto"; +import "google/ads/googleads/v18/services/asset_group_signal_service.proto"; +import "google/ads/googleads/v18/services/asset_service.proto"; +import "google/ads/googleads/v18/services/asset_set_asset_service.proto"; +import "google/ads/googleads/v18/services/asset_set_service.proto"; +import "google/ads/googleads/v18/services/audience_service.proto"; +import "google/ads/googleads/v18/services/bidding_data_exclusion_service.proto"; +import "google/ads/googleads/v18/services/bidding_seasonality_adjustment_service.proto"; +import "google/ads/googleads/v18/services/bidding_strategy_service.proto"; +import "google/ads/googleads/v18/services/campaign_asset_service.proto"; +import "google/ads/googleads/v18/services/campaign_asset_set_service.proto"; +import "google/ads/googleads/v18/services/campaign_bid_modifier_service.proto"; +import "google/ads/googleads/v18/services/campaign_budget_service.proto"; +import "google/ads/googleads/v18/services/campaign_conversion_goal_service.proto"; +import "google/ads/googleads/v18/services/campaign_criterion_service.proto"; +import "google/ads/googleads/v18/services/campaign_customizer_service.proto"; +import "google/ads/googleads/v18/services/campaign_draft_service.proto"; +import "google/ads/googleads/v18/services/campaign_extension_setting_service.proto"; +import "google/ads/googleads/v18/services/campaign_feed_service.proto"; +import "google/ads/googleads/v18/services/campaign_group_service.proto"; +import "google/ads/googleads/v18/services/campaign_label_service.proto"; +import "google/ads/googleads/v18/services/campaign_service.proto"; +import "google/ads/googleads/v18/services/campaign_shared_set_service.proto"; +import "google/ads/googleads/v18/services/conversion_action_service.proto"; +import "google/ads/googleads/v18/services/conversion_custom_variable_service.proto"; +import "google/ads/googleads/v18/services/conversion_goal_campaign_config_service.proto"; +import "google/ads/googleads/v18/services/conversion_value_rule_service.proto"; +import "google/ads/googleads/v18/services/conversion_value_rule_set_service.proto"; +import "google/ads/googleads/v18/services/custom_conversion_goal_service.proto"; +import "google/ads/googleads/v18/services/customer_asset_service.proto"; +import "google/ads/googleads/v18/services/customer_conversion_goal_service.proto"; +import "google/ads/googleads/v18/services/customer_customizer_service.proto"; +import "google/ads/googleads/v18/services/customer_extension_setting_service.proto"; +import "google/ads/googleads/v18/services/customer_feed_service.proto"; +import "google/ads/googleads/v18/services/customer_label_service.proto"; +import "google/ads/googleads/v18/services/customer_negative_criterion_service.proto"; +import "google/ads/googleads/v18/services/customer_service.proto"; +import "google/ads/googleads/v18/services/customizer_attribute_service.proto"; +import "google/ads/googleads/v18/services/experiment_arm_service.proto"; +import "google/ads/googleads/v18/services/experiment_service.proto"; +import "google/ads/googleads/v18/services/extension_feed_item_service.proto"; +import "google/ads/googleads/v18/services/feed_item_service.proto"; +import "google/ads/googleads/v18/services/feed_item_set_link_service.proto"; +import "google/ads/googleads/v18/services/feed_item_set_service.proto"; +import "google/ads/googleads/v18/services/feed_item_target_service.proto"; +import "google/ads/googleads/v18/services/feed_mapping_service.proto"; +import "google/ads/googleads/v18/services/feed_service.proto"; +import "google/ads/googleads/v18/services/keyword_plan_ad_group_keyword_service.proto"; +import "google/ads/googleads/v18/services/keyword_plan_ad_group_service.proto"; +import "google/ads/googleads/v18/services/keyword_plan_campaign_keyword_service.proto"; +import "google/ads/googleads/v18/services/keyword_plan_campaign_service.proto"; +import "google/ads/googleads/v18/services/keyword_plan_service.proto"; +import "google/ads/googleads/v18/services/label_service.proto"; +import "google/ads/googleads/v18/services/recommendation_subscription_service.proto"; +import "google/ads/googleads/v18/services/remarketing_action_service.proto"; +import "google/ads/googleads/v18/services/shared_criterion_service.proto"; +import "google/ads/googleads/v18/services/shared_set_service.proto"; +import "google/ads/googleads/v18/services/smart_campaign_setting_service.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "GoogleAdsServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the GoogleAdsService. @@ -303,7 +313,7 @@ service GoogleAdsService { // [RequestError]() rpc Search(SearchGoogleAdsRequest) returns (SearchGoogleAdsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/googleAds:search" + post: "/v18/customers/{customer_id=*}/googleAds:search" body: "*" }; option (google.api.method_signature) = "customer_id,query"; @@ -325,7 +335,7 @@ service GoogleAdsService { rpc SearchStream(SearchGoogleAdsStreamRequest) returns (stream SearchGoogleAdsStreamResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/googleAds:searchStream" + post: "/v18/customers/{customer_id=*}/googleAds:searchStream" body: "*" }; option (google.api.method_signature) = "customer_id,query"; @@ -445,7 +455,7 @@ service GoogleAdsService { // [YoutubeVideoRegistrationError]() rpc Mutate(MutateGoogleAdsRequest) returns (MutateGoogleAdsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/googleAds:mutate" + post: "/v18/customers/{customer_id=*}/googleAds:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,mutate_operations"; @@ -453,7 +463,7 @@ service GoogleAdsService { } // Request message for -// [GoogleAdsService.Search][google.ads.googleads.v15.services.GoogleAdsService.Search]. +// [GoogleAdsService.Search][google.ads.googleads.v18.services.GoogleAdsService.Search]. message SearchGoogleAdsRequest { // Required. The ID of the customer being queried. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -475,20 +485,13 @@ message SearchGoogleAdsRequest { // 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.v15.enums.SummaryRowSettingEnum.SummaryRowSetting - summary_row_setting = 8; + // Settings that allow users to specify request count, summary row, and + // results behavior. + SearchSettings search_settings = 10; } // Response message for -// [GoogleAdsService.Search][google.ads.googleads.v15.services.GoogleAdsService.Search]. +// [GoogleAdsService.Search][google.ads.googleads.v18.services.GoogleAdsService.Search]. message SearchGoogleAdsResponse { // The list of rows that matched the query. repeated GoogleAdsRow results = 1; @@ -516,7 +519,7 @@ message SearchGoogleAdsResponse { } // Request message for -// [GoogleAdsService.SearchStream][google.ads.googleads.v15.services.GoogleAdsService.SearchStream]. +// [GoogleAdsService.SearchStream][google.ads.googleads.v18.services.GoogleAdsService.SearchStream]. message SearchGoogleAdsStreamRequest { // Required. The ID of the customer being queried. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -527,12 +530,12 @@ message SearchGoogleAdsStreamRequest { // Determines whether a summary row will be returned. By default, summary row // is not returned. If requested, the summary row will be sent in a response // by itself after all other query results are returned. - google.ads.googleads.v15.enums.SummaryRowSettingEnum.SummaryRowSetting + google.ads.googleads.v18.enums.SummaryRowSettingEnum.SummaryRowSetting summary_row_setting = 3; } // Response message for -// [GoogleAdsService.SearchStream][google.ads.googleads.v15.services.GoogleAdsService.SearchStream]. +// [GoogleAdsService.SearchStream][google.ads.googleads.v18.services.GoogleAdsService.SearchStream]. message SearchGoogleAdsStreamResponse { // The list of rows that matched the query. repeated GoogleAdsRow results = 1; @@ -549,615 +552,657 @@ message SearchGoogleAdsStreamResponse { string request_id = 4; // The amount of resources consumed to serve the query. + // query_resource_consumption for the Summary row and non-Summary responses + // are returned separately in their respective rows. + // query_resource_consumption for non-Summary responses is returned in the + // final batch of results. int64 query_resource_consumption = 6; } // A returned row from the query. message GoogleAdsRow { // The account budget in the query. - google.ads.googleads.v15.resources.AccountBudget account_budget = 42; + google.ads.googleads.v18.resources.AccountBudget account_budget = 42; // The account budget proposal referenced in the query. - google.ads.googleads.v15.resources.AccountBudgetProposal + google.ads.googleads.v18.resources.AccountBudgetProposal account_budget_proposal = 43; // The AccountLink referenced in the query. - google.ads.googleads.v15.resources.AccountLink account_link = 143; + google.ads.googleads.v18.resources.AccountLink account_link = 143; + + // The Ad referenced in the query. + google.ads.googleads.v18.resources.Ad ad = 227; // The ad group referenced in the query. - google.ads.googleads.v15.resources.AdGroup ad_group = 3; + google.ads.googleads.v18.resources.AdGroup ad_group = 3; // The ad referenced in the query. - google.ads.googleads.v15.resources.AdGroupAd ad_group_ad = 16; + google.ads.googleads.v18.resources.AdGroupAd ad_group_ad = 16; // The ad group ad asset combination view in the query. - google.ads.googleads.v15.resources.AdGroupAdAssetCombinationView + google.ads.googleads.v18.resources.AdGroupAdAssetCombinationView ad_group_ad_asset_combination_view = 193; // The ad group ad asset view in the query. - google.ads.googleads.v15.resources.AdGroupAdAssetView ad_group_ad_asset_view = + google.ads.googleads.v18.resources.AdGroupAdAssetView ad_group_ad_asset_view = 131; // The ad group ad label referenced in the query. - google.ads.googleads.v15.resources.AdGroupAdLabel ad_group_ad_label = 120; + google.ads.googleads.v18.resources.AdGroupAdLabel ad_group_ad_label = 120; // The ad group asset referenced in the query. - google.ads.googleads.v15.resources.AdGroupAsset ad_group_asset = 154; + google.ads.googleads.v18.resources.AdGroupAsset ad_group_asset = 154; // The ad group asset set referenced in the query. - google.ads.googleads.v15.resources.AdGroupAssetSet ad_group_asset_set = 196; + google.ads.googleads.v18.resources.AdGroupAssetSet ad_group_asset_set = 196; // The ad group audience view referenced in the query. - google.ads.googleads.v15.resources.AdGroupAudienceView + google.ads.googleads.v18.resources.AdGroupAudienceView ad_group_audience_view = 57; // The bid modifier referenced in the query. - google.ads.googleads.v15.resources.AdGroupBidModifier ad_group_bid_modifier = + google.ads.googleads.v18.resources.AdGroupBidModifier ad_group_bid_modifier = 24; // The criterion referenced in the query. - google.ads.googleads.v15.resources.AdGroupCriterion ad_group_criterion = 17; + google.ads.googleads.v18.resources.AdGroupCriterion ad_group_criterion = 17; // The ad group criterion customizer referenced in the query. - google.ads.googleads.v15.resources.AdGroupCriterionCustomizer + google.ads.googleads.v18.resources.AdGroupCriterionCustomizer ad_group_criterion_customizer = 187; // The ad group criterion label referenced in the query. - google.ads.googleads.v15.resources.AdGroupCriterionLabel + google.ads.googleads.v18.resources.AdGroupCriterionLabel ad_group_criterion_label = 121; // The ad group criterion simulation referenced in the query. - google.ads.googleads.v15.resources.AdGroupCriterionSimulation + google.ads.googleads.v18.resources.AdGroupCriterionSimulation ad_group_criterion_simulation = 110; // The ad group customizer referenced in the query. - google.ads.googleads.v15.resources.AdGroupCustomizer ad_group_customizer = + google.ads.googleads.v18.resources.AdGroupCustomizer ad_group_customizer = 185; // The ad group extension setting referenced in the query. - google.ads.googleads.v15.resources.AdGroupExtensionSetting + google.ads.googleads.v18.resources.AdGroupExtensionSetting ad_group_extension_setting = 112; // The ad group feed referenced in the query. - google.ads.googleads.v15.resources.AdGroupFeed ad_group_feed = 67; + google.ads.googleads.v18.resources.AdGroupFeed ad_group_feed = 67; // The ad group label referenced in the query. - google.ads.googleads.v15.resources.AdGroupLabel ad_group_label = 115; + google.ads.googleads.v18.resources.AdGroupLabel ad_group_label = 115; // The ad group simulation referenced in the query. - google.ads.googleads.v15.resources.AdGroupSimulation ad_group_simulation = + google.ads.googleads.v18.resources.AdGroupSimulation ad_group_simulation = 107; // The ad parameter referenced in the query. - google.ads.googleads.v15.resources.AdParameter ad_parameter = 130; + google.ads.googleads.v18.resources.AdParameter ad_parameter = 130; // The age range view referenced in the query. - google.ads.googleads.v15.resources.AgeRangeView age_range_view = 48; + google.ads.googleads.v18.resources.AgeRangeView age_range_view = 48; // The ad schedule view referenced in the query. - google.ads.googleads.v15.resources.AdScheduleView ad_schedule_view = 89; + google.ads.googleads.v18.resources.AdScheduleView ad_schedule_view = 89; // The domain category referenced in the query. - google.ads.googleads.v15.resources.DomainCategory domain_category = 91; + google.ads.googleads.v18.resources.DomainCategory domain_category = 91; // The asset referenced in the query. - google.ads.googleads.v15.resources.Asset asset = 105; + google.ads.googleads.v18.resources.Asset asset = 105; // The asset field type view referenced in the query. - google.ads.googleads.v15.resources.AssetFieldTypeView asset_field_type_view = + google.ads.googleads.v18.resources.AssetFieldTypeView asset_field_type_view = 168; + // The channel aggregate asset view referenced in the query. + google.ads.googleads.v18.resources.ChannelAggregateAssetView + channel_aggregate_asset_view = 222; + + // The campaign aggregate asset view referenced in the query. + google.ads.googleads.v18.resources.CampaignAggregateAssetView + campaign_aggregate_asset_view = 224; + // The asset group asset referenced in the query. - google.ads.googleads.v15.resources.AssetGroupAsset asset_group_asset = 173; + google.ads.googleads.v18.resources.AssetGroupAsset asset_group_asset = 173; // The asset group signal referenced in the query. - google.ads.googleads.v15.resources.AssetGroupSignal asset_group_signal = 191; + google.ads.googleads.v18.resources.AssetGroupSignal asset_group_signal = 191; // The asset group listing group filter referenced in the query. - google.ads.googleads.v15.resources.AssetGroupListingGroupFilter + google.ads.googleads.v18.resources.AssetGroupListingGroupFilter asset_group_listing_group_filter = 182; // The asset group product group view referenced in the query. - google.ads.googleads.v15.resources.AssetGroupProductGroupView + google.ads.googleads.v18.resources.AssetGroupProductGroupView asset_group_product_group_view = 189; // The asset group top combination view referenced in the query. - google.ads.googleads.v15.resources.AssetGroupTopCombinationView + google.ads.googleads.v18.resources.AssetGroupTopCombinationView asset_group_top_combination_view = 199; // The asset group referenced in the query. - google.ads.googleads.v15.resources.AssetGroup asset_group = 172; + google.ads.googleads.v18.resources.AssetGroup asset_group = 172; // The asset set asset referenced in the query. - google.ads.googleads.v15.resources.AssetSetAsset asset_set_asset = 180; + google.ads.googleads.v18.resources.AssetSetAsset asset_set_asset = 180; // The asset set referenced in the query. - google.ads.googleads.v15.resources.AssetSet asset_set = 179; + google.ads.googleads.v18.resources.AssetSet asset_set = 179; // The asset set type view referenced in the query. - google.ads.googleads.v15.resources.AssetSetTypeView asset_set_type_view = 197; + google.ads.googleads.v18.resources.AssetSetTypeView asset_set_type_view = 197; // The batch job referenced in the query. - google.ads.googleads.v15.resources.BatchJob batch_job = 139; + google.ads.googleads.v18.resources.BatchJob batch_job = 139; // The bidding data exclusion referenced in the query. - google.ads.googleads.v15.resources.BiddingDataExclusion + google.ads.googleads.v18.resources.BiddingDataExclusion bidding_data_exclusion = 159; // The bidding seasonality adjustment referenced in the query. - google.ads.googleads.v15.resources.BiddingSeasonalityAdjustment + google.ads.googleads.v18.resources.BiddingSeasonalityAdjustment bidding_seasonality_adjustment = 160; // The bidding strategy referenced in the query. - google.ads.googleads.v15.resources.BiddingStrategy bidding_strategy = 18; + google.ads.googleads.v18.resources.BiddingStrategy bidding_strategy = 18; // The bidding strategy simulation referenced in the query. - google.ads.googleads.v15.resources.BiddingStrategySimulation + google.ads.googleads.v18.resources.BiddingStrategySimulation bidding_strategy_simulation = 158; // The billing setup referenced in the query. - google.ads.googleads.v15.resources.BillingSetup billing_setup = 41; + google.ads.googleads.v18.resources.BillingSetup billing_setup = 41; // The call view referenced in the query. - google.ads.googleads.v15.resources.CallView call_view = 152; + google.ads.googleads.v18.resources.CallView call_view = 152; // The campaign budget referenced in the query. - google.ads.googleads.v15.resources.CampaignBudget campaign_budget = 19; + google.ads.googleads.v18.resources.CampaignBudget campaign_budget = 19; // The campaign referenced in the query. - google.ads.googleads.v15.resources.Campaign campaign = 2; + google.ads.googleads.v18.resources.Campaign campaign = 2; // The campaign asset referenced in the query. - google.ads.googleads.v15.resources.CampaignAsset campaign_asset = 142; + google.ads.googleads.v18.resources.CampaignAsset campaign_asset = 142; // The campaign asset set referenced in the query. - google.ads.googleads.v15.resources.CampaignAssetSet campaign_asset_set = 181; + google.ads.googleads.v18.resources.CampaignAssetSet campaign_asset_set = 181; // The campaign audience view referenced in the query. - google.ads.googleads.v15.resources.CampaignAudienceView + google.ads.googleads.v18.resources.CampaignAudienceView campaign_audience_view = 69; // The campaign bid modifier referenced in the query. - google.ads.googleads.v15.resources.CampaignBidModifier campaign_bid_modifier = + google.ads.googleads.v18.resources.CampaignBidModifier campaign_bid_modifier = 26; // The CampaignConversionGoal referenced in the query. - google.ads.googleads.v15.resources.CampaignConversionGoal + google.ads.googleads.v18.resources.CampaignConversionGoal campaign_conversion_goal = 175; // The campaign criterion referenced in the query. - google.ads.googleads.v15.resources.CampaignCriterion campaign_criterion = 20; + google.ads.googleads.v18.resources.CampaignCriterion campaign_criterion = 20; // The campaign customizer referenced in the query. - google.ads.googleads.v15.resources.CampaignCustomizer campaign_customizer = + google.ads.googleads.v18.resources.CampaignCustomizer campaign_customizer = 186; // The campaign draft referenced in the query. - google.ads.googleads.v15.resources.CampaignDraft campaign_draft = 49; + google.ads.googleads.v18.resources.CampaignDraft campaign_draft = 49; // The campaign extension setting referenced in the query. - google.ads.googleads.v15.resources.CampaignExtensionSetting + google.ads.googleads.v18.resources.CampaignExtensionSetting campaign_extension_setting = 113; // The campaign feed referenced in the query. - google.ads.googleads.v15.resources.CampaignFeed campaign_feed = 63; + google.ads.googleads.v18.resources.CampaignFeed campaign_feed = 63; // Campaign Group referenced in AWQL query. - google.ads.googleads.v15.resources.CampaignGroup campaign_group = 25; + google.ads.googleads.v18.resources.CampaignGroup campaign_group = 25; // The campaign label referenced in the query. - google.ads.googleads.v15.resources.CampaignLabel campaign_label = 108; + google.ads.googleads.v18.resources.CampaignLabel campaign_label = 108; // The campaign lifecycle goal referenced in the query. - google.ads.googleads.v15.resources.CampaignLifecycleGoal + google.ads.googleads.v18.resources.CampaignLifecycleGoal campaign_lifecycle_goal = 213; // The campaign search term insight referenced in the query. - google.ads.googleads.v15.resources.CampaignSearchTermInsight + google.ads.googleads.v18.resources.CampaignSearchTermInsight campaign_search_term_insight = 204; // Campaign Shared Set referenced in AWQL query. - google.ads.googleads.v15.resources.CampaignSharedSet campaign_shared_set = 30; + google.ads.googleads.v18.resources.CampaignSharedSet campaign_shared_set = 30; // The campaign simulation referenced in the query. - google.ads.googleads.v15.resources.CampaignSimulation campaign_simulation = + google.ads.googleads.v18.resources.CampaignSimulation campaign_simulation = 157; // The carrier constant referenced in the query. - google.ads.googleads.v15.resources.CarrierConstant carrier_constant = 66; + google.ads.googleads.v18.resources.CarrierConstant carrier_constant = 66; // The ChangeEvent referenced in the query. - google.ads.googleads.v15.resources.ChangeEvent change_event = 145; + google.ads.googleads.v18.resources.ChangeEvent change_event = 145; // The ChangeStatus referenced in the query. - google.ads.googleads.v15.resources.ChangeStatus change_status = 37; + google.ads.googleads.v18.resources.ChangeStatus change_status = 37; // The CombinedAudience referenced in the query. - google.ads.googleads.v15.resources.CombinedAudience combined_audience = 148; + google.ads.googleads.v18.resources.CombinedAudience combined_audience = 148; // The Audience referenced in the query. - google.ads.googleads.v15.resources.Audience audience = 190; + google.ads.googleads.v18.resources.Audience audience = 190; // The conversion action referenced in the query. - google.ads.googleads.v15.resources.ConversionAction conversion_action = 103; + google.ads.googleads.v18.resources.ConversionAction conversion_action = 103; // The conversion custom variable referenced in the query. - google.ads.googleads.v15.resources.ConversionCustomVariable + google.ads.googleads.v18.resources.ConversionCustomVariable conversion_custom_variable = 153; // The ConversionGoalCampaignConfig referenced in the query. - google.ads.googleads.v15.resources.ConversionGoalCampaignConfig + google.ads.googleads.v18.resources.ConversionGoalCampaignConfig conversion_goal_campaign_config = 177; // The conversion value rule referenced in the query. - google.ads.googleads.v15.resources.ConversionValueRule conversion_value_rule = + google.ads.googleads.v18.resources.ConversionValueRule conversion_value_rule = 164; // The conversion value rule set referenced in the query. - google.ads.googleads.v15.resources.ConversionValueRuleSet + google.ads.googleads.v18.resources.ConversionValueRuleSet conversion_value_rule_set = 165; // The ClickView referenced in the query. - google.ads.googleads.v15.resources.ClickView click_view = 122; + google.ads.googleads.v18.resources.ClickView click_view = 122; // The currency constant referenced in the query. - google.ads.googleads.v15.resources.CurrencyConstant currency_constant = 134; + google.ads.googleads.v18.resources.CurrencyConstant currency_constant = 134; // The CustomAudience referenced in the query. - google.ads.googleads.v15.resources.CustomAudience custom_audience = 147; + google.ads.googleads.v18.resources.CustomAudience custom_audience = 147; // The CustomConversionGoal referenced in the query. - google.ads.googleads.v15.resources.CustomConversionGoal + google.ads.googleads.v18.resources.CustomConversionGoal custom_conversion_goal = 176; // The CustomInterest referenced in the query. - google.ads.googleads.v15.resources.CustomInterest custom_interest = 104; + google.ads.googleads.v18.resources.CustomInterest custom_interest = 104; // The customer referenced in the query. - google.ads.googleads.v15.resources.Customer customer = 1; + google.ads.googleads.v18.resources.Customer customer = 1; // The customer asset referenced in the query. - google.ads.googleads.v15.resources.CustomerAsset customer_asset = 155; + google.ads.googleads.v18.resources.CustomerAsset customer_asset = 155; // The customer asset set referenced in the query. - google.ads.googleads.v15.resources.CustomerAssetSet customer_asset_set = 195; + google.ads.googleads.v18.resources.CustomerAssetSet customer_asset_set = 195; // The accessible bidding strategy referenced in the query. - google.ads.googleads.v15.resources.AccessibleBiddingStrategy + google.ads.googleads.v18.resources.AccessibleBiddingStrategy accessible_bidding_strategy = 169; // The customer customizer referenced in the query. - google.ads.googleads.v15.resources.CustomerCustomizer customer_customizer = + google.ads.googleads.v18.resources.CustomerCustomizer customer_customizer = 184; // The CustomerManagerLink referenced in the query. - google.ads.googleads.v15.resources.CustomerManagerLink customer_manager_link = + google.ads.googleads.v18.resources.CustomerManagerLink customer_manager_link = 61; // The CustomerClientLink referenced in the query. - google.ads.googleads.v15.resources.CustomerClientLink customer_client_link = + google.ads.googleads.v18.resources.CustomerClientLink customer_client_link = 62; // The CustomerClient referenced in the query. - google.ads.googleads.v15.resources.CustomerClient customer_client = 70; + google.ads.googleads.v18.resources.CustomerClient customer_client = 70; // The CustomerConversionGoal referenced in the query. - google.ads.googleads.v15.resources.CustomerConversionGoal + google.ads.googleads.v18.resources.CustomerConversionGoal customer_conversion_goal = 174; // The customer extension setting referenced in the query. - google.ads.googleads.v15.resources.CustomerExtensionSetting + google.ads.googleads.v18.resources.CustomerExtensionSetting customer_extension_setting = 114; // The customer feed referenced in the query. - google.ads.googleads.v15.resources.CustomerFeed customer_feed = 64; + google.ads.googleads.v18.resources.CustomerFeed customer_feed = 64; // The customer label referenced in the query. - google.ads.googleads.v15.resources.CustomerLabel customer_label = 124; + google.ads.googleads.v18.resources.CustomerLabel customer_label = 124; // The customer lifecycle goal referenced in the query. - google.ads.googleads.v15.resources.CustomerLifecycleGoal + google.ads.googleads.v18.resources.CustomerLifecycleGoal customer_lifecycle_goal = 212; // The customer negative criterion referenced in the query. - google.ads.googleads.v15.resources.CustomerNegativeCriterion + google.ads.googleads.v18.resources.CustomerNegativeCriterion customer_negative_criterion = 88; // The customer search term insight referenced in the query. - google.ads.googleads.v15.resources.CustomerSearchTermInsight + google.ads.googleads.v18.resources.CustomerSearchTermInsight customer_search_term_insight = 205; // The CustomerUserAccess referenced in the query. - google.ads.googleads.v15.resources.CustomerUserAccess customer_user_access = + google.ads.googleads.v18.resources.CustomerUserAccess customer_user_access = 146; // The CustomerUserAccessInvitation referenced in the query. - google.ads.googleads.v15.resources.CustomerUserAccessInvitation + google.ads.googleads.v18.resources.CustomerUserAccessInvitation customer_user_access_invitation = 150; // The customizer attribute referenced in the query. - google.ads.googleads.v15.resources.CustomizerAttribute customizer_attribute = + google.ads.googleads.v18.resources.CustomizerAttribute customizer_attribute = 178; + // The data link referenced in the query. + google.ads.googleads.v18.resources.DataLink data_link = 230; + // The detail placement view referenced in the query. - google.ads.googleads.v15.resources.DetailPlacementView detail_placement_view = + google.ads.googleads.v18.resources.DetailPlacementView detail_placement_view = 118; // The detailed demographic referenced in the query. - google.ads.googleads.v15.resources.DetailedDemographic detailed_demographic = + google.ads.googleads.v18.resources.DetailedDemographic detailed_demographic = 166; // The display keyword view referenced in the query. - google.ads.googleads.v15.resources.DisplayKeywordView display_keyword_view = + google.ads.googleads.v18.resources.DisplayKeywordView display_keyword_view = 47; // The distance view referenced in the query. - google.ads.googleads.v15.resources.DistanceView distance_view = 132; + google.ads.googleads.v18.resources.DistanceView distance_view = 132; // The dynamic search ads search term view referenced in the query. - google.ads.googleads.v15.resources.DynamicSearchAdsSearchTermView + google.ads.googleads.v18.resources.DynamicSearchAdsSearchTermView dynamic_search_ads_search_term_view = 106; // The expanded landing page view referenced in the query. - google.ads.googleads.v15.resources.ExpandedLandingPageView + google.ads.googleads.v18.resources.ExpandedLandingPageView expanded_landing_page_view = 128; // The extension feed item referenced in the query. - google.ads.googleads.v15.resources.ExtensionFeedItem extension_feed_item = 85; + google.ads.googleads.v18.resources.ExtensionFeedItem extension_feed_item = 85; // The feed referenced in the query. - google.ads.googleads.v15.resources.Feed feed = 46; + google.ads.googleads.v18.resources.Feed feed = 46; // The feed item referenced in the query. - google.ads.googleads.v15.resources.FeedItem feed_item = 50; + google.ads.googleads.v18.resources.FeedItem feed_item = 50; // The feed item set referenced in the query. - google.ads.googleads.v15.resources.FeedItemSet feed_item_set = 149; + google.ads.googleads.v18.resources.FeedItemSet feed_item_set = 149; // The feed item set link referenced in the query. - google.ads.googleads.v15.resources.FeedItemSetLink feed_item_set_link = 151; + google.ads.googleads.v18.resources.FeedItemSetLink feed_item_set_link = 151; // The feed item target referenced in the query. - google.ads.googleads.v15.resources.FeedItemTarget feed_item_target = 116; + google.ads.googleads.v18.resources.FeedItemTarget feed_item_target = 116; // The feed mapping referenced in the query. - google.ads.googleads.v15.resources.FeedMapping feed_mapping = 58; + google.ads.googleads.v18.resources.FeedMapping feed_mapping = 58; // The feed placeholder view referenced in the query. - google.ads.googleads.v15.resources.FeedPlaceholderView feed_placeholder_view = + google.ads.googleads.v18.resources.FeedPlaceholderView feed_placeholder_view = 97; // The gender view referenced in the query. - google.ads.googleads.v15.resources.GenderView gender_view = 40; + google.ads.googleads.v18.resources.GenderView gender_view = 40; // The geo target constant referenced in the query. - google.ads.googleads.v15.resources.GeoTargetConstant geo_target_constant = 23; + google.ads.googleads.v18.resources.GeoTargetConstant geo_target_constant = 23; // The geographic view referenced in the query. - google.ads.googleads.v15.resources.GeographicView geographic_view = 125; + google.ads.googleads.v18.resources.GeographicView geographic_view = 125; // The group placement view referenced in the query. - google.ads.googleads.v15.resources.GroupPlacementView group_placement_view = + google.ads.googleads.v18.resources.GroupPlacementView group_placement_view = 119; // The hotel group view referenced in the query. - google.ads.googleads.v15.resources.HotelGroupView hotel_group_view = 51; + google.ads.googleads.v18.resources.HotelGroupView hotel_group_view = 51; // The hotel performance view referenced in the query. - google.ads.googleads.v15.resources.HotelPerformanceView + google.ads.googleads.v18.resources.HotelPerformanceView hotel_performance_view = 71; // The hotel reconciliation referenced in the query. - google.ads.googleads.v15.resources.HotelReconciliation hotel_reconciliation = + google.ads.googleads.v18.resources.HotelReconciliation hotel_reconciliation = 188; // The income range view referenced in the query. - google.ads.googleads.v15.resources.IncomeRangeView income_range_view = 138; + google.ads.googleads.v18.resources.IncomeRangeView income_range_view = 138; // The keyword view referenced in the query. - google.ads.googleads.v15.resources.KeywordView keyword_view = 21; + google.ads.googleads.v18.resources.KeywordView keyword_view = 21; // The keyword plan referenced in the query. - google.ads.googleads.v15.resources.KeywordPlan keyword_plan = 32; + google.ads.googleads.v18.resources.KeywordPlan keyword_plan = 32; // The keyword plan campaign referenced in the query. - google.ads.googleads.v15.resources.KeywordPlanCampaign keyword_plan_campaign = + google.ads.googleads.v18.resources.KeywordPlanCampaign keyword_plan_campaign = 33; // The keyword plan campaign keyword referenced in the query. - google.ads.googleads.v15.resources.KeywordPlanCampaignKeyword + google.ads.googleads.v18.resources.KeywordPlanCampaignKeyword keyword_plan_campaign_keyword = 140; // The keyword plan ad group referenced in the query. - google.ads.googleads.v15.resources.KeywordPlanAdGroup keyword_plan_ad_group = + google.ads.googleads.v18.resources.KeywordPlanAdGroup keyword_plan_ad_group = 35; // The keyword plan ad group referenced in the query. - google.ads.googleads.v15.resources.KeywordPlanAdGroupKeyword + google.ads.googleads.v18.resources.KeywordPlanAdGroupKeyword keyword_plan_ad_group_keyword = 141; // The keyword theme constant referenced in the query. - google.ads.googleads.v15.resources.KeywordThemeConstant + google.ads.googleads.v18.resources.KeywordThemeConstant keyword_theme_constant = 163; // The label referenced in the query. - google.ads.googleads.v15.resources.Label label = 52; + google.ads.googleads.v18.resources.Label label = 52; // The landing page view referenced in the query. - google.ads.googleads.v15.resources.LandingPageView landing_page_view = 126; + google.ads.googleads.v18.resources.LandingPageView landing_page_view = 126; // The language constant referenced in the query. - google.ads.googleads.v15.resources.LanguageConstant language_constant = 55; + google.ads.googleads.v18.resources.LanguageConstant language_constant = 55; // The location view referenced in the query. - google.ads.googleads.v15.resources.LocationView location_view = 123; + google.ads.googleads.v18.resources.LocationView location_view = 123; // The managed placement view referenced in the query. - google.ads.googleads.v15.resources.ManagedPlacementView + google.ads.googleads.v18.resources.ManagedPlacementView managed_placement_view = 53; + // The content criterion view referenced in the query. + google.ads.googleads.v18.resources.ContentCriterionView + content_criterion_view = 232; + // The media file referenced in the query. - google.ads.googleads.v15.resources.MediaFile media_file = 90; + google.ads.googleads.v18.resources.MediaFile media_file = 90; + + // The local services employee referenced in the query. + google.ads.googleads.v18.resources.LocalServicesEmployee + local_services_employee = 223; // The local services verification artifact referenced in the query. - google.ads.googleads.v15.resources.LocalServicesVerificationArtifact + google.ads.googleads.v18.resources.LocalServicesVerificationArtifact local_services_verification_artifact = 211; // The mobile app category constant referenced in the query. - google.ads.googleads.v15.resources.MobileAppCategoryConstant + google.ads.googleads.v18.resources.MobileAppCategoryConstant mobile_app_category_constant = 87; // The mobile device constant referenced in the query. - google.ads.googleads.v15.resources.MobileDeviceConstant + google.ads.googleads.v18.resources.MobileDeviceConstant mobile_device_constant = 98; - // Offline conversion upload client summary. - google.ads.googleads.v15.resources.OfflineConversionUploadClientSummary + // Offline conversion upload summary at customer level. + google.ads.googleads.v18.resources.OfflineConversionUploadClientSummary offline_conversion_upload_client_summary = 216; + // Offline conversion upload summary at conversion type level. + google.ads.googleads.v18.resources + .OfflineConversionUploadConversionActionSummary + offline_conversion_upload_conversion_action_summary = 228; + // The offline user data job referenced in the query. - google.ads.googleads.v15.resources.OfflineUserDataJob offline_user_data_job = + google.ads.googleads.v18.resources.OfflineUserDataJob offline_user_data_job = 137; // The operating system version constant referenced in the query. - google.ads.googleads.v15.resources.OperatingSystemVersionConstant + google.ads.googleads.v18.resources.OperatingSystemVersionConstant operating_system_version_constant = 86; // The paid organic search term view referenced in the query. - google.ads.googleads.v15.resources.PaidOrganicSearchTermView + google.ads.googleads.v18.resources.PaidOrganicSearchTermView paid_organic_search_term_view = 129; // The qualifying question referenced in the query. - google.ads.googleads.v15.resources.QualifyingQuestion qualifying_question = + google.ads.googleads.v18.resources.QualifyingQuestion qualifying_question = 202; // The parental status view referenced in the query. - google.ads.googleads.v15.resources.ParentalStatusView parental_status_view = + google.ads.googleads.v18.resources.ParentalStatusView parental_status_view = 45; // The per store view referenced in the query. - google.ads.googleads.v15.resources.PerStoreView per_store_view = 198; + google.ads.googleads.v18.resources.PerStoreView per_store_view = 198; + + // The performance max placement view referenced in the query. + google.ads.googleads.v18.resources.PerformanceMaxPlacementView + performance_max_placement_view = 233; // The product category referenced in the query. - google.ads.googleads.v15.resources.ProductCategoryConstant + google.ads.googleads.v18.resources.ProductCategoryConstant product_category_constant = 208; // The product group view referenced in the query. - google.ads.googleads.v15.resources.ProductGroupView product_group_view = 54; + google.ads.googleads.v18.resources.ProductGroupView product_group_view = 54; // The product link referenced in the query. - google.ads.googleads.v15.resources.ProductLink product_link = 194; + google.ads.googleads.v18.resources.ProductLink product_link = 194; // The product link invitation in the query. - google.ads.googleads.v15.resources.ProductLinkInvitation + google.ads.googleads.v18.resources.ProductLinkInvitation product_link_invitation = 209; // The recommendation referenced in the query. - google.ads.googleads.v15.resources.Recommendation recommendation = 22; + google.ads.googleads.v18.resources.Recommendation recommendation = 22; // The recommendation subscription referenced in the query. - google.ads.googleads.v15.resources.RecommendationSubscription + google.ads.googleads.v18.resources.RecommendationSubscription recommendation_subscription = 220; // The search term view referenced in the query. - google.ads.googleads.v15.resources.SearchTermView search_term_view = 68; + google.ads.googleads.v18.resources.SearchTermView search_term_view = 68; // The shared set referenced in the query. - google.ads.googleads.v15.resources.SharedCriterion shared_criterion = 29; + google.ads.googleads.v18.resources.SharedCriterion shared_criterion = 29; // The shared set referenced in the query. - google.ads.googleads.v15.resources.SharedSet shared_set = 27; + google.ads.googleads.v18.resources.SharedSet shared_set = 27; // The Smart campaign setting referenced in the query. - google.ads.googleads.v15.resources.SmartCampaignSetting + google.ads.googleads.v18.resources.SmartCampaignSetting smart_campaign_setting = 167; // The shopping performance view referenced in the query. - google.ads.googleads.v15.resources.ShoppingPerformanceView + google.ads.googleads.v18.resources.ShoppingPerformanceView shopping_performance_view = 117; + // The shopping product referenced in the query. + google.ads.googleads.v18.resources.ShoppingProduct shopping_product = 226; + // The Smart campaign search term view referenced in the query. - google.ads.googleads.v15.resources.SmartCampaignSearchTermView + google.ads.googleads.v18.resources.SmartCampaignSearchTermView smart_campaign_search_term_view = 170; // The AccountLink referenced in the query. - google.ads.googleads.v15.resources.ThirdPartyAppAnalyticsLink + google.ads.googleads.v18.resources.ThirdPartyAppAnalyticsLink third_party_app_analytics_link = 144; // The topic view referenced in the query. - google.ads.googleads.v15.resources.TopicView topic_view = 44; + google.ads.googleads.v18.resources.TopicView topic_view = 44; // The travel activity group view referenced in the query. - google.ads.googleads.v15.resources.TravelActivityGroupView + google.ads.googleads.v18.resources.TravelActivityGroupView travel_activity_group_view = 201; // The travel activity performance view referenced in the query. - google.ads.googleads.v15.resources.TravelActivityPerformanceView + google.ads.googleads.v18.resources.TravelActivityPerformanceView travel_activity_performance_view = 200; // The experiment referenced in the query. - google.ads.googleads.v15.resources.Experiment experiment = 133; + google.ads.googleads.v18.resources.Experiment experiment = 133; // The experiment arm referenced in the query. - google.ads.googleads.v15.resources.ExperimentArm experiment_arm = 183; + google.ads.googleads.v18.resources.ExperimentArm experiment_arm = 183; // The user interest referenced in the query. - google.ads.googleads.v15.resources.UserInterest user_interest = 59; + google.ads.googleads.v18.resources.UserInterest user_interest = 59; // The life event referenced in the query. - google.ads.googleads.v15.resources.LifeEvent life_event = 161; + google.ads.googleads.v18.resources.LifeEvent life_event = 161; // The user list referenced in the query. - google.ads.googleads.v15.resources.UserList user_list = 38; + google.ads.googleads.v18.resources.UserList user_list = 38; + + // The user list customer type in the query. + google.ads.googleads.v18.resources.UserListCustomerType + user_list_customer_type = 225; // The user location view referenced in the query. - google.ads.googleads.v15.resources.UserLocationView user_location_view = 135; + google.ads.googleads.v18.resources.UserLocationView user_location_view = 135; // The remarketing action referenced in the query. - google.ads.googleads.v15.resources.RemarketingAction remarketing_action = 60; + google.ads.googleads.v18.resources.RemarketingAction remarketing_action = 60; // The topic constant referenced in the query. - google.ads.googleads.v15.resources.TopicConstant topic_constant = 31; + google.ads.googleads.v18.resources.TopicConstant topic_constant = 31; // The video referenced in the query. - google.ads.googleads.v15.resources.Video video = 39; + google.ads.googleads.v18.resources.Video video = 39; // The webpage view referenced in the query. - google.ads.googleads.v15.resources.WebpageView webpage_view = 162; + google.ads.googleads.v18.resources.WebpageView webpage_view = 162; // The lead form user submission referenced in the query. - google.ads.googleads.v15.resources.LeadFormSubmissionData + google.ads.googleads.v18.resources.LeadFormSubmissionData lead_form_submission_data = 192; // The local services lead referenced in the query. - google.ads.googleads.v15.resources.LocalServicesLead local_services_lead = + google.ads.googleads.v18.resources.LocalServicesLead local_services_lead = 210; // The local services lead conversationreferenced in the query. - google.ads.googleads.v15.resources.LocalServicesLeadConversation + google.ads.googleads.v18.resources.LocalServicesLeadConversation local_services_lead_conversation = 214; // The android privacy shared key google ad group referenced in the query. - google.ads.googleads.v15.resources.AndroidPrivacySharedKeyGoogleAdGroup + google.ads.googleads.v18.resources.AndroidPrivacySharedKeyGoogleAdGroup android_privacy_shared_key_google_ad_group = 217; // The android privacy shared key google campaign referenced in the query. - google.ads.googleads.v15.resources.AndroidPrivacySharedKeyGoogleCampaign + google.ads.googleads.v18.resources.AndroidPrivacySharedKeyGoogleCampaign android_privacy_shared_key_google_campaign = 218; // The android privacy shared key google network type referenced in the query. - google.ads.googleads.v15.resources.AndroidPrivacySharedKeyGoogleNetworkType + google.ads.googleads.v18.resources.AndroidPrivacySharedKeyGoogleNetworkType android_privacy_shared_key_google_network_type = 219; // The metrics. - google.ads.googleads.v15.common.Metrics metrics = 4; + google.ads.googleads.v18.common.Metrics metrics = 4; // The segments. - google.ads.googleads.v15.common.Segments segments = 102; + google.ads.googleads.v18.common.Segments segments = 102; } // Request message for -// [GoogleAdsService.Mutate][google.ads.googleads.v15.services.GoogleAdsService.Mutate]. +// [GoogleAdsService.Mutate][google.ads.googleads.v18.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]; @@ -1180,12 +1225,12 @@ message MutateGoogleAdsRequest { // or just the resource name should be returned post mutation. The mutable // resource will only be returned if the resource has the appropriate response // field. For example, MutateCampaignResult.campaign. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } // Response message for -// [GoogleAdsService.Mutate][google.ads.googleads.v15.services.GoogleAdsService.Mutate]. +// [GoogleAdsService.Mutate][google.ads.googleads.v18.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 @@ -1674,3 +1719,21 @@ message MutateOperationResponse { MutateUserListResult user_list_result = 16; } } + +// Indicates search settings in request parameter. +message SearchSettings { + // If true, results will be excluded from the response. Otherwise, results + // will be returned. + // Default is false. + bool omit_results = 1; + + // If true, summary row will be included in the response and sent in a + // response by itself after all other query results are returned. + // Default is false. + bool return_summary_row = 2; + + // 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 = 3; +} diff --git a/google/ads/googleads/v18/services/identity_verification_service.proto b/google/ads/googleads/v18/services/identity_verification_service.proto new file mode 100644 index 000000000..f09020ccf --- /dev/null +++ b/google/ads/googleads/v18/services/identity_verification_service.proto @@ -0,0 +1,148 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.services; + +import "google/ads/googleads/v18/enums/identity_verification_program.proto"; +import "google/ads/googleads/v18/enums/identity_verification_program_status.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/protobuf/empty.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; +option java_multiple_files = true; +option java_outer_classname = "IdentityVerificationServiceProto"; +option java_package = "com.google.ads.googleads.v18.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; + +// Proto file describing the IdentityVerificatio Service. + +// A service for managing Identity Verification Service. +service IdentityVerificationService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Starts Identity Verification for a given verification program type. + // Statuses are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc StartIdentityVerification(StartIdentityVerificationRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v18/customers/{customer_id=*}:startIdentityVerification" + body: "*" + }; + option (google.api.method_signature) = "customer_id,verification_program"; + } + + // Returns Identity Verification information. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc GetIdentityVerification(GetIdentityVerificationRequest) + returns (GetIdentityVerificationResponse) { + option (google.api.http) = { + get: "/v18/customers/{customer_id=*}/getIdentityVerification" + }; + option (google.api.method_signature) = "customer_id"; + } +} + +// Request message for +// [IdentityVerificationService.StartIdentityVerification]. +message StartIdentityVerificationRequest { + // Required. The Id of the customer for whom we are creating this + // verification. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The verification program type for which we want to start the + // verification. + google.ads.googleads.v18.enums.IdentityVerificationProgramEnum + .IdentityVerificationProgram verification_program = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for +// [IdentityVerificationService.GetIdentityVerification]. +message GetIdentityVerificationRequest { + // Required. The ID of the customer for whom we are requesting verification + // information. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for +// [IdentityVerificationService.GetIdentityVerification]. +message GetIdentityVerificationResponse { + // List of identity verifications for the customer. + repeated IdentityVerification identity_verification = 1; +} + +// An identity verification for a customer. +message IdentityVerification { + // The verification program type. + google.ads.googleads.v18.enums.IdentityVerificationProgramEnum + .IdentityVerificationProgram verification_program = 1; + + // The verification requirement for this verification program for this + // customer. + optional IdentityVerificationRequirement identity_verification_requirement = + 2; + + // Information regarding progress for this verification program for this + // customer. + optional IdentityVerificationProgress verification_progress = 3; +} + +// Information regarding the verification progress for a verification program +// type. +message IdentityVerificationProgress { + // Current Status (PENDING_USER_ACTION, SUCCESS, FAILURE etc) + google.ads.googleads.v18.enums.IdentityVerificationProgramStatusEnum + .IdentityVerificationProgramStatus program_status = 1; + + // The timestamp when the action url will expire in "yyyy-MM-dd HH:mm:ss" + // format. + string invitation_link_expiration_time = 2; + + // Action URL for user to complete verification for the given verification + // program type. + string action_url = 3; +} + +// Information regarding the verification requirement for a verification program +// type. +message IdentityVerificationRequirement { + // The deadline to start verification in "yyyy-MM-dd HH:mm:ss" format. + string verification_start_deadline_time = 1; + + // The deadline to submit verification. + string verification_completion_deadline_time = 2; +} diff --git a/google/ads/googleads/v15/services/invoice_service.proto b/google/ads/googleads/v18/services/invoice_service.proto similarity index 78% rename from google/ads/googleads/v15/services/invoice_service.proto rename to google/ads/googleads/v18/services/invoice_service.proto index 788734c4c..eb0298ca0 100644 --- a/google/ads/googleads/v15/services/invoice_service.proto +++ b/google/ads/googleads/v18/services/invoice_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/month_of_year.proto"; -import "google/ads/googleads/v15/resources/invoice.proto"; +import "google/ads/googleads/v18/enums/month_of_year.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "InvoiceServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Invoice service. @@ -51,7 +51,7 @@ service InvoiceService { // [RequestError]() rpc ListInvoices(ListInvoicesRequest) returns (ListInvoicesResponse) { option (google.api.http) = { - get: "/v15/customers/{customer_id=*}/invoices" + get: "/v18/customers/{customer_id=*}/invoices" }; option (google.api.method_signature) = "customer_id,billing_setup,issue_year,issue_month"; @@ -74,13 +74,13 @@ message ListInvoicesRequest { string issue_year = 3 [(google.api.field_behavior) = REQUIRED]; // Required. The issue month to retrieve invoices. - google.ads.googleads.v15.enums.MonthOfYearEnum.MonthOfYear issue_month = 4 + google.ads.googleads.v18.enums.MonthOfYearEnum.MonthOfYear issue_month = 4 [(google.api.field_behavior) = REQUIRED]; } // Response message for -// [InvoiceService.ListInvoices][google.ads.googleads.v15.services.InvoiceService.ListInvoices]. +// [InvoiceService.ListInvoices][google.ads.googleads.v18.services.InvoiceService.ListInvoices]. message ListInvoicesResponse { // The list of invoices that match the billing setup and time period. - repeated google.ads.googleads.v15.resources.Invoice invoices = 1; + repeated google.ads.googleads.v18.resources.Invoice invoices = 1; } diff --git a/google/ads/googleads/v15/services/keyword_plan_ad_group_keyword_service.proto b/google/ads/googleads/v18/services/keyword_plan_ad_group_keyword_service.proto similarity index 88% rename from google/ads/googleads/v15/services/keyword_plan_ad_group_keyword_service.proto rename to google/ads/googleads/v18/services/keyword_plan_ad_group_keyword_service.proto index 98d2e4532..7aa11bf31 100644 --- a/google/ads/googleads/v15/services/keyword_plan_ad_group_keyword_service.proto +++ b/google/ads/googleads/v18/services/keyword_plan_ad_group_keyword_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/keyword_plan_ad_group_keyword.proto"; +import "google/ads/googleads/v18/resources/keyword_plan_ad_group_keyword.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -24,14 +24,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanAdGroupKeywordServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the keyword plan ad group keyword service. @@ -63,7 +63,7 @@ service KeywordPlanAdGroupKeywordService { rpc MutateKeywordPlanAdGroupKeywords(MutateKeywordPlanAdGroupKeywordsRequest) returns (MutateKeywordPlanAdGroupKeywordsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" + post: "/v18/customers/{customer_id=*}/keywordPlanAdGroupKeywords:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -71,7 +71,7 @@ service KeywordPlanAdGroupKeywordService { } // Request message for -// [KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords][google.ads.googleads.v15.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords]. +// [KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords][google.ads.googleads.v18.services.KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords]. message MutateKeywordPlanAdGroupKeywordsRequest { // Required. The ID of the customer whose Keyword Plan ad group keywords are // being modified. @@ -104,11 +104,11 @@ message KeywordPlanAdGroupKeywordOperation { oneof operation { // Create operation: No resource name is expected for the new Keyword Plan // ad group keyword. - google.ads.googleads.v15.resources.KeywordPlanAdGroupKeyword create = 1; + google.ads.googleads.v18.resources.KeywordPlanAdGroupKeyword create = 1; // Update operation: The Keyword Plan ad group keyword is expected to have a // valid resource name. - google.ads.googleads.v15.resources.KeywordPlanAdGroupKeyword update = 2; + google.ads.googleads.v18.resources.KeywordPlanAdGroupKeyword update = 2; // Remove operation: A resource name for the removed Keyword Plan ad group // keyword is expected, in this format: diff --git a/google/ads/googleads/v15/services/keyword_plan_ad_group_service.proto b/google/ads/googleads/v18/services/keyword_plan_ad_group_service.proto similarity index 87% rename from google/ads/googleads/v15/services/keyword_plan_ad_group_service.proto rename to google/ads/googleads/v18/services/keyword_plan_ad_group_service.proto index 4aa28e580..c3b767d66 100644 --- a/google/ads/googleads/v15/services/keyword_plan_ad_group_service.proto +++ b/google/ads/googleads/v18/services/keyword_plan_ad_group_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/keyword_plan_ad_group.proto"; +import "google/ads/googleads/v18/resources/keyword_plan_ad_group.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -24,14 +24,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanAdGroupServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the keyword plan ad group service. @@ -61,7 +61,7 @@ service KeywordPlanAdGroupService { rpc MutateKeywordPlanAdGroups(MutateKeywordPlanAdGroupsRequest) returns (MutateKeywordPlanAdGroupsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/keywordPlanAdGroups:mutate" + post: "/v18/customers/{customer_id=*}/keywordPlanAdGroups:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -69,7 +69,7 @@ service KeywordPlanAdGroupService { } // Request message for -// [KeywordPlanAdGroupService.MutateKeywordPlanAdGroups][google.ads.googleads.v15.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups]. +// [KeywordPlanAdGroupService.MutateKeywordPlanAdGroups][google.ads.googleads.v18.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups]. message MutateKeywordPlanAdGroupsRequest { // Required. The ID of the customer whose Keyword Plan ad groups are being // modified. @@ -101,11 +101,11 @@ message KeywordPlanAdGroupOperation { oneof operation { // Create operation: No resource name is expected for the new Keyword Plan // ad group. - google.ads.googleads.v15.resources.KeywordPlanAdGroup create = 1; + google.ads.googleads.v18.resources.KeywordPlanAdGroup create = 1; // Update operation: The Keyword Plan ad group is expected to have a valid // resource name. - google.ads.googleads.v15.resources.KeywordPlanAdGroup update = 2; + google.ads.googleads.v18.resources.KeywordPlanAdGroup update = 2; // Remove operation: A resource name for the removed Keyword Plan ad group // is expected, in this format: diff --git a/google/ads/googleads/v15/services/keyword_plan_campaign_keyword_service.proto b/google/ads/googleads/v18/services/keyword_plan_campaign_keyword_service.proto similarity index 88% rename from google/ads/googleads/v15/services/keyword_plan_campaign_keyword_service.proto rename to google/ads/googleads/v18/services/keyword_plan_campaign_keyword_service.proto index e6075d166..58984bad5 100644 --- a/google/ads/googleads/v15/services/keyword_plan_campaign_keyword_service.proto +++ b/google/ads/googleads/v18/services/keyword_plan_campaign_keyword_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/keyword_plan_campaign_keyword.proto"; +import "google/ads/googleads/v18/resources/keyword_plan_campaign_keyword.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -24,14 +24,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanCampaignKeywordServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the keyword plan campaign keyword service. @@ -62,7 +62,7 @@ service KeywordPlanCampaignKeywordService { MutateKeywordPlanCampaignKeywordsRequest) returns (MutateKeywordPlanCampaignKeywordsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" + post: "/v18/customers/{customer_id=*}/keywordPlanCampaignKeywords:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -70,7 +70,7 @@ service KeywordPlanCampaignKeywordService { } // Request message for -// [KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords][google.ads.googleads.v15.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords]. +// [KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords][google.ads.googleads.v18.services.KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords]. message MutateKeywordPlanCampaignKeywordsRequest { // Required. The ID of the customer whose campaign keywords are being // modified. @@ -103,11 +103,11 @@ message KeywordPlanCampaignKeywordOperation { oneof operation { // Create operation: No resource name is expected for the new Keyword Plan // campaign keyword. - google.ads.googleads.v15.resources.KeywordPlanCampaignKeyword create = 1; + google.ads.googleads.v18.resources.KeywordPlanCampaignKeyword create = 1; // Update operation: The Keyword Plan campaign keyword expected to have a // valid resource name. - google.ads.googleads.v15.resources.KeywordPlanCampaignKeyword update = 2; + google.ads.googleads.v18.resources.KeywordPlanCampaignKeyword update = 2; // Remove operation: A resource name for the removed Keyword Plan campaign // keywords expected in this format: diff --git a/google/ads/googleads/v15/services/keyword_plan_campaign_service.proto b/google/ads/googleads/v18/services/keyword_plan_campaign_service.proto similarity index 87% rename from google/ads/googleads/v15/services/keyword_plan_campaign_service.proto rename to google/ads/googleads/v18/services/keyword_plan_campaign_service.proto index 78e652b8c..cd89e85dd 100644 --- a/google/ads/googleads/v15/services/keyword_plan_campaign_service.proto +++ b/google/ads/googleads/v18/services/keyword_plan_campaign_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/keyword_plan_campaign.proto"; +import "google/ads/googleads/v18/resources/keyword_plan_campaign.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -24,14 +24,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanCampaignServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the keyword plan campaign service. @@ -62,7 +62,7 @@ service KeywordPlanCampaignService { rpc MutateKeywordPlanCampaigns(MutateKeywordPlanCampaignsRequest) returns (MutateKeywordPlanCampaignsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/keywordPlanCampaigns:mutate" + post: "/v18/customers/{customer_id=*}/keywordPlanCampaigns:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -70,7 +70,7 @@ service KeywordPlanCampaignService { } // Request message for -// [KeywordPlanCampaignService.MutateKeywordPlanCampaigns][google.ads.googleads.v15.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns]. +// [KeywordPlanCampaignService.MutateKeywordPlanCampaigns][google.ads.googleads.v18.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns]. message MutateKeywordPlanCampaignsRequest { // Required. The ID of the customer whose Keyword Plan campaigns are being // modified. @@ -102,11 +102,11 @@ message KeywordPlanCampaignOperation { oneof operation { // Create operation: No resource name is expected for the new Keyword Plan // campaign. - google.ads.googleads.v15.resources.KeywordPlanCampaign create = 1; + google.ads.googleads.v18.resources.KeywordPlanCampaign create = 1; // Update operation: The Keyword Plan campaign is expected to have a valid // resource name. - google.ads.googleads.v15.resources.KeywordPlanCampaign update = 2; + google.ads.googleads.v18.resources.KeywordPlanCampaign update = 2; // Remove operation: A resource name for the removed Keyword Plan campaign // is expected, in this format: diff --git a/google/ads/googleads/v15/services/keyword_plan_idea_service.proto b/google/ads/googleads/v18/services/keyword_plan_idea_service.proto similarity index 87% rename from google/ads/googleads/v15/services/keyword_plan_idea_service.proto rename to google/ads/googleads/v18/services/keyword_plan_idea_service.proto index 313792811..13adecfdf 100644 --- a/google/ads/googleads/v15/services/keyword_plan_idea_service.proto +++ b/google/ads/googleads/v18/services/keyword_plan_idea_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,26 +14,26 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/common/criteria.proto"; -import "google/ads/googleads/v15/common/dates.proto"; -import "google/ads/googleads/v15/common/keyword_plan_common.proto"; -import "google/ads/googleads/v15/enums/keyword_match_type.proto"; -import "google/ads/googleads/v15/enums/keyword_plan_keyword_annotation.proto"; -import "google/ads/googleads/v15/enums/keyword_plan_network.proto"; +import "google/ads/googleads/v18/common/criteria.proto"; +import "google/ads/googleads/v18/common/dates.proto"; +import "google/ads/googleads/v18/common/keyword_plan_common.proto"; +import "google/ads/googleads/v18/enums/keyword_match_type.proto"; +import "google/ads/googleads/v18/enums/keyword_plan_keyword_annotation.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanIdeaServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the keyword plan idea service. @@ -56,7 +56,7 @@ service KeywordPlanIdeaService { rpc GenerateKeywordIdeas(GenerateKeywordIdeasRequest) returns (GenerateKeywordIdeaResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}:generateKeywordIdeas" + post: "/v18/customers/{customer_id=*}:generateKeywordIdeas" body: "*" }; } @@ -74,7 +74,7 @@ service KeywordPlanIdeaService { rpc GenerateKeywordHistoricalMetrics(GenerateKeywordHistoricalMetricsRequest) returns (GenerateKeywordHistoricalMetricsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}:generateKeywordHistoricalMetrics" + post: "/v18/customers/{customer_id=*}:generateKeywordHistoricalMetrics" body: "*" }; } @@ -93,9 +93,10 @@ service KeywordPlanIdeaService { rpc GenerateAdGroupThemes(GenerateAdGroupThemesRequest) returns (GenerateAdGroupThemesResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}:generateAdGroupThemes" + post: "/v18/customers/{customer_id=*}:generateAdGroupThemes" body: "*" }; + option (google.api.method_signature) = "customer_id,keywords,ad_groups"; } // Returns metrics (such as impressions, clicks, total cost) of a keyword @@ -112,14 +113,15 @@ service KeywordPlanIdeaService { rpc GenerateKeywordForecastMetrics(GenerateKeywordForecastMetricsRequest) returns (GenerateKeywordForecastMetricsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}:generateKeywordForecastMetrics" + post: "/v18/customers/{customer_id=*}:generateKeywordForecastMetrics" body: "*" }; + option (google.api.method_signature) = "campaign"; } } // Request message for -// [KeywordPlanIdeaService.GenerateKeywordIdeas][google.ads.googleads.v15.services.KeywordPlanIdeaService.GenerateKeywordIdeas]. +// [KeywordPlanIdeaService.GenerateKeywordIdeas][google.ads.googleads.v18.services.KeywordPlanIdeaService.GenerateKeywordIdeas]. message GenerateKeywordIdeasRequest { // The ID of the customer with the recommendation. string customer_id = 1; @@ -155,19 +157,19 @@ message GenerateKeywordIdeasRequest { // Targeting network. // If not set, Google Search And Partners Network will be used. - google.ads.googleads.v15.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork + google.ads.googleads.v18.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork keyword_plan_network = 9; // The keyword annotations to include in response. - repeated google.ads.googleads.v15.enums.KeywordPlanKeywordAnnotationEnum + repeated google.ads.googleads.v18.enums.KeywordPlanKeywordAnnotationEnum .KeywordPlanKeywordAnnotation keyword_annotation = 17; // The aggregate fields to include in response. - google.ads.googleads.v15.common.KeywordPlanAggregateMetrics + google.ads.googleads.v18.common.KeywordPlanAggregateMetrics aggregate_metrics = 16; // The options for historical metrics data. - google.ads.googleads.v15.common.HistoricalMetricsOptions + google.ads.googleads.v18.common.HistoricalMetricsOptions historical_metrics_options = 18; // The type of seed to generate keyword ideas. @@ -216,13 +218,13 @@ message UrlSeed { } // Response message for -// [KeywordPlanIdeaService.GenerateKeywordIdeas][google.ads.googleads.v15.services.KeywordPlanIdeaService.GenerateKeywordIdeas]. +// [KeywordPlanIdeaService.GenerateKeywordIdeas][google.ads.googleads.v18.services.KeywordPlanIdeaService.GenerateKeywordIdeas]. message GenerateKeywordIdeaResponse { // Results of generating keyword ideas. repeated GenerateKeywordIdeaResult results = 1; // The aggregate metrics for all keyword ideas. - google.ads.googleads.v15.common.KeywordPlanAggregateMetricResults + google.ads.googleads.v18.common.KeywordPlanAggregateMetricResults aggregate_metric_results = 4; // Pagination token used to retrieve the next page of results. @@ -244,12 +246,12 @@ message GenerateKeywordIdeaResult { optional string text = 5; // The historical metrics for the keyword. - google.ads.googleads.v15.common.KeywordPlanHistoricalMetrics + google.ads.googleads.v18.common.KeywordPlanHistoricalMetrics keyword_idea_metrics = 3; // The annotations for the keyword. // The annotation data is only provided if requested. - google.ads.googleads.v15.common.KeywordAnnotations keyword_annotations = 6; + google.ads.googleads.v18.common.KeywordAnnotations keyword_annotations = 6; // The list of close variants from the requested keywords that // are combined into this GenerateKeywordIdeaResult. See @@ -259,7 +261,7 @@ message GenerateKeywordIdeaResult { } // Request message for -// [KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics][google.ads.googleads.v15.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics]. +// [KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics][google.ads.googleads.v18.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics]. message GenerateKeywordHistoricalMetricsRequest { // The ID of the customer with the recommendation. string customer_id = 1; @@ -287,26 +289,26 @@ message GenerateKeywordHistoricalMetricsRequest { // Targeting network. // If not set, Google Search And Partners Network will be used. - google.ads.googleads.v15.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork + google.ads.googleads.v18.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork keyword_plan_network = 7; // The aggregate fields to include in response. - google.ads.googleads.v15.common.KeywordPlanAggregateMetrics + google.ads.googleads.v18.common.KeywordPlanAggregateMetrics aggregate_metrics = 8; // The options for historical metrics data. - google.ads.googleads.v15.common.HistoricalMetricsOptions + google.ads.googleads.v18.common.HistoricalMetricsOptions historical_metrics_options = 3; } // Response message for -// [KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics][google.ads.googleads.v15.services.KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics]. +// [KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics][google.ads.googleads.v18.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.v15.common.KeywordPlanAggregateMetricResults + google.ads.googleads.v18.common.KeywordPlanAggregateMetricResults aggregate_metric_results = 2; } @@ -325,12 +327,12 @@ message GenerateKeywordHistoricalMetricsResult { repeated string close_variants = 3; // The historical metrics for text and its close variants - google.ads.googleads.v15.common.KeywordPlanHistoricalMetrics keyword_metrics = + google.ads.googleads.v18.common.KeywordPlanHistoricalMetrics keyword_metrics = 2; } // Request message for -// [KeywordPlanIdeaService.GenerateAdGroupThemes][google.ads.googleads.v15.services.KeywordPlanIdeaService.GenerateAdGroupThemes]. +// [KeywordPlanIdeaService.GenerateAdGroupThemes][google.ads.googleads.v18.services.KeywordPlanIdeaService.GenerateAdGroupThemes]. message GenerateAdGroupThemesRequest { // Required. The ID of the customer. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -344,7 +346,7 @@ message GenerateAdGroupThemesRequest { } // Response message for -// [KeywordPlanIdeaService.GenerateAdGroupThemes][google.ads.googleads.v15.services.KeywordPlanIdeaService.GenerateAdGroupThemes]. +// [KeywordPlanIdeaService.GenerateAdGroupThemes][google.ads.googleads.v18.services.KeywordPlanIdeaService.GenerateAdGroupThemes]. message GenerateAdGroupThemesResponse { // A list of suggested AdGroup/keyword pairings. repeated AdGroupKeywordSuggestion ad_group_keyword_suggestions = 1; @@ -362,7 +364,7 @@ message AdGroupKeywordSuggestion { string suggested_keyword_text = 2; // The suggested keyword match type. - google.ads.googleads.v15.enums.KeywordMatchTypeEnum.KeywordMatchType + google.ads.googleads.v18.enums.KeywordMatchTypeEnum.KeywordMatchType suggested_match_type = 3; // The suggested AdGroup for the keyword. @@ -406,7 +408,7 @@ message GenerateKeywordForecastMetricsRequest { // end date must be within 1 year from today. The reference timezone used is // the one of the Google Ads account belonging to the customer. If not set, a // default date range from next Sunday to the following Saturday will be used. - google.ads.googleads.v15.common.DateRange forecast_period = 3; + google.ads.googleads.v18.common.DateRange forecast_period = 3; // Required. The campaign used in the forecast. CampaignToForecast campaign = 4 [(google.api.field_behavior) = REQUIRED]; @@ -440,12 +442,12 @@ message CampaignToForecast { repeated CriterionBidModifier geo_modifiers = 2; // Required. The network used for targeting. - google.ads.googleads.v15.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork + google.ads.googleads.v18.enums.KeywordPlanNetworkEnum.KeywordPlanNetwork keyword_plan_network = 3 [(google.api.field_behavior) = REQUIRED]; // The list of negative keywords to be used in the campaign when doing the // forecast. - repeated google.ads.googleads.v15.common.KeywordInfo negative_keywords = 4; + repeated google.ads.googleads.v18.common.KeywordInfo negative_keywords = 4; // Required. The bidding strategy for the campaign. CampaignBiddingStrategy bidding_strategy = 5 @@ -475,13 +477,13 @@ message ForecastAdGroup { // The details of the keyword. You should specify both the keyword text and // match type. - repeated google.ads.googleads.v15.common.KeywordInfo negative_keywords = 3; + repeated google.ads.googleads.v18.common.KeywordInfo negative_keywords = 3; } // A biddable keyword part of an ad group. message BiddableKeyword { // Required. Keyword. Must have text and match type. - google.ads.googleads.v15.common.KeywordInfo keyword = 1 + google.ads.googleads.v18.common.KeywordInfo keyword = 1 [(google.api.field_behavior) = REQUIRED]; // A max cpc bid in micros that overrides the ad group level max cpc bid in diff --git a/google/ads/googleads/v15/services/keyword_plan_service.proto b/google/ads/googleads/v18/services/keyword_plan_service.proto similarity index 86% rename from google/ads/googleads/v15/services/keyword_plan_service.proto rename to google/ads/googleads/v18/services/keyword_plan_service.proto index c8cd1d675..cd033c1af 100644 --- a/google/ads/googleads/v15/services/keyword_plan_service.proto +++ b/google/ads/googleads/v18/services/keyword_plan_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/keyword_plan.proto"; +import "google/ads/googleads/v18/resources/keyword_plan.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -24,14 +24,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "KeywordPlanServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the keyword plan service. @@ -60,7 +60,7 @@ service KeywordPlanService { rpc MutateKeywordPlans(MutateKeywordPlansRequest) returns (MutateKeywordPlansResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/keywordPlans:mutate" + post: "/v18/customers/{customer_id=*}/keywordPlans:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -68,7 +68,7 @@ service KeywordPlanService { } // Request message for -// [KeywordPlanService.MutateKeywordPlans][google.ads.googleads.v15.services.KeywordPlanService.MutateKeywordPlans]. +// [KeywordPlanService.MutateKeywordPlans][google.ads.googleads.v18.services.KeywordPlanService.MutateKeywordPlans]. message MutateKeywordPlansRequest { // Required. The ID of the customer whose keyword plans are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -97,11 +97,11 @@ message KeywordPlanOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new keyword plan. - google.ads.googleads.v15.resources.KeywordPlan create = 1; + google.ads.googleads.v18.resources.KeywordPlan create = 1; // Update operation: The keyword plan is expected to have a valid resource // name. - google.ads.googleads.v15.resources.KeywordPlan update = 2; + google.ads.googleads.v18.resources.KeywordPlan update = 2; // Remove operation: A resource name for the removed keyword plan is // expected in this format: diff --git a/google/ads/googleads/v15/services/keyword_theme_constant_service.proto b/google/ads/googleads/v18/services/keyword_theme_constant_service.proto similarity index 79% rename from google/ads/googleads/v15/services/keyword_theme_constant_service.proto rename to google/ads/googleads/v18/services/keyword_theme_constant_service.proto index f83ad0dac..d9f070b04 100644 --- a/google/ads/googleads/v15/services/keyword_theme_constant_service.proto +++ b/google/ads/googleads/v18/services/keyword_theme_constant_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/keyword_theme_constant.proto"; +import "google/ads/googleads/v18/resources/keyword_theme_constant.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "KeywordThemeConstantServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Smart Campaign keyword theme constant service. @@ -48,14 +48,14 @@ service KeywordThemeConstantService { rpc SuggestKeywordThemeConstants(SuggestKeywordThemeConstantsRequest) returns (SuggestKeywordThemeConstantsResponse) { option (google.api.http) = { - post: "/v15/keywordThemeConstants:suggest" + post: "/v18/keywordThemeConstants:suggest" body: "*" }; } } // Request message for -// [KeywordThemeConstantService.SuggestKeywordThemeConstants][google.ads.googleads.v15.services.KeywordThemeConstantService.SuggestKeywordThemeConstants]. +// [KeywordThemeConstantService.SuggestKeywordThemeConstants][google.ads.googleads.v18.services.KeywordThemeConstantService.SuggestKeywordThemeConstants]. message SuggestKeywordThemeConstantsRequest { // The query text of a keyword theme that will be used to map to similar // keyword themes. For example, "plumber" or "roofer". @@ -71,9 +71,9 @@ message SuggestKeywordThemeConstantsRequest { } // Response message for -// [KeywordThemeConstantService.SuggestKeywordThemeConstants][google.ads.googleads.v15.services.KeywordThemeConstantService.SuggestKeywordThemeConstants]. +// [KeywordThemeConstantService.SuggestKeywordThemeConstants][google.ads.googleads.v18.services.KeywordThemeConstantService.SuggestKeywordThemeConstants]. message SuggestKeywordThemeConstantsResponse { // Smart Campaign keyword theme suggestions. - repeated google.ads.googleads.v15.resources.KeywordThemeConstant + repeated google.ads.googleads.v18.resources.KeywordThemeConstant keyword_theme_constants = 1; } diff --git a/google/ads/googleads/v15/services/label_service.proto b/google/ads/googleads/v18/services/label_service.proto similarity index 84% rename from google/ads/googleads/v15/services/label_service.proto rename to google/ads/googleads/v18/services/label_service.proto index fc3182833..ab37b810e 100644 --- a/google/ads/googleads/v15/services/label_service.proto +++ b/google/ads/googleads/v18/services/label_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/label.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/label.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "LabelServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Service to manage labels. service LabelService { @@ -67,7 +67,7 @@ service LabelService { // [StringLengthError]() rpc MutateLabels(MutateLabelsRequest) returns (MutateLabelsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/labels:mutate" + post: "/v18/customers/{customer_id=*}/labels:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -75,7 +75,7 @@ service LabelService { } // Request message for -// [LabelService.MutateLabels][google.ads.googleads.v15.services.LabelService.MutateLabels]. +// [LabelService.MutateLabels][google.ads.googleads.v18.services.LabelService.MutateLabels]. message MutateLabelsRequest { // Required. ID of the customer whose labels are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -96,7 +96,7 @@ message MutateLabelsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -108,10 +108,10 @@ message LabelOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new label. - google.ads.googleads.v15.resources.Label create = 1; + google.ads.googleads.v18.resources.Label create = 1; // Update operation: The label is expected to have a valid resource name. - google.ads.googleads.v15.resources.Label update = 2; + google.ads.googleads.v18.resources.Label update = 2; // Remove operation: A resource name for the label being removed, in // this format: @@ -144,5 +144,5 @@ message MutateLabelResult { // The mutated label with only mutable fields after mutate. The field will // only be returned when response_content_type is set to "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.Label label = 2; + google.ads.googleads.v18.resources.Label label = 2; } diff --git a/google/ads/googleads/v18/services/local_services_lead_service.proto b/google/ads/googleads/v18/services/local_services_lead_service.proto new file mode 100644 index 000000000..acda3db9c --- /dev/null +++ b/google/ads/googleads/v18/services/local_services_lead_service.proto @@ -0,0 +1,96 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.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.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; +option java_multiple_files = true; +option java_outer_classname = "LocalServicesLeadServiceProto"; +option java_package = "com.google.ads.googleads.v18.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; + +// This service allows management of LocalServicesLead resources. +service LocalServicesLeadService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // RPC to append Local Services Lead Conversation resources to Local Services + // Lead resources. + rpc AppendLeadConversation(AppendLeadConversationRequest) + returns (AppendLeadConversationResponse) { + option (google.api.http) = { + post: "/v18/customers/{customer_id=*}/localServices:appendLeadConversation" + body: "*" + }; + option (google.api.method_signature) = "customer_id,conversations"; + } +} + +// Request message for +// [LocalServicesLeadService.AppendLeadConversation][google.ads.googleads.v18.services.LocalServicesLeadService.AppendLeadConversation]. +message AppendLeadConversationRequest { + // Required. The Id of the customer which owns the leads onto which the + // conversations will be appended. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Conversations that are being appended. + repeated Conversation conversations = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for +// [LocalServicesLeadService.AppendLeadConversation][google.ads.googleads.v18.services.LocalServicesLeadService.AppendLeadConversation]. +message AppendLeadConversationResponse { + // Required. List of append conversation operation results. + repeated ConversationOrError responses = 1 + [(google.api.field_behavior) = REQUIRED]; +} + +// Details of the conversation that needs to be appended. +message Conversation { + // Required. The resource name of the local services lead that the + // conversation should be applied to. + string local_services_lead = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/LocalServicesLead" + } + ]; + + // Required. Text message that user wanted to append to lead. + string text = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Result of the append conversation operation. +message ConversationOrError { + // Append operation response + oneof append_lead_conversation_response { + // The resource name of the appended local services lead conversation. + string local_services_lead_conversation = 1; + + // Failure status when the request could not be processed. + google.rpc.Status partial_failure_error = 2; + } +} diff --git a/google/ads/googleads/v15/services/offline_user_data_job_service.proto b/google/ads/googleads/v18/services/offline_user_data_job_service.proto similarity index 85% rename from google/ads/googleads/v15/services/offline_user_data_job_service.proto rename to google/ads/googleads/v18/services/offline_user_data_job_service.proto index 5d2ab1c6c..475cda349 100644 --- a/google/ads/googleads/v15/services/offline_user_data_job_service.proto +++ b/google/ads/googleads/v18/services/offline_user_data_job_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/common/offline_user_data.proto"; -import "google/ads/googleads/v15/resources/offline_user_data_job.proto"; +import "google/ads/googleads/v18/common/offline_user_data.proto"; +import "google/ads/googleads/v18/resources/offline_user_data_job.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -26,14 +26,14 @@ import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "OfflineUserDataJobServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the OfflineUserDataJobService. @@ -58,7 +58,7 @@ service OfflineUserDataJobService { rpc CreateOfflineUserDataJob(CreateOfflineUserDataJobRequest) returns (CreateOfflineUserDataJobResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/offlineUserDataJobs:create" + post: "/v18/customers/{customer_id=*}/offlineUserDataJobs:create" body: "*" }; option (google.api.method_signature) = "customer_id,job"; @@ -80,7 +80,7 @@ service OfflineUserDataJobService { rpc AddOfflineUserDataJobOperations(AddOfflineUserDataJobOperationsRequest) returns (AddOfflineUserDataJobOperationsResponse) { option (google.api.http) = { - post: "/v15/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" + post: "/v18/{resource_name=customers/*/offlineUserDataJobs/*}:addOperations" body: "*" }; option (google.api.method_signature) = "resource_name,operations"; @@ -103,26 +103,26 @@ service OfflineUserDataJobService { rpc RunOfflineUserDataJob(RunOfflineUserDataJobRequest) returns (google.longrunning.Operation) { option (google.api.http) = { - post: "/v15/{resource_name=customers/*/offlineUserDataJobs/*}:run" + post: "/v18/{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.v15.resources.OfflineUserDataJobMetadata" + metadata_type: "google.ads.googleads.v18.resources.OfflineUserDataJobMetadata" }; } } // Request message for -// [OfflineUserDataJobService.CreateOfflineUserDataJob][google.ads.googleads.v15.services.OfflineUserDataJobService.CreateOfflineUserDataJob]. +// [OfflineUserDataJobService.CreateOfflineUserDataJob][google.ads.googleads.v18.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.v15.resources.OfflineUserDataJob job = 2 + google.ads.googleads.v18.resources.OfflineUserDataJob job = 2 [(google.api.field_behavior) = REQUIRED]; // If true, the request is validated but not executed. Only errors are @@ -135,7 +135,7 @@ message CreateOfflineUserDataJobRequest { } // Response message for -// [OfflineUserDataJobService.CreateOfflineUserDataJob][google.ads.googleads.v15.services.OfflineUserDataJobService.CreateOfflineUserDataJob]. +// [OfflineUserDataJobService.CreateOfflineUserDataJob][google.ads.googleads.v18.services.OfflineUserDataJobService.CreateOfflineUserDataJob]. message CreateOfflineUserDataJobResponse { // The resource name of the OfflineUserDataJob. string resource_name = 1 [(google.api.resource_reference) = { @@ -144,7 +144,7 @@ message CreateOfflineUserDataJobResponse { } // Request message for -// [OfflineUserDataJobService.RunOfflineUserDataJob][google.ads.googleads.v15.services.OfflineUserDataJobService.RunOfflineUserDataJob]. +// [OfflineUserDataJobService.RunOfflineUserDataJob][google.ads.googleads.v18.services.OfflineUserDataJobService.RunOfflineUserDataJob]. message RunOfflineUserDataJobRequest { // Required. The resource name of the OfflineUserDataJob to run. string resource_name = 1 [ @@ -160,7 +160,7 @@ message RunOfflineUserDataJobRequest { } // Request message for -// [OfflineUserDataJobService.AddOfflineUserDataJobOperations][google.ads.googleads.v15.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations]. +// [OfflineUserDataJobService.AddOfflineUserDataJobOperations][google.ads.googleads.v18.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations]. message AddOfflineUserDataJobOperationsRequest { // Required. The resource name of the OfflineUserDataJob. string resource_name = 1 [ @@ -193,11 +193,11 @@ message OfflineUserDataJobOperation { oneof operation { // Add the provided data to the transaction. Data cannot be retrieved after // being uploaded. - google.ads.googleads.v15.common.UserData create = 1; + google.ads.googleads.v18.common.UserData create = 1; // Remove the provided data from the transaction. Data cannot be retrieved // after being uploaded. - google.ads.googleads.v15.common.UserData remove = 2; + google.ads.googleads.v18.common.UserData remove = 2; // Remove all previously provided data. This is only supported for Customer // Match. @@ -206,7 +206,7 @@ message OfflineUserDataJobOperation { } // Response message for -// [OfflineUserDataJobService.AddOfflineUserDataJobOperations][google.ads.googleads.v15.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations]. +// [OfflineUserDataJobService.AddOfflineUserDataJobOperations][google.ads.googleads.v18.services.OfflineUserDataJobService.AddOfflineUserDataJobOperations]. message AddOfflineUserDataJobOperationsResponse { // Errors that pertain to operation failures in the partial failure mode. // Returned only when partial_failure = true and all errors occur inside the diff --git a/google/ads/googleads/v15/services/payments_account_service.proto b/google/ads/googleads/v18/services/payments_account_service.proto similarity index 78% rename from google/ads/googleads/v15/services/payments_account_service.proto rename to google/ads/googleads/v18/services/payments_account_service.proto index 7307b0f21..0a45fc88a 100644 --- a/google/ads/googleads/v15/services/payments_account_service.proto +++ b/google/ads/googleads/v18/services/payments_account_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/payments_account.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "PaymentsAccountServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the payments account service. @@ -53,7 +53,7 @@ service PaymentsAccountService { rpc ListPaymentsAccounts(ListPaymentsAccountsRequest) returns (ListPaymentsAccountsResponse) { option (google.api.http) = { - get: "/v15/customers/{customer_id=*}/paymentsAccounts" + get: "/v18/customers/{customer_id=*}/paymentsAccounts" }; option (google.api.method_signature) = "customer_id"; } @@ -67,9 +67,9 @@ message ListPaymentsAccountsRequest { } // Response message for -// [PaymentsAccountService.ListPaymentsAccounts][google.ads.googleads.v15.services.PaymentsAccountService.ListPaymentsAccounts]. +// [PaymentsAccountService.ListPaymentsAccounts][google.ads.googleads.v18.services.PaymentsAccountService.ListPaymentsAccounts]. message ListPaymentsAccountsResponse { // The list of accessible payments accounts. - repeated google.ads.googleads.v15.resources.PaymentsAccount + repeated google.ads.googleads.v18.resources.PaymentsAccount payments_accounts = 1; } diff --git a/google/ads/googleads/v18/services/product_link_invitation_service.proto b/google/ads/googleads/v18/services/product_link_invitation_service.proto new file mode 100644 index 000000000..a11efe10c --- /dev/null +++ b/google/ads/googleads/v18/services/product_link_invitation_service.proto @@ -0,0 +1,145 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.services; + +import "google/ads/googleads/v18/enums/product_link_invitation_status.proto"; +import "google/ads/googleads/v18/resources/product_link_invitation.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ProductLinkInvitationServiceProto"; +option java_package = "com.google.ads.googleads.v18.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; + +// This service allows management of product link invitations from Google Ads +// accounts to other accounts. +service ProductLinkInvitationService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Creates a product link invitation. + rpc CreateProductLinkInvitation(CreateProductLinkInvitationRequest) + returns (CreateProductLinkInvitationResponse) { + option (google.api.http) = { + post: "/v18/customers/{customer_id=*}/productLinkInvitations:create" + body: "*" + }; + option (google.api.method_signature) = + "customer_id,product_link_invitation"; + } + + // Update a product link invitation. + rpc UpdateProductLinkInvitation(UpdateProductLinkInvitationRequest) + returns (UpdateProductLinkInvitationResponse) { + option (google.api.http) = { + post: "/v18/customers/{customer_id=*}/productLinkInvitations:update" + body: "*" + }; + option (google.api.method_signature) = + "customer_id,product_link_invitation_status,resource_name"; + } + + // Remove a product link invitation. + rpc RemoveProductLinkInvitation(RemoveProductLinkInvitationRequest) + returns (RemoveProductLinkInvitationResponse) { + option (google.api.http) = { + post: "/v18/customers/{customer_id=*}/productLinkInvitations:remove" + body: "*" + }; + option (google.api.method_signature) = "customer_id,resource_name"; + } +} + +// Request message for +// [ProductLinkInvitationService.CreateProductLinkInvitation][google.ads.googleads.v18.services.ProductLinkInvitationService.CreateProductLinkInvitation]. +message CreateProductLinkInvitationRequest { + // Required. The ID of the customer being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The product link invitation to be created. + google.ads.googleads.v18.resources.ProductLinkInvitation + product_link_invitation = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for product link invitation create. +message CreateProductLinkInvitationResponse { + // Resource name of the product link invitation. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ProductLinkInvitation" + }]; +} + +// Request message for +// [ProductLinkInvitationService.UpdateProductLinkInvitation][google.ads.googleads.v18.services.ProductLinkInvitationService.UpdateProductLinkInvitation]. +message UpdateProductLinkInvitationRequest { + // Required. The ID of the customer being modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The product link invitation to be created. + google.ads.googleads.v18.enums.ProductLinkInvitationStatusEnum + .ProductLinkInvitationStatus product_link_invitation_status = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Resource name of the product link invitation. + string resource_name = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ProductLinkInvitation" + } + ]; +} + +// Response message for product link invitation update. +message UpdateProductLinkInvitationResponse { + // Result of the update. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ProductLinkInvitation" + }]; +} + +// Request message for +// [ProductLinkinvitationService.RemoveProductLinkInvitation][]. +message RemoveProductLinkInvitationRequest { + // Required. The ID of the product link invitation being removed. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource name of the product link invitation being removed. + // expected, in this format: + // + // ` ` + string resource_name = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "googleads.googleapis.com/ProductLinkInvitation" + } + ]; +} + +// Response message for product link invitation removeal. +message RemoveProductLinkInvitationResponse { + // Result for the remove request. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/ProductLinkInvitation" + }]; +} diff --git a/google/ads/googleads/v15/services/product_link_service.proto b/google/ads/googleads/v18/services/product_link_service.proto similarity index 83% rename from google/ads/googleads/v15/services/product_link_service.proto rename to google/ads/googleads/v18/services/product_link_service.proto index 42b1026ec..919b4754a 100644 --- a/google/ads/googleads/v15/services/product_link_service.proto +++ b/google/ads/googleads/v18/services/product_link_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,22 +14,22 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/product_link.proto"; +import "google/ads/googleads/v18/resources/product_link.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "ProductLinkServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // This service allows management of links between a Google // Ads customer and another product. @@ -52,7 +52,7 @@ service ProductLinkService { rpc CreateProductLink(CreateProductLinkRequest) returns (CreateProductLinkResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/productLinks:create" + post: "/v18/customers/{customer_id=*}/productLinks:create" body: "*" }; option (google.api.method_signature) = "customer_id,product_link"; @@ -72,7 +72,7 @@ service ProductLinkService { rpc RemoveProductLink(RemoveProductLinkRequest) returns (RemoveProductLinkResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/productLinks:remove" + post: "/v18/customers/{customer_id=*}/productLinks:remove" body: "*" }; option (google.api.method_signature) = "customer_id,resource_name"; @@ -80,18 +80,18 @@ service ProductLinkService { } // Request message for -// [ProductLinkService.CreateProductLink][google.ads.googleads.v15.services.ProductLinkService.CreateProductLink]. +// [ProductLinkService.CreateProductLink][google.ads.googleads.v18.services.ProductLinkService.CreateProductLink]. message CreateProductLinkRequest { // Required. The ID of the customer for which the product link is created. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The product link to be created. - google.ads.googleads.v15.resources.ProductLink product_link = 2 + google.ads.googleads.v18.resources.ProductLink product_link = 2 [(google.api.field_behavior) = REQUIRED]; } // Response message for -// [ProductLinkService.CreateProductLink][google.ads.googleads.v15.services.ProductLinkService.CreateProductLink]. +// [ProductLinkService.CreateProductLink][google.ads.googleads.v18.services.ProductLinkService.CreateProductLink]. message CreateProductLinkResponse { // Returned for successful operations. Resource name of the product link. string resource_name = 1 [(google.api.resource_reference) = { @@ -100,7 +100,7 @@ message CreateProductLinkResponse { } // Request message for -// [ProductLinkService.RemoveProductLink][google.ads.googleads.v15.services.ProductLinkService.RemoveProductLink]. +// [ProductLinkService.RemoveProductLink][google.ads.googleads.v18.services.ProductLinkService.RemoveProductLink]. message RemoveProductLinkRequest { // Required. The ID of the customer being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; diff --git a/google/ads/googleads/v15/services/reach_plan_service.proto b/google/ads/googleads/v18/services/reach_plan_service.proto similarity index 90% rename from google/ads/googleads/v15/services/reach_plan_service.proto rename to google/ads/googleads/v18/services/reach_plan_service.proto index 7510c7a9c..c41052048 100644 --- a/google/ads/googleads/v15/services/reach_plan_service.proto +++ b/google/ads/googleads/v18/services/reach_plan_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,27 +14,27 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/common/criteria.proto"; -import "google/ads/googleads/v15/common/dates.proto"; -import "google/ads/googleads/v15/enums/frequency_cap_time_unit.proto"; -import "google/ads/googleads/v15/enums/reach_plan_age_range.proto"; -import "google/ads/googleads/v15/enums/reach_plan_network.proto"; -import "google/ads/googleads/v15/enums/reach_plan_surface.proto"; -import "google/ads/googleads/v15/enums/target_frequency_time_unit.proto"; +import "google/ads/googleads/v18/common/criteria.proto"; +import "google/ads/googleads/v18/common/dates.proto"; +import "google/ads/googleads/v18/enums/frequency_cap_time_unit.proto"; +import "google/ads/googleads/v18/enums/reach_plan_age_range.proto"; +import "google/ads/googleads/v18/enums/reach_plan_network.proto"; +import "google/ads/googleads/v18/enums/reach_plan_surface.proto"; +import "google/ads/googleads/v18/enums/target_frequency_time_unit.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "ReachPlanServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the reach plan service. @@ -59,7 +59,7 @@ service ReachPlanService { rpc ListPlannableLocations(ListPlannableLocationsRequest) returns (ListPlannableLocationsResponse) { option (google.api.http) = { - post: "/v15:listPlannableLocations" + post: "/v18:listPlannableLocations" body: "*" }; } @@ -77,7 +77,7 @@ service ReachPlanService { rpc ListPlannableProducts(ListPlannableProductsRequest) returns (ListPlannableProductsResponse) { option (google.api.http) = { - post: "/v15:listPlannableProducts" + post: "/v18:listPlannableProducts" body: "*" }; option (google.api.method_signature) = "plannable_location_id"; @@ -98,7 +98,7 @@ service ReachPlanService { rpc GenerateReachForecast(GenerateReachForecastRequest) returns (GenerateReachForecastResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}:generateReachForecast" + post: "/v18/customers/{customer_id=*}:generateReachForecast" body: "*" }; option (google.api.method_signature) = @@ -107,7 +107,7 @@ service ReachPlanService { } // Request message for -// [ReachPlanService.ListPlannableLocations][google.ads.googleads.v15.services.ReachPlanService.ListPlannableLocations]. +// [ReachPlanService.ListPlannableLocations][google.ads.googleads.v18.services.ReachPlanService.ListPlannableLocations]. message ListPlannableLocationsRequest {} // The list of plannable locations. @@ -130,7 +130,7 @@ message PlannableLocation { // The parent country (not present if location is a country). // If present, will always be a GeoTargetConstant ID. Additional information // such as country name is provided by - // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v15.services.ReachPlanService.ListPlannableLocations] + // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v18.services.ReachPlanService.ListPlannableLocations] // or GoogleAdsService.Search/SearchStream. optional int64 parent_country_id = 6; @@ -146,7 +146,7 @@ message PlannableLocation { message ListPlannableProductsRequest { // Required. The ID of the selected location for planning. To list the // available plannable location IDs use - // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v15.services.ReachPlanService.ListPlannableLocations]. + // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v18.services.ReachPlanService.ListPlannableLocations]. string plannable_location_id = 2 [(google.api.field_behavior) = REQUIRED]; } @@ -161,7 +161,7 @@ message ProductMetadata { // The code associated with the ad product (for example: BUMPER, // TRUEVIEW_IN_STREAM). // To list the available plannable product codes use - // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v15.services.ReachPlanService.ListPlannableProducts]. + // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v18.services.ReachPlanService.ListPlannableProducts]. optional string plannable_product_code = 4; // The name associated with the ad product. @@ -177,20 +177,20 @@ message PlannableTargeting { // reported. Actual targeting is computed by mapping this age range onto // standard Google common.AgeRangeInfo values. repeated - google.ads.googleads.v15.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange + google.ads.googleads.v18.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange age_ranges = 1; // Targetable genders for the ad product. - repeated google.ads.googleads.v15.common.GenderInfo genders = 2; + repeated google.ads.googleads.v18.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.v15.common.DeviceInfo devices = 3; + repeated google.ads.googleads.v18.common.DeviceInfo devices = 3; // Targetable networks for the ad product. - repeated google.ads.googleads.v15.enums.ReachPlanNetworkEnum.ReachPlanNetwork + repeated google.ads.googleads.v18.enums.ReachPlanNetworkEnum.ReachPlanNetwork networks = 4; // Targetable YouTube Select Lineups for the ad product. @@ -201,7 +201,7 @@ message PlannableTargeting { } // Request message for -// [ReachPlanService.GenerateReachForecast][google.ads.googleads.v15.services.ReachPlanService.GenerateReachForecast]. +// [ReachPlanService.GenerateReachForecast][google.ads.googleads.v18.services.ReachPlanService.GenerateReachForecast]. message GenerateReachForecastRequest { // Required. The ID of the customer. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -288,7 +288,7 @@ message FrequencyCap { int32 impressions = 3 [(google.api.field_behavior) = REQUIRED]; // Required. The type of time unit. - google.ads.googleads.v15.enums.FrequencyCapTimeUnitEnum.FrequencyCapTimeUnit + google.ads.googleads.v18.enums.FrequencyCapTimeUnitEnum.FrequencyCapTimeUnit time_unit = 2 [(google.api.field_behavior) = REQUIRED]; } @@ -296,7 +296,7 @@ message FrequencyCap { message Targeting { // The ID of the selected location. Plannable location IDs can be // obtained from - // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v15.services.ReachPlanService.ListPlannableLocations]. + // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v18.services.ReachPlanService.ListPlannableLocations]. // // Requests must set either this field or `plannable_location_ids`. // @@ -310,31 +310,31 @@ message Targeting { // `parent_country_id`. Planning for more than `parent_county` is not // supported. Plannable location IDs and their `parent_country_id` can be // obtained from - // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v15.services.ReachPlanService.ListPlannableLocations]. + // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v18.services.ReachPlanService.ListPlannableLocations]. // // Requests must set either this field or `plannable_location_id`. repeated string plannable_location_ids = 8; // Targeted age range. // An unset value is equivalent to targeting all ages. - google.ads.googleads.v15.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange + google.ads.googleads.v18.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange age_range = 2; // Targeted genders. // An unset value is equivalent to targeting MALE and FEMALE. - repeated google.ads.googleads.v15.common.GenderInfo genders = 3; + repeated google.ads.googleads.v18.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.v15.services.ReachPlanService.ListPlannableProducts]. - repeated google.ads.googleads.v15.common.DeviceInfo devices = 4; + // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v18.services.ReachPlanService.ListPlannableProducts]. + repeated google.ads.googleads.v18.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.v15.services.ReachPlanService.ListPlannableProducts]. - google.ads.googleads.v15.enums.ReachPlanNetworkEnum.ReachPlanNetwork network = + // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v18.services.ReachPlanService.ListPlannableProducts]. + google.ads.googleads.v18.enums.ReachPlanNetworkEnum.ReachPlanNetwork network = 5; // Targeted audiences. @@ -355,7 +355,7 @@ message CampaignDuration { // date range must be <= 92 days long. // // This field cannot be combined with the duration_in_days field. - google.ads.googleads.v15.common.DateRange date_range = 3; + google.ads.googleads.v18.common.DateRange date_range = 3; } // A product being planned for reach. @@ -363,7 +363,7 @@ message PlannedProduct { // Required. Selected product for planning. // The code associated with the ad product (for example: Trueview, Bumper). // To list the available plannable product codes use - // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v15.services.ReachPlanService.ListPlannableProducts]. + // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v18.services.ReachPlanService.ListPlannableProducts]. optional string plannable_product_code = 3 [(google.api.field_behavior) = REQUIRED]; @@ -374,7 +374,7 @@ message PlannedProduct { // Targeting settings for the selected product. // To list the available targeting for each product use - // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v15.services.ReachPlanService.ListPlannableProducts]. + // [ReachPlanService.ListPlannableProducts][google.ads.googleads.v18.services.ReachPlanService.ListPlannableProducts]. AdvancedProductTargeting advanced_product_targeting = 5; } @@ -562,6 +562,7 @@ message PlannedProductForecast { // - Location // - PlannableAgeRange // - Gender +// - AudienceTargeting (only for youtube_audience_size) message OnTargetAudienceMetrics { // Reference audience size matching the considered targeting for YouTube. optional int64 youtube_audience_size = 3; @@ -610,7 +611,7 @@ message ForecastMetricOptions { // Audience targeting for reach forecast. message AudienceTargeting { // List of audiences based on user interests to be targeted. - repeated google.ads.googleads.v15.common.UserInterestInfo user_interest = 1; + repeated google.ads.googleads.v18.common.UserInterestInfo user_interest = 1; } // Advanced targeting settings for products. @@ -660,7 +661,7 @@ message SurfaceTargetingCombinations { // of ad inventories such as In-Feed, In-Stream, and Shorts. message SurfaceTargeting { // List of surfaces available to target. - repeated google.ads.googleads.v15.enums.ReachPlanSurfaceEnum.ReachPlanSurface + repeated google.ads.googleads.v18.enums.ReachPlanSurfaceEnum.ReachPlanSurface surfaces = 1; } @@ -668,7 +669,7 @@ message SurfaceTargeting { message TargetFrequencySettings { // Required. The time unit used to describe the time frame for // target_frequency. - google.ads.googleads.v15.enums.TargetFrequencyTimeUnitEnum + google.ads.googleads.v18.enums.TargetFrequencyTimeUnitEnum .TargetFrequencyTimeUnit time_unit = 1 [(google.api.field_behavior) = REQUIRED]; diff --git a/google/ads/googleads/v15/services/recommendation_service.proto b/google/ads/googleads/v18/services/recommendation_service.proto similarity index 52% rename from google/ads/googleads/v15/services/recommendation_service.proto rename to google/ads/googleads/v18/services/recommendation_service.proto index 06f3b4995..ece23c9fe 100644 --- a/google/ads/googleads/v15/services/recommendation_service.proto +++ b/google/ads/googleads/v18/services/recommendation_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,26 +14,34 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; - -import "google/ads/googleads/v15/common/extensions.proto"; -import "google/ads/googleads/v15/enums/keyword_match_type.proto"; -import "google/ads/googleads/v15/resources/ad.proto"; -import "google/ads/googleads/v15/resources/asset.proto"; +package google.ads.googleads.v18.services; + +import "google/ads/googleads/v18/common/criteria.proto"; +import "google/ads/googleads/v18/common/extensions.proto"; +import "google/ads/googleads/v18/enums/ad_group_type.proto"; +import "google/ads/googleads/v18/enums/advertising_channel_type.proto"; +import "google/ads/googleads/v18/enums/bidding_strategy_type.proto"; +import "google/ads/googleads/v18/enums/conversion_tracking_status_enum.proto"; +import "google/ads/googleads/v18/enums/keyword_match_type.proto"; +import "google/ads/googleads/v18/enums/recommendation_type.proto"; +import "google/ads/googleads/v18/enums/target_impression_share_location.proto"; +import "google/ads/googleads/v18/resources/ad.proto"; +import "google/ads/googleads/v18/resources/asset.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "RecommendationServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Recommendation service. @@ -59,7 +67,7 @@ service RecommendationService { rpc ApplyRecommendation(ApplyRecommendationRequest) returns (ApplyRecommendationResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/recommendations:apply" + post: "/v18/customers/{customer_id=*}/recommendations:apply" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -78,15 +86,35 @@ service RecommendationService { rpc DismissRecommendation(DismissRecommendationRequest) returns (DismissRecommendationResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/recommendations:dismiss" + post: "/v18/customers/{customer_id=*}/recommendations:dismiss" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; } + + // Generates Recommendations based off the requested recommendation_types. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RecommendationError]() + // [RequestError]() + rpc GenerateRecommendations(GenerateRecommendationsRequest) + returns (GenerateRecommendationsResponse) { + option (google.api.http) = { + post: "/v18/customers/{customer_id=*}/recommendations:generate" + body: "*" + }; + option (google.api.method_signature) = + "customer_id,recommendation_types,advertising_channel_type"; + } } // Request message for -// [RecommendationService.ApplyRecommendation][google.ads.googleads.v15.services.RecommendationService.ApplyRecommendation]. +// [RecommendationService.ApplyRecommendation][google.ads.googleads.v18.services.RecommendationService.ApplyRecommendation]. message ApplyRecommendationRequest { // Required. The ID of the customer with the recommendation. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -130,7 +158,7 @@ message ApplyRecommendationOperation { message TextAdParameters { // New ad to add to recommended ad group. All necessary fields need to be // set in this message. This is a required field. - google.ads.googleads.v15.resources.Ad ad = 1; + google.ads.googleads.v18.resources.Ad ad = 1; } // Parameters to use when applying keyword recommendation. @@ -139,7 +167,7 @@ message ApplyRecommendationOperation { optional string ad_group = 4; // The match type of the keyword. This is a required field. - google.ads.googleads.v15.enums.KeywordMatchTypeEnum.KeywordMatchType + google.ads.googleads.v18.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 2; // Optional, CPC bid to set for the keyword. If not set, keyword will use @@ -171,20 +199,20 @@ message ApplyRecommendationOperation { // Parameters to use when applying callout extension recommendation. message CalloutExtensionParameters { // Callout extensions to be added. This is a required field. - repeated google.ads.googleads.v15.common.CalloutFeedItem + repeated google.ads.googleads.v18.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.v15.common.CallFeedItem call_extensions = 1; + repeated google.ads.googleads.v18.common.CallFeedItem call_extensions = 1; } // Parameters to use when applying sitelink recommendation. message SitelinkExtensionParameters { // Sitelinks to be added. This is a required field. - repeated google.ads.googleads.v15.common.SitelinkFeedItem + repeated google.ads.googleads.v18.common.SitelinkFeedItem sitelink_extensions = 1; } @@ -240,7 +268,7 @@ message ApplyRecommendationOperation { // The assets to create and attach to a scope. This may be combined with // existing_assets in the same call. - repeated google.ads.googleads.v15.resources.Asset new_assets = 1; + repeated google.ads.googleads.v18.resources.Asset new_assets = 1; // The resource names of existing assets to attach to a scope. This may be // combined with new_assets in the same call. @@ -265,20 +293,20 @@ message ApplyRecommendationOperation { // recommendation. message ResponsiveSearchAdAssetParameters { // Updated ad. The current ad's content will be replaced. - google.ads.googleads.v15.resources.Ad updated_ad = 1; + google.ads.googleads.v18.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.v15.resources.Ad updated_ad = 1; + google.ads.googleads.v18.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.v15.resources.Ad ad = 1 + google.ads.googleads.v18.resources.Ad ad = 1 [(google.api.field_behavior) = REQUIRED]; } @@ -306,6 +334,19 @@ message ApplyRecommendationOperation { optional int64 campaign_budget_amount_micros = 2; } + // Parameters to use when applying a lead form asset recommendation. + message LeadFormAssetParameters { + // Required. Lead form assets to be added. This is a required field. + AdAssetApplyParameters ad_asset_apply_parameters = 1 + [(google.api.field_behavior) = REQUIRED]; + + // If true, the "Submit Lead Form" goal will be set on the target campaign. + // As a result, ads will be shown as lead form creative ads. If false, + // the "Submit Lead Form" goal will not be set on the campaign and ads will + // contain lead form assets. + optional bool set_submit_lead_form_asset_campaign_goal = 2; + } + // The resource name of the recommendation to apply. string resource_name = 1 [(google.api.resource_reference) = { type: "googleads.googleapis.com/Recommendation" @@ -393,11 +434,14 @@ message ApplyRecommendationOperation { // Parameters to use when applying set target ROAS // recommendation. ForecastingSetTargetRoasParameters set_target_roas = 24; + + // Parameters to use when applying lead form asset recommendation. + LeadFormAssetParameters lead_form_asset = 25; } } // Response message for -// [RecommendationService.ApplyRecommendation][google.ads.googleads.v15.services.RecommendationService.ApplyRecommendation]. +// [RecommendationService.ApplyRecommendation][google.ads.googleads.v18.services.RecommendationService.ApplyRecommendation]. message ApplyRecommendationResponse { // Results of operations to apply recommendations. repeated ApplyRecommendationResult results = 1; @@ -418,7 +462,7 @@ message ApplyRecommendationResult { } // Request message for -// [RecommendationService.DismissRecommendation][google.ads.googleads.v15.services.RecommendationService.DismissRecommendation]. +// [RecommendationService.DismissRecommendation][google.ads.googleads.v18.services.RecommendationService.DismissRecommendation]. message DismissRecommendationRequest { // Operation to dismiss a single recommendation identified by resource_name. message DismissRecommendationOperation { @@ -443,7 +487,7 @@ message DismissRecommendationRequest { } // Response message for -// [RecommendationService.DismissRecommendation][google.ads.googleads.v15.services.RecommendationService.DismissRecommendation]. +// [RecommendationService.DismissRecommendation][google.ads.googleads.v18.services.RecommendationService.DismissRecommendation]. message DismissRecommendationResponse { // The result of dismissing a recommendation. message DismissRecommendationResult { @@ -460,3 +504,253 @@ message DismissRecommendationResponse { // errors) we return the RPC level error. google.rpc.Status partial_failure_error = 2; } + +// Request message for +// [RecommendationService.GenerateRecommendations][google.ads.googleads.v18.services.RecommendationService.GenerateRecommendations]. +message GenerateRecommendationsRequest { + // Current bidding information of the campaign. Provides a wrapper for + // bidding-related signals that inform recommendations. + message BiddingInfo { + // Current bidding strategy. + // This field is necessary for the following recommendation_types: + // CAMPAIGN_BUDGET, MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, + // MAXIMIZE_CONVERSION_VALUE_OPT_IN, SET_TARGET_CPA, SET_TARGET_ROAS, + // TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN + optional google.ads.googleads.v18.enums.BiddingStrategyTypeEnum + .BiddingStrategyType bidding_strategy_type = 1; + + // Optional details related to the bidding_strategy_type. + oneof bidding_strategy_target_info { + // Current target_cpa in micros. + // This can be populated for campaigns with a bidding strategy type of + // TARGET_CPA or MAXIMIZE_CONVERSIONS. + int64 target_cpa_micros = 2; + + // Current target_roas. + // This can be populated for campaigns with a bidding strategy type of + // TARGET_ROAS or MAXIMIZE_CONVERSION_VALUE. + double target_roas = 3; + + // Optional. Current Target Impression Share information of the campaign. + // This field is necessary for the following recommendation_types: + // CAMPAIGN_BUDGET + TargetImpressionShareInfo target_impression_share_info = 4 + [(google.api.field_behavior) = OPTIONAL]; + } + } + + // Current AdGroup Information of the campaign. + message AdGroupInfo { + // Optional. AdGroup Type of the AdGroup. + // This field is necessary for the following recommendation_types if + // ad_group_info is set: + // KEYWORD + optional google.ads.googleads.v18.enums.AdGroupTypeEnum.AdGroupType + ad_group_type = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Current keywords. + // This field is optional for the following recommendation_types if + // ad_group_info is set: + // KEYWORD + // This field is required for the following recommendation_types: + // CAMPAIGN_BUDGET if AdvertisingChannelType is SEARCH + repeated google.ads.googleads.v18.common.KeywordInfo keywords = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + + // A keyword seed and a specific url to generate keywords from. + message SeedInfo { + // A specific url to generate ideas from, for example: www.example.com/cars. + optional string url_seed = 2; + + // Optional. Keywords or phrases to generate ideas from, for example: cars + // or "car dealership near me". + repeated string keyword_seeds = 3 [(google.api.field_behavior) = OPTIONAL]; + } + + // Current budget information of the campaign. + message BudgetInfo { + // Required. Current budget amount. + // This field is necessary for the following recommendation_types if + // budget_info is set: + // CAMPAIGN_BUDGET + optional int64 current_budget = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Current AssetGroup information of the campaign. + message AssetGroupInfo { + // Required. Current url of the asset group. + // This field is necessary for the following recommendation_types if + // asset_group_info is set: + // CAMPAIGN_BUDGET + optional string final_url = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Current headlines of the asset group. + // This field is optional for the following recommendation_types if + // asset_group_info is set: + // CAMPAIGN_BUDGET + repeated string headline = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Current descriptions of the asset group. + // This field is optional for the following recommendation_types if + // asset_group_info is set: + // CAMPAIGN_BUDGET + repeated string description = 3 [(google.api.field_behavior) = OPTIONAL]; + } + + // Current Target Impression Share information of the campaign. + message TargetImpressionShareInfo { + // Required. The targeted location on the search results page. + // This is required for campaigns where the AdvertisingChannelType is SEARCH + // and the bidding strategy type is TARGET_IMPRESSION_SHARE. + optional google.ads.googleads.v18.enums.TargetImpressionShareLocationEnum + .TargetImpressionShareLocation location = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The chosen fraction of targeted impression share in micros. For + // example, 1% equals 10,000. It must be a value between 1 and 1,000,000. + // This is required for campaigns with an AdvertisingChannelType of SEARCH + // and a bidding strategy type of TARGET_IMPRESSION_SHARE. + optional int64 target_impression_share_micros = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Ceiling of max CPC bids in micros set by automated bidders. + // This is optional for campaigns with an AdvertisingChannelType of SEARCH + // and a bidding strategy type of TARGET_IMPRESSION_SHARE. + optional int64 max_cpc_bid_ceiling = 3 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. The ID of the customer generating recommendations. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. List of eligible recommendation_types to generate. If the + // uploaded criteria isn't sufficient to make a recommendation, or the + // campaign is already in the recommended state, no recommendation will be + // returned for that type. Generally, a recommendation is returned if all + // required fields for that recommendation_type are uploaded, but there are + // cases where this is still not sufficient. + // + // The following recommendation_types are supported for recommendation + // generation: + // CAMPAIGN_BUDGET, KEYWORD, MAXIMIZE_CLICKS_OPT_IN, + // MAXIMIZE_CONVERSIONS_OPT_IN, MAXIMIZE_CONVERSION_VALUE_OPT_IN, + // SET_TARGET_CPA, SET_TARGET_ROAS, SITELINK_ASSET, TARGET_CPA_OPT_IN, + // TARGET_ROAS_OPT_IN + repeated + google.ads.googleads.v18.enums.RecommendationTypeEnum.RecommendationType + recommendation_types = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Advertising channel type of the campaign. + // The following advertising_channel_types are supported for recommendation + // generation: + // PERFORMANCE_MAX and SEARCH + google.ads.googleads.v18.enums.AdvertisingChannelTypeEnum + .AdvertisingChannelType advertising_channel_type = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Number of sitelinks on the campaign. + // This field is necessary for the following recommendation_types: + // SITELINK_ASSET + optional int32 campaign_sitelink_count = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Current conversion tracking status. + // This field is necessary for the following recommendation_types: + // MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, + // MAXIMIZE_CONVERSION_VALUE_OPT_IN, SET_TARGET_CPA, SET_TARGET_ROAS, + // TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN + optional google.ads.googleads.v18.enums.ConversionTrackingStatusEnum + .ConversionTrackingStatus conversion_tracking_status = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Current bidding information of the campaign. + // This field is necessary for the following recommendation_types: + // CAMPAIGN_BUDGET, MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, + // MAXIMIZE_CONVERSION_VALUE_OPT_IN, SET_TARGET_CPA, SET_TARGET_ROAS, + // TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN + optional BiddingInfo bidding_info = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Current AdGroup Information. + // Supports information from a single AdGroup. + // This field is optional for the following recommendation_types: + // KEYWORD + // This field is required for the following recommendation_types: + // CAMPAIGN_BUDGET if AdvertisingChannelType is SEARCH + repeated AdGroupInfo ad_group_info = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Seed information for Keywords. + // This field is necessary for the following recommendation_types: + // KEYWORD + optional SeedInfo seed_info = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Current budget information. + // This field is optional for the following recommendation_types: + // CAMPAIGN_BUDGET + optional BudgetInfo budget_info = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Current campaign image asset count. + // This field is optional for the following recommendation_types: + // CAMPAIGN_BUDGET + optional int32 campaign_image_asset_count = 10 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Current campaign call asset count. + // This field is optional for the following recommendation_types: + // CAMPAIGN_BUDGET + optional int32 campaign_call_asset_count = 11 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Current campaign country codes. + // This field is required for the following recommendation_types: + // CAMPAIGN_BUDGET if AdvertisingChannelType is SEARCH + repeated string country_codes = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Current campaign language codes. + // This field is required for the following recommendation_types: + // CAMPAIGN_BUDGET if AdvertisingChannelType is SEARCH + repeated string language_codes = 14 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Current campaign positive location ids. + // One of this field OR negative_location_ids is required for the following + // recommendation_types: CAMPAIGN_BUDGET if AdvertisingChannelType is SEARCH + repeated int64 positive_locations_ids = 15 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Current campaign negative location ids. + // One of this field OR positive_location_ids is required for the following + // recommendation_types: CAMPAIGN_BUDGET if AdvertisingChannelType is SEARCH + repeated int64 negative_locations_ids = 16 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Current AssetGroup Information. + // This field is required for the following recommendation_types: + // CAMPAIGN_BUDGET + repeated AssetGroupInfo asset_group_info = 17 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If true, the campaign is opted into serving ads on the Google + // Partner Network. This field is optional for the following + // recommendation_types: CAMPAIGN_BUDGET + optional bool target_partner_search_network = 18 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If true, the campaign is opted into serving ads on specified + // placements in the Google Display Network. This field is optional for the + // following recommendation_types: CAMPAIGN_BUDGET + optional bool target_content_network = 19 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for +// [RecommendationService.GenerateRecommendations][google.ads.googleads.v18.services.RecommendationService.GenerateRecommendations]. +message GenerateRecommendationsResponse { + // List of generated recommendations from the passed in set of requested + // recommendation_types. If there isn't sufficient data to generate a + // recommendation for the requested recommendation_types, the result set won't + // contain a recommendation for that type. + repeated google.ads.googleads.v18.resources.Recommendation recommendations = + 1; +} diff --git a/google/ads/googleads/v15/services/recommendation_subscription_service.proto b/google/ads/googleads/v18/services/recommendation_subscription_service.proto similarity index 86% rename from google/ads/googleads/v15/services/recommendation_subscription_service.proto rename to google/ads/googleads/v18/services/recommendation_subscription_service.proto index 34c6a6beb..591a76aa7 100644 --- a/google/ads/googleads/v15/services/recommendation_subscription_service.proto +++ b/google/ads/googleads/v18/services/recommendation_subscription_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/recommendation_subscription.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/recommendation_subscription.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "RecommendationSubscriptionServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Recommendation service. @@ -58,7 +58,7 @@ service RecommendationSubscriptionService { rpc MutateRecommendationSubscription(MutateRecommendationSubscriptionRequest) returns (MutateRecommendationSubscriptionResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/recommendationSubscriptions:mutateRecommendationSubscription" + post: "/v18/customers/{customer_id=*}/recommendationSubscriptions:mutateRecommendationSubscription" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -89,7 +89,7 @@ message MutateRecommendationSubscriptionRequest { // 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.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -104,11 +104,11 @@ message RecommendationSubscriptionOperation { // Required. Create or update operation. oneof operation { // Create operation: No resource name is expected for the new subscription. - google.ads.googleads.v15.resources.RecommendationSubscription create = 1; + google.ads.googleads.v18.resources.RecommendationSubscription create = 1; // Update operation: The subscription is expected to have a valid // resource name. - google.ads.googleads.v15.resources.RecommendationSubscription update = 2; + google.ads.googleads.v18.resources.RecommendationSubscription update = 2; } } @@ -136,6 +136,6 @@ message MutateRecommendationSubscriptionResult { // The mutated recommendation subscription with only mutable fields after // mutate. The field will only be returned when response_content_type is set // to "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.RecommendationSubscription + google.ads.googleads.v18.resources.RecommendationSubscription recommendation_subscription = 2; } diff --git a/google/ads/googleads/v15/services/remarketing_action_service.proto b/google/ads/googleads/v18/services/remarketing_action_service.proto similarity index 85% rename from google/ads/googleads/v15/services/remarketing_action_service.proto rename to google/ads/googleads/v18/services/remarketing_action_service.proto index 99b2968a6..f306d54cc 100644 --- a/google/ads/googleads/v15/services/remarketing_action_service.proto +++ b/google/ads/googleads/v18/services/remarketing_action_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/remarketing_action.proto"; +import "google/ads/googleads/v18/resources/remarketing_action.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -24,14 +24,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "RemarketingActionServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Remarketing Action service. @@ -53,7 +53,7 @@ service RemarketingActionService { rpc MutateRemarketingActions(MutateRemarketingActionsRequest) returns (MutateRemarketingActionsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/remarketingActions:mutate" + post: "/v18/customers/{customer_id=*}/remarketingActions:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -61,7 +61,7 @@ service RemarketingActionService { } // Request message for -// [RemarketingActionService.MutateRemarketingActions][google.ads.googleads.v15.services.RemarketingActionService.MutateRemarketingActions]. +// [RemarketingActionService.MutateRemarketingActions][google.ads.googleads.v18.services.RemarketingActionService.MutateRemarketingActions]. message MutateRemarketingActionsRequest { // Required. The ID of the customer whose remarketing actions are being // modified. @@ -92,11 +92,11 @@ message RemarketingActionOperation { oneof operation { // Create operation: No resource name is expected for the new remarketing // action. - google.ads.googleads.v15.resources.RemarketingAction create = 1; + google.ads.googleads.v18.resources.RemarketingAction create = 1; // Update operation: The remarketing action is expected to have a valid // resource name. - google.ads.googleads.v15.resources.RemarketingAction update = 2; + google.ads.googleads.v18.resources.RemarketingAction update = 2; } } diff --git a/google/ads/googleads/v18/services/shareable_preview_service.proto b/google/ads/googleads/v18/services/shareable_preview_service.proto new file mode 100644 index 000000000..71328251d --- /dev/null +++ b/google/ads/googleads/v18/services/shareable_preview_service.proto @@ -0,0 +1,102 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.services; + +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.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; +option java_multiple_files = true; +option java_outer_classname = "ShareablePreviewServiceProto"; +option java_package = "com.google.ads.googleads.v18.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; + +// Service to generate Shareable Previews. +service ShareablePreviewService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Returns the requested Shareable Preview. + rpc GenerateShareablePreviews(GenerateShareablePreviewsRequest) + returns (GenerateShareablePreviewsResponse) { + option (google.api.http) = { + post: "/v18/customers/{customer_id=*}:generateShareablePreviews" + body: "*" + }; + option (google.api.method_signature) = "customer_id,shareable_previews"; + } +} + +// Request message for +// [ShareablePreviewService.GenerateShareablePreviews][google.ads.googleads.v18.services.ShareablePreviewService.GenerateShareablePreviews]. +message GenerateShareablePreviewsRequest { + // Required. The customer creating the shareable previews request. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of shareable previews to generate. + repeated ShareablePreview shareable_previews = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// A shareable preview with its identifier. +message ShareablePreview { + // Required. Asset group of the shareable preview. + AssetGroupIdentifier asset_group_identifier = 1 + [(google.api.field_behavior) = REQUIRED]; +} + +// Asset group of the shareable preview. +message AssetGroupIdentifier { + // Required. The asset group identifier. + int64 asset_group_id = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for +// [ShareablePreviewService.GenerateShareablePreviews][google.ads.googleads.v18.services.ShareablePreviewService.GenerateShareablePreviews]. +message GenerateShareablePreviewsResponse { + // List of generate shareable preview results. + repeated ShareablePreviewOrError responses = 1; +} + +// Result of the generate shareable preview. +message ShareablePreviewOrError { + // The asset group of the shareable preview. + AssetGroupIdentifier asset_group_identifier = 3; + + // The shareable preview result or error. + oneof generate_shareable_preview_response { + // The shareable preview result. + ShareablePreviewResult shareable_preview_result = 1; + + // The shareable preview partial failure error. + google.rpc.Status partial_failure_error = 2; + } +} + +// Message to hold a shareable preview result. +message ShareablePreviewResult { + // The shareable preview URL. + string shareable_preview_url = 1; + + // Expiration date time using the ISO-8601 format. + string expiration_date_time = 2; +} diff --git a/google/ads/googleads/v15/services/shared_criterion_service.proto b/google/ads/googleads/v18/services/shared_criterion_service.proto similarity index 85% rename from google/ads/googleads/v15/services/shared_criterion_service.proto rename to google/ads/googleads/v18/services/shared_criterion_service.proto index 564ef03e4..da945da8f 100644 --- a/google/ads/googleads/v15/services/shared_criterion_service.proto +++ b/google/ads/googleads/v18/services/shared_criterion_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/shared_criterion.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "SharedCriterionServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Shared Criterion service. @@ -66,7 +66,7 @@ service SharedCriterionService { rpc MutateSharedCriteria(MutateSharedCriteriaRequest) returns (MutateSharedCriteriaResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/sharedCriteria:mutate" + post: "/v18/customers/{customer_id=*}/sharedCriteria:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -74,7 +74,7 @@ service SharedCriterionService { } // Request message for -// [SharedCriterionService.MutateSharedCriteria][google.ads.googleads.v15.services.SharedCriterionService.MutateSharedCriteria]. +// [SharedCriterionService.MutateSharedCriteria][google.ads.googleads.v18.services.SharedCriterionService.MutateSharedCriteria]. message MutateSharedCriteriaRequest { // Required. The ID of the customer whose shared criteria are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -95,7 +95,7 @@ message MutateSharedCriteriaRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -105,7 +105,7 @@ message SharedCriterionOperation { oneof operation { // Create operation: No resource name is expected for the new shared // criterion. - google.ads.googleads.v15.resources.SharedCriterion create = 1; + google.ads.googleads.v18.resources.SharedCriterion create = 1; // Remove operation: A resource name for the removed shared criterion is // expected, in this format: @@ -139,5 +139,5 @@ message MutateSharedCriterionResult { // The mutated shared criterion with only mutable fields after mutate. The // field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.SharedCriterion shared_criterion = 2; + google.ads.googleads.v18.resources.SharedCriterion shared_criterion = 2; } diff --git a/google/ads/googleads/v15/services/shared_set_service.proto b/google/ads/googleads/v18/services/shared_set_service.proto similarity index 84% rename from google/ads/googleads/v15/services/shared_set_service.proto rename to google/ads/googleads/v18/services/shared_set_service.proto index 9e88675af..8b3a1d78e 100644 --- a/google/ads/googleads/v15/services/shared_set_service.proto +++ b/google/ads/googleads/v18/services/shared_set_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,10 +14,10 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/resources/shared_set.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/resources/shared_set.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -25,14 +25,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "SharedSetServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Shared Set service. @@ -70,7 +70,7 @@ service SharedSetService { rpc MutateSharedSets(MutateSharedSetsRequest) returns (MutateSharedSetsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/sharedSets:mutate" + post: "/v18/customers/{customer_id=*}/sharedSets:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -78,7 +78,7 @@ service SharedSetService { } // Request message for -// [SharedSetService.MutateSharedSets][google.ads.googleads.v15.services.SharedSetService.MutateSharedSets]. +// [SharedSetService.MutateSharedSets][google.ads.googleads.v18.services.SharedSetService.MutateSharedSets]. message MutateSharedSetsRequest { // Required. The ID of the customer whose shared sets are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -99,7 +99,7 @@ message MutateSharedSetsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -111,11 +111,11 @@ message SharedSetOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new shared set. - google.ads.googleads.v15.resources.SharedSet create = 1; + google.ads.googleads.v18.resources.SharedSet create = 1; // Update operation: The shared set is expected to have a valid resource // name. - google.ads.googleads.v15.resources.SharedSet update = 2; + google.ads.googleads.v18.resources.SharedSet update = 2; // Remove operation: A resource name for the removed shared set is expected, // in this format: @@ -149,5 +149,5 @@ message MutateSharedSetResult { // The mutated shared set with only mutable fields after mutate. The field // will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.SharedSet shared_set = 2; + google.ads.googleads.v18.resources.SharedSet shared_set = 2; } diff --git a/google/ads/googleads/v15/services/smart_campaign_setting_service.proto b/google/ads/googleads/v18/services/smart_campaign_setting_service.proto similarity index 85% rename from google/ads/googleads/v15/services/smart_campaign_setting_service.proto rename to google/ads/googleads/v18/services/smart_campaign_setting_service.proto index ce665ca54..8451b0781 100644 --- a/google/ads/googleads/v15/services/smart_campaign_setting_service.proto +++ b/google/ads/googleads/v18/services/smart_campaign_setting_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,12 +14,12 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/response_content_type.proto"; -import "google/ads/googleads/v15/enums/smart_campaign_not_eligible_reason.proto"; -import "google/ads/googleads/v15/enums/smart_campaign_status.proto"; -import "google/ads/googleads/v15/resources/smart_campaign_setting.proto"; +import "google/ads/googleads/v18/enums/response_content_type.proto"; +import "google/ads/googleads/v18/enums/smart_campaign_not_eligible_reason.proto"; +import "google/ads/googleads/v18/enums/smart_campaign_status.proto"; +import "google/ads/googleads/v18/resources/smart_campaign_setting.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -27,14 +27,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "SmartCampaignSettingServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the Smart campaign setting service. @@ -47,7 +47,7 @@ service SmartCampaignSettingService { rpc GetSmartCampaignStatus(GetSmartCampaignStatusRequest) returns (GetSmartCampaignStatusResponse) { option (google.api.http) = { - get: "/v15/{resource_name=customers/*/smartCampaignSettings/*}:getSmartCampaignStatus" + get: "/v18/{resource_name=customers/*/smartCampaignSettings/*}:getSmartCampaignStatus" }; option (google.api.method_signature) = "resource_name"; } @@ -56,7 +56,7 @@ service SmartCampaignSettingService { rpc MutateSmartCampaignSettings(MutateSmartCampaignSettingsRequest) returns (MutateSmartCampaignSettingsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/smartCampaignSettings:mutate" + post: "/v18/customers/{customer_id=*}/smartCampaignSettings:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -64,7 +64,7 @@ service SmartCampaignSettingService { } // Request message for -// [SmartCampaignSettingService.GetSmartCampaignStatus][google.ads.googleads.v15.services.SmartCampaignSettingService.GetSmartCampaignStatus]. +// [SmartCampaignSettingService.GetSmartCampaignStatus][google.ads.googleads.v18.services.SmartCampaignSettingService.GetSmartCampaignStatus]. message GetSmartCampaignStatusRequest { // Required. The resource name of the Smart campaign setting belonging to the // Smart campaign to fetch the status of. @@ -79,7 +79,7 @@ message GetSmartCampaignStatusRequest { // Details related to Smart campaigns that are not eligible to serve. message SmartCampaignNotEligibleDetails { // The reason why the Smart campaign is not eligible to serve. - optional google.ads.googleads.v15.enums.SmartCampaignNotEligibleReasonEnum + optional google.ads.googleads.v18.enums.SmartCampaignNotEligibleReasonEnum .SmartCampaignNotEligibleReason not_eligible_reason = 1; } @@ -122,10 +122,10 @@ message SmartCampaignEndedDetails { } // Response message for -// [SmartCampaignSettingService.GetSmartCampaignStatus][google.ads.googleads.v15.services.SmartCampaignSettingService.GetSmartCampaignStatus]. +// [SmartCampaignSettingService.GetSmartCampaignStatus][google.ads.googleads.v18.services.SmartCampaignSettingService.GetSmartCampaignStatus]. message GetSmartCampaignStatusResponse { // The status of this Smart campaign. - google.ads.googleads.v15.enums.SmartCampaignStatusEnum.SmartCampaignStatus + google.ads.googleads.v18.enums.SmartCampaignStatusEnum.SmartCampaignStatus smart_campaign_status = 1; // Additional details accompanying the status of a Smart campaign. @@ -148,7 +148,7 @@ message GetSmartCampaignStatusResponse { } // Request message for -// [SmartCampaignSettingService.MutateSmartCampaignSettings][google.ads.googleads.v15.services.SmartCampaignSettingService.MutateSmartCampaignSettings]. +// [SmartCampaignSettingService.MutateSmartCampaignSettings][google.ads.googleads.v18.services.SmartCampaignSettingService.MutateSmartCampaignSettings]. message MutateSmartCampaignSettingsRequest { // Required. The ID of the customer whose Smart campaign settings are being // modified. @@ -171,7 +171,7 @@ message MutateSmartCampaignSettingsRequest { // The response content type setting. Determines whether the mutable resource // or just the resource name should be returned post mutation. - google.ads.googleads.v15.enums.ResponseContentTypeEnum.ResponseContentType + google.ads.googleads.v18.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5; } @@ -179,7 +179,7 @@ message MutateSmartCampaignSettingsRequest { message SmartCampaignSettingOperation { // Update operation: The Smart campaign setting must specify a valid // resource name. - google.ads.googleads.v15.resources.SmartCampaignSetting update = 1; + google.ads.googleads.v18.resources.SmartCampaignSetting update = 1; // FieldMask that determines which resource fields are modified in an update. google.protobuf.FieldMask update_mask = 2; @@ -207,6 +207,6 @@ message MutateSmartCampaignSettingResult { // The mutated Smart campaign setting with only mutable fields after mutate. // The field will only be returned when response_content_type is set to // "MUTABLE_RESOURCE". - google.ads.googleads.v15.resources.SmartCampaignSetting + google.ads.googleads.v18.resources.SmartCampaignSetting smart_campaign_setting = 2; } diff --git a/google/ads/googleads/v15/services/smart_campaign_suggest_service.proto b/google/ads/googleads/v18/services/smart_campaign_suggest_service.proto similarity index 84% rename from google/ads/googleads/v15/services/smart_campaign_suggest_service.proto rename to google/ads/googleads/v18/services/smart_campaign_suggest_service.proto index a88ecbdb0..81713fe7f 100644 --- a/google/ads/googleads/v15/services/smart_campaign_suggest_service.proto +++ b/google/ads/googleads/v18/services/smart_campaign_suggest_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,24 +14,24 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/common/ad_type_infos.proto"; -import "google/ads/googleads/v15/common/criteria.proto"; -import "google/ads/googleads/v15/resources/keyword_theme_constant.proto"; +import "google/ads/googleads/v18/common/ad_type_infos.proto"; +import "google/ads/googleads/v18/common/criteria.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "SmartCampaignSuggestServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Service to get suggestions for Smart Campaigns. service SmartCampaignSuggestService { @@ -43,7 +43,7 @@ service SmartCampaignSuggestService { SuggestSmartCampaignBudgetOptionsRequest) returns (SuggestSmartCampaignBudgetOptionsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}:suggestSmartCampaignBudgetOptions" + post: "/v18/customers/{customer_id=*}:suggestSmartCampaignBudgetOptions" body: "*" }; } @@ -53,23 +53,25 @@ service SmartCampaignSuggestService { rpc SuggestSmartCampaignAd(SuggestSmartCampaignAdRequest) returns (SuggestSmartCampaignAdResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}:suggestSmartCampaignAd" + post: "/v18/customers/{customer_id=*}:suggestSmartCampaignAd" body: "*" }; + option (google.api.method_signature) = "customer_id,suggestion_info"; } // Suggests keyword themes to advertise on. rpc SuggestKeywordThemes(SuggestKeywordThemesRequest) returns (SuggestKeywordThemesResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}:suggestKeywordThemes" + post: "/v18/customers/{customer_id=*}:suggestKeywordThemes" body: "*" }; + option (google.api.method_signature) = "customer_id,suggestion_info"; } } // Request message for -// [SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions][google.ads.googleads.v15.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions]. +// [SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions][google.ads.googleads.v18.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions]. message SuggestSmartCampaignBudgetOptionsRequest { // Required. The ID of the customer whose budget options are to be suggested. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -98,7 +100,7 @@ message SmartCampaignSuggestionInfo { // A list of locations. message LocationList { // Required. Locations. - repeated google.ads.googleads.v15.common.LocationInfo locations = 1 + repeated google.ads.googleads.v18.common.LocationInfo locations = 1 [(google.api.field_behavior) = REQUIRED]; } @@ -116,12 +118,12 @@ message SmartCampaignSuggestionInfo { string language_code = 3 [(google.api.field_behavior) = OPTIONAL]; // Optional. The business ad schedule. - repeated google.ads.googleads.v15.common.AdScheduleInfo ad_schedules = 6 + repeated google.ads.googleads.v18.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.v15.common.KeywordThemeInfo keyword_themes = 7 + repeated google.ads.googleads.v18.common.KeywordThemeInfo keyword_themes = 7 [(google.api.field_behavior) = OPTIONAL]; // The business settings to consider when generating suggestions. @@ -151,13 +153,13 @@ message SmartCampaignSuggestionInfo { LocationList location_list = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. The targeting geo location by proximity. - google.ads.googleads.v15.common.ProximityInfo proximity = 5 + google.ads.googleads.v18.common.ProximityInfo proximity = 5 [(google.api.field_behavior) = OPTIONAL]; } } // Response message for -// [SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions][google.ads.googleads.v15.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions]. +// [SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions][google.ads.googleads.v18.services.SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions]. // Depending on whether the system could suggest the options, either all of the // options or none of them might be returned. message SuggestSmartCampaignBudgetOptionsResponse { @@ -194,7 +196,7 @@ message SuggestSmartCampaignBudgetOptionsResponse { } // Request message for -// [SmartCampaignSuggestService.SuggestSmartCampaignAd][google.ads.googleads.v15.services.SmartCampaignSuggestService.SuggestSmartCampaignAd]. +// [SmartCampaignSuggestService.SuggestSmartCampaignAd][google.ads.googleads.v18.services.SmartCampaignSuggestService.SuggestSmartCampaignAd]. message SuggestSmartCampaignAdRequest { // Required. The ID of the customer. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -208,16 +210,16 @@ message SuggestSmartCampaignAdRequest { } // Response message for -// [SmartCampaignSuggestService.SuggestSmartCampaignAd][google.ads.googleads.v15.services.SmartCampaignSuggestService.SuggestSmartCampaignAd]. +// [SmartCampaignSuggestService.SuggestSmartCampaignAd][google.ads.googleads.v18.services.SmartCampaignSuggestService.SuggestSmartCampaignAd]. message SuggestSmartCampaignAdResponse { // Optional. Ad info includes 3 creative headlines and 2 creative // descriptions. - google.ads.googleads.v15.common.SmartCampaignAdInfo ad_info = 1 + google.ads.googleads.v18.common.SmartCampaignAdInfo ad_info = 1 [(google.api.field_behavior) = OPTIONAL]; } // Request message for -// [SmartCampaignSuggestService.SuggestKeywordThemes][google.ads.googleads.v15.services.SmartCampaignSuggestService.SuggestKeywordThemes]. +// [SmartCampaignSuggestService.SuggestKeywordThemes][google.ads.googleads.v18.services.SmartCampaignSuggestService.SuggestKeywordThemes]. message SuggestKeywordThemesRequest { // Required. The ID of the customer. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -237,14 +239,14 @@ message SuggestKeywordThemesRequest { } // Response message for -// [SmartCampaignSuggestService.SuggestKeywordThemes][google.ads.googleads.v15.services.SmartCampaignSuggestService.SuggestKeywordThemes]. +// [SmartCampaignSuggestService.SuggestKeywordThemes][google.ads.googleads.v18.services.SmartCampaignSuggestService.SuggestKeywordThemes]. message SuggestKeywordThemesResponse { // A Smart campaign keyword theme suggestion. message KeywordTheme { // A keyword theme. oneof keyword_theme { // A Smart campaign keyword theme constant. - google.ads.googleads.v15.resources.KeywordThemeConstant + google.ads.googleads.v18.resources.KeywordThemeConstant keyword_theme_constant = 1; // A free-form text keyword theme. diff --git a/google/ads/googleads/v15/services/third_party_app_analytics_link_service.proto b/google/ads/googleads/v18/services/third_party_app_analytics_link_service.proto similarity index 80% rename from google/ads/googleads/v15/services/third_party_app_analytics_link_service.proto rename to google/ads/googleads/v18/services/third_party_app_analytics_link_service.proto index 65cd315e0..dde348947 100644 --- a/google/ads/googleads/v15/services/third_party_app_analytics_link_service.proto +++ b/google/ads/googleads/v18/services/third_party_app_analytics_link_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,20 +14,20 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "ThirdPartyAppAnalyticsLinkServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // This service allows management of links between Google Ads and third party // app analytics. @@ -48,14 +48,14 @@ service ThirdPartyAppAnalyticsLinkService { rpc RegenerateShareableLinkId(RegenerateShareableLinkIdRequest) returns (RegenerateShareableLinkIdResponse) { option (google.api.http) = { - post: "/v15/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" + post: "/v18/{resource_name=customers/*/thirdPartyAppAnalyticsLinks/*}:regenerateShareableLinkId" body: "*" }; } } // Request message for -// [ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId][google.ads.googleads.v15.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId]. +// [ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId][google.ads.googleads.v18.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId]. message RegenerateShareableLinkIdRequest { // Resource name of the third party app analytics link. string resource_name = 1 [(google.api.resource_reference) = { @@ -64,5 +64,5 @@ message RegenerateShareableLinkIdRequest { } // Response message for -// [ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId][google.ads.googleads.v15.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId]. +// [ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId][google.ads.googleads.v18.services.ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId]. message RegenerateShareableLinkIdResponse {} diff --git a/google/ads/googleads/v15/services/travel_asset_suggestion_service.proto b/google/ads/googleads/v18/services/travel_asset_suggestion_service.proto similarity index 78% rename from google/ads/googleads/v15/services/travel_asset_suggestion_service.proto rename to google/ads/googleads/v18/services/travel_asset_suggestion_service.proto index aa87a9af9..0c6dcafe8 100644 --- a/google/ads/googleads/v15/services/travel_asset_suggestion_service.proto +++ b/google/ads/googleads/v18/services/travel_asset_suggestion_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,23 +14,23 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/enums/asset_field_type.proto"; -import "google/ads/googleads/v15/enums/call_to_action_type.proto"; -import "google/ads/googleads/v15/enums/hotel_asset_suggestion_status.proto"; +import "google/ads/googleads/v18/enums/asset_field_type.proto"; +import "google/ads/googleads/v18/enums/call_to_action_type.proto"; +import "google/ads/googleads/v18/enums/hotel_asset_suggestion_status.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "TravelAssetSuggestionServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Service to retrieve Travel asset suggestions. service TravelAssetSuggestionService { @@ -44,7 +44,7 @@ service TravelAssetSuggestionService { rpc SuggestTravelAssets(SuggestTravelAssetsRequest) returns (SuggestTravelAssetsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}:suggestTravelAssets" + post: "/v18/customers/{customer_id=*}:suggestTravelAssets" body: "*" }; option (google.api.method_signature) = "customer_id,language_option"; @@ -52,7 +52,7 @@ service TravelAssetSuggestionService { } // Request message for -// [TravelAssetSuggestionService.SuggestTravelAssets][google.ads.googleads.v15.services.TravelAssetSuggestionService.SuggestTravelAssets]. +// [TravelAssetSuggestionService.SuggestTravelAssets][google.ads.googleads.v18.services.TravelAssetSuggestionService.SuggestTravelAssets]. message SuggestTravelAssetsRequest { // Required. The ID of the customer. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -69,7 +69,7 @@ message SuggestTravelAssetsRequest { } // Response message for -// [TravelAssetSuggestionService.SuggestTravelAssets][google.ads.googleads.v15.services.TravelAssetSuggestionService.SuggestTravelAssets]. +// [TravelAssetSuggestionService.SuggestTravelAssets][google.ads.googleads.v18.services.TravelAssetSuggestionService.SuggestTravelAssets]. message SuggestTravelAssetsResponse { // Asset suggestions for each place ID submitted in the request. repeated HotelAssetSuggestion hotel_asset_suggestions = 1; @@ -87,7 +87,7 @@ message HotelAssetSuggestion { string hotel_name = 3; // Call to action type. - google.ads.googleads.v15.enums.CallToActionTypeEnum.CallToActionType + google.ads.googleads.v18.enums.CallToActionTypeEnum.CallToActionType call_to_action = 4; // Text assets such as headline, description, etc. @@ -97,7 +97,7 @@ message HotelAssetSuggestion { repeated HotelImageAsset image_assets = 6; // The status of the hotel asset suggestion. - google.ads.googleads.v15.enums.HotelAssetSuggestionStatusEnum + google.ads.googleads.v18.enums.HotelAssetSuggestionStatusEnum .HotelAssetSuggestionStatus status = 7; } @@ -107,7 +107,7 @@ message HotelTextAsset { string text = 1; // The text asset type. For example, HEADLINE, DESCRIPTION, etc. - google.ads.googleads.v15.enums.AssetFieldTypeEnum.AssetFieldType + google.ads.googleads.v18.enums.AssetFieldTypeEnum.AssetFieldType asset_field_type = 2; } @@ -118,6 +118,6 @@ message HotelImageAsset { // The Image asset type. For example, MARKETING_IMAGE, // PORTRAIT_MARKETING_IMAGE, etc. - google.ads.googleads.v15.enums.AssetFieldTypeEnum.AssetFieldType + google.ads.googleads.v18.enums.AssetFieldTypeEnum.AssetFieldType asset_field_type = 2; } diff --git a/google/ads/googleads/v15/services/user_data_service.proto b/google/ads/googleads/v18/services/user_data_service.proto similarity index 81% rename from google/ads/googleads/v15/services/user_data_service.proto rename to google/ads/googleads/v18/services/user_data_service.proto index 63625f398..498582ffb 100644 --- a/google/ads/googleads/v15/services/user_data_service.proto +++ b/google/ads/googleads/v18/services/user_data_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,21 +14,21 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/common/offline_user_data.proto"; +import "google/ads/googleads/v18/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.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "UserDataServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the UserDataService. @@ -58,14 +58,14 @@ service UserDataService { // [UserDataError]() rpc UploadUserData(UploadUserDataRequest) returns (UploadUserDataResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}:uploadUserData" + post: "/v18/customers/{customer_id=*}:uploadUserData" body: "*" }; } } // Request message for -// [UserDataService.UploadUserData][google.ads.googleads.v15.services.UserDataService.UploadUserData] +// [UserDataService.UploadUserData][google.ads.googleads.v18.services.UserDataService.UploadUserData] message UploadUserDataRequest { // Required. The ID of the customer for which to update the user data. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -77,7 +77,7 @@ message UploadUserDataRequest { // Metadata of the request. oneof metadata { // Metadata for data updates to a Customer Match user list. - google.ads.googleads.v15.common.CustomerMatchUserListMetadata + google.ads.googleads.v18.common.CustomerMatchUserListMetadata customer_match_user_list_metadata = 2; } } @@ -87,15 +87,15 @@ message UserDataOperation { // Operation to be made for the UploadUserDataRequest. oneof operation { // The list of user data to be appended to the user list. - google.ads.googleads.v15.common.UserData create = 1; + google.ads.googleads.v18.common.UserData create = 1; // The list of user data to be removed from the user list. - google.ads.googleads.v15.common.UserData remove = 2; + google.ads.googleads.v18.common.UserData remove = 2; } } // Response message for -// [UserDataService.UploadUserData][google.ads.googleads.v15.services.UserDataService.UploadUserData] +// [UserDataService.UploadUserData][google.ads.googleads.v18.services.UserDataService.UploadUserData] // Uploads made through this service will not be visible under the 'Segment // members' section for the Customer Match List in the Google Ads UI. message UploadUserDataResponse { diff --git a/google/ads/googleads/v18/services/user_list_customer_type_service.proto b/google/ads/googleads/v18/services/user_list_customer_type_service.proto new file mode 100644 index 000000000..cc5043797 --- /dev/null +++ b/google/ads/googleads/v18/services/user_list_customer_type_service.proto @@ -0,0 +1,123 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.googleads.v18.services; + +import "google/ads/googleads/v18/resources/user_list_customer_type.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; +option java_multiple_files = true; +option java_outer_classname = "UserListCustomerTypeServiceProto"; +option java_package = "com.google.ads.googleads.v18.services"; +option objc_class_prefix = "GAA"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; + +// Proto file describing the UserListCustomerType service. + +// Service to manage user list customer types. +service UserListCustomerTypeService { + option (google.api.default_host) = "googleads.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/adwords"; + + // Attach or remove user list customer types. Operation statuses + // are returned. + // + // List of thrown errors: + // [AuthenticationError]() + // [AuthorizationError]() + // [UserListCustomerTypeError]() + // [HeaderError]() + // [InternalError]() + // [QuotaError]() + // [RequestError]() + rpc MutateUserListCustomerTypes(MutateUserListCustomerTypesRequest) + returns (MutateUserListCustomerTypesResponse) { + option (google.api.http) = { + post: "/v18/customers/{customer_id=*}/userListCustomerTypes:mutate" + body: "*" + }; + option (google.api.method_signature) = "customer_id,operations"; + } +} + +// Request message for +// [UserListCustomerTypeService.MutateUserListCustomerTypes][google.ads.googleads.v18.services.UserListCustomerTypeService.MutateUserListCustomerTypes]. +message MutateUserListCustomerTypesRequest { + // Required. The ID of the customer whose user list customer types are being + // modified. + string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of operations to perform on the user list customer + // types. + repeated UserListCustomerTypeOperation operations = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. If true, successful operations will be carried out and invalid + // operations will return errors. If false, all operations will be carried + // out in one transaction if and only if they are all valid. + // Default is false. + bool partial_failure = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If true, the request is validated but not executed. Only errors + // are returned, not results. + bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// A single mutate operation on the user list customer type. +message UserListCustomerTypeOperation { + // The mutate operation. + oneof operation { + // Attach a user list customer type to a user list. + // No resource name is expected for the new user list customer type. + google.ads.googleads.v18.resources.UserListCustomerType create = 1; + + // Remove an existing user list customer type. + // A resource name for the removed user list customer type is + // expected, in this format: + // + // `customers/{customer_id}/userListCustomerTypes/{user_list_id}~{customer_type_category}` + string remove = 2 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/UserListCustomerType" + }]; + } +} + +// Response message for a user list customer type mutate. +message MutateUserListCustomerTypesResponse { + // Errors that pertain to operation failures in the partial failure mode. + // Returned only when partial_failure = true and all errors occur inside the + // operations. If any errors occur outside the operations (for example, auth + // errors), we return an RPC level error. + google.rpc.Status partial_failure_error = 1; + + // All results for the mutate. + repeated MutateUserListCustomerTypeResult results = 2; +} + +// The result for the user list customer type mutate. +message MutateUserListCustomerTypeResult { + // Returned for successful operations. + string resource_name = 1 [(google.api.resource_reference) = { + type: "googleads.googleapis.com/UserListCustomerType" + }]; +} diff --git a/google/ads/googleads/v15/services/user_list_service.proto b/google/ads/googleads/v18/services/user_list_service.proto similarity index 86% rename from google/ads/googleads/v15/services/user_list_service.proto rename to google/ads/googleads/v18/services/user_list_service.proto index 8d4b5aac8..ee28ececb 100644 --- a/google/ads/googleads/v15/services/user_list_service.proto +++ b/google/ads/googleads/v18/services/user_list_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ syntax = "proto3"; -package google.ads.googleads.v15.services; +package google.ads.googleads.v18.services; -import "google/ads/googleads/v15/resources/user_list.proto"; +import "google/ads/googleads/v18/resources/user_list.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; @@ -24,14 +24,14 @@ import "google/api/resource.proto"; import "google/protobuf/field_mask.proto"; import "google/rpc/status.proto"; -option csharp_namespace = "Google.Ads.GoogleAds.V15.Services"; -option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/services;services"; +option csharp_namespace = "Google.Ads.GoogleAds.V18.Services"; +option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v18/services;services"; option java_multiple_files = true; option java_outer_classname = "UserListServiceProto"; -option java_package = "com.google.ads.googleads.v15.services"; +option java_package = "com.google.ads.googleads.v18.services"; option objc_class_prefix = "GAA"; -option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Services"; -option ruby_package = "Google::Ads::GoogleAds::V15::Services"; +option php_namespace = "Google\\Ads\\GoogleAds\\V18\\Services"; +option ruby_package = "Google::Ads::GoogleAds::V18::Services"; // Proto file describing the User List service. @@ -66,7 +66,7 @@ service UserListService { rpc MutateUserLists(MutateUserListsRequest) returns (MutateUserListsResponse) { option (google.api.http) = { - post: "/v15/customers/{customer_id=*}/userLists:mutate" + post: "/v18/customers/{customer_id=*}/userLists:mutate" body: "*" }; option (google.api.method_signature) = "customer_id,operations"; @@ -74,7 +74,7 @@ service UserListService { } // Request message for -// [UserListService.MutateUserLists][google.ads.googleads.v15.services.UserListService.MutateUserLists]. +// [UserListService.MutateUserLists][google.ads.googleads.v18.services.UserListService.MutateUserLists]. message MutateUserListsRequest { // Required. The ID of the customer whose user lists are being modified. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -102,11 +102,11 @@ message UserListOperation { // The mutate operation. oneof operation { // Create operation: No resource name is expected for the new user list. - google.ads.googleads.v15.resources.UserList create = 1; + google.ads.googleads.v18.resources.UserList create = 1; // Update operation: The user list is expected to have a valid resource // name. - google.ads.googleads.v15.resources.UserList update = 2; + google.ads.googleads.v18.resources.UserList update = 2; // Remove operation: A resource name for the removed user list is expected, // in this format: diff --git a/google/ads/searchads360/v0/common/ad_asset.proto b/google/ads/searchads360/v0/common/ad_asset.proto new file mode 100644 index 000000000..27ab90d1e --- /dev/null +++ b/google/ads/searchads360/v0/common/ad_asset.proto @@ -0,0 +1,34 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.searchads360.v0.common; + +option csharp_namespace = "Google.Ads.SearchAds360.V0.Common"; +option go_package = "google.golang.org/genproto/googleapis/ads/searchads360/v0/common;common"; +option java_multiple_files = true; +option java_outer_classname = "AdAssetProto"; +option java_package = "com.google.ads.searchads360.v0.common"; +option objc_class_prefix = "GASA360"; +option php_namespace = "Google\\Ads\\SearchAds360\\V0\\Common"; +option ruby_package = "Google::Ads::SearchAds360::V0::Common"; + +// Proto file describing assets used inside an ad. + +// A text asset used inside an ad. +message AdTextAsset { + // Asset text. + optional string text = 4; +} diff --git a/google/ads/searchads360/v0/common/ad_type_infos.proto b/google/ads/searchads360/v0/common/ad_type_infos.proto index c318c8097..816a70767 100644 --- a/google/ads/searchads360/v0/common/ad_type_infos.proto +++ b/google/ads/searchads360/v0/common/ad_type_infos.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,6 +16,8 @@ syntax = "proto3"; package google.ads.searchads360.v0.common; +import "google/ads/searchads360/v0/common/ad_asset.proto"; + option csharp_namespace = "Google.Ads.SearchAds360.V0.Common"; option go_package = "google.golang.org/genproto/googleapis/ads/searchads360/v0/common;common"; option java_multiple_files = true; @@ -100,4 +102,12 @@ message SearchAds360ResponsiveSearchAdInfo { // The tracking id of the ad. optional int64 ad_tracking_id = 3; + + // List of text assets for headlines. When the ad serves the headlines will + // be selected from this list. + repeated AdTextAsset headlines = 4; + + // List of text assets for descriptions. When the ad serves the descriptions + // will be selected from this list. + repeated AdTextAsset descriptions = 5; } diff --git a/google/ads/searchads360/v0/common/asset_types.proto b/google/ads/searchads360/v0/common/asset_types.proto index 687c5788e..d2b1f847b 100644 --- a/google/ads/searchads360/v0/common/asset_types.proto +++ b/google/ads/searchads360/v0/common/asset_types.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/common/asset_usage.proto b/google/ads/searchads360/v0/common/asset_usage.proto index fe3a828bc..ee856fc3a 100644 --- a/google/ads/searchads360/v0/common/asset_usage.proto +++ b/google/ads/searchads360/v0/common/asset_usage.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/common/bidding.proto b/google/ads/searchads360/v0/common/bidding.proto index 9b70a26e2..2d82637dc 100644 --- a/google/ads/searchads360/v0/common/bidding.proto +++ b/google/ads/searchads360/v0/common/bidding.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -165,7 +165,7 @@ message TargetRoas { // An automated bid strategy that sets your bids to help get as many clicks // as possible within your budget. message TargetSpend { - // The spend target under which to maximize clicks. + // Deprecated: The spend target under which to maximize clicks. // A TargetSpend bidder will attempt to spend the smaller of this value // or the natural throttling spend amount. // If not specified, the budget is used as the spend target. diff --git a/google/ads/searchads360/v0/common/criteria.proto b/google/ads/searchads360/v0/common/criteria.proto index f0480347b..46416da97 100644 --- a/google/ads/searchads360/v0/common/criteria.proto +++ b/google/ads/searchads360/v0/common/criteria.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/common/custom_parameter.proto b/google/ads/searchads360/v0/common/custom_parameter.proto index a6826fb93..93a17b67b 100644 --- a/google/ads/searchads360/v0/common/custom_parameter.proto +++ b/google/ads/searchads360/v0/common/custom_parameter.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/common/frequency_cap.proto b/google/ads/searchads360/v0/common/frequency_cap.proto index 3219aad0b..694144d2b 100644 --- a/google/ads/searchads360/v0/common/frequency_cap.proto +++ b/google/ads/searchads360/v0/common/frequency_cap.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/common/metrics.proto b/google/ads/searchads360/v0/common/metrics.proto index 33a46d103..6c96238f9 100644 --- a/google/ads/searchads360/v0/common/metrics.proto +++ b/google/ads/searchads360/v0/common/metrics.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -220,9 +220,19 @@ message Metrics { // Cross-device conversions are already included in all_conversions. optional double cross_device_conversions = 173; + // The number of cross-device conversions by conversion date. + // Details for the by_conversion_date columns are available at + // https://support.google.com/sa360/answer/9250611. + optional double cross_device_conversions_by_conversion_date = 372; + // The sum of the value of cross-device conversions. optional double cross_device_conversions_value = 253; + // The sum of cross-device conversions value by conversion date. + // Details for the by_conversion_date columns are available at + // https://support.google.com/sa360/answer/9250611. + optional double cross_device_conversions_value_by_conversion_date = 373; + // The number of clicks your ad receives (Clicks) divided by the number // of times your ad is shown (Impressions). optional double ctr = 174; @@ -242,6 +252,9 @@ message Metrics { google.ads.searchads360.v0.enums.QualityScoreBucketEnum.QualityScoreBucket historical_creative_quality_score = 80; + // The average quality score. + optional double average_quality_score = 364; + // The quality of historical landing page experience. google.ads.searchads360.v0.enums.QualityScoreBucketEnum.QualityScoreBucket historical_landing_page_quality_score = 81; @@ -278,6 +291,26 @@ message Metrics { // Number of clicks Google considers illegitimate and doesn't charge you for. optional int64 invalid_clicks = 225; + // The percentage of clicks that have been filtered out of your total number + // of clicks (filtered + non-filtered clicks) due to being general invalid + // clicks. These are clicks Google considers illegitimate that are detected + // through routine means of filtration (that is, known invalid data-center + // traffic, bots and spiders or other crawlers, irregular patterns, etc). + // You're not charged for them, and they don't affect your account statistics. + // See the help page at + // https://support.google.com/campaignmanager/answer/6076504 for + // details. + optional double general_invalid_click_rate = 370; + + // Number of general invalid clicks. These are a subset of your invalid clicks + // that are detected through routine means of filtration (such as known + // invalid data-center traffic, bots and spiders or other crawlers, irregular + // patterns, etc.). You're not charged for them, and they don't affect your + // account statistics. See the help page at + // https://support.google.com/campaignmanager/answer/6076504 for + // details. + optional int64 general_invalid_clicks = 371; + // The percentage of mobile clicks that go to a mobile-friendly page. optional double mobile_friendly_clicks_percentage = 229; diff --git a/google/ads/searchads360/v0/common/real_time_bidding_setting.proto b/google/ads/searchads360/v0/common/real_time_bidding_setting.proto index e87577034..e6e7306eb 100644 --- a/google/ads/searchads360/v0/common/real_time_bidding_setting.proto +++ b/google/ads/searchads360/v0/common/real_time_bidding_setting.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/common/segments.proto b/google/ads/searchads360/v0/common/segments.proto index 711eca672..37274c325 100644 --- a/google/ads/searchads360/v0/common/segments.proto +++ b/google/ads/searchads360/v0/common/segments.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -69,6 +69,21 @@ message Segments { // Device to which metrics apply. google.ads.searchads360.v0.enums.DeviceEnum.Device device = 1; + // 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 metro. + optional string geo_target_metro = 122; + + // Resource name of the geo target constant that represents a region. + optional string geo_target_region = 126; + + // Hour of day as a number between 0 and 23, inclusive. + optional int32 hour = 88; + // Keyword criterion. Keyword keyword = 61; diff --git a/google/ads/searchads360/v0/common/targeting_setting.proto b/google/ads/searchads360/v0/common/targeting_setting.proto index 711608de2..bc8a4804e 100644 --- a/google/ads/searchads360/v0/common/targeting_setting.proto +++ b/google/ads/searchads360/v0/common/targeting_setting.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/common/text_label.proto b/google/ads/searchads360/v0/common/text_label.proto index cc341bd57..7364737dd 100644 --- a/google/ads/searchads360/v0/common/text_label.proto +++ b/google/ads/searchads360/v0/common/text_label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -27,7 +27,7 @@ option ruby_package = "Google::Ads::SearchAds360::V0::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 + // Background color of the label in HEX 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; diff --git a/google/ads/searchads360/v0/common/value.proto b/google/ads/searchads360/v0/common/value.proto index 0cb43d840..8dc236c0c 100644 --- a/google/ads/searchads360/v0/common/value.proto +++ b/google/ads/searchads360/v0/common/value.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/account_status.proto b/google/ads/searchads360/v0/enums/account_status.proto index 84cf9c203..ee8cf69d5 100644 --- a/google/ads/searchads360/v0/enums/account_status.proto +++ b/google/ads/searchads360/v0/enums/account_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/account_type.proto b/google/ads/searchads360/v0/enums/account_type.proto index e4d7a1a04..ce41e06a1 100644 --- a/google/ads/searchads360/v0/enums/account_type.proto +++ b/google/ads/searchads360/v0/enums/account_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/ad_group_ad_engine_status.proto b/google/ads/searchads360/v0/enums/ad_group_ad_engine_status.proto index bcdf8c4db..b217e814d 100644 --- a/google/ads/searchads360/v0/enums/ad_group_ad_engine_status.proto +++ b/google/ads/searchads360/v0/enums/ad_group_ad_engine_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/ad_group_ad_rotation_mode.proto b/google/ads/searchads360/v0/enums/ad_group_ad_rotation_mode.proto index 1cd36d7ab..26cf1fbd2 100644 --- a/google/ads/searchads360/v0/enums/ad_group_ad_rotation_mode.proto +++ b/google/ads/searchads360/v0/enums/ad_group_ad_rotation_mode.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/ad_group_ad_status.proto b/google/ads/searchads360/v0/enums/ad_group_ad_status.proto index b5d6eabaa..a7923477f 100644 --- a/google/ads/searchads360/v0/enums/ad_group_ad_status.proto +++ b/google/ads/searchads360/v0/enums/ad_group_ad_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/ad_group_criterion_engine_status.proto b/google/ads/searchads360/v0/enums/ad_group_criterion_engine_status.proto index 3ae42b889..97b63957e 100644 --- a/google/ads/searchads360/v0/enums/ad_group_criterion_engine_status.proto +++ b/google/ads/searchads360/v0/enums/ad_group_criterion_engine_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/ad_group_criterion_status.proto b/google/ads/searchads360/v0/enums/ad_group_criterion_status.proto index f7592cf8e..68738bf80 100644 --- a/google/ads/searchads360/v0/enums/ad_group_criterion_status.proto +++ b/google/ads/searchads360/v0/enums/ad_group_criterion_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/ad_group_engine_status.proto b/google/ads/searchads360/v0/enums/ad_group_engine_status.proto index 94b7ee4a1..a512e4550 100644 --- a/google/ads/searchads360/v0/enums/ad_group_engine_status.proto +++ b/google/ads/searchads360/v0/enums/ad_group_engine_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/ad_group_status.proto b/google/ads/searchads360/v0/enums/ad_group_status.proto index 01293db81..de719ba79 100644 --- a/google/ads/searchads360/v0/enums/ad_group_status.proto +++ b/google/ads/searchads360/v0/enums/ad_group_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/ad_group_type.proto b/google/ads/searchads360/v0/enums/ad_group_type.proto index a7c4b7450..374d61fd1 100644 --- a/google/ads/searchads360/v0/enums/ad_group_type.proto +++ b/google/ads/searchads360/v0/enums/ad_group_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/ad_network_type.proto b/google/ads/searchads360/v0/enums/ad_network_type.proto index 165322e1d..87f1493d3 100644 --- a/google/ads/searchads360/v0/enums/ad_network_type.proto +++ b/google/ads/searchads360/v0/enums/ad_network_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/ad_serving_optimization_status.proto b/google/ads/searchads360/v0/enums/ad_serving_optimization_status.proto index cd8828b73..aee971118 100644 --- a/google/ads/searchads360/v0/enums/ad_serving_optimization_status.proto +++ b/google/ads/searchads360/v0/enums/ad_serving_optimization_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/ad_strength.proto b/google/ads/searchads360/v0/enums/ad_strength.proto index 57077bef6..92a8d741a 100644 --- a/google/ads/searchads360/v0/enums/ad_strength.proto +++ b/google/ads/searchads360/v0/enums/ad_strength.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/ad_type.proto b/google/ads/searchads360/v0/enums/ad_type.proto index 4394f3559..aaa364955 100644 --- a/google/ads/searchads360/v0/enums/ad_type.proto +++ b/google/ads/searchads360/v0/enums/ad_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -135,5 +135,8 @@ message AdTypeEnum { // Discovery video responsive ad. DISCOVERY_VIDEO_RESPONSIVE_AD = 38; + + // Multimedia ad. + MULTIMEDIA_AD = 43; } } diff --git a/google/ads/searchads360/v0/enums/advertising_channel_sub_type.proto b/google/ads/searchads360/v0/enums/advertising_channel_sub_type.proto index 4b72d2f7d..f1319bd75 100644 --- a/google/ads/searchads360/v0/enums/advertising_channel_sub_type.proto +++ b/google/ads/searchads360/v0/enums/advertising_channel_sub_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -100,5 +100,8 @@ message AdvertisingChannelSubTypeEnum { // Travel Activities campaigns. TRAVEL_ACTIVITIES = 20; + + // Facebook tracking only social campaigns. + SOCIAL_FACEBOOK_TRACKING_ONLY = 21; } } diff --git a/google/ads/searchads360/v0/enums/advertising_channel_type.proto b/google/ads/searchads360/v0/enums/advertising_channel_type.proto index 0aa6c93bc..274f79248 100644 --- a/google/ads/searchads360/v0/enums/advertising_channel_type.proto +++ b/google/ads/searchads360/v0/enums/advertising_channel_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -74,5 +74,8 @@ message AdvertisingChannelTypeEnum { // Travel campaigns. TRAVEL = 13; + + // Social campaigns. + SOCIAL = 15; } } diff --git a/google/ads/searchads360/v0/enums/age_range_type.proto b/google/ads/searchads360/v0/enums/age_range_type.proto index cc9afcfc9..c6fcfed45 100644 --- a/google/ads/searchads360/v0/enums/age_range_type.proto +++ b/google/ads/searchads360/v0/enums/age_range_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/asset_engine_status.proto b/google/ads/searchads360/v0/enums/asset_engine_status.proto index ebe615b22..378e6f3f5 100644 --- a/google/ads/searchads360/v0/enums/asset_engine_status.proto +++ b/google/ads/searchads360/v0/enums/asset_engine_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/asset_field_type.proto b/google/ads/searchads360/v0/enums/asset_field_type.proto index 9e3b70aae..62de7c936 100644 --- a/google/ads/searchads360/v0/enums/asset_field_type.proto +++ b/google/ads/searchads360/v0/enums/asset_field_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/asset_group_status.proto b/google/ads/searchads360/v0/enums/asset_group_status.proto index e288b3e66..c7a56675e 100644 --- a/google/ads/searchads360/v0/enums/asset_group_status.proto +++ b/google/ads/searchads360/v0/enums/asset_group_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/asset_link_status.proto b/google/ads/searchads360/v0/enums/asset_link_status.proto index 9d270597b..8c15988d8 100644 --- a/google/ads/searchads360/v0/enums/asset_link_status.proto +++ b/google/ads/searchads360/v0/enums/asset_link_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/asset_set_asset_status.proto b/google/ads/searchads360/v0/enums/asset_set_asset_status.proto index 4e435dbc5..1c183b156 100644 --- a/google/ads/searchads360/v0/enums/asset_set_asset_status.proto +++ b/google/ads/searchads360/v0/enums/asset_set_asset_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/asset_set_link_status.proto b/google/ads/searchads360/v0/enums/asset_set_link_status.proto index 463cb767f..63bb8fe49 100644 --- a/google/ads/searchads360/v0/enums/asset_set_link_status.proto +++ b/google/ads/searchads360/v0/enums/asset_set_link_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/asset_status.proto b/google/ads/searchads360/v0/enums/asset_status.proto index ec3c6469d..70c268912 100644 --- a/google/ads/searchads360/v0/enums/asset_status.proto +++ b/google/ads/searchads360/v0/enums/asset_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/asset_type.proto b/google/ads/searchads360/v0/enums/asset_type.proto index 59ba98fea..ab8e981b7 100644 --- a/google/ads/searchads360/v0/enums/asset_type.proto +++ b/google/ads/searchads360/v0/enums/asset_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/attribution_model.proto b/google/ads/searchads360/v0/enums/attribution_model.proto index 624c41c00..69b97ed94 100644 --- a/google/ads/searchads360/v0/enums/attribution_model.proto +++ b/google/ads/searchads360/v0/enums/attribution_model.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/attribution_type.proto b/google/ads/searchads360/v0/enums/attribution_type.proto index 85abef605..d19f375e1 100644 --- a/google/ads/searchads360/v0/enums/attribution_type.proto +++ b/google/ads/searchads360/v0/enums/attribution_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/bidding_strategy_status.proto b/google/ads/searchads360/v0/enums/bidding_strategy_status.proto index 194708b70..3e76bdbeb 100644 --- a/google/ads/searchads360/v0/enums/bidding_strategy_status.proto +++ b/google/ads/searchads360/v0/enums/bidding_strategy_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/bidding_strategy_system_status.proto b/google/ads/searchads360/v0/enums/bidding_strategy_system_status.proto index d9ff73728..82f6d677f 100644 --- a/google/ads/searchads360/v0/enums/bidding_strategy_system_status.proto +++ b/google/ads/searchads360/v0/enums/bidding_strategy_system_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/bidding_strategy_type.proto b/google/ads/searchads360/v0/enums/bidding_strategy_type.proto index 5963fd698..da65eb83c 100644 --- a/google/ads/searchads360/v0/enums/bidding_strategy_type.proto +++ b/google/ads/searchads360/v0/enums/bidding_strategy_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/budget_delivery_method.proto b/google/ads/searchads360/v0/enums/budget_delivery_method.proto index 0982bea4f..7d9b58d46 100644 --- a/google/ads/searchads360/v0/enums/budget_delivery_method.proto +++ b/google/ads/searchads360/v0/enums/budget_delivery_method.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/budget_period.proto b/google/ads/searchads360/v0/enums/budget_period.proto index eaf0da7b1..3c532098c 100644 --- a/google/ads/searchads360/v0/enums/budget_period.proto +++ b/google/ads/searchads360/v0/enums/budget_period.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/call_conversion_reporting_state.proto b/google/ads/searchads360/v0/enums/call_conversion_reporting_state.proto index 39beffe00..b79943df2 100644 --- a/google/ads/searchads360/v0/enums/call_conversion_reporting_state.proto +++ b/google/ads/searchads360/v0/enums/call_conversion_reporting_state.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/call_to_action_type.proto b/google/ads/searchads360/v0/enums/call_to_action_type.proto index dc109d828..29f6506fd 100644 --- a/google/ads/searchads360/v0/enums/call_to_action_type.proto +++ b/google/ads/searchads360/v0/enums/call_to_action_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/campaign_criterion_status.proto b/google/ads/searchads360/v0/enums/campaign_criterion_status.proto index d80b36f46..2f5bd3cd7 100644 --- a/google/ads/searchads360/v0/enums/campaign_criterion_status.proto +++ b/google/ads/searchads360/v0/enums/campaign_criterion_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/campaign_serving_status.proto b/google/ads/searchads360/v0/enums/campaign_serving_status.proto index b6c047d16..5ef3c73d1 100644 --- a/google/ads/searchads360/v0/enums/campaign_serving_status.proto +++ b/google/ads/searchads360/v0/enums/campaign_serving_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/campaign_status.proto b/google/ads/searchads360/v0/enums/campaign_status.proto index eb2719365..1b1126d74 100644 --- a/google/ads/searchads360/v0/enums/campaign_status.proto +++ b/google/ads/searchads360/v0/enums/campaign_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/conversion_action_category.proto b/google/ads/searchads360/v0/enums/conversion_action_category.proto index a4be63c27..f16e098c9 100644 --- a/google/ads/searchads360/v0/enums/conversion_action_category.proto +++ b/google/ads/searchads360/v0/enums/conversion_action_category.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/conversion_action_status.proto b/google/ads/searchads360/v0/enums/conversion_action_status.proto index b881bee2e..028e477cc 100644 --- a/google/ads/searchads360/v0/enums/conversion_action_status.proto +++ b/google/ads/searchads360/v0/enums/conversion_action_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/conversion_action_type.proto b/google/ads/searchads360/v0/enums/conversion_action_type.proto index 66c82a88b..9063dea38 100644 --- a/google/ads/searchads360/v0/enums/conversion_action_type.proto +++ b/google/ads/searchads360/v0/enums/conversion_action_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/conversion_custom_variable_cardinality.proto b/google/ads/searchads360/v0/enums/conversion_custom_variable_cardinality.proto index 2290a97d4..96625ebb8 100644 --- a/google/ads/searchads360/v0/enums/conversion_custom_variable_cardinality.proto +++ b/google/ads/searchads360/v0/enums/conversion_custom_variable_cardinality.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed 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/ads/searchads360/v0/enums/conversion_custom_variable_family.proto b/google/ads/searchads360/v0/enums/conversion_custom_variable_family.proto index 6710fef69..4001d5ecf 100644 --- a/google/ads/searchads360/v0/enums/conversion_custom_variable_family.proto +++ b/google/ads/searchads360/v0/enums/conversion_custom_variable_family.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed 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/ads/searchads360/v0/enums/conversion_custom_variable_status.proto b/google/ads/searchads360/v0/enums/conversion_custom_variable_status.proto index ae881ee2a..676ea54d0 100644 --- a/google/ads/searchads360/v0/enums/conversion_custom_variable_status.proto +++ b/google/ads/searchads360/v0/enums/conversion_custom_variable_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/conversion_status.proto b/google/ads/searchads360/v0/enums/conversion_status.proto index c1e507fa0..43c9eb827 100644 --- a/google/ads/searchads360/v0/enums/conversion_status.proto +++ b/google/ads/searchads360/v0/enums/conversion_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/conversion_tracking_status_enum.proto b/google/ads/searchads360/v0/enums/conversion_tracking_status_enum.proto index 97a925d34..ed2889c02 100644 --- a/google/ads/searchads360/v0/enums/conversion_tracking_status_enum.proto +++ b/google/ads/searchads360/v0/enums/conversion_tracking_status_enum.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/criterion_type.proto b/google/ads/searchads360/v0/enums/criterion_type.proto index b35dafeec..10894d400 100644 --- a/google/ads/searchads360/v0/enums/criterion_type.proto +++ b/google/ads/searchads360/v0/enums/criterion_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/custom_column_render_type.proto b/google/ads/searchads360/v0/enums/custom_column_render_type.proto new file mode 100644 index 000000000..f7eb65311 --- /dev/null +++ b/google/ads/searchads360/v0/enums/custom_column_render_type.proto @@ -0,0 +1,61 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.searchads360.v0.enums; + +option csharp_namespace = "Google.Ads.SearchAds360.V0.Enums"; +option go_package = "google.golang.org/genproto/googleapis/ads/searchads360/v0/enums;enums"; +option java_multiple_files = true; +option java_outer_classname = "CustomColumnRenderTypeProto"; +option java_package = "com.google.ads.searchads360.v0.enums"; +option objc_class_prefix = "GASA360"; +option php_namespace = "Google\\Ads\\SearchAds360\\V0\\Enums"; +option ruby_package = "Google::Ads::SearchAds360::V0::Enums"; + +// Proto file describing custom column render type. + +// The render type of custom columns. +message CustomColumnRenderTypeEnum { + // Enum containing the different ways a custom column can be interpreted. + enum CustomColumnRenderType { + // Not specified. + UNSPECIFIED = 0; + + // Unknown. + UNKNOWN = 1; + + // The custom column is a raw numerical value. See value_type field to + // determine if it is an integer or a double. + NUMBER = 2; + + // The custom column should be multiplied by 100 to retrieve the + // percentage value. + PERCENT = 3; + + // The custom column value is a monetary value and is in micros. + MONEY = 4; + + // The custom column value is a string. + STRING = 5; + + // The custom column value is a boolean. + BOOLEAN = 6; + + // The custom column value is a date represented as an integer in YYYYMMDD + // format. + DATE = 7; + } +} diff --git a/google/ads/searchads360/v0/enums/custom_column_value_type.proto b/google/ads/searchads360/v0/enums/custom_column_value_type.proto index 9c5e9fe9c..1bb83a41f 100644 --- a/google/ads/searchads360/v0/enums/custom_column_value_type.proto +++ b/google/ads/searchads360/v0/enums/custom_column_value_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -48,5 +48,8 @@ message CustomColumnValueTypeEnum { // The custom column value is a boolean. BOOLEAN = 5; + + // The custom column value is a date, in YYYYMMDD format. + DATE = 6; } } diff --git a/google/ads/searchads360/v0/enums/customer_status.proto b/google/ads/searchads360/v0/enums/customer_status.proto index 463d34c6b..089e988c8 100644 --- a/google/ads/searchads360/v0/enums/customer_status.proto +++ b/google/ads/searchads360/v0/enums/customer_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/data_driven_model_status.proto b/google/ads/searchads360/v0/enums/data_driven_model_status.proto index 9b7c2c06d..e52459027 100644 --- a/google/ads/searchads360/v0/enums/data_driven_model_status.proto +++ b/google/ads/searchads360/v0/enums/data_driven_model_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/day_of_week.proto b/google/ads/searchads360/v0/enums/day_of_week.proto index 1daec7150..297e5aa50 100644 --- a/google/ads/searchads360/v0/enums/day_of_week.proto +++ b/google/ads/searchads360/v0/enums/day_of_week.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/device.proto b/google/ads/searchads360/v0/enums/device.proto index 2e69d9c22..b8c2b2f43 100644 --- a/google/ads/searchads360/v0/enums/device.proto +++ b/google/ads/searchads360/v0/enums/device.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/floodlight_variable_data_type.proto b/google/ads/searchads360/v0/enums/floodlight_variable_data_type.proto index f2c3b0f71..a407f426b 100644 --- a/google/ads/searchads360/v0/enums/floodlight_variable_data_type.proto +++ b/google/ads/searchads360/v0/enums/floodlight_variable_data_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/floodlight_variable_type.proto b/google/ads/searchads360/v0/enums/floodlight_variable_type.proto index 7312bd1f3..cefd3f734 100644 --- a/google/ads/searchads360/v0/enums/floodlight_variable_type.proto +++ b/google/ads/searchads360/v0/enums/floodlight_variable_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/gender_type.proto b/google/ads/searchads360/v0/enums/gender_type.proto index 1c4aa2a97..c47a9a454 100644 --- a/google/ads/searchads360/v0/enums/gender_type.proto +++ b/google/ads/searchads360/v0/enums/gender_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/geo_target_constant_status.proto b/google/ads/searchads360/v0/enums/geo_target_constant_status.proto index d5456f719..c3e8b3ec0 100644 --- a/google/ads/searchads360/v0/enums/geo_target_constant_status.proto +++ b/google/ads/searchads360/v0/enums/geo_target_constant_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/interaction_event_type.proto b/google/ads/searchads360/v0/enums/interaction_event_type.proto index 5416dba79..224ac10da 100644 --- a/google/ads/searchads360/v0/enums/interaction_event_type.proto +++ b/google/ads/searchads360/v0/enums/interaction_event_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/keyword_match_type.proto b/google/ads/searchads360/v0/enums/keyword_match_type.proto index d3e6e77f7..c50f24044 100644 --- a/google/ads/searchads360/v0/enums/keyword_match_type.proto +++ b/google/ads/searchads360/v0/enums/keyword_match_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/label_status.proto b/google/ads/searchads360/v0/enums/label_status.proto index 40e1fcc1b..222135b39 100644 --- a/google/ads/searchads360/v0/enums/label_status.proto +++ b/google/ads/searchads360/v0/enums/label_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/listing_group_filter_bidding_category_level.proto b/google/ads/searchads360/v0/enums/listing_group_filter_bidding_category_level.proto index 71bfa0c2b..6aff7b4f3 100644 --- a/google/ads/searchads360/v0/enums/listing_group_filter_bidding_category_level.proto +++ b/google/ads/searchads360/v0/enums/listing_group_filter_bidding_category_level.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/listing_group_filter_custom_attribute_index.proto b/google/ads/searchads360/v0/enums/listing_group_filter_custom_attribute_index.proto index a8e705849..5f94166d1 100644 --- a/google/ads/searchads360/v0/enums/listing_group_filter_custom_attribute_index.proto +++ b/google/ads/searchads360/v0/enums/listing_group_filter_custom_attribute_index.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/listing_group_filter_product_channel.proto b/google/ads/searchads360/v0/enums/listing_group_filter_product_channel.proto index 8b12d1536..f8bbbe171 100644 --- a/google/ads/searchads360/v0/enums/listing_group_filter_product_channel.proto +++ b/google/ads/searchads360/v0/enums/listing_group_filter_product_channel.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/listing_group_filter_product_condition.proto b/google/ads/searchads360/v0/enums/listing_group_filter_product_condition.proto index 7afb7b4c6..a67d520ad 100644 --- a/google/ads/searchads360/v0/enums/listing_group_filter_product_condition.proto +++ b/google/ads/searchads360/v0/enums/listing_group_filter_product_condition.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/listing_group_filter_product_type_level.proto b/google/ads/searchads360/v0/enums/listing_group_filter_product_type_level.proto index dd741abc4..d7207f452 100644 --- a/google/ads/searchads360/v0/enums/listing_group_filter_product_type_level.proto +++ b/google/ads/searchads360/v0/enums/listing_group_filter_product_type_level.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/listing_group_filter_type_enum.proto b/google/ads/searchads360/v0/enums/listing_group_filter_type_enum.proto index fdf59536f..2a9131a48 100644 --- a/google/ads/searchads360/v0/enums/listing_group_filter_type_enum.proto +++ b/google/ads/searchads360/v0/enums/listing_group_filter_type_enum.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/listing_group_filter_vertical.proto b/google/ads/searchads360/v0/enums/listing_group_filter_vertical.proto index eb73a0061..472c3598d 100644 --- a/google/ads/searchads360/v0/enums/listing_group_filter_vertical.proto +++ b/google/ads/searchads360/v0/enums/listing_group_filter_vertical.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed 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/ads/searchads360/v0/enums/listing_group_type.proto b/google/ads/searchads360/v0/enums/listing_group_type.proto index 7e8d332a4..37e1b687b 100644 --- a/google/ads/searchads360/v0/enums/listing_group_type.proto +++ b/google/ads/searchads360/v0/enums/listing_group_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/location_group_radius_units.proto b/google/ads/searchads360/v0/enums/location_group_radius_units.proto index f78ce17ea..eb6008270 100644 --- a/google/ads/searchads360/v0/enums/location_group_radius_units.proto +++ b/google/ads/searchads360/v0/enums/location_group_radius_units.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/location_ownership_type.proto b/google/ads/searchads360/v0/enums/location_ownership_type.proto index bd98e2d96..01f40f074 100644 --- a/google/ads/searchads360/v0/enums/location_ownership_type.proto +++ b/google/ads/searchads360/v0/enums/location_ownership_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/manager_link_status.proto b/google/ads/searchads360/v0/enums/manager_link_status.proto index 616894bc6..cfdf03f0f 100644 --- a/google/ads/searchads360/v0/enums/manager_link_status.proto +++ b/google/ads/searchads360/v0/enums/manager_link_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/mime_type.proto b/google/ads/searchads360/v0/enums/mime_type.proto index b74cebce3..ccb0aba75 100644 --- a/google/ads/searchads360/v0/enums/mime_type.proto +++ b/google/ads/searchads360/v0/enums/mime_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/minute_of_hour.proto b/google/ads/searchads360/v0/enums/minute_of_hour.proto index d96124cbd..c65b171b7 100644 --- a/google/ads/searchads360/v0/enums/minute_of_hour.proto +++ b/google/ads/searchads360/v0/enums/minute_of_hour.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/mobile_app_vendor.proto b/google/ads/searchads360/v0/enums/mobile_app_vendor.proto index 4e13dd104..ec011f81d 100644 --- a/google/ads/searchads360/v0/enums/mobile_app_vendor.proto +++ b/google/ads/searchads360/v0/enums/mobile_app_vendor.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/negative_geo_target_type.proto b/google/ads/searchads360/v0/enums/negative_geo_target_type.proto index 094855dbc..470bf932e 100644 --- a/google/ads/searchads360/v0/enums/negative_geo_target_type.proto +++ b/google/ads/searchads360/v0/enums/negative_geo_target_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/optimization_goal_type.proto b/google/ads/searchads360/v0/enums/optimization_goal_type.proto index f1d81497f..f697d2480 100644 --- a/google/ads/searchads360/v0/enums/optimization_goal_type.proto +++ b/google/ads/searchads360/v0/enums/optimization_goal_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/positive_geo_target_type.proto b/google/ads/searchads360/v0/enums/positive_geo_target_type.proto index 54e5778a2..8d4a13447 100644 --- a/google/ads/searchads360/v0/enums/positive_geo_target_type.proto +++ b/google/ads/searchads360/v0/enums/positive_geo_target_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/product_bidding_category_level.proto b/google/ads/searchads360/v0/enums/product_bidding_category_level.proto index 368c5ddda..e2debd6e8 100644 --- a/google/ads/searchads360/v0/enums/product_bidding_category_level.proto +++ b/google/ads/searchads360/v0/enums/product_bidding_category_level.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/product_bidding_category_status.proto b/google/ads/searchads360/v0/enums/product_bidding_category_status.proto index 79a7782c4..d45800933 100644 --- a/google/ads/searchads360/v0/enums/product_bidding_category_status.proto +++ b/google/ads/searchads360/v0/enums/product_bidding_category_status.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/product_channel.proto b/google/ads/searchads360/v0/enums/product_channel.proto index f74c6fdc3..8b15a02e2 100644 --- a/google/ads/searchads360/v0/enums/product_channel.proto +++ b/google/ads/searchads360/v0/enums/product_channel.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/product_channel_exclusivity.proto b/google/ads/searchads360/v0/enums/product_channel_exclusivity.proto index f83c780b7..c7cc5152f 100644 --- a/google/ads/searchads360/v0/enums/product_channel_exclusivity.proto +++ b/google/ads/searchads360/v0/enums/product_channel_exclusivity.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/product_condition.proto b/google/ads/searchads360/v0/enums/product_condition.proto index 16306d468..d18fed700 100644 --- a/google/ads/searchads360/v0/enums/product_condition.proto +++ b/google/ads/searchads360/v0/enums/product_condition.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/quality_score_bucket.proto b/google/ads/searchads360/v0/enums/quality_score_bucket.proto index ab9b4bc81..7a91c9f65 100644 --- a/google/ads/searchads360/v0/enums/quality_score_bucket.proto +++ b/google/ads/searchads360/v0/enums/quality_score_bucket.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/search_ads360_field_category.proto b/google/ads/searchads360/v0/enums/search_ads360_field_category.proto index 4ec74e45e..90b957092 100644 --- a/google/ads/searchads360/v0/enums/search_ads360_field_category.proto +++ b/google/ads/searchads360/v0/enums/search_ads360_field_category.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/search_ads360_field_data_type.proto b/google/ads/searchads360/v0/enums/search_ads360_field_data_type.proto index 6998433d6..9db703e84 100644 --- a/google/ads/searchads360/v0/enums/search_ads360_field_data_type.proto +++ b/google/ads/searchads360/v0/enums/search_ads360_field_data_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/served_asset_field_type.proto b/google/ads/searchads360/v0/enums/served_asset_field_type.proto index 18ac58cc3..6959c18b3 100644 --- a/google/ads/searchads360/v0/enums/served_asset_field_type.proto +++ b/google/ads/searchads360/v0/enums/served_asset_field_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/summary_row_setting.proto b/google/ads/searchads360/v0/enums/summary_row_setting.proto index 34dc8a4ad..e35f0185c 100644 --- a/google/ads/searchads360/v0/enums/summary_row_setting.proto +++ b/google/ads/searchads360/v0/enums/summary_row_setting.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/target_impression_share_location.proto b/google/ads/searchads360/v0/enums/target_impression_share_location.proto index 1d1c90c26..0311e601b 100644 --- a/google/ads/searchads360/v0/enums/target_impression_share_location.proto +++ b/google/ads/searchads360/v0/enums/target_impression_share_location.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/targeting_dimension.proto b/google/ads/searchads360/v0/enums/targeting_dimension.proto index 83d9c0872..a5bcb24e0 100644 --- a/google/ads/searchads360/v0/enums/targeting_dimension.proto +++ b/google/ads/searchads360/v0/enums/targeting_dimension.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/user_list_type.proto b/google/ads/searchads360/v0/enums/user_list_type.proto index 9a0170429..9d99c5e6a 100644 --- a/google/ads/searchads360/v0/enums/user_list_type.proto +++ b/google/ads/searchads360/v0/enums/user_list_type.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/webpage_condition_operand.proto b/google/ads/searchads360/v0/enums/webpage_condition_operand.proto index 58edf13eb..3fc5430a1 100644 --- a/google/ads/searchads360/v0/enums/webpage_condition_operand.proto +++ b/google/ads/searchads360/v0/enums/webpage_condition_operand.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/enums/webpage_condition_operator.proto b/google/ads/searchads360/v0/enums/webpage_condition_operator.proto index 569a88290..e70476102 100644 --- a/google/ads/searchads360/v0/enums/webpage_condition_operator.proto +++ b/google/ads/searchads360/v0/enums/webpage_condition_operator.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/errors/authentication_error.proto b/google/ads/searchads360/v0/errors/authentication_error.proto index ea0d9023b..d2b40e14b 100644 --- a/google/ads/searchads360/v0/errors/authentication_error.proto +++ b/google/ads/searchads360/v0/errors/authentication_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/errors/authorization_error.proto b/google/ads/searchads360/v0/errors/authorization_error.proto index ad4a5c89e..206957468 100644 --- a/google/ads/searchads360/v0/errors/authorization_error.proto +++ b/google/ads/searchads360/v0/errors/authorization_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/errors/custom_column_error.proto b/google/ads/searchads360/v0/errors/custom_column_error.proto index 9023555d4..dee0b0d9d 100644 --- a/google/ads/searchads360/v0/errors/custom_column_error.proto +++ b/google/ads/searchads360/v0/errors/custom_column_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/errors/date_error.proto b/google/ads/searchads360/v0/errors/date_error.proto index 67fcf8a00..c081781b4 100644 --- a/google/ads/searchads360/v0/errors/date_error.proto +++ b/google/ads/searchads360/v0/errors/date_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/errors/date_range_error.proto b/google/ads/searchads360/v0/errors/date_range_error.proto index 4ab2bddae..d0626943e 100644 --- a/google/ads/searchads360/v0/errors/date_range_error.proto +++ b/google/ads/searchads360/v0/errors/date_range_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/errors/distinct_error.proto b/google/ads/searchads360/v0/errors/distinct_error.proto index 77d407fc8..d9a3c4ee2 100644 --- a/google/ads/searchads360/v0/errors/distinct_error.proto +++ b/google/ads/searchads360/v0/errors/distinct_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/errors/errors.proto b/google/ads/searchads360/v0/errors/errors.proto index d39892c73..7966fabc3 100644 --- a/google/ads/searchads360/v0/errors/errors.proto +++ b/google/ads/searchads360/v0/errors/errors.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -53,7 +53,7 @@ message SearchAds360Failure { string request_id = 2; } -// SearchAds360-specific error. +// Search Ads 360-specific error. message SearchAds360Error { // An enum value that indicates which error occurred. ErrorCode error_code = 1; diff --git a/google/ads/searchads360/v0/errors/header_error.proto b/google/ads/searchads360/v0/errors/header_error.proto index ff7696454..7119680c9 100644 --- a/google/ads/searchads360/v0/errors/header_error.proto +++ b/google/ads/searchads360/v0/errors/header_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/errors/internal_error.proto b/google/ads/searchads360/v0/errors/internal_error.proto index bb0584836..dfa016d51 100644 --- a/google/ads/searchads360/v0/errors/internal_error.proto +++ b/google/ads/searchads360/v0/errors/internal_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/errors/invalid_parameter_error.proto b/google/ads/searchads360/v0/errors/invalid_parameter_error.proto index db73d4c53..16207e234 100644 --- a/google/ads/searchads360/v0/errors/invalid_parameter_error.proto +++ b/google/ads/searchads360/v0/errors/invalid_parameter_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/errors/query_error.proto b/google/ads/searchads360/v0/errors/query_error.proto index 3bc632b54..01f3bd163 100644 --- a/google/ads/searchads360/v0/errors/query_error.proto +++ b/google/ads/searchads360/v0/errors/query_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/errors/quota_error.proto b/google/ads/searchads360/v0/errors/quota_error.proto index c3eed380f..b6139d386 100644 --- a/google/ads/searchads360/v0/errors/quota_error.proto +++ b/google/ads/searchads360/v0/errors/quota_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/errors/request_error.proto b/google/ads/searchads360/v0/errors/request_error.proto index eb4686ab4..d883901ba 100644 --- a/google/ads/searchads360/v0/errors/request_error.proto +++ b/google/ads/searchads360/v0/errors/request_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/errors/size_limit_error.proto b/google/ads/searchads360/v0/errors/size_limit_error.proto index 983819fe0..8d3419969 100644 --- a/google/ads/searchads360/v0/errors/size_limit_error.proto +++ b/google/ads/searchads360/v0/errors/size_limit_error.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/accessible_bidding_strategy.proto b/google/ads/searchads360/v0/resources/accessible_bidding_strategy.proto index ca92c01fe..9e29871ad 100644 --- a/google/ads/searchads360/v0/resources/accessible_bidding_strategy.proto +++ b/google/ads/searchads360/v0/resources/accessible_bidding_strategy.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/ad.proto b/google/ads/searchads360/v0/resources/ad.proto index c1c9b57f1..d6ace03d9 100644 --- a/google/ads/searchads360/v0/resources/ad.proto +++ b/google/ads/searchads360/v0/resources/ad.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/ad_group.proto b/google/ads/searchads360/v0/resources/ad_group.proto index 2d34a3a59..33aa7e2bf 100644 --- a/google/ads/searchads360/v0/resources/ad_group.proto +++ b/google/ads/searchads360/v0/resources/ad_group.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -101,6 +101,16 @@ message AdGroup { } ]; + // Output only. The resource names of effective labels attached to this ad + // group. An effective label is a label inherited or directly assigned to this + // ad group. + repeated string effective_labels = 66 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "searchads360.googleapis.com/AdGroupEffectiveLabel" + } + ]; + // Output only. ID of the ad group in the external engine account. This field // is for non-Google Ads account only, for example, Yahoo Japan, Microsoft, // Baidu etc. For Google Ads entity, use "ad_group.id" instead. diff --git a/google/ads/searchads360/v0/resources/ad_group_ad.proto b/google/ads/searchads360/v0/resources/ad_group_ad.proto index 772430bc2..bc0d83d84 100644 --- a/google/ads/searchads360/v0/resources/ad_group_ad.proto +++ b/google/ads/searchads360/v0/resources/ad_group_ad.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -71,8 +71,8 @@ message AdGroupAd { ]; // Output only. ID of the ad in the external engine account. This field is for - // SearchAds 360 account only, for example, Yahoo Japan, Microsoft, Baidu etc. - // For non-SearchAds 360 entity, use "ad_group_ad.ad.id" instead. + // Search Ads 360 account only, for example, Yahoo Japan, Microsoft, Baidu + // etc. For non-Search Ads 360 entity, use "ad_group_ad.ad.id" instead. string engine_id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Additional status of the ad in the external engine account. diff --git a/google/ads/searchads360/v0/resources/ad_group_ad_label.proto b/google/ads/searchads360/v0/resources/ad_group_ad_label.proto index ae4a636c5..65e20312b 100644 --- a/google/ads/searchads360/v0/resources/ad_group_ad_label.proto +++ b/google/ads/searchads360/v0/resources/ad_group_ad_label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -62,4 +62,8 @@ message AdGroupAdLabel { type: "searchads360.googleapis.com/Label" } ]; + + // Output only. The ID of the Customer which owns the label. + optional int64 owner_customer_id = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/searchads360/v0/resources/ad_group_asset.proto b/google/ads/searchads360/v0/resources/ad_group_asset.proto index 1cf78d4b9..ff9186fa1 100644 --- a/google/ads/searchads360/v0/resources/ad_group_asset.proto +++ b/google/ads/searchads360/v0/resources/ad_group_asset.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/ad_group_asset_set.proto b/google/ads/searchads360/v0/resources/ad_group_asset_set.proto index 553804e9a..969e3d9eb 100644 --- a/google/ads/searchads360/v0/resources/ad_group_asset_set.proto +++ b/google/ads/searchads360/v0/resources/ad_group_asset_set.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/ad_group_audience_view.proto b/google/ads/searchads360/v0/resources/ad_group_audience_view.proto index daf24cfa4..a2a1e3e69 100644 --- a/google/ads/searchads360/v0/resources/ad_group_audience_view.proto +++ b/google/ads/searchads360/v0/resources/ad_group_audience_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/ad_group_bid_modifier.proto b/google/ads/searchads360/v0/resources/ad_group_bid_modifier.proto index fa3501a9c..6bd087c69 100644 --- a/google/ads/searchads360/v0/resources/ad_group_bid_modifier.proto +++ b/google/ads/searchads360/v0/resources/ad_group_bid_modifier.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/ad_group_criterion.proto b/google/ads/searchads360/v0/resources/ad_group_criterion.proto index 68d62bb98..d360d589d 100644 --- a/google/ads/searchads360/v0/resources/ad_group_criterion.proto +++ b/google/ads/searchads360/v0/resources/ad_group_criterion.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/ad_group_criterion_label.proto b/google/ads/searchads360/v0/resources/ad_group_criterion_label.proto index 868b89f1e..3c46fa3a8 100644 --- a/google/ads/searchads360/v0/resources/ad_group_criterion_label.proto +++ b/google/ads/searchads360/v0/resources/ad_group_criterion_label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -62,4 +62,8 @@ message AdGroupCriterionLabel { type: "searchads360.googleapis.com/Label" } ]; + + // Output only. The ID of the Customer which owns the label. + optional int64 owner_customer_id = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/searchads360/v0/resources/ad_group_effective_label.proto b/google/ads/searchads360/v0/resources/ad_group_effective_label.proto new file mode 100644 index 000000000..61b70fda6 --- /dev/null +++ b/google/ads/searchads360/v0/resources/ad_group_effective_label.proto @@ -0,0 +1,73 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.searchads360.v0.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.SearchAds360.V0.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/searchads360/v0/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "AdGroupEffectiveLabelProto"; +option java_package = "com.google.ads.searchads360.v0.resources"; +option objc_class_prefix = "GASA360"; +option php_namespace = "Google\\Ads\\SearchAds360\\V0\\Resources"; +option ruby_package = "Google::Ads::SearchAds360::V0::Resources"; + +// Proto file describing the ad group effective label resource. + +// A relationship between an ad group and an effective label. +// An effective label is a label inherited or directly assigned to this +// ad group. +message AdGroupEffectiveLabel { + option (google.api.resource) = { + type: "searchads360.googleapis.com/AdGroupEffectiveLabel" + pattern: "customers/{customer_id}/adGroupEffectiveLabels/{ad_group_id}~{label_id}" + plural: "adGroupEffectiveLabels" + singular: "adGroupEffectiveLabel" + }; + + // Immutable. The resource name of the ad group effective label. + // Ad group effective label resource names have the form: + // `customers/{customer_id}/adGroupEffectiveLabels/{ad_group_id}~{label_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "searchads360.googleapis.com/AdGroupEffectiveLabel" + } + ]; + + // Immutable. The ad group to which the effective label is attached. + optional string ad_group = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "searchads360.googleapis.com/AdGroup" + } + ]; + + // Immutable. The effective label assigned to the ad group. + optional string label = 3 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "searchads360.googleapis.com/Label" + } + ]; + + // Output only. The ID of the Customer which owns the effective label. + optional int64 owner_customer_id = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/searchads360/v0/resources/ad_group_label.proto b/google/ads/searchads360/v0/resources/ad_group_label.proto index b1aa69bad..6233bc4e3 100644 --- a/google/ads/searchads360/v0/resources/ad_group_label.proto +++ b/google/ads/searchads360/v0/resources/ad_group_label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -62,4 +62,8 @@ message AdGroupLabel { type: "searchads360.googleapis.com/Label" } ]; + + // Output only. The ID of the Customer which owns the label. + optional int64 owner_customer_id = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/searchads360/v0/resources/age_range_view.proto b/google/ads/searchads360/v0/resources/age_range_view.proto index b1d2af245..9d77bef71 100644 --- a/google/ads/searchads360/v0/resources/age_range_view.proto +++ b/google/ads/searchads360/v0/resources/age_range_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/asset.proto b/google/ads/searchads360/v0/resources/asset.proto index 8923bb587..5efaa6732 100644 --- a/google/ads/searchads360/v0/resources/asset.proto +++ b/google/ads/searchads360/v0/resources/asset.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/asset_group.proto b/google/ads/searchads360/v0/resources/asset_group.proto index 5e5c724d5..efddbe959 100644 --- a/google/ads/searchads360/v0/resources/asset_group.proto +++ b/google/ads/searchads360/v0/resources/asset_group.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/asset_group_asset.proto b/google/ads/searchads360/v0/resources/asset_group_asset.proto index d78de7f9e..3b044a04b 100644 --- a/google/ads/searchads360/v0/resources/asset_group_asset.proto +++ b/google/ads/searchads360/v0/resources/asset_group_asset.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/asset_group_listing_group_filter.proto b/google/ads/searchads360/v0/resources/asset_group_listing_group_filter.proto index ac96115af..10f956198 100644 --- a/google/ads/searchads360/v0/resources/asset_group_listing_group_filter.proto +++ b/google/ads/searchads360/v0/resources/asset_group_listing_group_filter.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/asset_group_signal.proto b/google/ads/searchads360/v0/resources/asset_group_signal.proto index 0ac8783fc..1a2b45a8c 100644 --- a/google/ads/searchads360/v0/resources/asset_group_signal.proto +++ b/google/ads/searchads360/v0/resources/asset_group_signal.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/asset_group_top_combination_view.proto b/google/ads/searchads360/v0/resources/asset_group_top_combination_view.proto index 281254d77..cd375795d 100644 --- a/google/ads/searchads360/v0/resources/asset_group_top_combination_view.proto +++ b/google/ads/searchads360/v0/resources/asset_group_top_combination_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/asset_set.proto b/google/ads/searchads360/v0/resources/asset_set.proto index cba6ec9f8..65328e17e 100644 --- a/google/ads/searchads360/v0/resources/asset_set.proto +++ b/google/ads/searchads360/v0/resources/asset_set.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/asset_set_asset.proto b/google/ads/searchads360/v0/resources/asset_set_asset.proto index 99baefd6e..ff76b9cf4 100644 --- a/google/ads/searchads360/v0/resources/asset_set_asset.proto +++ b/google/ads/searchads360/v0/resources/asset_set_asset.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/audience.proto b/google/ads/searchads360/v0/resources/audience.proto index d6c7eb395..e94ce292a 100644 --- a/google/ads/searchads360/v0/resources/audience.proto +++ b/google/ads/searchads360/v0/resources/audience.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/bidding_strategy.proto b/google/ads/searchads360/v0/resources/bidding_strategy.proto index 3d5685839..74c02d80b 100644 --- a/google/ads/searchads360/v0/resources/bidding_strategy.proto +++ b/google/ads/searchads360/v0/resources/bidding_strategy.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/campaign.proto b/google/ads/searchads360/v0/resources/campaign.proto index 5b9d81c10..1224b808a 100644 --- a/google/ads/searchads360/v0/resources/campaign.proto +++ b/google/ads/searchads360/v0/resources/campaign.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -144,7 +144,8 @@ message Campaign { // AdvertisingChannelType and APP_CAMPAIGN or APP_CAMPAIGN_FOR_ENGAGEMENT as // AdvertisingChannelSubType. message SelectiveOptimization { - // The selected set of conversion actions for optimizing this campaign. + // The selected set of resource names for conversion actions for optimizing + // this campaign. repeated string conversion_actions = 2 [(google.api.resource_reference) = { type: "searchads360.googleapis.com/ConversionAction" }]; @@ -246,6 +247,16 @@ message Campaign { // The setting for ads geotargeting. GeoTargetTypeSetting geo_target_type_setting = 47; + // Output only. The resource names of effective labels attached to this + // campaign. An effective label is a label inherited or directly assigned to + // this campaign. + repeated string effective_labels = 95 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "searchads360.googleapis.com/CampaignEffectiveLabel" + } + ]; + // Output only. The resource names of labels attached to this campaign. repeated string labels = 61 [ (google.api.field_behavior) = OUTPUT_ONLY, @@ -254,7 +265,7 @@ message Campaign { } ]; - // The budget of the campaign. + // The resource name of the campaign budget of the campaign. optional string campaign_budget = 62 [(google.api.resource_reference) = { type: "searchads360.googleapis.com/CampaignBudget" }]; @@ -355,7 +366,7 @@ message 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. + // The resource name of the portfolio bidding strategy used by the campaign. string bidding_strategy = 67 [(google.api.resource_reference) = { type: "searchads360.googleapis.com/BiddingStrategy" }]; diff --git a/google/ads/searchads360/v0/resources/campaign_asset.proto b/google/ads/searchads360/v0/resources/campaign_asset.proto index b8d2e290b..90290ed64 100644 --- a/google/ads/searchads360/v0/resources/campaign_asset.proto +++ b/google/ads/searchads360/v0/resources/campaign_asset.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/campaign_asset_set.proto b/google/ads/searchads360/v0/resources/campaign_asset_set.proto index e84552e67..c4de731c0 100644 --- a/google/ads/searchads360/v0/resources/campaign_asset_set.proto +++ b/google/ads/searchads360/v0/resources/campaign_asset_set.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/campaign_audience_view.proto b/google/ads/searchads360/v0/resources/campaign_audience_view.proto index 61291c091..647ef94d1 100644 --- a/google/ads/searchads360/v0/resources/campaign_audience_view.proto +++ b/google/ads/searchads360/v0/resources/campaign_audience_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/campaign_budget.proto b/google/ads/searchads360/v0/resources/campaign_budget.proto index e4415f8c5..a25a9ab14 100644 --- a/google/ads/searchads360/v0/resources/campaign_budget.proto +++ b/google/ads/searchads360/v0/resources/campaign_budget.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/campaign_criterion.proto b/google/ads/searchads360/v0/resources/campaign_criterion.proto index 9174327c1..53f803d93 100644 --- a/google/ads/searchads360/v0/resources/campaign_criterion.proto +++ b/google/ads/searchads360/v0/resources/campaign_criterion.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/campaign_effective_label.proto b/google/ads/searchads360/v0/resources/campaign_effective_label.proto new file mode 100644 index 000000000..4a6d1a573 --- /dev/null +++ b/google/ads/searchads360/v0/resources/campaign_effective_label.proto @@ -0,0 +1,73 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ads.searchads360.v0.resources; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Ads.SearchAds360.V0.Resources"; +option go_package = "google.golang.org/genproto/googleapis/ads/searchads360/v0/resources;resources"; +option java_multiple_files = true; +option java_outer_classname = "CampaignEffectiveLabelProto"; +option java_package = "com.google.ads.searchads360.v0.resources"; +option objc_class_prefix = "GASA360"; +option php_namespace = "Google\\Ads\\SearchAds360\\V0\\Resources"; +option ruby_package = "Google::Ads::SearchAds360::V0::Resources"; + +// Proto file describing the campaign effective label resource. + +// Represents a relationship between a campaign and an effective label. +// An effective label is a label inherited or directly assigned to this +// campaign. +message CampaignEffectiveLabel { + option (google.api.resource) = { + type: "searchads360.googleapis.com/CampaignEffectiveLabel" + pattern: "customers/{customer_id}/campaignEffectiveLabels/{campaign_id}~{label_id}" + plural: "campaignEffectiveLabels" + singular: "campaignEffectiveLabel" + }; + + // Immutable. Name of the resource. + // CampaignEffectivelabel resource names have the form: + // `customers/{customer_id}/campaignEffectiveLabels/{campaign_id}~{label_id}` + string resource_name = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "searchads360.googleapis.com/CampaignEffectiveLabel" + } + ]; + + // Immutable. The campaign to which the effective label is attached. + optional string campaign = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "searchads360.googleapis.com/Campaign" + } + ]; + + // Immutable. The effective label assigned to the campaign. + optional string label = 3 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "searchads360.googleapis.com/Label" + } + ]; + + // Output only. The ID of the Customer which owns the effective label. + optional int64 owner_customer_id = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/ads/searchads360/v0/resources/campaign_label.proto b/google/ads/searchads360/v0/resources/campaign_label.proto index 45207bee0..3a9c17096 100644 --- a/google/ads/searchads360/v0/resources/campaign_label.proto +++ b/google/ads/searchads360/v0/resources/campaign_label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -62,4 +62,8 @@ message CampaignLabel { type: "searchads360.googleapis.com/Label" } ]; + + // Output only. The ID of the Customer which owns the label. + optional int64 owner_customer_id = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/searchads360/v0/resources/cart_data_sales_view.proto b/google/ads/searchads360/v0/resources/cart_data_sales_view.proto index e9d4286f7..daa8e25fc 100644 --- a/google/ads/searchads360/v0/resources/cart_data_sales_view.proto +++ b/google/ads/searchads360/v0/resources/cart_data_sales_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/conversion.proto b/google/ads/searchads360/v0/resources/conversion.proto index 9d860deb6..659ddc033 100644 --- a/google/ads/searchads360/v0/resources/conversion.proto +++ b/google/ads/searchads360/v0/resources/conversion.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 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,9 +59,9 @@ message Conversion { // criterion is unattributed. optional int64 criterion_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The SearchAds360 inventory account ID containing the product - // that was clicked on. SearchAds360 generates this ID when you link an - // inventory account in SearchAds360. + // Output only. The Search Ads 360 inventory account ID containing the product + // that was clicked on. Search Ads 360 generates this ID when you link an + // inventory account in Search Ads 360. optional int64 merchant_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Ad ID. A value of 0 indicates that the ad is unattributed. @@ -72,7 +72,7 @@ message Conversion { // parameter. optional string click_id = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The SearchAds360 visit ID that the conversion is attributed + // Output only. The Search Ads 360 visit ID that the conversion is attributed // to. optional int64 visit_id = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/google/ads/searchads360/v0/resources/conversion_action.proto b/google/ads/searchads360/v0/resources/conversion_action.proto index bd401821a..57458e536 100644 --- a/google/ads/searchads360/v0/resources/conversion_action.proto +++ b/google/ads/searchads360/v0/resources/conversion_action.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/conversion_custom_variable.proto b/google/ads/searchads360/v0/resources/conversion_custom_variable.proto index 35c5170c0..5da5f5cf0 100644 --- a/google/ads/searchads360/v0/resources/conversion_custom_variable.proto +++ b/google/ads/searchads360/v0/resources/conversion_custom_variable.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/custom_column.proto b/google/ads/searchads360/v0/resources/custom_column.proto index f872e0c9a..74263dd9a 100644 --- a/google/ads/searchads360/v0/resources/custom_column.proto +++ b/google/ads/searchads360/v0/resources/custom_column.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 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.ads.searchads360.v0.resources; +import "google/ads/searchads360/v0/enums/custom_column_render_type.proto"; import "google/ads/searchads360/v0/enums/custom_column_value_type.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; @@ -82,4 +83,10 @@ message CustomColumn { // referenced system columns of {"metrics.clicks", "metrics.impressions"}. repeated string referenced_system_columns = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. How the result value of the custom column should be + // interpreted. + google.ads.searchads360.v0.enums.CustomColumnRenderTypeEnum + .CustomColumnRenderType render_type = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/searchads360/v0/resources/customer.proto b/google/ads/searchads360/v0/resources/customer.proto index db73c58df..01970b6cc 100644 --- a/google/ads/searchads360/v0/resources/customer.proto +++ b/google/ads/searchads360/v0/resources/customer.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/customer_asset.proto b/google/ads/searchads360/v0/resources/customer_asset.proto index 33d8ef6e5..c3f125a56 100644 --- a/google/ads/searchads360/v0/resources/customer_asset.proto +++ b/google/ads/searchads360/v0/resources/customer_asset.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/customer_asset_set.proto b/google/ads/searchads360/v0/resources/customer_asset_set.proto index 5c14aaff2..c2bb74915 100644 --- a/google/ads/searchads360/v0/resources/customer_asset_set.proto +++ b/google/ads/searchads360/v0/resources/customer_asset_set.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/customer_client.proto b/google/ads/searchads360/v0/resources/customer_client.proto index b427d1aff..a9495b25f 100644 --- a/google/ads/searchads360/v0/resources/customer_client.proto +++ b/google/ads/searchads360/v0/resources/customer_client.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/customer_manager_link.proto b/google/ads/searchads360/v0/resources/customer_manager_link.proto index 799ee5fc6..e47b889d2 100644 --- a/google/ads/searchads360/v0/resources/customer_manager_link.proto +++ b/google/ads/searchads360/v0/resources/customer_manager_link.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -63,4 +63,9 @@ message CustomerManagerLink { // Status of the link between the customer and the manager. google.ads.searchads360.v0.enums.ManagerLinkStatusEnum.ManagerLinkStatus status = 5; + + // Output only. The timestamp when the CustomerManagerLink was created. The + // timestamp is in the customer's time zone and in "yyyy-MM-dd HH:mm:ss" + // format. + optional string start_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/ads/searchads360/v0/resources/dynamic_search_ads_search_term_view.proto b/google/ads/searchads360/v0/resources/dynamic_search_ads_search_term_view.proto index ffa2672d0..05bc1aa20 100644 --- a/google/ads/searchads360/v0/resources/dynamic_search_ads_search_term_view.proto +++ b/google/ads/searchads360/v0/resources/dynamic_search_ads_search_term_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/gender_view.proto b/google/ads/searchads360/v0/resources/gender_view.proto index 232f7b86e..37fb98736 100644 --- a/google/ads/searchads360/v0/resources/gender_view.proto +++ b/google/ads/searchads360/v0/resources/gender_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/geo_target_constant.proto b/google/ads/searchads360/v0/resources/geo_target_constant.proto index 8025d056f..43455d0e4 100644 --- a/google/ads/searchads360/v0/resources/geo_target_constant.proto +++ b/google/ads/searchads360/v0/resources/geo_target_constant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/keyword_view.proto b/google/ads/searchads360/v0/resources/keyword_view.proto index ead38073e..706790373 100644 --- a/google/ads/searchads360/v0/resources/keyword_view.proto +++ b/google/ads/searchads360/v0/resources/keyword_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/label.proto b/google/ads/searchads360/v0/resources/label.proto index facc77961..e568211ae 100644 --- a/google/ads/searchads360/v0/resources/label.proto +++ b/google/ads/searchads360/v0/resources/label.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/language_constant.proto b/google/ads/searchads360/v0/resources/language_constant.proto index 16b16acb3..6f7235c7c 100644 --- a/google/ads/searchads360/v0/resources/language_constant.proto +++ b/google/ads/searchads360/v0/resources/language_constant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/location_view.proto b/google/ads/searchads360/v0/resources/location_view.proto index 93b692aff..a67a32ceb 100644 --- a/google/ads/searchads360/v0/resources/location_view.proto +++ b/google/ads/searchads360/v0/resources/location_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/product_bidding_category_constant.proto b/google/ads/searchads360/v0/resources/product_bidding_category_constant.proto index 8d3cb86aa..39aea0173 100644 --- a/google/ads/searchads360/v0/resources/product_bidding_category_constant.proto +++ b/google/ads/searchads360/v0/resources/product_bidding_category_constant.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/product_group_view.proto b/google/ads/searchads360/v0/resources/product_group_view.proto index ef52c26dc..ac673b9cd 100644 --- a/google/ads/searchads360/v0/resources/product_group_view.proto +++ b/google/ads/searchads360/v0/resources/product_group_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/search_ads360_field.proto b/google/ads/searchads360/v0/resources/search_ads360_field.proto index eca318ffa..ee4bfc2da 100644 --- a/google/ads/searchads360/v0/resources/search_ads360_field.proto +++ b/google/ads/searchads360/v0/resources/search_ads360_field.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/shopping_performance_view.proto b/google/ads/searchads360/v0/resources/shopping_performance_view.proto index 81ae296b5..c3fe4be36 100644 --- a/google/ads/searchads360/v0/resources/shopping_performance_view.proto +++ b/google/ads/searchads360/v0/resources/shopping_performance_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/user_list.proto b/google/ads/searchads360/v0/resources/user_list.proto index 5cdfa52e6..dcd4672b0 100644 --- a/google/ads/searchads360/v0/resources/user_list.proto +++ b/google/ads/searchads360/v0/resources/user_list.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/resources/visit.proto b/google/ads/searchads360/v0/resources/visit.proto index 84c885fb2..3dc16b948 100644 --- a/google/ads/searchads360/v0/resources/visit.proto +++ b/google/ads/searchads360/v0/resources/visit.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed 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/ads/searchads360/v0/resources/webpage_view.proto b/google/ads/searchads360/v0/resources/webpage_view.proto index b7fdf91e2..a02db8c8f 100644 --- a/google/ads/searchads360/v0/resources/webpage_view.proto +++ b/google/ads/searchads360/v0/resources/webpage_view.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/services/custom_column_service.proto b/google/ads/searchads360/v0/services/custom_column_service.proto index 58cc196e5..296086f81 100644 --- a/google/ads/searchads360/v0/services/custom_column_service.proto +++ b/google/ads/searchads360/v0/services/custom_column_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed 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/ads/searchads360/v0/services/customer_service.proto b/google/ads/searchads360/v0/services/customer_service.proto index 41394d689..d98c4ab5d 100644 --- a/google/ads/searchads360/v0/services/customer_service.proto +++ b/google/ads/searchads360/v0/services/customer_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/services/search_ads360_field_service.proto b/google/ads/searchads360/v0/services/search_ads360_field_service.proto index b75bd8797..5e0a41568 100644 --- a/google/ads/searchads360/v0/services/search_ads360_field_service.proto +++ b/google/ads/searchads360/v0/services/search_ads360_field_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google/ads/searchads360/v0/services/search_ads360_service.proto b/google/ads/searchads360/v0/services/search_ads360_service.proto index 06983f246..7505c2799 100644 --- a/google/ads/searchads360/v0/services/search_ads360_service.proto +++ b/google/ads/searchads360/v0/services/search_ads360_service.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -30,6 +30,7 @@ import "google/ads/searchads360/v0/resources/ad_group_audience_view.proto"; import "google/ads/searchads360/v0/resources/ad_group_bid_modifier.proto"; import "google/ads/searchads360/v0/resources/ad_group_criterion.proto"; import "google/ads/searchads360/v0/resources/ad_group_criterion_label.proto"; +import "google/ads/searchads360/v0/resources/ad_group_effective_label.proto"; import "google/ads/searchads360/v0/resources/ad_group_label.proto"; import "google/ads/searchads360/v0/resources/age_range_view.proto"; import "google/ads/searchads360/v0/resources/asset.proto"; @@ -48,6 +49,7 @@ import "google/ads/searchads360/v0/resources/campaign_asset_set.proto"; import "google/ads/searchads360/v0/resources/campaign_audience_view.proto"; import "google/ads/searchads360/v0/resources/campaign_budget.proto"; import "google/ads/searchads360/v0/resources/campaign_criterion.proto"; +import "google/ads/searchads360/v0/resources/campaign_effective_label.proto"; import "google/ads/searchads360/v0/resources/campaign_label.proto"; import "google/ads/searchads360/v0/resources/cart_data_sales_view.proto"; import "google/ads/searchads360/v0/resources/conversion.proto"; @@ -298,6 +300,10 @@ message SearchAds360Row { google.ads.searchads360.v0.resources.AdGroupCriterionLabel ad_group_criterion_label = 121; + // The ad group effective label referenced in the query. + google.ads.searchads360.v0.resources.AdGroupEffectiveLabel + ad_group_effective_label = 231; + // The ad group label referenced in the query. google.ads.searchads360.v0.resources.AdGroupLabel ad_group_label = 115; @@ -355,6 +361,10 @@ message SearchAds360Row { google.ads.searchads360.v0.resources.CampaignCriterion campaign_criterion = 20; + // The campaign effective label referenced in the query. + google.ads.searchads360.v0.resources.CampaignEffectiveLabel + campaign_effective_label = 229; + // The campaign label referenced in the query. google.ads.searchads360.v0.resources.CampaignLabel campaign_label = 108; diff --git a/google/ai/generativelanguage/v1/generative_service.proto b/google/ai/generativelanguage/v1/generative_service.proto index 67399d8b4..710ad0d94 100644 --- a/google/ai/generativelanguage/v1/generative_service.proto +++ b/google/ai/generativelanguage/v1/generative_service.proto @@ -34,13 +34,13 @@ option java_package = "com.google.ai.generativelanguage.v1"; service GenerativeService { option (google.api.default_host) = "generativelanguage.googleapis.com"; - // Generates a response from the model given an input - // `GenerateContentRequest`. - // - // Input capabilities differ between models, including tuned models. See the - // [model guide](https://ai.google.dev/models/gemini) and - // [tuning guide](https://ai.google.dev/docs/model_tuning_guidance) for - // details. + // Generates a model response given an input `GenerateContentRequest`. + // Refer to the [text generation + // guide](https://ai.google.dev/gemini-api/docs/text-generation) for detailed + // usage information. Input capabilities differ between models, including + // tuned models. Refer to the [model + // guide](https://ai.google.dev/gemini-api/docs/models/gemini) and [tuning + // guide](https://ai.google.dev/gemini-api/docs/model-tuning) for details. rpc GenerateContent(GenerateContentRequest) returns (GenerateContentResponse) { option (google.api.http) = { @@ -54,8 +54,9 @@ service GenerativeService { option (google.api.method_signature) = "model,contents"; } - // Generates a streamed response from the model given an input - // `GenerateContentRequest`. + // Generates a [streamed + // response](https://ai.google.dev/gemini-api/docs/text-generation?lang=python#generate-a-text-stream) + // from the model given an input `GenerateContentRequest`. rpc StreamGenerateContent(GenerateContentRequest) returns (stream GenerateContentResponse) { option (google.api.http) = { @@ -65,7 +66,9 @@ service GenerativeService { option (google.api.method_signature) = "model,contents"; } - // Generates an embedding from the model given an input `Content`. + // Generates a text embedding vector from the input `Content` using the + // specified [Gemini Embedding + // model](https://ai.google.dev/gemini-api/docs/models/gemini#text-embedding). rpc EmbedContent(EmbedContentRequest) returns (EmbedContentResponse) { option (google.api.http) = { post: "/v1/{model=models/*}:embedContent" @@ -74,8 +77,9 @@ service GenerativeService { option (google.api.method_signature) = "model,content"; } - // Generates multiple embeddings from the model given input text in a - // synchronous call. + // Generates multiple embedding vectors from the input `Content` which + // consists of a batch of strings represented as `EmbedContentRequest` + // objects. rpc BatchEmbedContents(BatchEmbedContentsRequest) returns (BatchEmbedContentsResponse) { option (google.api.http) = { @@ -85,7 +89,9 @@ service GenerativeService { option (google.api.method_signature) = "model,requests"; } - // Runs a model's tokenizer on input content and returns the token count. + // Runs a model's tokenizer on input `Content` and returns the token count. + // Refer to the [tokens guide](https://ai.google.dev/gemini-api/docs/tokens) + // to learn more about tokens. rpc CountTokens(CountTokensRequest) returns (CountTokensResponse) { option (google.api.http) = { post: "/v1/{model=models/*}:countTokens" @@ -136,9 +142,10 @@ message GenerateContentRequest { // Required. The content of the current conversation with the model. // - // For single-turn queries, this is a single instance. For multi-turn queries, - // this is a repeated field that contains conversation history + latest - // request. + // For single-turn queries, this is a single instance. For multi-turn queries + // like [chat](https://ai.google.dev/gemini-api/docs/text-generation#chat), + // this is a repeated field that contains the conversation history and the + // latest request. repeated Content contents = 2 [(google.api.field_behavior) = REQUIRED]; // Optional. A list of unique `SafetySetting` instances for blocking unsafe @@ -153,7 +160,11 @@ message GenerateContentRequest { // `SafetyCategory` provided in the list, the API will use the default safety // setting for that category. Harm categories HARM_CATEGORY_HATE_SPEECH, // HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT, - // HARM_CATEGORY_HARASSMENT are supported. + // HARM_CATEGORY_HARASSMENT are supported. Refer to the + // [guide](https://ai.google.dev/gemini-api/docs/safety-settings) + // for detailed information on available safety settings. Also refer to the + // [Safety guidance](https://ai.google.dev/gemini-api/docs/safety-guidance) to + // learn how to incorporate safety considerations in your AI applications. repeated SafetySetting safety_settings = 3 [(google.api.field_behavior) = OPTIONAL]; @@ -163,7 +174,7 @@ message GenerateContentRequest { } // Configuration options for model generation and outputs. Not all parameters -// may be configurable for every model. +// are configurable for every model. message GenerationConfig { // Optional. Number of generated responses to return. // @@ -173,11 +184,11 @@ message GenerationConfig { // Optional. The set of character sequences (up to 5) that will stop output // generation. If specified, the API will stop at the first appearance of a - // stop sequence. The stop sequence will not be included as part of the + // `stop_sequence`. The stop sequence will not be included as part of the // response. repeated string stop_sequences = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The maximum number of tokens to include in a candidate. + // Optional. The maximum number of tokens to include in a response candidate. // // Note: The default value varies by model, see the `Model.output_token_limit` // attribute of the `Model` returned from the `getModel` function. @@ -194,59 +205,111 @@ message GenerationConfig { // Optional. The maximum cumulative probability of tokens to consider when // sampling. // - // The model uses combined Top-k and nucleus sampling. + // The model uses combined Top-k and Top-p (nucleus) sampling. // // Tokens are sorted based on their assigned probabilities so that only the // most likely tokens are considered. Top-k sampling directly limits the - // maximum number of tokens to consider, while Nucleus sampling limits number - // of tokens based on the cumulative probability. + // maximum number of tokens to consider, while Nucleus sampling limits the + // number of tokens based on the cumulative probability. // - // Note: The default value varies by model, see the `Model.top_p` - // attribute of the `Model` returned from the `getModel` function. + // Note: The default value varies by `Model` and is specified by + // the`Model.top_p` attribute returned from the `getModel` function. An empty + // `top_k` attribute indicates that the model doesn't apply top-k sampling + // and doesn't allow setting `top_k` on requests. optional float top_p = 6 [(google.api.field_behavior) = OPTIONAL]; // Optional. The maximum number of tokens to consider when sampling. // - // Models use nucleus sampling or combined Top-k and nucleus sampling. - // Top-k sampling considers the set of `top_k` most probable tokens. - // Models running with nucleus sampling don't allow top_k setting. + // Gemini models use Top-p (nucleus) sampling or a combination of Top-k and + // nucleus sampling. Top-k sampling considers the set of `top_k` most probable + // tokens. Models running with nucleus sampling don't allow top_k setting. // - // Note: The default value varies by model, see the `Model.top_k` - // attribute of the `Model` returned from the `getModel` function. Empty - // `top_k` field in `Model` indicates the model doesn't apply top-k sampling + // Note: The default value varies by `Model` and is specified by + // the`Model.top_p` attribute returned from the `getModel` function. An empty + // `top_k` attribute indicates that the model doesn't apply top-k sampling // and doesn't allow setting `top_k` on requests. optional int32 top_k = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Presence penalty applied to the next token's logprobs if the + // token has already been seen in the response. + // + // This penalty is binary on/off and not dependant on the number of times the + // token is used (after the first). Use + // [frequency_penalty][google.ai.generativelanguage.v1.GenerationConfig.frequency_penalty] + // for a penalty that increases with each use. + // + // A positive penalty will discourage the use of tokens that have already + // been used in the response, increasing the vocabulary. + // + // A negative penalty will encourage the use of tokens that have already been + // used in the response, decreasing the vocabulary. + optional float presence_penalty = 15 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Frequency penalty applied to the next token's logprobs, + // multiplied by the number of times each token has been seen in the respponse + // so far. + // + // A positive penalty will discourage the use of tokens that have already + // been used, proportional to the number of times the token has been used: + // The more a token is used, the more dificult it is for the model to use + // that token again increasing the vocabulary of responses. + // + // Caution: A _negative_ penalty will encourage the model to reuse tokens + // proportional to the number of times the token has been used. Small + // negative values will reduce the vocabulary of a response. Larger negative + // values will cause the model to start repeating a common token until it + // hits the + // [max_output_tokens][google.ai.generativelanguage.v1.GenerationConfig.max_output_tokens] + // limit: "...the the the the the...". + optional float frequency_penalty = 16 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If true, export the logprobs results in response. + optional bool response_logprobs = 17 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Only valid if + // [response_logprobs=True][google.ai.generativelanguage.v1.GenerationConfig.response_logprobs]. + // This sets the number of top logprobs to return at each decoding step in the + // [Candidate.logprobs_result][google.ai.generativelanguage.v1.Candidate.logprobs_result]. + optional int32 logprobs = 18 [(google.api.field_behavior) = OPTIONAL]; } -// Response from the model supporting multiple candidates. +// Response from the model supporting multiple candidate responses. // -// Note on safety ratings and content filtering. They are reported for both +// Safety ratings and content filtering are reported for both // prompt in `GenerateContentResponse.prompt_feedback` and for each candidate -// in `finish_reason` and in `safety_ratings`. The API contract is that: -// - either all requested candidates are returned or no candidates at all -// - no candidates are returned only if there was something wrong with the -// prompt (see `prompt_feedback`) -// - feedback on each candidate is reported on `finish_reason` and +// in `finish_reason` and in `safety_ratings`. The API: +// - Returns either all requested candidates or none of them +// - Returns no candidates at all only if there was something wrong with the +// prompt (check `prompt_feedback`) +// - Reports feedback on each candidate in `finish_reason` and // `safety_ratings`. message GenerateContentResponse { // A set of the feedback metadata the prompt specified in // `GenerateContentRequest.content`. message PromptFeedback { - // Specifies what was the reason why prompt was blocked. + // Specifies the reason why the prompt was blocked. enum BlockReason { // Default value. This value is unused. BLOCK_REASON_UNSPECIFIED = 0; - // Prompt was blocked due to safety reasons. You can inspect - // `safety_ratings` to understand which safety category blocked it. + // Prompt was blocked due to safety reasons. Inspect `safety_ratings` + // to understand which safety category blocked it. SAFETY = 1; - // Prompt was blocked due to unknown reaasons. + // Prompt was blocked due to unknown reasons. OTHER = 2; + + // Prompt was blocked due to the terms which are included from the + // terminology blocklist. + BLOCKLIST = 3; + + // Prompt was blocked due to prohibited content. + PROHIBITED_CONTENT = 4; } // Optional. If set, the prompt was blocked and no candidates are returned. - // Rephrase your prompt. + // Rephrase the prompt. BlockReason block_reason = 1 [(google.api.field_behavior) = OPTIONAL]; // Ratings for safety of the prompt. @@ -256,13 +319,16 @@ message GenerateContentResponse { // Metadata on the generation request's token usage. message UsageMetadata { - // Number of tokens in the prompt. + // Number of tokens in the prompt. When `cached_content` is set, this is + // still the total effective prompt size meaning this includes the number of + // tokens in the cached content. int32 prompt_token_count = 1; - // Total number of tokens across the generated candidates. + // Total number of tokens across all the generated response candidates. int32 candidates_token_count = 2; - // Total token count for the generation request (prompt + candidates). + // Total token count for the generation request (prompt + response + // candidates). int32 total_token_count = 3; } @@ -289,17 +355,34 @@ message Candidate { // The maximum number of tokens as specified in the request was reached. MAX_TOKENS = 2; - // The candidate content was flagged for safety reasons. + // The response candidate content was flagged for safety reasons. SAFETY = 3; - // The candidate content was flagged for recitation reasons. + // The response candidate content was flagged for recitation reasons. RECITATION = 4; + // The response candidate content was flagged for using an unsupported + // language. + LANGUAGE = 6; + // Unknown reason. OTHER = 5; + + // Token generation stopped because the content contains forbidden terms. + BLOCKLIST = 7; + + // Token generation stopped for potentially containing prohibited content. + PROHIBITED_CONTENT = 8; + + // Token generation stopped because the content potentially contains + // Sensitive Personally Identifiable Information (SPII). + SPII = 9; + + // The function call generated by the model is invalid. + MALFORMED_FUNCTION_CALL = 10; } - // Output only. Index of the candidate in the list of candidates. + // Output only. Index of the candidate in the list of response candidates. optional int32 index = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Generated content returned from the model. @@ -307,7 +390,7 @@ message Candidate { // Optional. Output only. The reason why the model stopped generating tokens. // - // If empty, the model has not stopped generating the tokens. + // If empty, the model has not stopped generating tokens. FinishReason finish_reason = 2 [ (google.api.field_behavior) = OPTIONAL, (google.api.field_behavior) = OUTPUT_ONLY @@ -328,6 +411,41 @@ message Candidate { // Output only. Token count for this candidate. int32 token_count = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. + double avg_logprobs = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Log-likelihood scores for the response tokens and top tokens + LogprobsResult logprobs_result = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Logprobs Result +message LogprobsResult { + // Candidate for the logprobs token and score. + message Candidate { + // The candidate’s token string value. + optional string token = 1; + + // The candidate’s token id value. + optional int32 token_id = 3; + + // The candidate's log probability. + optional float log_probability = 2; + } + + // Candidates with top log probabilities at each decoding step. + message TopCandidates { + // Sorted by log probability in descending order. + repeated Candidate candidates = 1; + } + + // Length = total number of decoding steps. + repeated TopCandidates top_candidates = 1; + + // Length = total number of decoding steps. + // The chosen candidates may or may not be in top_candidates. + repeated Candidate chosen_candidates = 2; } // Request containing the `Content` for the model to embed. @@ -362,8 +480,8 @@ message EmbedContentRequest { // Optional. Optional reduced dimension for the output embedding. If set, // excessive values in the output embedding are truncated from the end. - // Supported by newer models since 2024, and the earlier model - // (`models/embedding-001`) cannot specify this value. + // Supported by newer models since 2024 only. You cannot set this value if + // using the earlier model (`models/embedding-001`). optional int32 output_dimensionality = 5 [(google.api.field_behavior) = OPTIONAL]; } @@ -431,8 +549,14 @@ message CountTokensRequest { // when `generate_content_request` is set. repeated Content contents = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The overall input given to the model. CountTokens will count - // prompt, function calling, etc. + // Optional. The overall input given to the `Model`. This includes the prompt + // as well as other model steering information like [system + // instructions](https://ai.google.dev/gemini-api/docs/system-instructions), + // and/or function declarations for [function + // calling](https://ai.google.dev/gemini-api/docs/function-calling). + // `Model`s/`Content`s and `generate_content_request`s are mutually + // exclusive. You can either send `Model` + `Content`s or a + // `generate_content_request`, but never both. GenerateContentRequest generate_content_request = 3 [(google.api.field_behavior) = OPTIONAL]; } @@ -441,8 +565,7 @@ message CountTokensRequest { // // It returns the model's `token_count` for the `prompt`. message CountTokensResponse { - // The number of tokens that the `model` tokenizes the `prompt` into. - // - // Always non-negative. + // The number of tokens that the `Model` tokenizes the `prompt` into. Always + // non-negative. int32 total_tokens = 1; } diff --git a/google/ai/generativelanguage/v1/generativelanguage_v1.yaml b/google/ai/generativelanguage/v1/generativelanguage_v1.yaml index 33a2ad76c..958af3858 100644 --- a/google/ai/generativelanguage/v1/generativelanguage_v1.yaml +++ b/google/ai/generativelanguage/v1/generativelanguage_v1.yaml @@ -25,6 +25,8 @@ http: body: '*' - selector: google.longrunning.Operations.GetOperation get: '/v1/{name=tunedModels/*/operations/*}' + additional_bindings: + - get: '/v1/{name=generatedFiles/*}/operations/*' - selector: google.longrunning.Operations.ListOperations get: '/v1/{name=operations}' additional_bindings: diff --git a/google/ai/generativelanguage/v1/model.proto b/google/ai/generativelanguage/v1/model.proto index bb7945add..702b00e0b 100644 --- a/google/ai/generativelanguage/v1/model.proto +++ b/google/ai/generativelanguage/v1/model.proto @@ -31,7 +31,9 @@ message Model { pattern: "models/{model}" }; - // Required. The resource name of the `Model`. + // Required. The resource name of the `Model`. Refer to [Model + // variants](https://ai.google.dev/gemini-api/docs/models/gemini#model-variations) + // for all allowed values. // // Format: `models/{model}` with a `{model}` naming convention of: // @@ -39,22 +41,22 @@ message Model { // // Examples: // - // * `models/chat-bison-001` + // * `models/gemini-1.5-flash-001` string name = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The name of the base model, pass this to the generation request. // // Examples: // - // * `chat-bison` + // * `gemini-1.5-flash` string base_model_id = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The version number of the model. // - // This represents the major version + // This represents the major version (`1.0` or `1.5`) string version = 3 [(google.api.field_behavior) = REQUIRED]; - // The human-readable name of the model. E.g. "Chat Bison". + // The human-readable name of the model. E.g. "Gemini 1.5 Flash". // // The name can be up to 128 characters long and can consist of any UTF-8 // characters. @@ -71,20 +73,24 @@ message Model { // The model's supported generation methods. // - // The method names are defined as Pascal case - // strings, such as `generateMessage` which correspond to API methods. + // The corresponding API method names are defined as Pascal case + // strings, such as `generateMessage` and `generateContent`. repeated string supported_generation_methods = 8; // Controls the randomness of the output. // - // Values can range over `[0.0,1.0]`, inclusive. A value closer to `1.0` will - // produce responses that are more varied, while a value closer to `0.0` will - // typically result in less surprising responses from the model. + // Values can range over `[0.0,max_temperature]`, inclusive. A higher value + // will produce responses that are more varied, while a value closer to `0.0` + // will typically result in less surprising responses from the model. // This value specifies default to be used by the backend while making the // call to the model. optional float temperature = 9; - // For Nucleus sampling. + // The maximum temperature this model can use. + optional float max_temperature = 13; + + // For [Nucleus + // sampling](https://ai.google.dev/gemini-api/docs/prompting-strategies#top-p). // // Nucleus sampling considers the smallest set of tokens whose probability // sum is at least `top_p`. diff --git a/google/ai/generativelanguage/v1/model_service.proto b/google/ai/generativelanguage/v1/model_service.proto index 0e9162f42..a67f97ada 100644 --- a/google/ai/generativelanguage/v1/model_service.proto +++ b/google/ai/generativelanguage/v1/model_service.proto @@ -31,7 +31,12 @@ option java_package = "com.google.ai.generativelanguage.v1"; service ModelService { option (google.api.default_host) = "generativelanguage.googleapis.com"; - // Gets information about a specific Model. + // Gets information about a specific `Model` such as its version number, token + // limits, + // [parameters](https://ai.google.dev/gemini-api/docs/models/generative-models#model-parameters) + // and other metadata. Refer to the [Gemini models + // guide](https://ai.google.dev/gemini-api/docs/models/gemini) for detailed + // model information. rpc GetModel(GetModelRequest) returns (Model) { option (google.api.http) = { get: "/v1/{name=models/*}" @@ -39,7 +44,8 @@ service ModelService { option (google.api.method_signature) = "name"; } - // Lists models available through the API. + // Lists the [`Model`s](https://ai.google.dev/gemini-api/docs/models/gemini) + // available through the Gemini API. rpc ListModels(ListModelsRequest) returns (ListModelsResponse) { option (google.api.http) = { get: "/v1/models" @@ -67,8 +73,7 @@ message GetModelRequest { message ListModelsRequest { // The maximum number of `Models` to return (per page). // - // The service may return fewer models. - // If unspecified, at most 50 models will be returned per page. + // If unspecified, 50 models will be returned per page. // This method returns at most 1000 models per page, even if you pass a larger // page_size. int32 page_size = 2; diff --git a/google/ai/generativelanguage/v1/safety.proto b/google/ai/generativelanguage/v1/safety.proto index 3530b448e..0cc284bee 100644 --- a/google/ai/generativelanguage/v1/safety.proto +++ b/google/ai/generativelanguage/v1/safety.proto @@ -31,36 +31,41 @@ enum HarmCategory { // Category is unspecified. HARM_CATEGORY_UNSPECIFIED = 0; - // Negative or harmful comments targeting identity and/or protected attribute. + // **PaLM** - Negative or harmful comments targeting identity and/or protected + // attribute. HARM_CATEGORY_DEROGATORY = 1; - // Content that is rude, disrespectful, or profane. + // **PaLM** - Content that is rude, disrespectful, or profane. HARM_CATEGORY_TOXICITY = 2; - // Describes scenarios depicting violence against an individual or group, or - // general descriptions of gore. + // **PaLM** - Describes scenarios depicting violence against an individual or + // group, or general descriptions of gore. HARM_CATEGORY_VIOLENCE = 3; - // Contains references to sexual acts or other lewd content. + // **PaLM** - Contains references to sexual acts or other lewd content. HARM_CATEGORY_SEXUAL = 4; - // Promotes unchecked medical advice. + // **PaLM** - Promotes unchecked medical advice. HARM_CATEGORY_MEDICAL = 5; - // Dangerous content that promotes, facilitates, or encourages harmful acts. + // **PaLM** - Dangerous content that promotes, facilitates, or encourages + // harmful acts. HARM_CATEGORY_DANGEROUS = 6; - // Harasment content. + // **Gemini** - Harassment content. HARM_CATEGORY_HARASSMENT = 7; - // Hate speech and content. + // **Gemini** - Hate speech and content. HARM_CATEGORY_HATE_SPEECH = 8; - // Sexually explicit content. + // **Gemini** - Sexually explicit content. HARM_CATEGORY_SEXUALLY_EXPLICIT = 9; - // Dangerous content. + // **Gemini** - Dangerous content. HARM_CATEGORY_DANGEROUS_CONTENT = 10; + + // **Gemini** - Content that may be used to harm civic integrity. + HARM_CATEGORY_CIVIC_INTEGRITY = 11; } // Safety rating for a piece of content. @@ -123,6 +128,9 @@ message SafetySetting { // All content will be allowed. BLOCK_NONE = 4; + + // Turn off the safety filter. + OFF = 5; } // Required. The category for this setting. diff --git a/google/ai/generativelanguage/v1beta/BUILD.bazel b/google/ai/generativelanguage/v1beta/BUILD.bazel index cc4681c7e..21b1952a3 100644 --- a/google/ai/generativelanguage/v1beta/BUILD.bazel +++ b/google/ai/generativelanguage/v1beta/BUILD.bazel @@ -36,6 +36,7 @@ proto_library( "model_service.proto", "permission.proto", "permission_service.proto", + "prediction_service.proto", "retriever.proto", "retriever_service.proto", "safety.proto", @@ -121,6 +122,8 @@ java_gapic_test( "com.google.ai.generativelanguage.v1beta.ModelServiceClientTest", "com.google.ai.generativelanguage.v1beta.PermissionServiceClientHttpJsonTest", "com.google.ai.generativelanguage.v1beta.PermissionServiceClientTest", + "com.google.ai.generativelanguage.v1beta.PredictionServiceClientHttpJsonTest", + "com.google.ai.generativelanguage.v1beta.PredictionServiceClientTest", "com.google.ai.generativelanguage.v1beta.RetrieverServiceClientHttpJsonTest", "com.google.ai.generativelanguage.v1beta.RetrieverServiceClientTest", "com.google.ai.generativelanguage.v1beta.TextServiceClientHttpJsonTest", diff --git a/google/ai/generativelanguage/v1beta/content.proto b/google/ai/generativelanguage/v1beta/content.proto index 6368fe0f7..451752ed6 100644 --- a/google/ai/generativelanguage/v1beta/content.proto +++ b/google/ai/generativelanguage/v1beta/content.proto @@ -192,21 +192,51 @@ message Tool { // be used for function calling. // // The model or system does not execute the function. Instead the defined - // function may be returned as a [FunctionCall][content.part.function_call] - // with arguments to the client side for execution. The model may decide to - // call a subset of these functions by populating - // [FunctionCall][content.part.function_call] in the response. The next - // conversation turn may contain a - // [FunctionResponse][content.part.function_response] - // with the [content.role] "function" generation context for the next model - // turn. + // function may be returned as a + // [FunctionCall][google.ai.generativelanguage.v1beta.Part.function_call] with + // arguments to the client side for execution. The model may decide to call a + // subset of these functions by populating + // [FunctionCall][google.ai.generativelanguage.v1beta.Part.function_call] in + // the response. The next conversation turn may contain a + // [FunctionResponse][google.ai.generativelanguage.v1beta.Part.function_response] + // with the [Content.role][google.ai.generativelanguage.v1beta.Content.role] + // "function" generation context for the next model turn. repeated FunctionDeclaration function_declarations = 1 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Retrieval tool that is powered by Google search. + GoogleSearchRetrieval google_search_retrieval = 2 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. Enables the model to execute code as part of generation. CodeExecution code_execution = 3 [(google.api.field_behavior) = OPTIONAL]; } +// Tool to retrieve public web data for grounding, powered by Google. +message GoogleSearchRetrieval { + // Specifies the dynamic retrieval configuration for the given source. + DynamicRetrievalConfig dynamic_retrieval_config = 1; +} + +// Describes the options to customize dynamic retrieval. +message DynamicRetrievalConfig { + // The mode of the predictor to be used in dynamic retrieval. + enum Mode { + // Always trigger retrieval. + MODE_UNSPECIFIED = 0; + + // Run retrieval only when system decides it is necessary. + MODE_DYNAMIC = 1; + } + + // The mode of the predictor to be used in dynamic retrieval. + Mode mode = 1; + + // The threshold to be used in dynamic retrieval. + // If not set, a system default value is used. + optional float dynamic_threshold = 2; +} + // Tool that executes code generated by the model, and automatically returns // the result to the model. // @@ -321,6 +351,7 @@ message Schema { // datatypes. Supported formats: // for NUMBER type: float, double // for INTEGER type: int32, int64 + // for STRING type: enum string format = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. A brief description of the parameter. This could contain examples @@ -338,6 +369,12 @@ message Schema { // Optional. Schema of the elements of Type.ARRAY. optional Schema items = 6 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Maximum number of the elements for Type.ARRAY. + int64 max_items = 21 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Minimum number of the elements for Type.ARRAY. + int64 min_items = 22 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Properties of Type.OBJECT. map properties = 7 [(google.api.field_behavior) = OPTIONAL]; diff --git a/google/ai/generativelanguage/v1beta/generative_service.proto b/google/ai/generativelanguage/v1beta/generative_service.proto index 93a530dda..30f42f2c5 100644 --- a/google/ai/generativelanguage/v1beta/generative_service.proto +++ b/google/ai/generativelanguage/v1beta/generative_service.proto @@ -35,13 +35,13 @@ option java_package = "com.google.ai.generativelanguage.v1beta"; service GenerativeService { option (google.api.default_host) = "generativelanguage.googleapis.com"; - // Generates a response from the model given an input - // `GenerateContentRequest`. - // - // Input capabilities differ between models, including tuned models. See the - // [model guide](https://ai.google.dev/models/gemini) and - // [tuning guide](https://ai.google.dev/docs/model_tuning_guidance) for - // details. + // Generates a model response given an input `GenerateContentRequest`. + // Refer to the [text generation + // guide](https://ai.google.dev/gemini-api/docs/text-generation) for detailed + // usage information. Input capabilities differ between models, including + // tuned models. Refer to the [model + // guide](https://ai.google.dev/gemini-api/docs/models/gemini) and [tuning + // guide](https://ai.google.dev/gemini-api/docs/model-tuning) for details. rpc GenerateContent(GenerateContentRequest) returns (GenerateContentResponse) { option (google.api.http) = { @@ -66,8 +66,9 @@ service GenerativeService { "model,contents,safety_settings,answer_style"; } - // Generates a streamed response from the model given an input - // `GenerateContentRequest`. + // Generates a [streamed + // response](https://ai.google.dev/gemini-api/docs/text-generation?lang=python#generate-a-text-stream) + // from the model given an input `GenerateContentRequest`. rpc StreamGenerateContent(GenerateContentRequest) returns (stream GenerateContentResponse) { option (google.api.http) = { @@ -77,7 +78,9 @@ service GenerativeService { option (google.api.method_signature) = "model,contents"; } - // Generates an embedding from the model given an input `Content`. + // Generates a text embedding vector from the input `Content` using the + // specified [Gemini Embedding + // model](https://ai.google.dev/gemini-api/docs/models/gemini#text-embedding). rpc EmbedContent(EmbedContentRequest) returns (EmbedContentResponse) { option (google.api.http) = { post: "/v1beta/{model=models/*}:embedContent" @@ -86,8 +89,9 @@ service GenerativeService { option (google.api.method_signature) = "model,content"; } - // Generates multiple embeddings from the model given input text in a - // synchronous call. + // Generates multiple embedding vectors from the input `Content` which + // consists of a batch of strings represented as `EmbedContentRequest` + // objects. rpc BatchEmbedContents(BatchEmbedContentsRequest) returns (BatchEmbedContentsResponse) { option (google.api.http) = { @@ -97,7 +101,9 @@ service GenerativeService { option (google.api.method_signature) = "model,requests"; } - // Runs a model's tokenizer on input content and returns the token count. + // Runs a model's tokenizer on input `Content` and returns the token count. + // Refer to the [tokens guide](https://ai.google.dev/gemini-api/docs/tokens) + // to learn more about tokens. rpc CountTokens(CountTokensRequest) returns (CountTokensResponse) { option (google.api.http) = { post: "/v1beta/{model=models/*}:countTokens" @@ -146,27 +152,36 @@ message GenerateContentRequest { } ]; - // Optional. Developer set system instruction. Currently, text only. + // Optional. Developer set [system + // instruction(s)](https://ai.google.dev/gemini-api/docs/system-instructions). + // Currently, text only. optional Content system_instruction = 8 [(google.api.field_behavior) = OPTIONAL]; // Required. The content of the current conversation with the model. // - // For single-turn queries, this is a single instance. For multi-turn queries, - // this is a repeated field that contains conversation history + latest - // request. + // For single-turn queries, this is a single instance. For multi-turn queries + // like [chat](https://ai.google.dev/gemini-api/docs/text-generation#chat), + // this is a repeated field that contains the conversation history and the + // latest request. repeated Content contents = 2 [(google.api.field_behavior) = REQUIRED]; - // Optional. A list of `Tools` the model may use to generate the next + // Optional. A list of `Tools` the `Model` may use to generate the next // response. // // A `Tool` is a piece of code that enables the system to interact with // external systems to perform an action, or set of actions, outside of - // knowledge and scope of the model. The only supported tool is currently - // `Function`. + // knowledge and scope of the `Model`. Supported `Tool`s are `Function` and + // `code_execution`. Refer to the [Function + // calling](https://ai.google.dev/gemini-api/docs/function-calling) and the + // [Code execution](https://ai.google.dev/gemini-api/docs/code-execution) + // guides to learn more. repeated Tool tools = 5 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Tool configuration for any `Tool` specified in the request. + // Optional. Tool configuration for any `Tool` specified in the request. Refer + // to the [Function calling + // guide](https://ai.google.dev/gemini-api/docs/function-calling#function_calling_mode) + // for a usage example. ToolConfig tool_config = 7 [(google.api.field_behavior) = OPTIONAL]; // Optional. A list of unique `SafetySetting` instances for blocking unsafe @@ -181,7 +196,11 @@ message GenerateContentRequest { // `SafetyCategory` provided in the list, the API will use the default safety // setting for that category. Harm categories HARM_CATEGORY_HATE_SPEECH, // HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT, - // HARM_CATEGORY_HARASSMENT are supported. + // HARM_CATEGORY_HARASSMENT are supported. Refer to the + // [guide](https://ai.google.dev/gemini-api/docs/safety-settings) + // for detailed information on available safety settings. Also refer to the + // [Safety guidance](https://ai.google.dev/gemini-api/docs/safety-guidance) to + // learn how to incorporate safety considerations in your AI applications. repeated SafetySetting safety_settings = 3 [(google.api.field_behavior) = OPTIONAL]; @@ -189,10 +208,9 @@ message GenerateContentRequest { optional GenerationConfig generation_config = 4 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The name of the cached content used as context to serve the - // prediction. Note: only used in explicit caching, where users can have - // control over caching (e.g. what content to cache) and enjoy guaranteed cost - // savings. Format: `cachedContents/{cachedContent}` + // Optional. The name of the content + // [cached](https://ai.google.dev/gemini-api/docs/caching) to use as context + // to serve the prediction. Format: `cachedContents/{cachedContent}` optional string cached_content = 9 [ (google.api.field_behavior) = OPTIONAL, (google.api.resource_reference) = { @@ -202,7 +220,7 @@ message GenerateContentRequest { } // Configuration options for model generation and outputs. Not all parameters -// may be configurable for every model. +// are configurable for every model. message GenerationConfig { // Optional. Number of generated responses to return. // @@ -212,11 +230,11 @@ message GenerationConfig { // Optional. The set of character sequences (up to 5) that will stop output // generation. If specified, the API will stop at the first appearance of a - // stop sequence. The stop sequence will not be included as part of the + // `stop_sequence`. The stop sequence will not be included as part of the // response. repeated string stop_sequences = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The maximum number of tokens to include in a candidate. + // Optional. The maximum number of tokens to include in a response candidate. // // Note: The default value varies by model, see the `Model.output_token_limit` // attribute of the `Model` returned from the `getModel` function. @@ -233,55 +251,105 @@ message GenerationConfig { // Optional. The maximum cumulative probability of tokens to consider when // sampling. // - // The model uses combined Top-k and nucleus sampling. + // The model uses combined Top-k and Top-p (nucleus) sampling. // // Tokens are sorted based on their assigned probabilities so that only the // most likely tokens are considered. Top-k sampling directly limits the - // maximum number of tokens to consider, while Nucleus sampling limits number - // of tokens based on the cumulative probability. + // maximum number of tokens to consider, while Nucleus sampling limits the + // number of tokens based on the cumulative probability. // - // Note: The default value varies by model, see the `Model.top_p` - // attribute of the `Model` returned from the `getModel` function. + // Note: The default value varies by `Model` and is specified by + // the`Model.top_p` attribute returned from the `getModel` function. An empty + // `top_k` attribute indicates that the model doesn't apply top-k sampling + // and doesn't allow setting `top_k` on requests. optional float top_p = 6 [(google.api.field_behavior) = OPTIONAL]; // Optional. The maximum number of tokens to consider when sampling. // - // Models use nucleus sampling or combined Top-k and nucleus sampling. - // Top-k sampling considers the set of `top_k` most probable tokens. - // Models running with nucleus sampling don't allow top_k setting. + // Gemini models use Top-p (nucleus) sampling or a combination of Top-k and + // nucleus sampling. Top-k sampling considers the set of `top_k` most probable + // tokens. Models running with nucleus sampling don't allow top_k setting. // - // Note: The default value varies by model, see the `Model.top_k` - // attribute of the `Model` returned from the `getModel` function. Empty - // `top_k` field in `Model` indicates the model doesn't apply top-k sampling + // Note: The default value varies by `Model` and is specified by + // the`Model.top_p` attribute returned from the `getModel` function. An empty + // `top_k` attribute indicates that the model doesn't apply top-k sampling // and doesn't allow setting `top_k` on requests. optional int32 top_k = 7 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Output response mimetype of the generated candidate text. - // Supported mimetype: + // Optional. MIME type of the generated candidate text. + // Supported MIME types are: // `text/plain`: (default) Text output. - // `application/json`: JSON response in the candidates. + // `application/json`: JSON response in the response candidates. + // `text/x.enum`: ENUM as a string response in the response candidates. + // Refer to the + // [docs](https://ai.google.dev/gemini-api/docs/prompting_with_media#plain_text_formats) + // for a list of all supported text MIME types. string response_mime_type = 13 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Output response schema of the generated candidate text when - // response mime type can have schema. Schema can be objects, primitives or - // arrays and is a subset of [OpenAPI - // schema](https://spec.openapis.org/oas/v3.0.3#schema). + // Optional. Output schema of the generated candidate text. Schemas must be a + // subset of the [OpenAPI schema](https://spec.openapis.org/oas/v3.0.3#schema) + // and can be objects, primitives or arrays. // - // If set, a compatible response_mime_type must also be set. - // Compatible mimetypes: + // If set, a compatible `response_mime_type` must also be set. + // Compatible MIME types: // `application/json`: Schema for JSON response. + // Refer to the [JSON text generation + // guide](https://ai.google.dev/gemini-api/docs/json-mode) for more details. Schema response_schema = 14 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Presence penalty applied to the next token's logprobs if the + // token has already been seen in the response. + // + // This penalty is binary on/off and not dependant on the number of times the + // token is used (after the first). Use + // [frequency_penalty][google.ai.generativelanguage.v1beta.GenerationConfig.frequency_penalty] + // for a penalty that increases with each use. + // + // A positive penalty will discourage the use of tokens that have already + // been used in the response, increasing the vocabulary. + // + // A negative penalty will encourage the use of tokens that have already been + // used in the response, decreasing the vocabulary. + optional float presence_penalty = 15 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Frequency penalty applied to the next token's logprobs, + // multiplied by the number of times each token has been seen in the respponse + // so far. + // + // A positive penalty will discourage the use of tokens that have already + // been used, proportional to the number of times the token has been used: + // The more a token is used, the more dificult it is for the model to use + // that token again increasing the vocabulary of responses. + // + // Caution: A _negative_ penalty will encourage the model to reuse tokens + // proportional to the number of times the token has been used. Small + // negative values will reduce the vocabulary of a response. Larger negative + // values will cause the model to start repeating a common token until it + // hits the + // [max_output_tokens][google.ai.generativelanguage.v1beta.GenerationConfig.max_output_tokens] + // limit: "...the the the the the...". + optional float frequency_penalty = 16 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If true, export the logprobs results in response. + optional bool response_logprobs = 17 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Only valid if + // [response_logprobs=True][google.ai.generativelanguage.v1beta.GenerationConfig.response_logprobs]. + // This sets the number of top logprobs to return at each decoding step in the + // [Candidate.logprobs_result][google.ai.generativelanguage.v1beta.Candidate.logprobs_result]. + optional int32 logprobs = 18 [(google.api.field_behavior) = OPTIONAL]; } // Configuration for retrieving grounding content from a `Corpus` or // `Document` created using the Semantic Retriever API. message SemanticRetrieverConfig { - // Required. Name of the resource for retrieval, e.g. corpora/123 or - // corpora/123/documents/abc. + // Required. Name of the resource for retrieval. Example: `corpora/123` or + // `corpora/123/documents/abc`. string source = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. Query to use for similarity matching `Chunk`s in the given - // resource. + // Required. Query to use for matching `Chunk`s in the given resource by + // similarity. Content query = 2 [(google.api.field_behavior) = REQUIRED]; // Optional. Filters for selecting `Document`s and/or `Chunk`s from the @@ -297,35 +365,42 @@ message SemanticRetrieverConfig { [(google.api.field_behavior) = OPTIONAL]; } -// Response from the model supporting multiple candidates. +// Response from the model supporting multiple candidate responses. // -// Note on safety ratings and content filtering. They are reported for both +// Safety ratings and content filtering are reported for both // prompt in `GenerateContentResponse.prompt_feedback` and for each candidate -// in `finish_reason` and in `safety_ratings`. The API contract is that: -// - either all requested candidates are returned or no candidates at all -// - no candidates are returned only if there was something wrong with the -// prompt (see `prompt_feedback`) -// - feedback on each candidate is reported on `finish_reason` and +// in `finish_reason` and in `safety_ratings`. The API: +// - Returns either all requested candidates or none of them +// - Returns no candidates at all only if there was something wrong with the +// prompt (check `prompt_feedback`) +// - Reports feedback on each candidate in `finish_reason` and // `safety_ratings`. message GenerateContentResponse { // A set of the feedback metadata the prompt specified in // `GenerateContentRequest.content`. message PromptFeedback { - // Specifies what was the reason why prompt was blocked. + // Specifies the reason why the prompt was blocked. enum BlockReason { // Default value. This value is unused. BLOCK_REASON_UNSPECIFIED = 0; - // Prompt was blocked due to safety reasons. You can inspect - // `safety_ratings` to understand which safety category blocked it. + // Prompt was blocked due to safety reasons. Inspect `safety_ratings` + // to understand which safety category blocked it. SAFETY = 1; // Prompt was blocked due to unknown reasons. OTHER = 2; + + // Prompt was blocked due to the terms which are included from the + // terminology blocklist. + BLOCKLIST = 3; + + // Prompt was blocked due to prohibited content. + PROHIBITED_CONTENT = 4; } // Optional. If set, the prompt was blocked and no candidates are returned. - // Rephrase your prompt. + // Rephrase the prompt. BlockReason block_reason = 1 [(google.api.field_behavior) = OPTIONAL]; // Ratings for safety of the prompt. @@ -335,19 +410,19 @@ message GenerateContentResponse { // Metadata on the generation request's token usage. message UsageMetadata { - // Number of tokens in the prompt. When cached_content is set, this is still - // the total effective prompt size. I.e. this includes the number of tokens - // in the cached content. + // Number of tokens in the prompt. When `cached_content` is set, this is + // still the total effective prompt size meaning this includes the number of + // tokens in the cached content. int32 prompt_token_count = 1; - // Number of tokens in the cached part of the prompt, i.e. in the cached - // content. + // Number of tokens in the cached part of the prompt (the cached content) int32 cached_content_token_count = 4; - // Total number of tokens across the generated candidates. + // Total number of tokens across all the generated response candidates. int32 candidates_token_count = 2; - // Total token count for the generation request (prompt + candidates). + // Total token count for the generation request (prompt + response + // candidates). int32 total_token_count = 3; } @@ -374,17 +449,34 @@ message Candidate { // The maximum number of tokens as specified in the request was reached. MAX_TOKENS = 2; - // The candidate content was flagged for safety reasons. + // The response candidate content was flagged for safety reasons. SAFETY = 3; - // The candidate content was flagged for recitation reasons. + // The response candidate content was flagged for recitation reasons. RECITATION = 4; + // The response candidate content was flagged for using an unsupported + // language. + LANGUAGE = 6; + // Unknown reason. OTHER = 5; + + // Token generation stopped because the content contains forbidden terms. + BLOCKLIST = 7; + + // Token generation stopped for potentially containing prohibited content. + PROHIBITED_CONTENT = 8; + + // Token generation stopped because the content potentially contains + // Sensitive Personally Identifiable Information (SPII). + SPII = 9; + + // The function call generated by the model is invalid. + MALFORMED_FUNCTION_CALL = 10; } - // Output only. Index of the candidate in the list of candidates. + // Output only. Index of the candidate in the list of response candidates. optional int32 index = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Generated content returned from the model. @@ -392,7 +484,7 @@ message Candidate { // Optional. Output only. The reason why the model stopped generating tokens. // - // If empty, the model has not stopped generating the tokens. + // If empty, the model has not stopped generating tokens. FinishReason finish_reason = 2 [ (google.api.field_behavior) = OPTIONAL, (google.api.field_behavior) = OUTPUT_ONLY @@ -420,6 +512,47 @@ message Candidate { // This field is populated for `GenerateAnswer` calls. repeated GroundingAttribution grounding_attributions = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Grounding metadata for the candidate. + // + // This field is populated for `GenerateContent` calls. + GroundingMetadata grounding_metadata = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. + double avg_logprobs = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Log-likelihood scores for the response tokens and top tokens + LogprobsResult logprobs_result = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Logprobs Result +message LogprobsResult { + // Candidate for the logprobs token and score. + message Candidate { + // The candidate’s token string value. + optional string token = 1; + + // The candidate’s token id value. + optional int32 token_id = 3; + + // The candidate's log probability. + optional float log_probability = 2; + } + + // Candidates with top log probabilities at each decoding step. + message TopCandidates { + // Sorted by log probability in descending order. + repeated Candidate candidates = 1; + } + + // Length = total number of decoding steps. + repeated TopCandidates top_candidates = 1; + + // Length = total number of decoding steps. + // The chosen candidates may or may not be in top_candidates. + repeated Candidate chosen_candidates = 2; } // Identifier for the source contributing to this attribution. @@ -466,7 +599,97 @@ message GroundingAttribution { Content content = 2; } -// Request to generate a grounded answer from the model. +// Metadata related to retrieval in the grounding flow. +message RetrievalMetadata { + // Optional. Score indicating how likely information from google search could + // help answer the prompt. The score is in the range [0, 1], where 0 is the + // least likely and 1 is the most likely. This score is only populated when + // google search grounding and dynamic retrieval is enabled. It will be + // compared to the threshold to determine whether to trigger google search. + float google_search_dynamic_retrieval_score = 2 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Metadata returned to client when grounding is enabled. +message GroundingMetadata { + // Optional. Google search entry for the following-up web searches. + optional SearchEntryPoint search_entry_point = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // List of supporting references retrieved from specified grounding source. + repeated GroundingChunk grounding_chunks = 2; + + // List of grounding support. + repeated GroundingSupport grounding_supports = 3; + + // Metadata related to retrieval in the grounding flow. + optional RetrievalMetadata retrieval_metadata = 4; +} + +// Google search entry point. +message SearchEntryPoint { + // Optional. Web content snippet that can be embedded in a web page or an app + // webview. + string rendered_content = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Base64 encoded JSON representing array of tuple. + bytes sdk_blob = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Grounding chunk. +message GroundingChunk { + // Chunk from the web. + message Web { + // URI reference of the chunk. + optional string uri = 1; + + // Title of the chunk. + optional string title = 2; + } + + // Chunk type. + oneof chunk_type { + // Grounding chunk from the web. + Web web = 1; + } +} + +// Segment of the content. +message Segment { + // Output only. The index of a Part object within its parent Content object. + int32 part_index = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Start index in the given Part, measured in bytes. Offset from + // the start of the Part, inclusive, starting at zero. + int32 start_index = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. End index in the given Part, measured in bytes. Offset from + // the start of the Part, exclusive, starting at zero. + int32 end_index = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The text corresponding to the segment from the response. + string text = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Grounding support. +message GroundingSupport { + // Segment of the content this support belongs to. + optional Segment segment = 1; + + // A list of indices (into 'grounding_chunk') specifying the + // citations associated with the claim. For instance [1,3,4] means + // that grounding_chunk[1], grounding_chunk[3], + // grounding_chunk[4] are the retrieved content attributed to the claim. + repeated int32 grounding_chunk_indices = 2; + + // Confidence score of the support references. Ranges from 0 to 1. 1 is the + // most confident. This list must have the same size as the + // grounding_chunk_indices. + repeated float confidence_scores = 3; +} + +// Request to generate a grounded answer from the `Model`. message GenerateAnswerRequest { // Style for grounded answers. enum AnswerStyle { @@ -505,12 +728,12 @@ message GenerateAnswerRequest { } ]; - // Required. The content of the current conversation with the model. For + // Required. The content of the current conversation with the `Model`. For // single-turn queries, this is a single question to answer. For multi-turn // queries, this is a repeated field that contains conversation history and // the last `Content` in the list containing the question. // - // Note: GenerateAnswer currently only supports queries in English. + // Note: `GenerateAnswer` only supports queries in English. repeated Content contents = 2 [(google.api.field_behavior) = REQUIRED]; // Required. Style in which answers should be returned. @@ -529,6 +752,11 @@ message GenerateAnswerRequest { // setting for that category. Harm categories HARM_CATEGORY_HATE_SPEECH, // HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT, // HARM_CATEGORY_HARASSMENT are supported. + // Refer to the + // [guide](https://ai.google.dev/gemini-api/docs/safety-settings) + // for detailed information on available safety settings. Also refer to the + // [Safety guidance](https://ai.google.dev/gemini-api/docs/safety-guidance) to + // learn how to incorporate safety considerations in your AI applications. repeated SafetySetting safety_settings = 3 [(google.api.field_behavior) = OPTIONAL]; @@ -545,14 +773,14 @@ message GenerateAnswerRequest { // Response from the model for a grounded answer. message GenerateAnswerResponse { // Feedback related to the input data used to answer the question, as opposed - // to model-generated response to the question. + // to the model-generated response to the question. message InputFeedback { // Specifies what was the reason why input was blocked. enum BlockReason { // Default value. This value is unused. BLOCK_REASON_UNSPECIFIED = 0; - // Input was blocked due to safety reasons. You can inspect + // Input was blocked due to safety reasons. Inspect // `safety_ratings` to understand which safety category blocked it. SAFETY = 1; @@ -561,7 +789,7 @@ message GenerateAnswerResponse { } // Optional. If set, the input was blocked and no candidates are returned. - // Rephrase your input. + // Rephrase the input. optional BlockReason block_reason = 1 [(google.api.field_behavior) = OPTIONAL]; @@ -581,23 +809,23 @@ message GenerateAnswerResponse { // Output only. The model's estimate of the probability that its answer is // correct and grounded in the input passages. // - // A low answerable_probability indicates that the answer might not be + // A low `answerable_probability` indicates that the answer might not be // grounded in the sources. // - // When `answerable_probability` is low, some clients may wish to: + // When `answerable_probability` is low, you may want to: // // * Display a message to the effect of "We couldn’t answer that question" to // the user. // * Fall back to a general-purpose LLM that answers the question from world // knowledge. The threshold and nature of such fallbacks will depend on - // individual clients’ use cases. 0.5 is a good starting threshold. + // individual use cases. `0.5` is a good starting threshold. optional float answerable_probability = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Feedback related to the input data used to answer the - // question, as opposed to model-generated response to the question. + // question, as opposed to the model-generated response to the question. // - // "Input data" can be one or more of the following: + // The input data can be one or more of the following: // // - Question specified by the last entry in `GenerateAnswerRequest.content` // - Conversation history specified by the other entries in @@ -640,8 +868,8 @@ message EmbedContentRequest { // Optional. Optional reduced dimension for the output embedding. If set, // excessive values in the output embedding are truncated from the end. - // Supported by newer models since 2024, and the earlier model - // (`models/embedding-001`) cannot specify this value. + // Supported by newer models since 2024 only. You cannot set this value if + // using the earlier model (`models/embedding-001`). optional int32 output_dimensionality = 5 [(google.api.field_behavior) = OPTIONAL]; } @@ -709,8 +937,14 @@ message CountTokensRequest { // when `generate_content_request` is set. repeated Content contents = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The overall input given to the model. CountTokens will count - // prompt, function calling, etc. + // Optional. The overall input given to the `Model`. This includes the prompt + // as well as other model steering information like [system + // instructions](https://ai.google.dev/gemini-api/docs/system-instructions), + // and/or function declarations for [function + // calling](https://ai.google.dev/gemini-api/docs/function-calling). + // `Model`s/`Content`s and `generate_content_request`s are mutually + // exclusive. You can either send `Model` + `Content`s or a + // `generate_content_request`, but never both. GenerateContentRequest generate_content_request = 3 [(google.api.field_behavior) = OPTIONAL]; } @@ -719,14 +953,10 @@ message CountTokensRequest { // // It returns the model's `token_count` for the `prompt`. message CountTokensResponse { - // The number of tokens that the `model` tokenizes the `prompt` into. - // - // Always non-negative. When cached_content is set, this is still the total - // effective prompt size. I.e. this includes the number of tokens in the - // cached content. + // The number of tokens that the `Model` tokenizes the `prompt` into. Always + // non-negative. int32 total_tokens = 1; - // Number of tokens in the cached part of the prompt, i.e. in the cached - // content. + // Number of tokens in the cached part of the prompt (the cached content). int32 cached_content_token_count = 5; } diff --git a/google/ai/generativelanguage/v1beta/generativelanguage_v1beta.yaml b/google/ai/generativelanguage/v1beta/generativelanguage_v1beta.yaml index 3aea84b65..c8732d354 100644 --- a/google/ai/generativelanguage/v1beta/generativelanguage_v1beta.yaml +++ b/google/ai/generativelanguage/v1beta/generativelanguage_v1beta.yaml @@ -10,6 +10,7 @@ apis: - name: google.ai.generativelanguage.v1beta.GenerativeService - name: google.ai.generativelanguage.v1beta.ModelService - name: google.ai.generativelanguage.v1beta.PermissionService +- name: google.ai.generativelanguage.v1beta.PredictionService - name: google.ai.generativelanguage.v1beta.RetrieverService - name: google.ai.generativelanguage.v1beta.TextService - name: google.longrunning.Operations diff --git a/google/ai/generativelanguage/v1beta/model.proto b/google/ai/generativelanguage/v1beta/model.proto index 2fe19b36d..adbffed61 100644 --- a/google/ai/generativelanguage/v1beta/model.proto +++ b/google/ai/generativelanguage/v1beta/model.proto @@ -31,7 +31,9 @@ message Model { pattern: "models/{model}" }; - // Required. The resource name of the `Model`. + // Required. The resource name of the `Model`. Refer to [Model + // variants](https://ai.google.dev/gemini-api/docs/models/gemini#model-variations) + // for all allowed values. // // Format: `models/{model}` with a `{model}` naming convention of: // @@ -39,22 +41,22 @@ message Model { // // Examples: // - // * `models/chat-bison-001` + // * `models/gemini-1.5-flash-001` string name = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The name of the base model, pass this to the generation request. // // Examples: // - // * `chat-bison` + // * `gemini-1.5-flash` string base_model_id = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The version number of the model. // - // This represents the major version + // This represents the major version (`1.0` or `1.5`) string version = 3 [(google.api.field_behavior) = REQUIRED]; - // The human-readable name of the model. E.g. "Chat Bison". + // The human-readable name of the model. E.g. "Gemini 1.5 Flash". // // The name can be up to 128 characters long and can consist of any UTF-8 // characters. @@ -71,8 +73,8 @@ message Model { // The model's supported generation methods. // - // The method names are defined as Pascal case - // strings, such as `generateMessage` which correspond to API methods. + // The corresponding API method names are defined as Pascal case + // strings, such as `generateMessage` and `generateContent`. repeated string supported_generation_methods = 8; // Controls the randomness of the output. @@ -87,7 +89,8 @@ message Model { // The maximum temperature this model can use. optional float max_temperature = 13; - // For Nucleus sampling. + // For [Nucleus + // sampling](https://ai.google.dev/gemini-api/docs/prompting-strategies#top-p). // // Nucleus sampling considers the smallest set of tokens whose probability // sum is at least `top_p`. diff --git a/google/ai/generativelanguage/v1beta/model_service.proto b/google/ai/generativelanguage/v1beta/model_service.proto index 0c22e8e9d..37ca4202b 100644 --- a/google/ai/generativelanguage/v1beta/model_service.proto +++ b/google/ai/generativelanguage/v1beta/model_service.proto @@ -35,7 +35,12 @@ option java_package = "com.google.ai.generativelanguage.v1beta"; service ModelService { option (google.api.default_host) = "generativelanguage.googleapis.com"; - // Gets information about a specific Model. + // Gets information about a specific `Model` such as its version number, token + // limits, + // [parameters](https://ai.google.dev/gemini-api/docs/models/generative-models#model-parameters) + // and other metadata. Refer to the [Gemini models + // guide](https://ai.google.dev/gemini-api/docs/models/gemini) for detailed + // model information. rpc GetModel(GetModelRequest) returns (Model) { option (google.api.http) = { get: "/v1beta/{name=models/*}" @@ -43,7 +48,8 @@ service ModelService { option (google.api.method_signature) = "name"; } - // Lists models available through the API. + // Lists the [`Model`s](https://ai.google.dev/gemini-api/docs/models/gemini) + // available through the Gemini API. rpc ListModels(ListModelsRequest) returns (ListModelsResponse) { option (google.api.http) = { get: "/v1beta/models" @@ -59,7 +65,7 @@ service ModelService { option (google.api.method_signature) = "name"; } - // Lists tuned models owned by the user. + // Lists created tuned models. rpc ListTunedModels(ListTunedModelsRequest) returns (ListTunedModelsResponse) { option (google.api.http) = { @@ -69,10 +75,10 @@ service ModelService { } // Creates a tuned model. - // Intermediate tuning progress (if any) is accessed through the + // Check intermediate tuning progress (if any) through the // [google.longrunning.Operations] service. // - // Status and results can be accessed through the Operations service. + // Access status and results through the Operations service. // Example: // GET /v1/tunedModels/az2mb0bpw6i/operations/000-111-222 rpc CreateTunedModel(CreateTunedModelRequest) @@ -127,8 +133,7 @@ message GetModelRequest { message ListModelsRequest { // The maximum number of `Models` to return (per page). // - // The service may return fewer models. - // If unspecified, at most 50 models will be returned per page. + // If unspecified, 50 models will be returned per page. // This method returns at most 1000 models per page, even if you pass a larger // page_size. int32 page_size = 2; @@ -219,7 +224,7 @@ message CreateTunedModelRequest { // Optional. The unique id for the tuned model if specified. // This value should be up to 40 characters, the first character must be a // letter, the last could be a letter or a number. The id must match the - // regular expression: [a-z]([a-z0-9-]{0,38}[a-z0-9])?. + // regular expression: `[a-z]([a-z0-9-]{0,38}[a-z0-9])?`. optional string tuned_model_id = 1 [(google.api.field_behavior) = OPTIONAL]; // Required. The tuned model to create. diff --git a/google/ai/generativelanguage/v1beta/prediction_service.proto b/google/ai/generativelanguage/v1beta/prediction_service.proto new file mode 100644 index 000000000..a08374346 --- /dev/null +++ b/google/ai/generativelanguage/v1beta/prediction_service.proto @@ -0,0 +1,68 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.ai.generativelanguage.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/struct.proto"; + +option go_package = "cloud.google.com/go/ai/generativelanguage/apiv1beta/generativelanguagepb;generativelanguagepb"; +option java_multiple_files = true; +option java_outer_classname = "PredictionServiceProto"; +option java_package = "com.google.ai.generativelanguage.v1beta"; + +// A service for online predictions and explanations. +service PredictionService { + option (google.api.default_host) = "generativelanguage.googleapis.com"; + + // Performs a prediction request. + rpc Predict(PredictRequest) returns (PredictResponse) { + option (google.api.http) = { + post: "/v1beta/{model=models/*}:predict" + body: "*" + }; + option (google.api.method_signature) = "model,instances"; + } +} + +// Request message for +// [PredictionService.Predict][google.ai.generativelanguage.v1beta.PredictionService.Predict]. +message PredictRequest { + // Required. The name of the model for prediction. + // Format: `name=models/{model}`. + string model = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "generativelanguage.googleapis.com/Model" + } + ]; + + // Required. The instances that are the input to the prediction call. + repeated google.protobuf.Value instances = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. The parameters that govern the prediction call. + google.protobuf.Value parameters = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for [PredictionService.Predict]. +message PredictResponse { + // The outputs of the prediction call. + repeated google.protobuf.Value predictions = 1; +} diff --git a/google/ai/generativelanguage/v1beta/safety.proto b/google/ai/generativelanguage/v1beta/safety.proto index fcdb03a03..ab6219740 100644 --- a/google/ai/generativelanguage/v1beta/safety.proto +++ b/google/ai/generativelanguage/v1beta/safety.proto @@ -31,36 +31,41 @@ enum HarmCategory { // Category is unspecified. HARM_CATEGORY_UNSPECIFIED = 0; - // Negative or harmful comments targeting identity and/or protected attribute. + // **PaLM** - Negative or harmful comments targeting identity and/or protected + // attribute. HARM_CATEGORY_DEROGATORY = 1; - // Content that is rude, disrespectful, or profane. + // **PaLM** - Content that is rude, disrespectful, or profane. HARM_CATEGORY_TOXICITY = 2; - // Describes scenarios depicting violence against an individual or group, or - // general descriptions of gore. + // **PaLM** - Describes scenarios depicting violence against an individual or + // group, or general descriptions of gore. HARM_CATEGORY_VIOLENCE = 3; - // Contains references to sexual acts or other lewd content. + // **PaLM** - Contains references to sexual acts or other lewd content. HARM_CATEGORY_SEXUAL = 4; - // Promotes unchecked medical advice. + // **PaLM** - Promotes unchecked medical advice. HARM_CATEGORY_MEDICAL = 5; - // Dangerous content that promotes, facilitates, or encourages harmful acts. + // **PaLM** - Dangerous content that promotes, facilitates, or encourages + // harmful acts. HARM_CATEGORY_DANGEROUS = 6; - // Harasment content. + // **Gemini** - Harassment content. HARM_CATEGORY_HARASSMENT = 7; - // Hate speech and content. + // **Gemini** - Hate speech and content. HARM_CATEGORY_HATE_SPEECH = 8; - // Sexually explicit content. + // **Gemini** - Sexually explicit content. HARM_CATEGORY_SEXUALLY_EXPLICIT = 9; - // Dangerous content. + // **Gemini** - Dangerous content. HARM_CATEGORY_DANGEROUS_CONTENT = 10; + + // **Gemini** - Content that may be used to harm civic integrity. + HARM_CATEGORY_CIVIC_INTEGRITY = 11; } // Content filtering metadata associated with processing a single request. @@ -162,6 +167,9 @@ message SafetySetting { // All content will be allowed. BLOCK_NONE = 4; + + // Turn off the safety filter. + OFF = 5; } // Required. The category for this setting. diff --git a/google/ai/generativelanguage/v1beta/tuned_model.proto b/google/ai/generativelanguage/v1beta/tuned_model.proto index 73a2e5713..f9732af3e 100644 --- a/google/ai/generativelanguage/v1beta/tuned_model.proto +++ b/google/ai/generativelanguage/v1beta/tuned_model.proto @@ -57,7 +57,7 @@ message TunedModel { [(google.api.field_behavior) = OPTIONAL]; // Immutable. The name of the `Model` to tune. - // Example: `models/text-bison-001` + // Example: `models/gemini-1.5-flash-001` string base_model = 4 [ (google.api.field_behavior) = IMMUTABLE, (google.api.resource_reference) = { @@ -70,9 +70,12 @@ message TunedModel { // create. Example: `tunedModels/az2mb0bpw6i` If display_name is set on // create, the id portion of the name will be set by concatenating the words // of the display_name with hyphens and adding a random portion for - // uniqueness. Example: - // display_name = "Sentence Translator" - // name = "tunedModels/sentence-translator-u3b7m" + // uniqueness. + // + // Example: + // + // * display_name = `Sentence Translator` + // * name = `tunedModels/sentence-translator-u3b7m` string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Optional. The name to display for this model in user interfaces. @@ -124,6 +127,10 @@ message TunedModel { // Required. The tuning task that creates the tuned model. TuningTask tuning_task = 10 [(google.api.field_behavior) = REQUIRED]; + + // Optional. List of project numbers that have read access to the tuned model. + repeated int64 reader_project_numbers = 14 + [(google.api.field_behavior) = OPTIONAL]; } // Tuned model as a source for training a new model. @@ -139,7 +146,7 @@ message TunedModelSource { ]; // Output only. The name of the base `Model` this `TunedModel` was tuned from. - // Example: `models/text-bison-001` + // Example: `models/gemini-1.5-flash-001` string base_model = 2 [ (google.api.field_behavior) = OUTPUT_ONLY, (google.api.resource_reference) = { diff --git a/google/analytics/admin/v1alpha/analytics_admin.proto b/google/analytics/admin/v1alpha/analytics_admin.proto index 70b037d30..474e34bc2 100644 --- a/google/analytics/admin/v1alpha/analytics_admin.proto +++ b/google/analytics/admin/v1alpha/analytics_admin.proto @@ -396,9 +396,11 @@ service AnalyticsAdminService { "google_signals_settings,update_mask"; } + // Deprecated: Use `CreateKeyEvent` instead. // Creates a conversion event with the specified attributes. rpc CreateConversionEvent(CreateConversionEventRequest) returns (ConversionEvent) { + option deprecated = true; option (google.api.http) = { post: "/v1alpha/{parent=properties/*}/conversionEvents" body: "conversion_event" @@ -406,9 +408,11 @@ service AnalyticsAdminService { option (google.api.method_signature) = "parent,conversion_event"; } + // Deprecated: Use `UpdateKeyEvent` instead. // Updates a conversion event with the specified attributes. rpc UpdateConversionEvent(UpdateConversionEventRequest) returns (ConversionEvent) { + option deprecated = true; option (google.api.http) = { patch: "/v1alpha/{conversion_event.name=properties/*/conversionEvents/*}" body: "conversion_event" @@ -416,34 +420,83 @@ service AnalyticsAdminService { option (google.api.method_signature) = "conversion_event,update_mask"; } + // Deprecated: Use `GetKeyEvent` instead. // Retrieve a single conversion event. rpc GetConversionEvent(GetConversionEventRequest) returns (ConversionEvent) { + option deprecated = true; option (google.api.http) = { get: "/v1alpha/{name=properties/*/conversionEvents/*}" }; option (google.api.method_signature) = "name"; } + // Deprecated: Use `DeleteKeyEvent` instead. // Deletes a conversion event in a property. rpc DeleteConversionEvent(DeleteConversionEventRequest) returns (google.protobuf.Empty) { + option deprecated = true; option (google.api.http) = { delete: "/v1alpha/{name=properties/*/conversionEvents/*}" }; option (google.api.method_signature) = "name"; } + // Deprecated: Use `ListKeyEvents` instead. // 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 deprecated = true; option (google.api.http) = { get: "/v1alpha/{parent=properties/*}/conversionEvents" }; option (google.api.method_signature) = "parent"; } + // Creates a Key Event. + rpc CreateKeyEvent(CreateKeyEventRequest) returns (KeyEvent) { + option (google.api.http) = { + post: "/v1alpha/{parent=properties/*}/keyEvents" + body: "key_event" + }; + option (google.api.method_signature) = "parent,key_event"; + } + + // Updates a Key Event. + rpc UpdateKeyEvent(UpdateKeyEventRequest) returns (KeyEvent) { + option (google.api.http) = { + patch: "/v1alpha/{key_event.name=properties/*/keyEvents/*}" + body: "key_event" + }; + option (google.api.method_signature) = "key_event,update_mask"; + } + + // Retrieve a single Key Event. + rpc GetKeyEvent(GetKeyEventRequest) returns (KeyEvent) { + option (google.api.http) = { + get: "/v1alpha/{name=properties/*/keyEvents/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Deletes a Key Event. + rpc DeleteKeyEvent(DeleteKeyEventRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1alpha/{name=properties/*/keyEvents/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Returns a list of Key Events in the specified parent property. + // Returns an empty list if no Key Events are found. + rpc ListKeyEvents(ListKeyEventsRequest) returns (ListKeyEventsResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=properties/*}/keyEvents" + }; + option (google.api.method_signature) = "parent"; + } + // Look up a single DisplayVideo360AdvertiserLink rpc GetDisplayVideo360AdvertiserLink(GetDisplayVideo360AdvertiserLinkRequest) returns (DisplayVideo360AdvertiserLink) { @@ -1095,6 +1148,15 @@ service AnalyticsAdminService { }; } + // Creates a BigQueryLink. + rpc CreateBigQueryLink(CreateBigQueryLinkRequest) returns (BigQueryLink) { + option (google.api.http) = { + post: "/v1alpha/{parent=properties/*}/bigQueryLinks" + body: "bigquery_link" + }; + option (google.api.method_signature) = "parent,bigquery_link"; + } + // Lookup for a single BigQuery Link. rpc GetBigQueryLink(GetBigQueryLinkRequest) returns (BigQueryLink) { option (google.api.http) = { @@ -1112,6 +1174,24 @@ service AnalyticsAdminService { option (google.api.method_signature) = "parent"; } + // Deletes a BigQueryLink on a property. + rpc DeleteBigQueryLink(DeleteBigQueryLinkRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1alpha/{name=properties/*/bigQueryLinks/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a BigQueryLink. + rpc UpdateBigQueryLink(UpdateBigQueryLinkRequest) returns (BigQueryLink) { + option (google.api.http) = { + patch: "/v1alpha/{bigquery_link.name=properties/*/bigQueryLinks/*}" + body: "bigquery_link" + }; + option (google.api.method_signature) = "bigquery_link,update_mask"; + } + // Returns the enhanced measurement settings for this data stream. // Note that the stream must enable enhanced measurement for these settings to // take effect. @@ -1259,6 +1339,59 @@ service AnalyticsAdminService { option (google.api.method_signature) = "name"; } + // Lookup for a single EventEditRule. + rpc GetEventEditRule(GetEventEditRuleRequest) returns (EventEditRule) { + option (google.api.http) = { + get: "/v1alpha/{name=properties/*/dataStreams/*/eventEditRules/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists EventEditRules on a web data stream. + rpc ListEventEditRules(ListEventEditRulesRequest) + returns (ListEventEditRulesResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=properties/*/dataStreams/*}/eventEditRules" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates an EventEditRule. + rpc CreateEventEditRule(CreateEventEditRuleRequest) returns (EventEditRule) { + option (google.api.http) = { + post: "/v1alpha/{parent=properties/*/dataStreams/*}/eventEditRules" + body: "event_edit_rule" + }; + option (google.api.method_signature) = "parent,event_edit_rule"; + } + + // Updates an EventEditRule. + rpc UpdateEventEditRule(UpdateEventEditRuleRequest) returns (EventEditRule) { + option (google.api.http) = { + patch: "/v1alpha/{event_edit_rule.name=properties/*/dataStreams/*/eventEditRules/*}" + body: "event_edit_rule" + }; + option (google.api.method_signature) = "event_edit_rule,update_mask"; + } + + // Deletes an EventEditRule. + rpc DeleteEventEditRule(DeleteEventEditRuleRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1alpha/{name=properties/*/dataStreams/*/eventEditRules/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Changes the processing order of event edit rules on the specified stream. + rpc ReorderEventEditRules(ReorderEventEditRulesRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1alpha/{parent=properties/*/dataStreams/*}/eventEditRules:reorder" + body: "*" + }; + } + // Updates a DataRedactionSettings on a property. rpc UpdateDataRedactionSettings(UpdateDataRedactionSettingsRequest) returns (DataRedactionSettings) { @@ -1383,10 +1516,10 @@ service AnalyticsAdminService { // Create a subproperty and a subproperty event filter that applies to the // created subproperty. - rpc CreateSubproperty(CreateSubpropertyRequest) - returns (CreateSubpropertyResponse) { + rpc ProvisionSubproperty(ProvisionSubpropertyRequest) + returns (ProvisionSubpropertyResponse) { option (google.api.http) = { - post: "/v1alpha/properties:createSubproperty" + post: "/v1alpha/properties:provisionSubproperty" body: "*" }; } @@ -1748,7 +1881,8 @@ message DeletePropertyRequest { // Request message for CreateFirebaseLink RPC message CreateFirebaseLinkRequest { // Required. Format: properties/{property_id} - // Example: properties/1234 + // + // Example: `properties/1234` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1763,7 +1897,8 @@ message CreateFirebaseLinkRequest { // Request message for DeleteFirebaseLink RPC message DeleteFirebaseLinkRequest { // Required. Format: properties/{property_id}/firebaseLinks/{firebase_link_id} - // Example: properties/1234/firebaseLinks/5678 + // + // Example: `properties/1234/firebaseLinks/5678` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1775,7 +1910,8 @@ message DeleteFirebaseLinkRequest { // Request message for ListFirebaseLinks RPC message ListFirebaseLinksRequest { // Required. Format: properties/{property_id} - // Example: properties/1234 + // + // Example: `properties/1234` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1813,7 +1949,8 @@ 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}/dataStreams/{stream_id}/globalSiteTag - // Example: "properties/123/dataStreams/456/globalSiteTag" + // + // Example: `properties/123/dataStreams/456/globalSiteTag` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1897,7 +2034,8 @@ message ListGoogleAdsLinksResponse { message GetDataSharingSettingsRequest { // Required. The name of the settings to lookup. // Format: accounts/{account}/dataSharingSettings - // Example: "accounts/1000/dataSharingSettings" + // + // Example: `accounts/1000/dataSharingSettings` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1958,7 +2096,9 @@ message AcknowledgeUserDataCollectionResponse {} // Request message for SearchChangeHistoryEvents RPC. message SearchChangeHistoryEventsRequest { // Required. The account resource for which to return change history - // resources. Format: accounts/{account} Example: "accounts/100" + // resources. Format: accounts/{account} + // + // Example: `accounts/100` string account = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1969,7 +2109,8 @@ message SearchChangeHistoryEventsRequest { // Optional. Resource name for a child property. If set, only return changes // made to this property or its child resources. // Format: properties/{propertyId} - // Example: "properties/100" + // + // Example: `properties/100` string property = 2 [ (google.api.field_behavior) = OPTIONAL, (google.api.resource_reference) = { @@ -2321,6 +2462,94 @@ message ListConversionEventsResponse { string next_page_token = 2; } +// Request message for CreateKeyEvent RPC +message CreateKeyEventRequest { + // Required. The Key Event to create. + KeyEvent key_event = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource name of the parent property where this Key Event + // will be created. Format: properties/123 + string parent = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/KeyEvent" + } + ]; +} + +// Request message for UpdateKeyEvent RPC +message UpdateKeyEventRequest { + // Required. The Key Event to update. + // The `name` field is used to identify the settings to be updated. + KeyEvent key_event = 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 GetKeyEvent RPC +message GetKeyEventRequest { + // Required. The resource name of the Key Event to retrieve. + // Format: properties/{property}/keyEvents/{key_event} + // Example: "properties/123/keyEvents/456" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/KeyEvent" + } + ]; +} + +// Request message for DeleteKeyEvent RPC +message DeleteKeyEventRequest { + // Required. The resource name of the Key Event to delete. + // Format: properties/{property}/keyEvents/{key_event} + // Example: "properties/123/keyEvents/456" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/KeyEvent" + } + ]; +} + +// Request message for ListKeyEvents RPC +message ListKeyEventsRequest { + // 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/KeyEvent" + } + ]; + + // 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 `ListKeyEvents` call. + // Provide this to retrieve the subsequent page. + // When paginating, all other parameters provided to `ListKeyEvents` + // must match the call that provided the page token. + string page_token = 3; +} + +// Response message for ListKeyEvents RPC. +message ListKeyEventsResponse { + // The requested Key Events + repeated KeyEvent key_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 GetDisplayVideo360AdvertiserLink RPC. message GetDisplayVideo360AdvertiserLinkRequest { // Required. The name of the DisplayVideo360AdvertiserLink to get. @@ -3485,6 +3714,20 @@ message FetchAutomatedGa4ConfigurationOptOutResponse { bool opt_out = 1; } +// Request message for CreateBigQueryLink RPC. +message CreateBigQueryLinkRequest { + // Required. Example format: properties/1234 + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/BigQueryLink" + } + ]; + + // Required. The BigQueryLink to create. + BigQueryLink bigquery_link = 2 [(google.api.field_behavior) = REQUIRED]; +} + // Request message for GetBigQueryLink RPC. message GetBigQueryLinkRequest { // Required. The name of the BigQuery link to lookup. @@ -3533,6 +3776,32 @@ message ListBigQueryLinksResponse { string next_page_token = 2; } +// Request message for UpdateBigQueryLink RPC. +message UpdateBigQueryLinkRequest { + // Required. The settings to update. + // The `name` field is used to identify the settings to be updated. + BigQueryLink bigquery_link = 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 DeleteBigQueryLink RPC. +message DeleteBigQueryLinkRequest { + // Required. The BigQueryLink to delete. + // Example format: properties/1234/bigQueryLinks/5678 + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/BigQueryLink" + } + ]; +} + // Request message for GetEnhancedMeasurementSettings RPC. message GetEnhancedMeasurementSettingsRequest { // Required. The name of the settings to lookup. @@ -3828,6 +4097,108 @@ message ListEventCreateRulesResponse { string next_page_token = 2; } +// Request message for CreateEventEditRule RPC. +message CreateEventEditRuleRequest { + // Required. Example format: properties/123/dataStreams/456 + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/EventEditRule" + } + ]; + + // Required. The EventEditRule to create. + EventEditRule event_edit_rule = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for UpdateEventEditRule RPC. +message UpdateEventEditRuleRequest { + // Required. The EventEditRule to update. + // The resource's `name` field is used to identify the EventEditRule to be + // updated. + EventEditRule event_edit_rule = 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 DeleteEventEditRule RPC. +message DeleteEventEditRuleRequest { + // Required. Example format: properties/123/dataStreams/456/eventEditRules/789 + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/EventEditRule" + } + ]; +} + +// Request message for GetEventEditRule RPC. +message GetEventEditRuleRequest { + // Required. The name of the EventEditRule to get. + // Example format: properties/123/dataStreams/456/eventEditRules/789 + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/EventEditRule" + } + ]; +} + +// Request message for ListEventEditRules RPC. +message ListEventEditRulesRequest { + // Required. Example format: properties/123/dataStreams/456 + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/EventEditRule" + } + ]; + + // Optional. 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 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListEventEditRules` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListEventEditRules` + // must match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for ListEventEditRules RPC. +message ListEventEditRulesResponse { + // List of EventEditRules. These will be ordered stably, but in an arbitrary + // order. + repeated EventEditRule event_edit_rules = 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 ReorderEventEditRules RPC. +message ReorderEventEditRulesRequest { + // Required. Example format: properties/123/dataStreams/456 + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/EventEditRule" + } + ]; + + // Required. EventEditRule resource names for the specified data stream, in + // the needed processing order. All EventEditRules for the stream must be + // present in the list. + repeated string event_edit_rules = 2 [(google.api.field_behavior) = REQUIRED]; +} + // Request message for CreateRollupProperty RPC. message CreateRollupPropertyRequest { // Required. The roll-up property to create. @@ -3927,17 +4298,7 @@ message DeleteRollupPropertySourceLinkRequest { } // Request message for CreateSubproperty RPC. -message CreateSubpropertyRequest { - // Required. The ordinary property for which to create a subproperty. - // Format: properties/property_id - // Example: properties/123 - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "analyticsadmin.googleapis.com/Property" - } - ]; - +message ProvisionSubpropertyRequest { // Required. The subproperty to create. Property subproperty = 2 [(google.api.field_behavior) = REQUIRED]; @@ -3946,8 +4307,8 @@ message CreateSubpropertyRequest { [(google.api.field_behavior) = OPTIONAL]; } -// Response message for CreateSubproperty RPC. -message CreateSubpropertyResponse { +// Response message for ProvisionSubproperty RPC. +message ProvisionSubpropertyResponse { // The created subproperty. Property subproperty = 1; diff --git a/google/analytics/admin/v1alpha/analyticsadmin_v1alpha.yaml b/google/analytics/admin/v1alpha/analyticsadmin_v1alpha.yaml index 16403cd60..744a51f0a 100644 --- a/google/analytics/admin/v1alpha/analyticsadmin_v1alpha.yaml +++ b/google/analytics/admin/v1alpha/analyticsadmin_v1alpha.yaml @@ -152,6 +152,11 @@ authentication: canonical_scopes: |- https://www.googleapis.com/auth/analytics.edit, https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetEventEditRule + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetExpandedDataSet oauth: canonical_scopes: |- @@ -167,6 +172,11 @@ authentication: canonical_scopes: |- https://www.googleapis.com/auth/analytics.edit, https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.GetKeyEvent + 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: |- @@ -277,6 +287,11 @@ authentication: canonical_scopes: |- https://www.googleapis.com/auth/analytics.edit, https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListEventEditRules + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/analytics.edit, + https://www.googleapis.com/auth/analytics.readonly - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListExpandedDataSets oauth: canonical_scopes: |- @@ -292,6 +307,11 @@ authentication: canonical_scopes: |- https://www.googleapis.com/auth/analytics.edit, https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1alpha.AnalyticsAdminService.ListKeyEvents + 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: |- diff --git a/google/analytics/admin/v1alpha/audience.proto b/google/analytics/admin/v1alpha/audience.proto index 853e9bcf1..11abdf114 100644 --- a/google/analytics/admin/v1alpha/audience.proto +++ b/google/analytics/admin/v1alpha/audience.proto @@ -19,6 +19,7 @@ package google.analytics.admin.v1alpha; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; option go_package = "cloud.google.com/go/analytics/admin/apiv1alpha/adminpb;adminpb"; option java_multiple_files = true; @@ -421,4 +422,8 @@ message Audience { (google.api.field_behavior) = REQUIRED, (google.api.field_behavior) = UNORDERED_LIST ]; + + // Output only. Time when the Audience was created. + google.protobuf.Timestamp create_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/analytics/admin/v1alpha/channel_group.proto b/google/analytics/admin/v1alpha/channel_group.proto index 278e9488a..a777a0b2f 100644 --- a/google/analytics/admin/v1alpha/channel_group.proto +++ b/google/analytics/admin/v1alpha/channel_group.proto @@ -150,4 +150,12 @@ message ChannelGroup { // predefined by Google Analytics. Display name and grouping rules cannot be // updated for this channel group. bool system_defined = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. If true, this channel group will be used as the default channel + // group for reports. Only one channel group can be set as `primary` at any + // time. If the `primary` field gets set on a channel group, it will get unset + // on the previous primary channel group. + // + // The Google Analytics predefined channel group is the primary by default. + bool primary = 6 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/google/analytics/admin/v1alpha/event_create_and_edit.proto b/google/analytics/admin/v1alpha/event_create_and_edit.proto index 1fb38f6ce..8b60a0993 100644 --- a/google/analytics/admin/v1alpha/event_create_and_edit.proto +++ b/google/analytics/admin/v1alpha/event_create_and_edit.proto @@ -88,6 +88,51 @@ message EventCreateRule { repeated ParameterMutation parameter_mutations = 5; } +// An Event Edit Rule defines conditions that will trigger the creation of an +// entirely new event based upon matched criteria of a source event. Additional +// mutations of the parameters from the source event can be defined. +// +// Unlike Event Create rules, Event Edit Rules are applied in their defined +// order. +// +// Event Edit rules can't be used to modify an event created from an Event +// Create rule. +message EventEditRule { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/EventEditRule" + pattern: "properties/{property}/dataStreams/{data_stream}/eventEditRules/{event_edit_rule}" + plural: "eventEditRules" + singular: "eventEditRule" + }; + + // Identifier. Resource name for this EventEditRule resource. + // Format: + // properties/{property}/dataStreams/{data_stream}/eventEditRules/{event_edit_rule} + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. The display name of this event edit rule. Maximum of 255 + // characters. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Conditions on the source event must match for this rule to be + // applied. Must have at least one condition, and can have up to 10 max. + repeated MatchingCondition event_conditions = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Parameter mutations define parameter behavior on the new event, + // and are applied in order. A maximum of 20 mutations can be applied. + repeated ParameterMutation parameter_mutations = 4 + [(google.api.field_behavior) = REQUIRED]; + + // Output only. The order for which this rule will be processed. Rules with an + // order value lower than this will be processed before this rule, rules with + // an order value higher than this will be processed after this rule. New + // event edit rules will be assigned an order value at the end of the order. + // + // This value does not apply to event create rules. + int64 processing_order = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + // Defines a condition for when an Event Edit or Event Creation rule applies to // an event. message MatchingCondition { diff --git a/google/analytics/admin/v1alpha/resources.proto b/google/analytics/admin/v1alpha/resources.proto index 4d84db427..8faeab1c6 100644 --- a/google/analytics/admin/v1alpha/resources.proto +++ b/google/analytics/admin/v1alpha/resources.proto @@ -29,6 +29,10 @@ option go_package = "cloud.google.com/go/analytics/admin/apiv1alpha/adminpb;admi option java_multiple_files = true; option java_outer_classname = "ResourcesProto"; option java_package = "com.google.analytics.admin.v1alpha"; +option (google.api.resource_definition) = { + type: "marketingplatformadmin.googleapis.com/Organization" + pattern: "organizations/{organization}" +}; // The category selected for this property, used for industry benchmarking. enum IndustryCategory { @@ -213,6 +217,9 @@ enum ChangeHistoryResourceType { // ChannelGroup resource CHANNEL_GROUP = 22; + // BigQuery link resource + BIGQUERY_LINK = 23; + // EnhancedMeasurementSettings resource ENHANCED_MEASUREMENT_SETTINGS = 24; @@ -369,6 +376,16 @@ message Account { // 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]; + + // Output only. The URI for a Google Marketing Platform organization resource. + // Only set when this account is connected to a GMP organization. + // Format: marketingplatformadmin.googleapis.com/organizations/{org_id} + string gmp_organization = 7 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "marketingplatformadmin.googleapis.com/Organization" + } + ]; } // A resource message representing a Google Analytics GA4 property. @@ -1226,6 +1243,75 @@ message ConversionEvent { [(google.api.field_behavior) = OPTIONAL]; } +// A key event in a Google Analytics property. +message KeyEvent { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/KeyEvent" + pattern: "properties/{property}/keyEvents/{key_event}" + plural: "keyEvents" + singular: "keyEvent" + }; + + // Defines a default value/currency for a key event. + message DefaultValue { + // Required. This will be used to populate the "value" parameter for all + // occurrences of this Key Event (specified by event_name) where that + // parameter is unset. + double numeric_value = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. When an occurrence of this Key Event (specified by event_name) + // has no set currency this currency will be applied as the default. Must be + // in ISO 4217 currency code format. + // + // See https://en.wikipedia.org/wiki/ISO_4217 for more information. + string currency_code = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // The method by which Key Events will be counted across multiple events + // within a session. + enum CountingMethod { + // Counting method not specified. + COUNTING_METHOD_UNSPECIFIED = 0; + + // Each Event instance is considered a Key Event. + ONCE_PER_EVENT = 1; + + // An Event instance is considered a Key Event at most once per session per + // user. + ONCE_PER_SESSION = 2; + } + + // Output only. Resource name of this key event. + // Format: properties/{property}/keyEvents/{key_event} + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The event name for this key event. + // Examples: 'click', 'purchase' + string event_name = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Time when this key event was created in the property. + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If set to true, this event can be deleted. + bool deletable = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If set to true, this key event refers to a custom event. If + // set to false, this key 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 key events that may be created per property. + bool custom = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The method by which Key Events will be counted across multiple + // events within a session. + CountingMethod counting_method = 6 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Defines a default value/currency for a key event. + DefaultValue default_value = 7 [(google.api.field_behavior) = OPTIONAL]; +} + // Settings values for Google Signals. This is a singleton resource. message GoogleSignalsSettings { option (google.api.resource) = { @@ -1765,6 +1851,14 @@ message BigQueryLink { // The list of event names that will be excluded from exports. repeated string excluded_events = 8; + + // Required. Immutable. The geographic location where the created BigQuery + // dataset should reside. See https://cloud.google.com/bigquery/docs/locations + // for supported locations. + string dataset_location = 10 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = REQUIRED + ]; } // Singleton resource under a web DataStream, configuring measurement of diff --git a/google/analytics/admin/v1beta/BUILD.bazel b/google/analytics/admin/v1beta/BUILD.bazel index 272980cc7..ad553ea71 100644 --- a/google/analytics/admin/v1beta/BUILD.bazel +++ b/google/analytics/admin/v1beta/BUILD.bazel @@ -120,7 +120,7 @@ load( go_proto_library( name = "admin_go_proto", compilers = ["@io_bazel_rules_go//proto:go_grpc"], - importpath = "google.golang.org/genproto/googleapis/analytics/admin/v1beta", + importpath = "cloud.google.com/go/analytics/admin/apiv1beta/adminpb", protos = [":admin_proto"], deps = [ "//google/api:annotations_go_proto", @@ -131,7 +131,7 @@ 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", + importpath = "cloud.google.com/go/analytics/admin/apiv1beta;admin", metadata = True, release_level = "beta", rest_numeric_enums = True, diff --git a/google/analytics/admin/v1beta/access_report.proto b/google/analytics/admin/v1beta/access_report.proto index dde5181c3..5e4ddcf20 100644 --- a/google/analytics/admin/v1beta/access_report.proto +++ b/google/analytics/admin/v1beta/access_report.proto @@ -16,7 +16,7 @@ syntax = "proto3"; package google.analytics.admin.v1beta; -option go_package = "google.golang.org/genproto/googleapis/analytics/admin/v1beta;admin"; +option go_package = "cloud.google.com/go/analytics/admin/apiv1beta/adminpb;adminpb"; option java_multiple_files = true; option java_outer_classname = "AccessReportProto"; option java_package = "com.google.analytics.admin.v1beta"; diff --git a/google/analytics/admin/v1beta/analytics_admin.proto b/google/analytics/admin/v1beta/analytics_admin.proto index 77c1091d4..84fb34341 100644 --- a/google/analytics/admin/v1beta/analytics_admin.proto +++ b/google/analytics/admin/v1beta/analytics_admin.proto @@ -26,7 +26,7 @@ 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 go_package = "cloud.google.com/go/analytics/admin/apiv1beta/adminpb;adminpb"; option java_multiple_files = true; option java_outer_classname = "AnalyticsAdminProto"; option java_package = "com.google.analytics.admin.v1beta"; @@ -64,7 +64,7 @@ service AnalyticsAdminService { // // 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. + // AccessBindings) will be permanently purged. // https://support.google.com/analytics/answer/6154772 // // Returns an error if the target is not found. @@ -136,7 +136,7 @@ service AnalyticsAdminService { // 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) + // and all child resources (eg: GoogleAdsLinks, Streams, AccessBindings) // will be permanently purged. // https://support.google.com/analytics/answer/6154772 // @@ -305,9 +305,11 @@ service AnalyticsAdminService { }; } + // Deprecated: Use `CreateKeyEvent` instead. // Creates a conversion event with the specified attributes. rpc CreateConversionEvent(CreateConversionEventRequest) returns (ConversionEvent) { + option deprecated = true; option (google.api.http) = { post: "/v1beta/{parent=properties/*}/conversionEvents" body: "conversion_event" @@ -315,9 +317,11 @@ service AnalyticsAdminService { option (google.api.method_signature) = "parent,conversion_event"; } + // Deprecated: Use `UpdateKeyEvent` instead. // Updates a conversion event with the specified attributes. rpc UpdateConversionEvent(UpdateConversionEventRequest) returns (ConversionEvent) { + option deprecated = true; option (google.api.http) = { patch: "/v1beta/{conversion_event.name=properties/*/conversionEvents/*}" body: "conversion_event" @@ -325,34 +329,83 @@ service AnalyticsAdminService { option (google.api.method_signature) = "conversion_event,update_mask"; } + // Deprecated: Use `GetKeyEvent` instead. // Retrieve a single conversion event. rpc GetConversionEvent(GetConversionEventRequest) returns (ConversionEvent) { + option deprecated = true; option (google.api.http) = { get: "/v1beta/{name=properties/*/conversionEvents/*}" }; option (google.api.method_signature) = "name"; } + // Deprecated: Use `DeleteKeyEvent` instead. // Deletes a conversion event in a property. rpc DeleteConversionEvent(DeleteConversionEventRequest) returns (google.protobuf.Empty) { + option deprecated = true; option (google.api.http) = { delete: "/v1beta/{name=properties/*/conversionEvents/*}" }; option (google.api.method_signature) = "name"; } + // Deprecated: Use `ListKeyEvents` instead. // 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 deprecated = true; option (google.api.http) = { get: "/v1beta/{parent=properties/*}/conversionEvents" }; option (google.api.method_signature) = "parent"; } + // Creates a Key Event. + rpc CreateKeyEvent(CreateKeyEventRequest) returns (KeyEvent) { + option (google.api.http) = { + post: "/v1beta/{parent=properties/*}/keyEvents" + body: "key_event" + }; + option (google.api.method_signature) = "parent,key_event"; + } + + // Updates a Key Event. + rpc UpdateKeyEvent(UpdateKeyEventRequest) returns (KeyEvent) { + option (google.api.http) = { + patch: "/v1beta/{key_event.name=properties/*/keyEvents/*}" + body: "key_event" + }; + option (google.api.method_signature) = "key_event,update_mask"; + } + + // Retrieve a single Key Event. + rpc GetKeyEvent(GetKeyEventRequest) returns (KeyEvent) { + option (google.api.http) = { + get: "/v1beta/{name=properties/*/keyEvents/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Deletes a Key Event. + rpc DeleteKeyEvent(DeleteKeyEventRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1beta/{name=properties/*/keyEvents/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Returns a list of Key Events in the specified parent property. + // Returns an empty list if no Key Events are found. + rpc ListKeyEvents(ListKeyEventsRequest) returns (ListKeyEventsResponse) { + option (google.api.http) = { + get: "/v1beta/{parent=properties/*}/keyEvents" + }; + option (google.api.method_signature) = "parent"; + } + // Creates a CustomDimension. rpc CreateCustomDimension(CreateCustomDimensionRequest) returns (CustomDimension) { @@ -513,8 +566,10 @@ service AnalyticsAdminService { // 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. + // Data Access Reports can be requested for a property. Reports may be + // requested for any property, but dimensions that aren't related to quota can + // only be requested on Google Analytics 360 properties. 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 @@ -613,6 +668,19 @@ message RunAccessReportRequest { // quota. Quota is returned in [AccessQuota](#AccessQuota). For account-level // requests, this field must be false. bool return_entity_quota = 11; + + // Optional. Determines whether to include users who have never made an API + // call in the response. If true, all users with access to the specified + // property or account are included in the response, regardless of whether + // they have made an API call or not. If false, only the users who have made + // an API call will be included. + bool include_all_users = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Decides whether to return the users within user groups. This + // field works only when include_all_users is set to true. If true, it will + // return all users with access to the specified property or account. + // If false, only the users with direct access will be returned. + bool expand_groups = 13 [(google.api.field_behavior) = OPTIONAL]; } // The customized Data Access Record Report response. @@ -830,7 +898,8 @@ message DeletePropertyRequest { // Request message for CreateFirebaseLink RPC message CreateFirebaseLinkRequest { // Required. Format: properties/{property_id} - // Example: properties/1234 + // + // Example: `properties/1234` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -845,7 +914,8 @@ message CreateFirebaseLinkRequest { // Request message for DeleteFirebaseLink RPC message DeleteFirebaseLinkRequest { // Required. Format: properties/{property_id}/firebaseLinks/{firebase_link_id} - // Example: properties/1234/firebaseLinks/5678 + // + // Example: `properties/1234/firebaseLinks/5678` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -857,7 +927,8 @@ message DeleteFirebaseLinkRequest { // Request message for ListFirebaseLinks RPC message ListFirebaseLinksRequest { // Required. Format: properties/{property_id} - // Example: properties/1234 + // + // Example: `properties/1234` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -965,7 +1036,8 @@ message ListGoogleAdsLinksResponse { message GetDataSharingSettingsRequest { // Required. The name of the settings to lookup. // Format: accounts/{account}/dataSharingSettings - // Example: "accounts/1000/dataSharingSettings" + // + // Example: `accounts/1000/dataSharingSettings` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1026,7 +1098,9 @@ message AcknowledgeUserDataCollectionResponse {} // Request message for SearchChangeHistoryEvents RPC. message SearchChangeHistoryEventsRequest { // Required. The account resource for which to return change history - // resources. + // resources. Format: accounts/{account} + // + // Example: `accounts/100` string account = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1036,6 +1110,9 @@ message SearchChangeHistoryEventsRequest { // Optional. Resource name for a child property. If set, only return changes // made to this property or its child resources. + // Format: properties/{propertyId} + // + // Example: `properties/100` string property = 2 [ (google.api.field_behavior) = OPTIONAL, (google.api.resource_reference) = { @@ -1264,6 +1341,94 @@ message ListConversionEventsResponse { string next_page_token = 2; } +// Request message for CreateKeyEvent RPC +message CreateKeyEventRequest { + // Required. The Key Event to create. + KeyEvent key_event = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource name of the parent property where this Key Event + // will be created. Format: properties/123 + string parent = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "analyticsadmin.googleapis.com/KeyEvent" + } + ]; +} + +// Request message for UpdateKeyEvent RPC +message UpdateKeyEventRequest { + // Required. The Key Event to update. + // The `name` field is used to identify the settings to be updated. + KeyEvent key_event = 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 GetKeyEvent RPC +message GetKeyEventRequest { + // Required. The resource name of the Key Event to retrieve. + // Format: properties/{property}/keyEvents/{key_event} + // Example: "properties/123/keyEvents/456" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/KeyEvent" + } + ]; +} + +// Request message for DeleteKeyEvent RPC +message DeleteKeyEventRequest { + // Required. The resource name of the Key Event to delete. + // Format: properties/{property}/keyEvents/{key_event} + // Example: "properties/123/keyEvents/456" + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/KeyEvent" + } + ]; +} + +// Request message for ListKeyEvents RPC +message ListKeyEventsRequest { + // 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/KeyEvent" + } + ]; + + // 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 `ListKeyEvents` call. + // Provide this to retrieve the subsequent page. + // When paginating, all other parameters provided to `ListKeyEvents` + // must match the call that provided the page token. + string page_token = 3; +} + +// Response message for ListKeyEvents RPC. +message ListKeyEventsResponse { + // The requested Key Events + repeated KeyEvent key_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 diff --git a/google/analytics/admin/v1beta/analyticsadmin_v1beta.yaml b/google/analytics/admin/v1beta/analyticsadmin_v1beta.yaml index 4a0194cd5..40726f614 100644 --- a/google/analytics/admin/v1beta/analyticsadmin_v1beta.yaml +++ b/google/analytics/admin/v1beta/analyticsadmin_v1beta.yaml @@ -57,6 +57,11 @@ authentication: canonical_scopes: |- https://www.googleapis.com/auth/analytics.edit, https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1beta.AnalyticsAdminService.GetKeyEvent + 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: |- @@ -107,6 +112,11 @@ authentication: canonical_scopes: |- https://www.googleapis.com/auth/analytics.edit, https://www.googleapis.com/auth/analytics.readonly + - selector: google.analytics.admin.v1beta.AnalyticsAdminService.ListKeyEvents + 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: |- diff --git a/google/analytics/admin/v1beta/resources.proto b/google/analytics/admin/v1beta/resources.proto index b58cf2d55..0c290c15b 100644 --- a/google/analytics/admin/v1beta/resources.proto +++ b/google/analytics/admin/v1beta/resources.proto @@ -21,10 +21,14 @@ 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 go_package = "cloud.google.com/go/analytics/admin/apiv1beta/adminpb;adminpb"; option java_multiple_files = true; option java_outer_classname = "ResourcesProto"; option java_package = "com.google.analytics.admin.v1beta"; +option (google.api.resource_definition) = { + type: "marketingplatformadmin.googleapis.com/Organization" + pattern: "organizations/{organization}" +}; // The category selected for this property, used for industry benchmarking. enum IndustryCategory { @@ -239,6 +243,16 @@ message Account { // 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]; + + // Output only. The URI for a Google Marketing Platform organization resource. + // Only set when this account is connected to a GMP organization. + // Format: marketingplatformadmin.googleapis.com/organizations/{org_id} + string gmp_organization = 7 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "marketingplatformadmin.googleapis.com/Organization" + } + ]; } // A resource message representing a Google Analytics GA4 property. @@ -255,8 +269,7 @@ message Property { // 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 with the Google Analytics Admin API. + // "ORDINARY_PROPERTY" will be implied. PropertyType property_type = 14 [(google.api.field_behavior) = IMMUTABLE]; // Output only. Time when the entity was originally created. @@ -681,6 +694,20 @@ message ConversionEvent { pattern: "properties/{property}/conversionEvents/{conversion_event}" }; + // Defines a default value/currency for a conversion event. Both value and + // currency must be provided. + message DefaultConversionValue { + // This value will be used to populate the value for all conversions + // of the specified event_name where the event "value" parameter is unset. + optional double value = 1; + + // When a conversion event for this event_name has no set currency, + // this currency will be applied as the default. Must be in ISO 4217 + // currency code format. See https://en.wikipedia.org/wiki/ISO_4217 for + // more information. + optional string currency_code = 2; + } + // The method by which conversions will be counted across multiple events // within a session. enum ConversionCountingMethod { @@ -724,6 +751,79 @@ message ConversionEvent { // `ONCE_PER_EVENT`. ConversionCountingMethod counting_method = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Defines a default value/currency for a conversion event. + optional DefaultConversionValue default_conversion_value = 7 + [(google.api.field_behavior) = OPTIONAL]; +} + +// A key event in a Google Analytics property. +message KeyEvent { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/KeyEvent" + pattern: "properties/{property}/keyEvents/{key_event}" + plural: "keyEvents" + singular: "keyEvent" + }; + + // Defines a default value/currency for a key event. + message DefaultValue { + // Required. This will be used to populate the "value" parameter for all + // occurrences of this Key Event (specified by event_name) where that + // parameter is unset. + double numeric_value = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. When an occurrence of this Key Event (specified by event_name) + // has no set currency this currency will be applied as the default. Must be + // in ISO 4217 currency code format. + // + // See https://en.wikipedia.org/wiki/ISO_4217 for more information. + string currency_code = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // The method by which Key Events will be counted across multiple events + // within a session. + enum CountingMethod { + // Counting method not specified. + COUNTING_METHOD_UNSPECIFIED = 0; + + // Each Event instance is considered a Key Event. + ONCE_PER_EVENT = 1; + + // An Event instance is considered a Key Event at most once per session per + // user. + ONCE_PER_SESSION = 2; + } + + // Output only. Resource name of this key event. + // Format: properties/{property}/keyEvents/{key_event} + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Immutable. The event name for this key event. + // Examples: 'click', 'purchase' + string event_name = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Time when this key event was created in the property. + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If set to true, this event can be deleted. + bool deletable = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If set to true, this key event refers to a custom event. If + // set to false, this key 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 key events that may be created per property. + bool custom = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The method by which Key Events will be counted across multiple + // events within a session. + CountingMethod counting_method = 6 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Defines a default value/currency for a key event. + DefaultValue default_value = 7 [(google.api.field_behavior) = OPTIONAL]; } // A definition for a CustomDimension. diff --git a/google/cloud/gkeconnect/gateway/v1alpha1/BUILD.bazel b/google/analytics/cloud/BUILD.bazel similarity index 50% rename from google/cloud/gkeconnect/gateway/v1alpha1/BUILD.bazel rename to google/analytics/cloud/BUILD.bazel index 903ab9537..ed67d638f 100644 --- a/google/cloud/gkeconnect/gateway/v1alpha1/BUILD.bazel +++ b/google/analytics/cloud/BUILD.bazel @@ -1,13 +1,6 @@ # This file was automatically generated by BuildFileGenerator -# https://github.com/googleapis/rules_gapic/tree/master/bazel -# Most of the manual changes to this file will be overwritten. -# It's **only** allowed to change the following rule attribute values: -# - names of *_gapic_assembly_* rules -# - certain parameters of *_gapic_library rules, including but not limited to: -# * extra_protoc_parameters -# * extra_protoc_file_parameters -# The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) @@ -18,107 +11,136 @@ package(default_visibility = ["//visibility:public"]) load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( - name = "gateway_proto", + name = "cloud_proto", srcs = [ - "gateway.proto", + "bigquery_export_platform_log.proto", ], deps = [ - "//google/api:annotations_proto", - "//google/api:client_proto", - "//google/api:httpbody_proto", ], ) ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", - "java_grpc_library", + "java_gapic_assembly_gradle_pkg", "java_proto_library", ) java_proto_library( - name = "gateway_java_proto", - deps = [":gateway_proto"], + name = "cloud_java_proto", + deps = [":cloud_proto"], ) -java_grpc_library( - name = "gateway_java_grpc", - srcs = [":gateway_proto"], - deps = [":gateway_java_proto"], +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-analytics-cloud-java", + deps = [ + ":cloud_java_proto", + ":cloud_proto", + ], ) ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", "go_proto_library", ) go_proto_library( - name = "gateway_go_proto", + name = "cloud_go_proto", compilers = ["@io_bazel_rules_go//proto:go_grpc"], - importpath = "cloud.google.com/go/gkeconnect/gateway/apiv1alpha1/gatewaypb", - protos = [":gateway_proto"], + importpath = "google.golang.org/genproto/googleapis/analytics/cloud", + protos = [":cloud_proto"], deps = [ - "//google/api:annotations_go_proto", - "//google/api:httpbody_go_proto", + ], +) + +go_gapic_assembly_pkg( + name = "google-analytics-cloud-go", + deps = [ + ":cloud_go_proto", ], ) ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "moved_proto_library", + "py_gapic_assembly_pkg", + "py_gapic_library", "py_grpc_library", "py_proto_library", ) moved_proto_library( - name = "gateway_moved_proto", - srcs = [":gateway_proto"], + name = "cloud_moved_proto", + srcs = [":cloud_proto"], deps = [ - "//google/api:annotations_proto", - "//google/api:client_proto", - "//google/api:httpbody_proto", ], ) py_proto_library( - name = "gateway_py_proto", - deps = [":gateway_moved_proto"], + name = "cloud_py_proto", + deps = [":cloud_moved_proto"], ) py_grpc_library( - name = "gateway_py_grpc", - srcs = [":gateway_moved_proto"], - deps = [":gateway_py_proto"], + name = "cloud_py_grpc", + srcs = [":cloud_moved_proto"], + deps = [":cloud_py_proto"], +) + +py_gapic_library( + name = "cloud_py_gapic", + srcs = [":cloud_proto"], + rest_numeric_enums = False, + transport = "grpc+rest", +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "google-analytics-cloud-py", + deps = [ + ":cloud_py_gapic", + ], ) ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", "php_proto_library", ) php_proto_library( - name = "gateway_php_proto", - deps = [":gateway_proto"], + name = "cloud_php_proto", + deps = [":cloud_proto"], ) -############################################################################## -# Node.js -############################################################################## +php_gapic_assembly_pkg( + name = "google-analytics-cloud-php", + deps = [ + ":cloud_php_proto", + ], +) ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_grpc_library", @@ -126,37 +148,59 @@ load( ) ruby_proto_library( - name = "gateway_ruby_proto", - deps = [":gateway_proto"], + name = "cloud_ruby_proto", + deps = [":cloud_proto"], ) ruby_grpc_library( - name = "gateway_ruby_grpc", - srcs = [":gateway_proto"], - deps = [":gateway_ruby_proto"], + name = "cloud_ruby_grpc", + srcs = [":cloud_proto"], + deps = [":cloud_ruby_proto"], ) ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", - "csharp_grpc_library", + "csharp_gapic_assembly_pkg", "csharp_proto_library", ) csharp_proto_library( - name = "gateway_csharp_proto", - deps = [":gateway_proto"], + name = "cloud_csharp_proto", + deps = [":cloud_proto"], ) -csharp_grpc_library( - name = "gateway_csharp_grpc", - srcs = [":gateway_proto"], - deps = [":gateway_csharp_proto"], +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-analytics-cloud-csharp", + package_name = "Google.Analytics.Cloud", + generate_nongapic_package = True, + deps = [ + ":cloud_csharp_proto", + ], ) ############################################################################## # C++ ############################################################################## -# Put your C++ rules here +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "cloud_cc_proto", + deps = [":cloud_proto"], +) + +cc_grpc_library( + name = "cloud_cc_grpc", + srcs = [":cloud_proto"], + grpc_only = True, + deps = [":cloud_cc_proto"], +) diff --git a/google/analytics/cloud/README.md b/google/analytics/cloud/README.md new file mode 100644 index 000000000..950711f73 --- /dev/null +++ b/google/analytics/cloud/README.md @@ -0,0 +1,3 @@ +# Analytics Data API Logging Integration + +A log entry representing the status of event export from Google Analytics to BigQuery. diff --git a/google/analytics/cloud/bigquery_export_platform_log.proto b/google/analytics/cloud/bigquery_export_platform_log.proto new file mode 100644 index 000000000..01cfd7ca0 --- /dev/null +++ b/google/analytics/cloud/bigquery_export_platform_log.proto @@ -0,0 +1,52 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.analytics.cloud; + +option csharp_namespace = "Google.Analytics.Cloud"; +option go_package = "google.golang.org/genproto/googleapis/analytics/cloud;cloud"; + +// ExportStatusLog is used in a log entry to represent the status of a given +// BigQuery export job from Google Analytics. Typically, it is sent at the +// beginning of the day to indicate the completion of the previous day's export. +message ExportStatusLog { + // The status of the export. + enum Status { + // The export status is unknown. + UNKNOWN = 0; + + // The export completed and data is complete. + COMPLETE = 1; + + // The export completed but data is incomplete. + INCOMPLETE = 2; + + // The export failed. + FAILED = 3; + } + + // The date of the export. Usually set to the collection date (YYYYMMDD). + string export_date = 1; + + // The status of the export. + Status status = 2; + + // The number of events exported, may include events not eligible for SLA. + int64 event_count = 3; + + // Additional information associated with the status. + string message = 4; +} diff --git a/google/analytics/data/v1alpha/BUILD.bazel b/google/analytics/data/v1alpha/BUILD.bazel index 74f4b61b8..930e768b0 100644 --- a/google/analytics/data/v1alpha/BUILD.bazel +++ b/google/analytics/data/v1alpha/BUILD.bazel @@ -332,7 +332,6 @@ load( csharp_proto_library( name = "data_csharp_proto", - extra_opts = [], deps = [":data_proto"], ) diff --git a/google/analytics/data/v1alpha/analytics_data_api.proto b/google/analytics/data/v1alpha/analytics_data_api.proto index 25d3d4c27..0b00c65a5 100644 --- a/google/analytics/data/v1alpha/analytics_data_api.proto +++ b/google/analytics/data/v1alpha/analytics_data_api.proto @@ -266,10 +266,26 @@ service AlphaAnalyticsData { option (google.api.method_signature) = "parent"; } + // Get all property quotas organized by quota category for a given property. + // This will charge 1 property quota from the category with the most quota. + rpc GetPropertyQuotasSnapshot(GetPropertyQuotasSnapshotRequest) + returns (PropertyQuotasSnapshot) { + option (google.api.http) = { + get: "/v1alpha/{name=properties/*/propertyQuotasSnapshot}" + }; + option (google.api.method_signature) = "name"; + } + // Initiates the creation of a report task. This method quickly // returns a report task and initiates a long running // asynchronous request to form a customized report of your Google Analytics // event data. + // + // A report task will be retained and available for querying for 72 hours + // after it has been created. + // + // A report task created by one user can be listed and queried by all users + // who have access to the property. rpc CreateReportTask(CreateReportTaskRequest) returns (google.longrunning.Operation) { option (google.api.http) = { @@ -514,6 +530,40 @@ message ListRecurringAudienceListsResponse { optional string next_page_token = 2; } +// A request to return the PropertyQuotasSnapshot for a given category. +message GetPropertyQuotasSnapshotRequest { + // Required. Quotas from this property will be listed in the response. + // Format: `properties/{property}/propertyQuotasSnapshot` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "analyticsadmin.googleapis.com/PropertyQuotasSnapshot" + } + ]; +} + +// Current state of all Property Quotas organized by quota category. +message PropertyQuotasSnapshot { + option (google.api.resource) = { + type: "analyticsadmin.googleapis.com/PropertyQuotasSnapshot" + pattern: "properties/{property}/propertyQuotasSnapshot" + plural: "propertyQuotasSnapshots" + singular: "propertyQuotasSnapshot" + }; + + // Identifier. The property quota snapshot resource name. + string name = 4 [(google.api.field_behavior) = IDENTIFIER]; + + // Property Quota for core property tokens + PropertyQuota core_property_quota = 1; + + // Property Quota for realtime property tokens + PropertyQuota realtime_property_quota = 2; + + // Property Quota for funnel property tokens + PropertyQuota funnel_property_quota = 3; +} + // A request to retrieve configuration metadata about a specific audience list. message GetAudienceListRequest { // Required. The audience list resource name. @@ -844,9 +894,9 @@ message RunFunnelReportRequest { TRENDED_FUNNEL = 2; } - // Optional. 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 + // Optional. A Google Analytics 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. @@ -1030,12 +1080,16 @@ message ReportTask { // not separately removed by a filter. // // Regardless of this `keep_empty_rows` setting, only data recorded by the - // Google Analytics (GA4) property can be displayed in a report. + // Google Analytics property can be displayed in a report. // // For example if a property never logs a `purchase` event, then a query for // the `eventName` dimension and `eventCount` metric will not have a row // containing eventName: "purchase" and eventCount: 0. bool keep_empty_rows = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The report's sampling level. + optional SamplingLevel sampling_level = 14 + [(google.api.field_behavior) = OPTIONAL]; } // The report metadata for a specific report task. @@ -1104,7 +1158,7 @@ message ReportTask { } // Output only. Identifier. The report task resource name assigned during - // creation. Format: `properties/{property}/reportTasks/{report_task}` + // creation. Format: "properties/{property}/reportTasks/{report_task}" string name = 1 [ (google.api.field_behavior) = IDENTIFIER, (google.api.field_behavior) = OUTPUT_ONLY diff --git a/google/analytics/data/v1alpha/data.proto b/google/analytics/data/v1alpha/data.proto index b861a33ce..1ec409c3c 100644 --- a/google/analytics/data/v1alpha/data.proto +++ b/google/analytics/data/v1alpha/data.proto @@ -1107,7 +1107,7 @@ enum EventExclusionDuration { // 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 +// To learn more, see [Segment // Builder](https://support.google.com/analytics/answer/9304353). message Segment { // The name for this segment. If unspecified, segments are named "Segment". @@ -1561,8 +1561,8 @@ enum MetricType { TYPE_KILOMETERS = 13; } -// Categories of data that you may be restricted from viewing on certain GA4 -// properties. +// Categories of data that you may be restricted from viewing on certain +// Google Analytics properties. enum RestrictedMetricType { // Unspecified type. RESTRICTED_METRIC_TYPE_UNSPECIFIED = 0; @@ -1573,3 +1573,23 @@ enum RestrictedMetricType { // Revenue metrics such as `purchaseRevenue`. REVENUE_DATA = 2; } + +// Categories of sampling levels for the requests. +enum SamplingLevel { + // Unspecified type. + SAMPLING_LEVEL_UNSPECIFIED = 0; + + // Applies a sampling level of 10 million to standard properties and + // 100 million to Google Analytics 360 properties. + LOW = 1; + + // Exclusive to Google Analytics 360 properties with a sampling level of 1 + // billion. + MEDIUM = 2; + + // Exclusive to Google Analytics 360 properties. Unsampled explorations are + // more accurate and can reveal insights that aren't visible in standard + // explorations. To learn more, see + // https://support.google.com/analytics/answer/10896953. + UNSAMPLED = 3; +} diff --git a/google/analytics/data/v1beta/BUILD.bazel b/google/analytics/data/v1beta/BUILD.bazel index cf10df639..91485df4d 100644 --- a/google/analytics/data/v1beta/BUILD.bazel +++ b/google/analytics/data/v1beta/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "data_proto", @@ -45,6 +48,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -107,6 +111,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -158,6 +163,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -197,6 +203,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -234,6 +241,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -264,6 +272,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -319,6 +328,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -329,7 +339,6 @@ load( csharp_proto_library( name = "data_csharp_proto", - extra_opts = [], deps = [":data_proto"], ) @@ -366,6 +375,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/google/analytics/data/v1beta/analytics_data_api.proto b/google/analytics/data/v1beta/analytics_data_api.proto index d65e20741..b9df319f0 100644 --- a/google/analytics/data/v1beta/analytics_data_api.proto +++ b/google/analytics/data/v1beta/analytics_data_api.proto @@ -311,6 +311,9 @@ message Metadata { // The metric descriptions. repeated MetricMetadata metrics = 2; + + // The comparison descriptions. + repeated ComparisonMetadata comparisons = 4; } // The request to generate a report. @@ -403,6 +406,11 @@ message RunReportRequest { // Toggles whether to return the current state of this Analytics Property's // quota. Quota is returned in [PropertyQuota](#PropertyQuota). bool return_property_quota = 14; + + // Optional. The configuration of comparisons requested and displayed. The + // request only requires a comparisons field in order to receive a comparison + // column in the response. + repeated Comparison comparisons = 15 [(google.api.field_behavior) = OPTIONAL]; } // The response report table corresponding to a request. @@ -515,6 +523,11 @@ message RunPivotReportRequest { // Toggles whether to return the current state of this Analytics Property's // quota. Quota is returned in [PropertyQuota](#PropertyQuota). bool return_property_quota = 11; + + // Optional. The configuration of comparisons requested and displayed. The + // request requires both a comparisons field and a comparisons dimension to + // receive a comparison column in the response. + repeated Comparison comparisons = 12 [(google.api.field_behavior) = OPTIONAL]; } // The response pivot report table corresponding to a pivot request. diff --git a/google/analytics/data/v1beta/data.proto b/google/analytics/data/v1beta/data.proto index af9b73a4b..f89b70daf 100644 --- a/google/analytics/data/v1beta/data.proto +++ b/google/analytics/data/v1beta/data.proto @@ -186,6 +186,25 @@ message Metric { bool invisible = 3; } +// Defines an individual comparison. Most requests will include multiple +// comparisons so that the report compares between the comparisons. +message Comparison { + // Each comparison produces separate rows in the response. In the response, + // this comparison is identified by this name. If name is unspecified, we will + // use the saved comparisons display name. + optional string name = 1; + + // One kind of comparison value + oneof one_comparison { + // A basic comparison. + FilterExpression dimension_filter = 2; + + // A saved comparison identified by the comparison's resource name. + // For example, 'comparisons/1234'. + string comparison = 3; + } +} + // To express dimension or metric filters. The fields in the same // FilterExpression need to be either all dimensions or all metrics. message FilterExpression { @@ -861,7 +880,11 @@ message DimensionMetadata { // available only by `apiName`. repeated string deprecated_api_names = 4; - // True if the dimension is a custom dimension for this property. + // True if the dimension is custom to this property. This includes user, + // event, & item scoped custom dimensions; to learn more about custom + // dimensions, see https://support.google.com/analytics/answer/14240153. This + // also include custom channel groups; to learn more about custom channel + // groups, see https://support.google.com/analytics/answer/13051316. bool custom_definition = 5; // The display name of the category that this dimension belongs to. Similar @@ -928,6 +951,19 @@ message MetricMetadata { string category = 10; } +// The metadata for a single comparison. +message ComparisonMetadata { + // This comparison's resource name. Useable in [Comparison](#Comparison)'s + // `comparison` field. For example, 'comparisons/1234'. + string api_name = 1; + + // This comparison's name within the Google Analytics user interface. + string ui_name = 2; + + // This comparison's description. + string description = 3; +} + // The compatibility for a single dimension. message DimensionCompatibility { // The dimension metadata contains the API name for this compatibility diff --git a/google/api/client.proto b/google/api/client.proto index 3a5f9290f..7ba1db3da 100644 --- a/google/api/client.proto +++ b/google/api/client.proto @@ -124,6 +124,9 @@ message CommonLanguageSettings { // The destination where API teams want this client library to be published. repeated ClientLibraryDestination destinations = 2; + + // Configuration for which RPCs should be generated in the GAPIC client. + SelectiveGapicGeneration selective_gapic_generation = 3; } // Details about how and where to publish client libraries. @@ -263,8 +266,22 @@ message PhpSettings { // Settings for Python client libraries. message PythonSettings { + // Experimental features to be included during client library generation. + // These fields will be deprecated once the feature graduates and is enabled + // by default. + message ExperimentalFeatures { + // Enables generation of asynchronous REST clients if `rest` transport is + // enabled. By default, asynchronous REST clients will not be generated. + // This feature will be enabled by default 1 month after launching the + // feature in preview packages. + bool rest_async_io_enabled = 1; + } + // Some settings. CommonLanguageSettings common = 1; + + // Experimental features to be included during client library generation. + ExperimentalFeatures experimental_features = 2; } // Settings for Node client libraries. @@ -349,6 +366,13 @@ message MethodSettings { // The fully qualified name of the method, for which the options below apply. // This is used to find the method to apply the options. + // + // Example: + // + // publishing: + // method_settings: + // - selector: google.storage.control.v2.StorageControl.CreateFolder + // # method settings for CreateFolder... string selector = 1; // Describes settings to use for long-running operations when generating @@ -357,17 +381,14 @@ message MethodSettings { // // Example of a YAML configuration:: // - // publishing: - // method_settings: + // publishing: + // method_settings: // - selector: google.cloud.speech.v2.Speech.BatchRecognize // long_running: - // initial_poll_delay: - // seconds: 60 # 1 minute + // initial_poll_delay: 60s # 1 minute // poll_delay_multiplier: 1.5 - // max_poll_delay: - // seconds: 360 # 6 minutes - // total_poll_timeout: - // seconds: 54000 # 90 minutes + // max_poll_delay: 360s # 6 minutes + // total_poll_timeout: 54000s # 90 minutes LongRunning long_running = 2; // List of top-level fields of the request message, that should be @@ -376,8 +397,8 @@ message MethodSettings { // // Example of a YAML configuration: // - // publishing: - // method_settings: + // publishing: + // method_settings: // - selector: google.example.v1.ExampleService.CreateExample // auto_populated_fields: // - request_id @@ -425,3 +446,11 @@ enum ClientLibraryDestination { // Publish the library to package managers like nuget.org and npmjs.com. PACKAGE_MANAGER = 20; } + +// This message is used to configure the generation of a subset of the RPCs in +// a service for client libraries. +message SelectiveGapicGeneration { + // An allowlist of the fully qualified names of RPCs that should be included + // on public client surfaces. + repeated string methods = 1; +} diff --git a/google/api/context.proto b/google/api/context.proto index 78f2813b3..ec76a47f8 100644 --- a/google/api/context.proto +++ b/google/api/context.proto @@ -74,10 +74,12 @@ message ContextRule { // details. string selector = 1; - // A list of full type names of requested contexts. + // A list of full type names of requested contexts, only the requested context + // will be made available to the backend. repeated string requested = 2; - // A list of full type names of provided contexts. + // A list of full type names of provided contexts. It is used to support + // propagating HTTP headers and ETags from the response extension. repeated string provided = 3; // A list of full type names or extension IDs of extensions allowed in grpc diff --git a/google/api/endpoint.proto b/google/api/endpoint.proto index 2dc354b96..07c1b4f05 100644 --- a/google/api/endpoint.proto +++ b/google/api/endpoint.proto @@ -47,14 +47,10 @@ message Endpoint { // The canonical name of this endpoint. string name = 1; - // Unimplemented. Dot not use. - // - // DEPRECATED: This field is no longer supported. Instead of using aliases, - // please specify multiple [google.api.Endpoint][google.api.Endpoint] for each - // of the intended aliases. - // - // Additional names that this endpoint will be hosted on. - repeated string aliases = 2 [deprecated = true]; + // Aliases for this endpoint, these will be served by the same UrlMap as the + // parent endpoint, and will be provisioned in the GCP stack for the Regional + // Endpoints. + repeated string aliases = 2; // The specification of an Internet routable address of API frontend that will // handle requests to this [API diff --git a/google/api/error_reason.proto b/google/api/error_reason.proto index a5a8ca57c..e442c7b30 100644 --- a/google/api/error_reason.proto +++ b/google/api/error_reason.proto @@ -586,4 +586,37 @@ enum ErrorReason { // "locations/asia-northeast3" violates at least one location policy. // The troubleshooting guidance is provided in the Help links. LOCATION_POLICY_VIOLATED = 31; + + // The request is denied because origin request header is missing. + // + // Example of an ErrorInfo when + // accessing "pubsub.googleapis.com" service with an empty "Origin" request + // header. + // + // { + // reason: "MISSING_ORIGIN" + // domain: "googleapis.com" + // metadata { + // "consumer":"projects/123456" + // "service": "pubsub.googleapis.com" + // } + // } + MISSING_ORIGIN = 33; + + // The request is denied because the request contains more than one credential + // type that are individually acceptable, but not together. The customer + // should retry their request with only one set of credentials. + // + // Example of an ErrorInfo when + // accessing "pubsub.googleapis.com" service with overloaded credentials. + // + // { + // reason: "OVERLOADED_CREDENTIALS" + // domain: "googleapis.com" + // metadata { + // "consumer":"projects/123456" + // "service": "pubsub.googleapis.com" + // } + // } + OVERLOADED_CREDENTIALS = 34; } diff --git a/google/api/expr/v1alpha1/syntax.proto b/google/api/expr/v1alpha1/syntax.proto index ab2e3de2f..7b6668db1 100644 --- a/google/api/expr/v1alpha1/syntax.proto +++ b/google/api/expr/v1alpha1/syntax.proto @@ -184,11 +184,49 @@ message Expr { // messages `has(m.x)` is defined as 'defined, but not set`. For proto3, the // macro tests whether the property is set to its default. For map and struct // types, the macro tests whether the property `x` is defined on `m`. + // + // Comprehensions for the standard environment macros evaluation can be best + // visualized as the following pseudocode: + // + // ``` + // let `accu_var` = `accu_init` + // for (let `iter_var` in `iter_range`) { + // if (!`loop_condition`) { + // break + // } + // `accu_var` = `loop_step` + // } + // return `result` + // ``` + // + // Comprehensions for the optional V2 macros which support map-to-map + // translation differ slightly from the standard environment macros in that + // they expose both the key or index in addition to the value for each list + // or map entry: + // + // ``` + // let `accu_var` = `accu_init` + // for (let `iter_var`, `iter_var2` in `iter_range`) { + // if (!`loop_condition`) { + // break + // } + // `accu_var` = `loop_step` + // } + // return `result` + // ``` message Comprehension { - // The name of the iteration variable. + // The name of the first iteration variable. + // When the iter_range is a list, this variable is the list element. + // When the iter_range is a map, this variable is the map entry key. string iter_var = 1; - // The range over which var iterates. + // The name of the second iteration variable, empty if not set. + // When the iter_range is a list, this variable is the integer index. + // When the iter_range is a map, this variable is the map entry value. + // This field is only set for comprehension v2 macros. + string iter_var2 = 8; + + // The range over which the comprehension iterates. Expr iter_range = 2; // The name of the variable used for accumulation of the result. @@ -197,13 +235,13 @@ message Expr { // The initial value of the accumulator. Expr accu_init = 4; - // An expression which can contain iter_var and accu_var. + // An expression which can contain iter_var, iter_var2, and accu_var. // // Returns false when the result has been computed and may be used as // a hint to short-circuit the remainder of the comprehension. Expr loop_condition = 5; - // An expression which can contain iter_var and accu_var. + // An expression which can contain iter_var, iter_var2, and accu_var. // // Computes the next value of accu_var. Expr loop_step = 6; diff --git a/google/api/field_info.proto b/google/api/field_info.proto index b2197b52a..2cc0876d7 100644 --- a/google/api/field_info.proto +++ b/google/api/field_info.proto @@ -29,12 +29,19 @@ extend google.protobuf.FieldOptions { // // Examples: // - // string request_id = 1 [(google.api.field_info).format = UUID4]; - // string old_ip_address = 2 [(google.api.field_info).format = IPV4]; - // string new_ip_address = 3 [(google.api.field_info).format = IPV6]; - // string actual_ip_address = 4 [ - // (google.api.field_info).format = IPV4_OR_IPV6 - // ]; + // string request_id = 1 [(google.api.field_info).format = UUID4]; + // string old_ip_address = 2 [(google.api.field_info).format = IPV4]; + // string new_ip_address = 3 [(google.api.field_info).format = IPV6]; + // string actual_ip_address = 4 [ + // (google.api.field_info).format = IPV4_OR_IPV6 + // ]; + // google.protobuf.Any generic_field = 5 [ + // (google.api.field_info).referenced_types = {type_name: "ActualType"}, + // (google.api.field_info).referenced_types = {type_name: "OtherType"}, + // ]; + // google.protobuf.Any generic_user_input = 5 [ + // (google.api.field_info).referenced_types = {type_name: "*"}, + // ]; google.api.FieldInfo field_info = 291403980; } @@ -76,4 +83,24 @@ message FieldInfo { // any API consumer, just documents the API's format for the field it is // applied to. Format format = 1; + + // The type(s) that the annotated, generic field may represent. + // + // Currently, this must only be used on fields of type `google.protobuf.Any`. + // Supporting other generic types may be considered in the future. + repeated TypeReference referenced_types = 2; +} + +// A reference to a message type, for use in [FieldInfo][google.api.FieldInfo]. +message TypeReference { + // The name of the type that the annotated, generic field may represent. + // If the type is in the same protobuf package, the value can be the simple + // message name e.g., `"MyMessage"`. Otherwise, the value must be the + // fully-qualified message name e.g., `"google.library.v1.Book"`. + // + // If the type(s) are unknown to the service (e.g. the field accepts generic + // user input), use the wildcard `"*"` to denote this behavior. + // + // See [AIP-202](https://google.aip.dev/202#type-references) for more details. + string type_name = 1; } diff --git a/google/api/http.proto b/google/api/http.proto index afa00aede..e3270371d 100644 --- a/google/api/http.proto +++ b/google/api/http.proto @@ -41,7 +41,7 @@ message Http { bool fully_decode_reserved_expansion = 2; } -// # gRPC Transcoding +// gRPC Transcoding // // gRPC Transcoding is a feature for mapping between a gRPC method and one or // more HTTP REST endpoints. It allows developers to build a single API service @@ -82,9 +82,8 @@ message Http { // // This enables an HTTP REST to gRPC mapping as below: // -// HTTP | gRPC -// -----|----- -// `GET /v1/messages/123456` | `GetMessage(name: "messages/123456")` +// - HTTP: `GET /v1/messages/123456` +// - gRPC: `GetMessage(name: "messages/123456")` // // Any fields in the request message which are not bound by the path template // automatically become HTTP query parameters if there is no HTTP request body. @@ -108,11 +107,9 @@ message Http { // // This enables a HTTP JSON to RPC mapping as below: // -// HTTP | gRPC -// -----|----- -// `GET /v1/messages/123456?revision=2&sub.subfield=foo` | -// `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield: -// "foo"))` +// - HTTP: `GET /v1/messages/123456?revision=2&sub.subfield=foo` +// - gRPC: `GetMessage(message_id: "123456" revision: 2 sub: +// SubMessage(subfield: "foo"))` // // Note that fields which are mapped to URL query parameters must have a // primitive type or a repeated primitive type or a non-repeated message type. @@ -142,10 +139,8 @@ message Http { // representation of the JSON in the request body is determined by // protos JSON encoding: // -// HTTP | gRPC -// -----|----- -// `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: -// "123456" message { text: "Hi!" })` +// - HTTP: `PATCH /v1/messages/123456 { "text": "Hi!" }` +// - gRPC: `UpdateMessage(message_id: "123456" message { text: "Hi!" })` // // The special name `*` can be used in the body mapping to define that // every field not bound by the path template should be mapped to the @@ -168,10 +163,8 @@ message Http { // // The following HTTP JSON to RPC mapping is enabled: // -// HTTP | gRPC -// -----|----- -// `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: -// "123456" text: "Hi!")` +// - HTTP: `PATCH /v1/messages/123456 { "text": "Hi!" }` +// - gRPC: `UpdateMessage(message_id: "123456" text: "Hi!")` // // Note that when using `*` in the body mapping, it is not possible to // have HTTP parameters, as all fields not bound by the path end in @@ -199,13 +192,13 @@ message Http { // // This enables the following two alternative HTTP JSON to RPC mappings: // -// HTTP | gRPC -// -----|----- -// `GET /v1/messages/123456` | `GetMessage(message_id: "123456")` -// `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: -// "123456")` +// - HTTP: `GET /v1/messages/123456` +// - gRPC: `GetMessage(message_id: "123456")` // -// ## Rules for HTTP mapping +// - HTTP: `GET /v1/users/me/messages/123456` +// - gRPC: `GetMessage(user_id: "me" message_id: "123456")` +// +// Rules for HTTP mapping // // 1. Leaf request fields (recursive expansion nested messages in the request // message) are classified into three categories: @@ -224,7 +217,7 @@ message Http { // request body, all // fields are passed via URL path and URL query parameters. // -// ### Path template syntax +// Path template syntax // // Template = "/" Segments [ Verb ] ; // Segments = Segment { "/" Segment } ; @@ -263,7 +256,7 @@ message Http { // Document](https://developers.google.com/discovery/v1/reference/apis) as // `{+var}`. // -// ## Using gRPC API Service Configuration +// Using gRPC API Service Configuration // // gRPC API Service Configuration (service config) is a configuration language // for configuring a gRPC service to become a user-facing product. The @@ -278,15 +271,14 @@ message Http { // specified in the service config will override any matching transcoding // configuration in the proto. // -// Example: +// The following example selects a gRPC method and applies an `HttpRule` to it: // // http: // rules: -// # Selects a gRPC method and applies HttpRule to it. // - selector: example.v1.Messaging.GetMessage // get: /v1/messages/{message_id}/{sub.subfield} // -// ## Special notes +// Special notes // // When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the // proto to JSON conversion must follow the [proto3 diff --git a/google/api/metric.proto b/google/api/metric.proto index 126f526cd..c393a421c 100644 --- a/google/api/metric.proto +++ b/google/api/metric.proto @@ -80,6 +80,21 @@ message MetricDescriptor { // Additional annotations that can be used to guide the usage of a metric. message MetricDescriptorMetadata { + // The resource hierarchy level of the timeseries data of a metric. + enum TimeSeriesResourceHierarchyLevel { + // Do not use this default value. + TIME_SERIES_RESOURCE_HIERARCHY_LEVEL_UNSPECIFIED = 0; + + // Scopes a metric to a project. + PROJECT = 1; + + // Scopes a metric to an organization. + ORGANIZATION = 2; + + // Scopes a metric to a folder. + FOLDER = 3; + } + // Deprecated. Must use the // [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage] // instead. @@ -95,6 +110,10 @@ message MetricDescriptor { // age are guaranteed to be ingested and available to be read, excluding // data loss due to errors. google.protobuf.Duration ingest_delay = 3; + + // The scope of the timeseries data of the metric. + repeated TimeSeriesResourceHierarchyLevel + time_series_resource_hierarchy_level = 4; } // The resource name of the metric descriptor. diff --git a/google/api/policy.proto b/google/api/policy.proto index 25b75f3a4..f55e0cae3 100644 --- a/google/api/policy.proto +++ b/google/api/policy.proto @@ -25,16 +25,14 @@ option java_outer_classname = "PolicyProto"; option java_package = "com.google.api"; option objc_class_prefix = "GAPI"; -// Provides `google.api.field_policy` annotation at proto fields. extend google.protobuf.FieldOptions { // See [FieldPolicy][]. - FieldPolicy field_policy = 158361448; + google.api.FieldPolicy field_policy = 158361448; } -// Provides `google.api.method_policy` annotation at proto methods. extend google.protobuf.MethodOptions { // See [MethodPolicy][]. - MethodPolicy method_policy = 161893301; + google.api.MethodPolicy method_policy = 161893301; } // Google API Policy Annotation diff --git a/google/api/resource.proto b/google/api/resource.proto index f17520d20..3762af84a 100644 --- a/google/api/resource.proto +++ b/google/api/resource.proto @@ -179,8 +179,13 @@ message ResourceDescriptor { // The plural name used in the resource name and permission names, such as // 'projects' for the resource name of 'projects/{project}' and the permission - // name of 'cloudresourcemanager.googleapis.com/projects.get'. It is the same - // concept of the `plural` field in k8s CRD spec + // name of 'cloudresourcemanager.googleapis.com/projects.get'. One exception + // to this is for Nested Collections that have stuttering names, as defined + // in [AIP-122](https://google.aip.dev/122#nested-collections), where the + // collection ID in the resource name pattern does not necessarily directly + // match the `plural` value. + // + // It is the same concept of the `plural` field in k8s CRD spec // https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/ // // Note: The plural form is required even for singleton resources. See diff --git a/google/api/servicecontrol/v1/BUILD.bazel b/google/api/servicecontrol/v1/BUILD.bazel index 3ee92d47e..63d178782 100644 --- a/google/api/servicecontrol/v1/BUILD.bazel +++ b/google/api/servicecontrol/v1/BUILD.bazel @@ -212,7 +212,7 @@ php_gapic_library( name = "servicecontrol_php_gapic", srcs = [":servicecontrol_proto_with_info"], grpc_service_config = "servicecontrol_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "servicecontrol.yaml", transport = "grpc+rest", diff --git a/google/api/servicemanagement/v1/BUILD.bazel b/google/api/servicemanagement/v1/BUILD.bazel index f6315e86b..d2ad13d83 100644 --- a/google/api/servicemanagement/v1/BUILD.bazel +++ b/google/api/servicemanagement/v1/BUILD.bazel @@ -232,7 +232,7 @@ php_gapic_library( name = "servicemanagement_php_gapic", srcs = [":servicemanagement_proto_with_info"], grpc_service_config = "servicemanagement_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "servicemanagement_v1.yaml", transport = "grpc+rest", diff --git a/google/api/serviceusage/v1/BUILD.bazel b/google/api/serviceusage/v1/BUILD.bazel index 7d98f4858..60faef2bc 100644 --- a/google/api/serviceusage/v1/BUILD.bazel +++ b/google/api/serviceusage/v1/BUILD.bazel @@ -227,7 +227,7 @@ php_gapic_library( name = "serviceusage_php_gapic", srcs = [":serviceusage_proto_with_info"], grpc_service_config = "serviceusage_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "serviceusage_v1.yaml", transport = "grpc+rest", diff --git a/google/appengine/v1/BUILD.bazel b/google/appengine/v1/BUILD.bazel index 17a49828d..36cf18bcd 100644 --- a/google/appengine/v1/BUILD.bazel +++ b/google/appengine/v1/BUILD.bazel @@ -234,7 +234,7 @@ php_gapic_library( name = "appengine_php_gapic", srcs = [":appengine_proto_with_info"], grpc_service_config = "appengine_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "appengine_v1.yaml", transport = "grpc+rest", diff --git a/google/bigtable/admin/v2/bigtable_table_admin.proto b/google/bigtable/admin/v2/bigtable_table_admin.proto index 8614750af..1fdcefa4a 100644 --- a/google/bigtable/admin/v2/bigtable_table_admin.proto +++ b/google/bigtable/admin/v2/bigtable_table_admin.proto @@ -360,7 +360,7 @@ service BigtableTableAdmin { // returned table [long-running operation][google.longrunning.Operation] can // be used to track the progress of the operation, and to cancel it. The // [metadata][google.longrunning.Operation.metadata] field type is - // [RestoreTableMetadata][google.bigtable.admin.RestoreTableMetadata]. The + // [RestoreTableMetadata][google.bigtable.admin.v2.RestoreTableMetadata]. The // [response][google.longrunning.Operation.response] type is // [Table][google.bigtable.admin.v2.Table], if successful. rpc RestoreTable(RestoreTableRequest) returns (google.longrunning.Operation) { @@ -1219,7 +1219,7 @@ message ListBackupsResponse { // [CopyBackup][google.bigtable.admin.v2.BigtableTableAdmin.CopyBackup]. message CopyBackupRequest { // Required. The name of the destination cluster that will contain the backup - // copy. The cluster must already exists. Values are of the form: + // copy. The cluster must already exist. Values are of the form: // `projects/{project}/instances/{instance}/clusters/{cluster}`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, diff --git a/google/bigtable/admin/v2/instance.proto b/google/bigtable/admin/v2/instance.proto index 188dae7eb..d6a3c861a 100644 --- a/google/bigtable/admin/v2/instance.proto +++ b/google/bigtable/admin/v2/instance.proto @@ -172,6 +172,21 @@ message Cluster { DISABLED = 4; } + // Possible node scaling factors of the clusters. Node scaling delivers better + // latency and more throughput by removing node boundaries. + enum NodeScalingFactor { + // No node scaling specified. Defaults to NODE_SCALING_FACTOR_1X. + NODE_SCALING_FACTOR_UNSPECIFIED = 0; + + // The cluster is running with a scaling factor of 1. + NODE_SCALING_FACTOR_1X = 1; + + // The cluster is running with a scaling factor of 2. + // All node count values must be in increments of 2 with this scaling factor + // enabled, otherwise an INVALID_ARGUMENT error will be returned. + NODE_SCALING_FACTOR_2X = 2; + } + // Autoscaling config for a cluster. message ClusterAutoscalingConfig { // Required. Autoscaling limits for this cluster. @@ -229,6 +244,10 @@ message Cluster { // throughput and more consistent performance. int32 serve_nodes = 4; + // Immutable. The node scaling factor of this cluster. + NodeScalingFactor node_scaling_factor = 9 + [(google.api.field_behavior) = IMMUTABLE]; + oneof config { // Configuration for this cluster. ClusterConfig cluster_config = 7; @@ -258,9 +277,34 @@ message AppProfile { // equidistant. Choosing this option sacrifices read-your-writes consistency // to improve availability. message MultiClusterRoutingUseAny { + // If enabled, Bigtable will route the request based on the row key of the + // request, rather than randomly. Instead, each row key will be assigned + // to a cluster, and will stick to that cluster. If clusters are added or + // removed, then this may affect which row keys stick to which clusters. + // To avoid this, users can use a cluster group to specify which clusters + // are to be used. In this case, new clusters that are not a part of the + // cluster group will not be routed to, and routing will be unaffected by + // the new cluster. Moreover, clusters specified in the cluster group cannot + // be deleted unless removed from the cluster group. + message RowAffinity {} + // The set of clusters to route to. The order is ignored; clusters will be // tried in order of distance. If left empty, all clusters are eligible. repeated string cluster_ids = 1; + + // Possible algorithms for routing affinity. If enabled, Bigtable will + // route between equidistant clusters in a deterministic order rather than + // choosing randomly. + // + // This mechanism gives read-your-writes consistency for *most* requests + // under *most* circumstances, without sacrificing availability. Consistency + // is *not* guaranteed, as requests might still fail over between clusters + // in the event of errors or latency. + oneof affinity { + // Row affinity sticky routing based on the row key of the request. + // Requests that span multiple rows are routed non-deterministically. + RowAffinity row_affinity = 3; + } } // Unconditionally routes all read/write requests to a specific cluster. diff --git a/google/bigtable/admin/v2/table.proto b/google/bigtable/admin/v2/table.proto index bdd53b6c5..b2ef458c8 100644 --- a/google/bigtable/admin/v2/table.proto +++ b/google/bigtable/admin/v2/table.proto @@ -456,6 +456,23 @@ message Backup { READY = 2; } + // The type of the backup. + enum BackupType { + // Not specified. + BACKUP_TYPE_UNSPECIFIED = 0; + + // The default type for Cloud Bigtable managed backups. Supported for + // backups created in both HDD and SSD instances. Requires optimization when + // restored to a table in an SSD instance. + STANDARD = 1; + + // A backup type with faster restore to SSD performance. Only supported for + // backups created in SSD instances. A new SSD table restored from a hot + // backup reaches production performance more quickly than a standard + // backup. + HOT = 2; + } + // A globally unique identifier for the backup which cannot be // changed. Values are of the form // `projects/{project}/instances/{instance}/clusters/{cluster}/ @@ -478,14 +495,17 @@ message Backup { // Output only. Name of the backup from which this backup was copied. If a // backup is not created by copying a backup, this field will be empty. Values - // are of the form: projects//instances//backups/. + // are of the form: + // projects//instances//clusters//backups/ string source_backup = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Required. The expiration time of the backup, with microseconds - // granularity that must be at least 6 hours and at most 90 days - // 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. + // Required. The expiration time of the backup. + // When creating a backup or updating its `expire_time`, the value must be + // greater than the backup creation time by: + // - At least 6 hours + // - At most 90 days + // + // Once the `expire_time` has passed, Cloud Bigtable will delete the backup. google.protobuf.Timestamp expire_time = 3 [(google.api.field_behavior) = REQUIRED]; @@ -511,6 +531,19 @@ message Backup { // Output only. The encryption information for the backup. EncryptionInfo encryption_info = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Indicates the backup type of the backup. + BackupType backup_type = 11; + + // The time at which the hot backup will be converted to a standard backup. + // Once the `hot_to_standard_time` has passed, Cloud Bigtable will convert the + // hot backup to a standard backup. This value must be greater than the backup + // creation time by: + // - At least 24 hours + // + // This field only applies for hot backups. When creating or updating a + // standard backup, attempting to set this field will fail the request. + google.protobuf.Timestamp hot_to_standard_time = 12; } // Information about a backup. @@ -533,7 +566,8 @@ message BackupInfo { // Output only. Name of the backup from which this backup was copied. If a // backup is not created by copying a backup, this field will be empty. Values - // are of the form: projects//instances//backups/. + // are of the form: + // projects//instances//clusters//backups/ string source_backup = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/bigtable/admin/v2/types.proto b/google/bigtable/admin/v2/types.proto index 6cbabc068..49c50d176 100644 --- a/google/bigtable/admin/v2/types.proto +++ b/google/bigtable/admin/v2/types.proto @@ -32,27 +32,22 @@ option ruby_package = "Google::Cloud::Bigtable::Admin::V2"; // // For compatibility with Bigtable's existing untyped APIs, each `Type` includes // an `Encoding` which describes how to convert to/from the underlying data. -// This might involve composing a series of steps into an "encoding chain," for -// example to convert from INT64 -> STRING -> raw bytes. In most cases, a "link" -// in the encoding chain will be based an on existing GoogleSQL conversion -// function like `CAST`. // -// Each link in the encoding chain also defines the following properties: -// * Natural sort: Does the encoded value sort consistently with the original -// typed value? Note that Bigtable will always sort data based on the raw -// encoded value, *not* the decoded type. +// Each encoding also defines the following properties: +// +// * Order-preserving: Does the encoded value sort consistently with the +// original typed value? Note that Bigtable will always sort data based on +// the raw encoded value, *not* the decoded type. // - Example: BYTES values sort in the same order as their raw encodings. -// - Counterexample: Encoding INT64 to a fixed-width STRING does *not* -// preserve sort order when dealing with negative numbers. -// INT64(1) > INT64(-1), but STRING("-00001") > STRING("00001). -// - The overall encoding chain has this property if *every* link does. +// - Counterexample: Encoding INT64 as a fixed-width decimal string does +// *not* preserve sort order when dealing with negative numbers. +// `INT64(1) > INT64(-1)`, but `STRING("-00001") > STRING("00001)`. // * Self-delimiting: If we concatenate two encoded values, can we always tell // where the first one ends and the second one begins? // - Example: If we encode INT64s to fixed-width STRINGs, the first value // will always contain exactly N digits, possibly preceded by a sign. // - Counterexample: If we concatenate two UTF-8 encoded STRINGs, we have // no way to tell where the first one ends. -// - The overall encoding chain has this property if *any* link does. // * Compatibility: Which other systems have matching encoding schemes? For // example, does this encoding have a GoogleSQL equivalent? HBase? Java? message Type { @@ -62,7 +57,7 @@ message Type { // Rules used to convert to/from lower level types. message Encoding { // Leaves the value "as-is" - // * Natural sort? Yes + // * Order-preserving? Yes // * Self-delimiting? No // * Compatibility? N/A message Raw {} @@ -83,19 +78,27 @@ message Type { message String { // Rules used to convert to/from lower level types. message Encoding { + // Deprecated: prefer the equivalent `Utf8Bytes`. + message Utf8Raw { + option deprecated = true; + } + // UTF-8 encoding - // * Natural sort? No (ASCII characters only) + // * Order-preserving? Yes (code point order) // * Self-delimiting? No // * Compatibility? // - BigQuery Federation `TEXT` encoding // - HBase `Bytes.toBytes` // - Java `String#getBytes(StandardCharsets.UTF_8)` - message Utf8Raw {} + message Utf8Bytes {} // Which encoding to use. oneof encoding { - // Use `Utf8Raw` encoding. - Utf8Raw utf8_raw = 1; + // Deprecated: if set, converts to an empty `utf8_bytes`. + Utf8Raw utf8_raw = 1 [deprecated = true]; + + // Use `Utf8Bytes` encoding. + Utf8Bytes utf8_bytes = 2; } } @@ -110,14 +113,14 @@ message Type { message Encoding { // Encodes the value as an 8-byte big endian twos complement `Bytes` // value. - // * Natural sort? No (positive values only) + // * Order-preserving? No (positive values only) // * Self-delimiting? Yes // * Compatibility? // - BigQuery Federation `BINARY` encoding // - HBase `Bytes.toBytes` // - Java `ByteBuffer.putLong()` with `ByteOrder.BIG_ENDIAN` message BigEndianBytes { - // The underlying `Bytes` type, which may be able to encode further. + // Deprecated: ignored if set. Bytes bytes_type = 1; } @@ -132,6 +135,68 @@ message Type { Encoding encoding = 1; } + // bool + // Values of type `Bool` are stored in `Value.bool_value`. + message Bool {} + + // Float32 + // Values of type `Float32` are stored in `Value.float_value`. + message Float32 {} + + // Float64 + // Values of type `Float64` are stored in `Value.float_value`. + message Float64 {} + + // Timestamp + // Values of type `Timestamp` are stored in `Value.timestamp_value`. + message Timestamp {} + + // Date + // Values of type `Date` are stored in `Value.date_value`. + message Date {} + + // A structured data value, consisting of fields which map to dynamically + // typed values. + // Values of type `Struct` are stored in `Value.array_value` where entries are + // in the same order and number as `field_types`. + message Struct { + // A struct field and its type. + message Field { + // The field name (optional). Fields without a `field_name` are considered + // anonymous and cannot be referenced by name. + string field_name = 1; + + // The type of values in this field. + Type type = 2; + } + + // The names and types of the fields in this struct. + repeated Field fields = 1; + } + + // An ordered list of elements of a given type. + // Values of type `Array` are stored in `Value.array_value`. + message Array { + // The type of the elements in the array. This must not be `Array`. + Type element_type = 1; + } + + // A mapping of keys to values of a given type. + // Values of type `Map` are stored in a `Value.array_value` where each entry + // is another `Value.array_value` with two elements (the key and the value, + // in that order). + // Normally encoded Map values won't have repeated keys, however, clients are + // expected to handle the case in which they do. If the same key appears + // multiple times, the _last_ value takes precedence. + message Map { + // The type of a map key. + // Only `Bytes`, `String`, and `Int64` are allowed as key types. + Type key_type = 1; + + // The type of the values in a map. + Type value_type = 2; + } + // A value that combines incremental updates into a summarized value. // // Data is never directly written or read using type `Aggregate`. Writes will @@ -143,6 +208,25 @@ message Type { // State: same as input message Sum {} + // Computes the max of the input values. + // Allowed input: `Int64` + // State: same as input + message Max {} + + // Computes the min of the input values. + // Allowed input: `Int64` + // State: same as input + message Min {} + + // Computes an approximate unique count over the input values. When using + // raw data as input, be careful to use a consistent encoding. Otherwise + // the same value encoded differently could count more than once, or two + // distinct values could count as identical. + // Input: Any, or omit for Raw + // State: TBD + // Special state conversions: `Int64` (the unique count estimate) + message HyperLogLogPlusPlusUniqueCount {} + // Type of the inputs that are accumulated by this `Aggregate`, which must // specify a full encoding. // Use `AddInput` mutations to accumulate new inputs. @@ -157,6 +241,15 @@ message Type { oneof aggregator { // Sum aggregator. Sum sum = 4; + + // HyperLogLogPlusPlusUniqueCount aggregator. + HyperLogLogPlusPlusUniqueCount hllpp_unique_count = 5; + + // Max aggregator. + Max max = 6; + + // Min aggregator. + Min min = 7; } } @@ -171,7 +264,31 @@ message Type { // Int64 Int64 int64_type = 5; + // Float32 + Float32 float32_type = 12; + + // Float64 + Float64 float64_type = 9; + + // Bool + Bool bool_type = 8; + + // Timestamp + Timestamp timestamp_type = 10; + + // Date + Date date_type = 11; + // Aggregate Aggregate aggregate_type = 6; + + // Struct + Struct struct_type = 7; + + // Array + Array array_type = 3; + + // Map + Map map_type = 4; } } diff --git a/google/bigtable/v2/data.proto b/google/bigtable/v2/data.proto index 26d45fc68..8265611f3 100644 --- a/google/bigtable/v2/data.proto +++ b/google/bigtable/v2/data.proto @@ -559,6 +559,28 @@ message Mutation { Value input = 4; } + // A Mutation which merges accumulated state into a cell in an `Aggregate` + // family. + message MergeToCell { + // The name of the `Aggregate` family into which new data should be added. + // This must be a family with a `value_type` of `Aggregate`. + // Format: `[-_.a-zA-Z0-9]+` + string family_name = 1; + + // The qualifier of the column into which new data should be added. This + // must be a `raw_value`. + Value column_qualifier = 2; + + // The timestamp of the cell to which new data should be added. This must + // be a `raw_timestamp_micros` that matches the table's `granularity`. + Value timestamp = 3; + + // The input value to be merged into the specified cell. This must be + // compatible with the family's `value_type.state_type`. Merging `NULL` is + // allowed, but has no effect. + Value input = 4; + } + // A Mutation which deletes cells from the specified column, optionally // restricting the deletions to a given timestamp range. message DeleteFromColumn { @@ -592,6 +614,9 @@ message Mutation { // Incrementally updates an `Aggregate` cell. AddToCell add_to_cell = 5; + // Merges accumulated state to an `Aggregate` cell. + MergeToCell merge_to_cell = 6; + // Deletes cells from a column. DeleteFromColumn delete_from_column = 2; diff --git a/google/bigtable/v2/feature_flags.proto b/google/bigtable/v2/feature_flags.proto index e97f23e15..d4c3bdbd7 100644 --- a/google/bigtable/v2/feature_flags.proto +++ b/google/bigtable/v2/feature_flags.proto @@ -61,4 +61,10 @@ message FeatureFlags { // Notify the server that the client has client side metrics enabled. bool client_side_metrics_enabled = 8; + + // Notify the server that the client using Traffic Director endpoint. + bool traffic_director_enabled = 9; + + // Notify the server that the client explicitly opted in for Direct Access. + bool direct_access_requested = 10; } diff --git a/google/bigtable/v2/types.proto b/google/bigtable/v2/types.proto index d9c014850..71817d44c 100644 --- a/google/bigtable/v2/types.proto +++ b/google/bigtable/v2/types.proto @@ -78,6 +78,11 @@ message Type { message String { // Rules used to convert to/from lower level types. message Encoding { + // Deprecated: prefer the equivalent `Utf8Bytes`. + message Utf8Raw { + option deprecated = true; + } + // UTF-8 encoding // * Order-preserving? Yes (code point order) // * Self-delimiting? No @@ -89,6 +94,9 @@ message Type { // Which encoding to use. oneof encoding { + // Deprecated: if set, converts to an empty `utf8_bytes`. + Utf8Raw utf8_raw = 1 [deprecated = true]; + // Use `Utf8Bytes` encoding. Utf8Bytes utf8_bytes = 2; } diff --git a/google/chat/v1/annotation.proto b/google/chat/v1/annotation.proto index cdb24119d..e7c721398 100644 --- a/google/chat/v1/annotation.proto +++ b/google/chat/v1/annotation.proto @@ -139,6 +139,9 @@ message RichLinkMetadata { // A Google Drive rich link type. DRIVE_FILE = 1; + + // A Chat space rich link type. For example, a space smart chip. + CHAT_SPACE = 2; } // The URI of this link. @@ -151,6 +154,9 @@ message RichLinkMetadata { oneof data { // Data for a drive link. DriveLinkData drive_link_data = 3; + + // Data for a chat space link. + ChatSpaceLinkData chat_space_link_data = 4; } } @@ -165,6 +171,29 @@ message DriveLinkData { string mime_type = 2; } +// Data for Chat space links. +message ChatSpaceLinkData { + // The space of the linked Chat space resource. + // + // Format: `spaces/{space}` + string space = 1 + [(google.api.resource_reference) = { type: "chat.googleapis.com/Space" }]; + + // The thread of the linked Chat space resource. + // + // Format: `spaces/{space}/threads/{thread}` + string thread = 2 [ + (google.api.resource_reference) = { type: "chat.googleapis.com/Thread" } + ]; + + // The message of the linked Chat space resource. + // + // Format: `spaces/{space}/messages/{message}` + string message = 3 [ + (google.api.resource_reference) = { type: "chat.googleapis.com/Message" } + ]; +} + // Type of the annotation. enum AnnotationType { // Default value for the enum. Don't use. diff --git a/google/chat/v1/chat_grpc_service_config.json b/google/chat/v1/chat_grpc_service_config.json index be3bae06a..df46a6c52 100644 --- a/google/chat/v1/chat_grpc_service_config.json +++ b/google/chat/v1/chat_grpc_service_config.json @@ -12,6 +12,7 @@ { "service": "google.chat.v1.ChatService", "method": "GetSpace" }, { "service": "google.chat.v1.ChatService", "method": "ListSpaces" }, { "service": "google.chat.v1.ChatService", "method": "DeleteSpace" }, + { "service": "google.chat.v1.ChatService", "method": "SearchSpaces" }, { "service": "google.chat.v1.ChatService", "method": "CreateMembership" }, { "service": "google.chat.v1.ChatService", "method": "GetMembership" }, { "service": "google.chat.v1.ChatService", "method": "ListMemberships" }, diff --git a/google/chat/v1/chat_service.proto b/google/chat/v1/chat_service.proto index 01f080ee3..8b19ca346 100644 --- a/google/chat/v1/chat_service.proto +++ b/google/chat/v1/chat_service.proto @@ -66,18 +66,30 @@ service ChatService { "https://www.googleapis.com/auth/chat.users.readstate," "https://www.googleapis.com/auth/chat.users.readstate.readonly"; - // Creates a message in a Google Chat space. The maximum message size, - // including text and cards, is 32,000 bytes. For an example, see [Send a + // Creates a message in a Google Chat space. For an example, see [Send a // message](https://developers.google.com/workspace/chat/create-messages). // - // Calling this method requires - // [authentication](https://developers.google.com/workspace/chat/authenticate-authorize) - // and supports the following authentication types: + // The `create()` method requires either user or app authentication. Chat + // attributes the message sender differently depending on the type of + // authentication that you use in your request. // - // - For text messages, user authentication or app authentication are - // supported. - // - For card messages, only app authentication is supported. (Only Chat apps - // can create card messages.) + // The following image shows how Chat attributes a message when you use app + // authentication. Chat displays the Chat app as the message + // sender. The content of the message can contain text (`text`), cards + // (`cardsV2`), and accessory widgets (`accessoryWidgets`). + // + // ![Message sent with app + // authentication](https://developers.google.com/workspace/chat/images/message-app-auth.svg) + // + // The following image shows how Chat attributes a message when you use user + // authentication. Chat displays the user as the message sender and attributes + // the Chat app to the message by displaying its name. The content of message + // can only contain text (`text`). + // + // ![Message sent with user + // authentication](https://developers.google.com/workspace/chat/images/message-user-auth.svg) + // + // The maximum message size, including the message contents, is 32,000 bytes. rpc CreateMessage(CreateMessageRequest) returns (Message) { option (google.api.http) = { post: "/v1/{parent=spaces/*}/messages" @@ -87,8 +99,12 @@ service ChatService { } // Lists messages in a space that the caller is a member of, including - // messages from blocked members and spaces. For an example, see - // [List messages](/chat/api/guides/v1/messages/list). + // messages from blocked members and spaces. If you list messages from a + // space with no messages, the response is an empty object. When using a + // REST/HTTP interface, the response contains an empty JSON object, `{}`. + // For an example, see + // [List + // messages](https://developers.google.com/workspace/chat/api/guides/v1/messages/list). // Requires [user // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). rpc ListMessages(ListMessagesRequest) returns (ListMessagesResponse) { @@ -269,6 +285,18 @@ service ChatService { option (google.api.method_signature) = ""; } + // Returns a list of spaces in a Google Workspace organization based on an + // administrator's search. Requires [user + // authentication with administrator + // privileges](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user#admin-privileges). + // In the request, set `use_admin_access` to `true`. + rpc SearchSpaces(SearchSpacesRequest) returns (SearchSpacesResponse) { + option (google.api.http) = { + get: "/v1/spaces:search" + }; + option (google.api.method_signature) = ""; + } + // Returns details about a space. For an example, see // [Get details about a // space](https://developers.google.com/workspace/chat/get-spaces). @@ -287,14 +315,19 @@ service ChatService { option (google.api.method_signature) = "name"; } - // Creates a named space. Spaces grouped by topics aren't supported. For an - // example, see [Create a + // Creates a space with no members. Can be used to create a named space. + // Spaces grouped by topics aren't supported. For an example, see + // [Create a // space](https://developers.google.com/workspace/chat/create-spaces). // // If you receive the error message `ALREADY_EXISTS` when creating // a space, try a different `displayName`. An existing space within // the Google Workspace organization might already use this display name. // + // If you're a member of the [Developer Preview + // program](https://developers.google.com/workspace/preview), you can create a + // group chat in import mode using `spaceType.GROUP_CHAT`. + // // Requires [user // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). rpc CreateSpace(CreateSpaceRequest) returns (Space) { @@ -436,40 +469,25 @@ service ChatService { }; } - // Creates a human membership or app membership for the calling app. Creating - // memberships for other apps isn't supported. For an example, see - // [Invite or add a user or a Google Chat app to a - // space](https://developers.google.com/workspace/chat/create-members). + // Creates a membership for the calling Chat app, a user, or a Google Group. + // Creating memberships for other Chat apps isn't supported. // When creating a membership, if the specified member has their auto-accept // policy turned off, then they're invited, and must accept the space // invitation before joining. Otherwise, creating a membership adds the member - // directly to the specified space. Requires [user + // directly to the specified space. + // Requires [user // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). // - // To specify the member to add, set the `membership.member.name` for the - // human or app member, or set the `membership.group_member.name` for the - // group member. - // - // - To add the calling app to a space or a direct message between two human - // users, use `users/app`. Unable to add other - // apps to the space. - // - // - To add a human user, use `users/{user}`, where `{user}` can be the email - // address for the user. For users in the same Workspace organization `{user}` - // can also be the `id` for the person from the People API, or the `id` for - // the user in the Directory API. For example, if the People API Person - // profile ID for `user@example.com` is `123456789`, you can add the user to - // the space by setting the `membership.member.name` to - // `users/user@example.com` or `users/123456789`. - // - // - To add or invite a Google group in a named space, use - // `groups/{group}`, where `{group}` is the `id` for the group from the Cloud - // Identity Groups API. For example, you can use [Cloud Identity Groups lookup - // API](https://cloud.google.com/identity/docs/reference/rest/v1/groups/lookup) - // to retrieve the ID `123456789` for group email `group@example.com`, then - // you can add or invite the group to a named space by setting the - // `membership.group_member.name` to `groups/123456789`. Group email is not - // supported, and Google groups can only be added as members in named spaces. + // For example usage, see: + // + // - [Invite or add a user to a + // space](https://developers.google.com/workspace/chat/create-members#create-user-membership). + // + // - [Invite or add a Google Group to a + // space](https://developers.google.com/workspace/chat/create-members#create-group-membership). + // + // - [Add the Chat app to a + // space](https://developers.google.com/workspace/chat/create-members#create-membership-calling-api). rpc CreateMembership(CreateMembershipRequest) returns (Membership) { option (google.api.http) = { post: "/v1/{parent=spaces/*}/members" @@ -593,6 +611,9 @@ service ChatService { // updated, the server returns the updated `Message` resource in the event // payload. // + // Note: The `permissionSettings` field is not returned in the Space + // object of the Space event data for this request. + // // Requires [user // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). // To get an event, the authenticated user must be a member of the space. diff --git a/google/chat/v1/chat_v1.yaml b/google/chat/v1/chat_v1.yaml index bcb755fa7..c2c29b949 100644 --- a/google/chat/v1/chat_v1.yaml +++ b/google/chat/v1/chat_v1.yaml @@ -162,6 +162,11 @@ authentication: https://www.googleapis.com/auth/chat.bot, https://www.googleapis.com/auth/chat.spaces, https://www.googleapis.com/auth/chat.spaces.readonly + - selector: google.chat.v1.ChatService.SearchSpaces + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/chat.admin.spaces, + https://www.googleapis.com/auth/chat.admin.spaces.readonly - selector: google.chat.v1.ChatService.SetUpSpace oauth: canonical_scopes: |- diff --git a/google/chat/v1/membership.proto b/google/chat/v1/membership.proto index 1441df09b..5222a49b0 100644 --- a/google/chat/v1/membership.proto +++ b/google/chat/v1/membership.proto @@ -156,6 +156,21 @@ message CreateMembershipRequest { // membership relation for itself, it must use the `chat.memberships.app` // scope, set `user.type` to `BOT`, and set `user.name` to `users/app`. Membership membership = 2 [(google.api.field_behavior) = REQUIRED]; + + // When `true`, the method runs using the user's Google Workspace + // administrator privileges. + // + // The calling user must be a Google Workspace administrator with the + // [manage chat and spaces conversations + // privilege](https://support.google.com/a/answer/13369245). + // + // Requires the `chat.admin.memberships` [OAuth 2.0 + // scope](https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes). + // + // Creating app memberships or creating memberships for users outside the + // administrator's Google Workspace organization isn't supported using admin + // access. + bool use_admin_access = 5; } // Request message for updating a membership. @@ -172,6 +187,17 @@ message UpdateMembershipRequest { // - `role` google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; + + // When `true`, the method runs using the user's Google Workspace + // administrator privileges. + // + // The calling user must be a Google Workspace administrator with the + // [manage chat and spaces conversations + // privilege](https://support.google.com/a/answer/13369245). + // + // Requires the `chat.admin.memberships` [OAuth 2.0 + // scope](https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes). + bool use_admin_access = 3; } // Request message for listing memberships. @@ -215,8 +241,8 @@ message ListMembershipsRequest { // // To filter by role, set `role` to `ROLE_MEMBER` or `ROLE_MANAGER`. // - // To filter by type, set `member.type` to `HUMAN` or `BOT`. Developer - // Preview: You can also filter for `member.type` using the `!=` operator. + // To filter by type, set `member.type` to `HUMAN` or `BOT`. You can also + // filter for `member.type` using the `!=` operator. // // To filter by both role and type, use the `AND` operator. To filter by // either role or type, use the `OR` operator. @@ -263,6 +289,20 @@ message ListMembershipsRequest { // Currently requires [user // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). bool show_invited = 7 [(google.api.field_behavior) = OPTIONAL]; + + // When `true`, the method runs using the user's Google Workspace + // administrator privileges. + // + // The calling user must be a Google Workspace administrator with the + // [manage chat and spaces conversations + // privilege](https://support.google.com/a/answer/13369245). + // + // Requires either the `chat.admin.memberships.readonly` or + // `chat.admin.memberships` [OAuth 2.0 + // scope](https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes). + // + // Listing app memberships in a space isn't supported when using admin access. + bool use_admin_access = 8; } // Response to list memberships of the space. @@ -295,6 +335,20 @@ message GetMembershipRequest { (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "chat.googleapis.com/Membership" } ]; + + // When `true`, the method runs using the user's Google Workspace + // administrator privileges. + // + // The calling user must be a Google Workspace administrator with the + // [manage chat and spaces conversations + // privilege](https://support.google.com/a/answer/13369245). + // + // Requires the `chat.admin.memberships` or `chat.admin.memberships.readonly` + // [OAuth 2.0 + // scopes](https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes). + // + // Getting app memberships in a space isn't supported when using admin access. + bool use_admin_access = 3; } // Request to delete a membership in a space. @@ -317,4 +371,17 @@ message DeleteMembershipRequest { (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "chat.googleapis.com/Membership" } ]; + + // When `true`, the method runs using the user's Google Workspace + // administrator privileges. + // + // The calling user must be a Google Workspace administrator with the + // [manage chat and spaces conversations + // privilege](https://support.google.com/a/answer/13369245). + // + // Requires the `chat.admin.memberships` [OAuth 2.0 + // scope](https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes). + // + // Deleting app memberships in a space isn't supported using admin access. + bool use_admin_access = 2; } diff --git a/google/chat/v1/message.proto b/google/chat/v1/message.proto index ca6a432c8..09a3f4d48 100644 --- a/google/chat/v1/message.proto +++ b/google/chat/v1/message.proto @@ -102,8 +102,8 @@ message Message { // user](https://developers.google.com/workspace/chat/format-messages#messages-@mention), // or everyone in the space. // - // To learn about creating text messages, see [Send a text - // message](https://developers.google.com/workspace/chat/create-messages#create-text-messages). + // To learn about creating text messages, see [Send a + // message](https://developers.google.com/workspace/chat/create-messages). string text = 4; // Output only. Contains the message `text` with markups added to communicate @@ -146,8 +146,8 @@ message Message { // user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user), // the messages can't contain cards. // - // To learn about cards and how to create them, see [Send card - // messages](https://developers.google.com/workspace/chat/create-messages#create). + // To learn how to create a message that contains cards, see [Send a + // message](https://developers.google.com/workspace/chat/create-messages). // // [Card builder](https://addons.gsuite.google.com/uikit/builder) repeated CardWithId cards_v2 = 22; @@ -214,16 +214,17 @@ message Message { // Immutable. Input for creating a message, otherwise output only. The user // that can view the message. When set, the message is private and only - // visible to the specified user and the Chat app. Link previews and - // attachments aren't supported for private messages. + // visible to the specified user and the Chat app. To include this field in + // your request, you must call the Chat API using [app + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) + // and omit the following: // - // Only Chat apps can send private messages. If your Chat app [authenticates - // as a - // user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user) - // to send a message, the message can't be private and must omit this field. + // * [Attachments](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages.attachments) + // * [Accessory + // widgets](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages#Message.AccessoryWidget) // - // For details, see [Send private messages to Google Chat - // users](https://developers.google.com/workspace/chat/private-messages). + // For details, see [Send a message + // privately](https://developers.google.com/workspace/chat/create-messages#private). User private_message_viewer = 36 [(google.api.field_behavior) = IMMUTABLE]; // Output only. Information about a deleted message. A message is deleted when @@ -292,7 +293,7 @@ message Thread { pattern: "spaces/{space}/threads/{thread}" }; - // Output only. Resource name of the thread. + // Resource name of the thread. // // Example: `spaces/{space}/threads/{thread}` string name = 1; diff --git a/google/chat/v1/space.proto b/google/chat/v1/space.proto index 6bc022a90..da6c0fe3a 100644 --- a/google/chat/v1/space.proto +++ b/google/chat/v1/space.proto @@ -103,6 +103,16 @@ message Space { string guidelines = 2; } + // Represents the count of memberships of a space, grouped into categories. + message MembershipCount { + // Count of human users that have directly joined the space, not counting + // users joined by having membership in a joined group. + int32 joined_direct_human_user_count = 4; + + // Count of all groups that have directly joined the space. + int32 joined_group_count = 5; + } + // Represents the [access // setting](https://support.google.com/chat/answer/11971020) of the space. message AccessSettings { @@ -111,12 +121,16 @@ message Space { // Access state is unknown or not supported in this API. ACCESS_STATE_UNSPECIFIED = 0; - // Space is discoverable by added or invited members or groups. + // Only users or Google Groups that have been individually added or + // invited by other users or Google Workspace administrators can discover + // and access the space. PRIVATE = 1; - // Space is discoverable by the selected [target - // audience](https://support.google.com/a/answer/9934697), as well as - // added or invited members or groups. + // A space manager has granted a target audience access to + // the space. Users or Google Groups that have been individually added or + // invited to the space can also discover and access the space. To learn + // more, see [Make a space discoverable to specific + // users](https://developers.google.com/workspace/chat/space-target-audience). DISCOVERABLE = 2; } @@ -125,20 +139,90 @@ message Space { // Optional. The resource name of the [target // audience](https://support.google.com/a/answer/9934697) who can discover - // the space, join the space, and preview the messages in the space. For - // details, see [Make a space discoverable to a target + // the space, join the space, and preview the messages in the space. If + // unset, only users or Google Groups who have been individually invited or + // added to the space can access it. For details, see [Make a space + // discoverable to a target // audience](https://developers.google.com/workspace/chat/space-target-audience). // // Format: `audiences/{audience}` // // To use the default target audience for the Google Workspace organization, // set to `audiences/default`. + // + // This field is not populated when using the `chat.bot` scope with [app + // authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app). string audience = 3 [(google.api.field_behavior) = OPTIONAL]; } + // Predefined permission settings that you can only specify when creating a + // named space. More settings might be added in the future. + // For details about permission settings for named spaces, see [Learn about + // spaces](https://support.google.com/chat/answer/7659784). + enum PredefinedPermissionSettings { + // Unspecified. Don't use. + PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED = 0; + + // Setting to make the space a collaboration space where all members can + // post messages. + COLLABORATION_SPACE = 1; + + // Setting to make the space an announcement space where only space managers + // can post messages. + ANNOUNCEMENT_SPACE = 2; + } + + // [Permission settings](https://support.google.com/chat/answer/13340792) + // that you can specify when updating an existing named space. + // + // To set permission settings when creating a space, specify the + // `PredefinedPermissionSettings` field in your request. + message PermissionSettings { + // Setting for managing members and groups in a space. + optional PermissionSetting manage_members_and_groups = 1; + + // Setting for updating space name, avatar, description and guidelines. + optional PermissionSetting modify_space_details = 2; + + // Setting for toggling space history on and off. + optional PermissionSetting toggle_history = 3; + + // Setting for using @all in a space. + optional PermissionSetting use_at_mention_all = 4; + + // Setting for managing apps in a space. + optional PermissionSetting manage_apps = 5; + + // Setting for managing webhooks in a space. + optional PermissionSetting manage_webhooks = 6; + + // Output only. Setting for posting messages in a space. + optional PermissionSetting post_messages = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Setting for replying to messages in a space. + optional PermissionSetting reply_messages = 8; + } + + // Represents a space permission setting. + message PermissionSetting { + // Whether spaces managers have this permission. + bool managers_allowed = 1; + + // Whether non-manager members have this permission. + bool members_allowed = 2; + } + // Resource name of the space. // // Format: `spaces/{space}` + // + // Where `{space}` represents the system-assigned ID for the space. You can + // obtain the space ID by calling the + // [`spaces.list()`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/list) + // method or from the space URL. For example, if the space URL + // is `https://mail.google.com/mail/u/0/#chat/space/AAAAAAAAA`, the space ID + // is `AAAAAAAAA`. string name = 1; // Output only. Deprecated: Use `space_type` instead. @@ -159,11 +243,11 @@ message Space { [deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY]; // The space's display name. Required when [creating a - // space](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/create). - // If you receive the error message `ALREADY_EXISTS` when creating a space or - // updating the `displayName`, try a different `displayName`. An - // existing space within the Google Workspace organization might already use - // this display name. + // space](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/create) + // with a `spaceType` of `SPACE`. If you receive the error message + // `ALREADY_EXISTS` when creating a space or updating the `displayName`, try a + // different `displayName`. An existing space within the Google Workspace + // organization might already use this display name. // // For direct messages, this field might be empty. // @@ -178,15 +262,6 @@ message Space { // account). By default, a space created by a consumer account permits any // Google Chat user. // - // * The space is used to [import data to Google Chat] - // (https://developers.google.com/chat/api/guides/import-data-overview) - // because import mode spaces must only permit members from the same - // Google Workspace organization. However, as part of the [Google - // Workspace Developer Preview - // Program](https://developers.google.com/workspace/preview), import mode - // spaces can permit any Google Chat user so this field can then be set - // for import mode spaces. - // // For existing spaces, this field is output only. bool external_user_allowed = 8 [(google.api.field_behavior) = IMMUTABLE]; @@ -218,6 +293,10 @@ message Space { (google.api.field_behavior) = OPTIONAL ]; + // Output only. Timestamp of the last message in the space. + google.protobuf.Timestamp last_active_time = 18 + [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. For direct message (DM) spaces with a Chat app, whether the // space was created by a Google Workspace administrator. Administrators can // install and set up a direct message with a Chat app on behalf of users in @@ -226,6 +305,12 @@ message Space { // To support admin install, your Chat app must feature direct messaging. bool admin_installed = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The count of joined memberships grouped by member type. + // Populated when the `space_type` is `SPACE`, `DIRECT_MESSAGE` or + // `GROUP_CHAT`. + MembershipCount membership_count = 20 + [(google.api.field_behavior) = OUTPUT_ONLY]; + // Optional. Specifies the [access // setting](https://support.google.com/chat/answer/11971020) of the space. // Only populated when the `space_type` is `SPACE`. @@ -233,17 +318,41 @@ message Space { // Output only. The URI for a user to access the space. string space_uri = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Represents the [permission settings] + // (https://support.google.com/chat/answer/13340792) of a space. Only + // populated when the `space_type` is `SPACE`. + oneof space_permission_settings { + // Optional. Input only. Predefined space permission settings, input only + // when creating a space. If the field is not set, a collaboration space is + // created. After you create the space, settings are populated in the + // `PermissionSettings` field. + PredefinedPermissionSettings predefined_permission_settings = 26 [ + (google.api.field_behavior) = INPUT_ONLY, + (google.api.field_behavior) = OPTIONAL + ]; + + // Optional. Space permission settings for existing spaces. Input for + // updating exact space permission settings, where existing permission + // settings are replaced. Output lists current permission settings. + PermissionSettings permission_settings = 27 + [(google.api.field_behavior) = OPTIONAL]; + } } -// A request to create a named space. +// A request to create a named space with no members. message CreateSpaceRequest { // Required. The `displayName` and `spaceType` fields must be populated. Only // `SpaceType.SPACE` is supported. // - // If you receive the error message `ALREADY_EXISTS` when creating a space, + // If you receive the error message `ALREADY_EXISTS`, // try a different `displayName`. An existing space within the Google // Workspace organization might already use this display name. // + // If you're a member of the [Developer Preview + // program](https://developers.google.com/workspace/preview), + // `SpaceType.GROUP_CHAT` can be used if `importMode` is set to true. + // // The space `name` is assigned on the server so anything specified in this // field will be ignored. Space space = 1 [(google.api.field_behavior) = REQUIRED]; @@ -302,6 +411,8 @@ message ListSpacesRequest { // The response for a list spaces request. message ListSpacesResponse { // List of spaces in the requested (or first) page. + // Note: The `permissionSettings` field is not returned in the Space + // object for list requests. repeated Space spaces = 1; // You can send a token as `pageToken` to retrieve the next page of @@ -318,6 +429,17 @@ message GetSpaceRequest { (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "chat.googleapis.com/Space" } ]; + + // When `true`, the method runs using the user's Google Workspace + // administrator privileges. + // + // The calling user must be a Google Workspace administrator with the + // [manage chat and spaces conversations + // privilege](https://support.google.com/a/answer/13369245). + // + // Requires the `chat.admin.spaces` or `chat.admin.spaces.readonly` [OAuth 2.0 + // scopes](https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes). + bool use_admin_access = 2; } // A request to get direct message space based on the user resource. @@ -348,55 +470,224 @@ message UpdateSpaceRequest { // Required. The updated field paths, comma separated if there are // multiple. // - // Currently supported field paths: + // You can update the following fields for a space: + // + // `space_details`: Updates the space's description. Supports up to 150 + // characters. // - // - `display_name` (Only supports changing the display name of a space with - // the `SPACE` type, or when also including the `space_type` mask to change a - // `GROUP_CHAT` space type to `SPACE`. Trying to update the display name of a - // `GROUP_CHAT` or a `DIRECT_MESSAGE` space results in an invalid argument - // error. If you receive the error message `ALREADY_EXISTS` when updating the - // `displayName`, try a different `displayName`. An existing space within the - // Google Workspace organization might already use this display name.) + // `display_name`: Only supports updating the display name for spaces where + // `spaceType` field is `SPACE`. + // If you receive the error message `ALREADY_EXISTS`, try a different + // value. An existing space within the + // Google Workspace organization might already use this display name. // - // - `space_type` (Only supports changing a `GROUP_CHAT` space type to + // `space_type`: Only supports changing a `GROUP_CHAT` space type to // `SPACE`. Include `display_name` together // with `space_type` in the update mask and ensure that the specified space // has a non-empty display name and the `SPACE` space type. Including the // `space_type` mask and the `SPACE` type in the specified space when updating // the display name is optional if the existing space already has the `SPACE` // type. Trying to update the space type in other ways results in an invalid - // argument error). - // `space_type` is not supported with admin access. + // argument error. + // `space_type` is not supported with `useAdminAccess`. // - // - `space_details` + // `space_history_state`: Updates [space history + // settings](https://support.google.com/chat/answer/7664687) by turning + // history on or off for the space. Only supported if history settings are + // enabled for the Google Workspace organization. To update the + // space history state, you must omit all other field masks in your request. + // `space_history_state` is not supported with `useAdminAccess`. // - // - `space_history_state` (Supports [turning history on or off for the - // space](https://support.google.com/chat/answer/7664687) if [the organization - // allows users to change their history - // setting](https://support.google.com/a/answer/7664184). - // Warning: mutually exclusive with all other field paths.) - // `space_history_state` is not supported with admin access. - // - // - `access_settings.audience` (Supports changing the [access + // `access_settings.audience`: Updates the [access // setting](https://support.google.com/chat/answer/11971020) of who can - // discover the space, join the space, and preview the messages in space. If - // no audience is specified in the access setting, the space's access setting - // is updated to private. Warning: mutually exclusive with all other field - // paths.) - // `access_settings.audience` is not supported with admin access. - // - // - Developer Preview: Supports changing the [permission - // settings](https://support.google.com/chat/answer/13340792) of a space, - // supported field paths - // include: `permission_settings.manage_members_and_groups`, - // `permission_settings.modify_space_details`, - // `permission_settings.toggle_history`, - // `permission_settings.use_at_mention_all`, - // `permission_settings.manage_apps`, `permission_settings.manage_webhooks`, - // `permission_settings.reply_messages` - // (Warning: mutually exclusive with all other non-permission settings field - // paths). `permission_settings` is not supported with admin access. + // discover the space, join the space, and preview the messages in named space + // where `spaceType` field is `SPACE`. If the existing space has a + // target audience, you can remove the audience and restrict space access by + // omitting a value for this field mask. To update access settings for a + // space, the authenticating user must be a space manager and omit all other + // field masks in your request. You can't update this field if the space is in + // [import + // mode](https://developers.google.com/workspace/chat/import-data-overview). + // To learn more, see [Make a space discoverable to specific + // users](https://developers.google.com/workspace/chat/space-target-audience). + // `access_settings.audience` is not supported with `useAdminAccess`. + // + // `permission_settings`: Supports changing the + // [permission settings](https://support.google.com/chat/answer/13340792) + // of a space. + // When updating permission settings, you can only specify + // `permissionSettings` field masks; you cannot update other field masks + // at the same time. `permissionSettings` is not supported with + // `useAdminAccess`. + // The supported field masks include: + // + // - `permission_settings.manageMembersAndGroups` + // - `permission_settings.modifySpaceDetails` + // - `permission_settings.toggleHistory` + // - `permission_settings.useAtMentionAll` + // - `permission_settings.manageApps` + // - `permission_settings.manageWebhooks` + // - `permission_settings.replyMessages` google.protobuf.FieldMask update_mask = 2; + + // When `true`, the method runs using the user's Google Workspace + // administrator privileges. + // + // The calling user must be a Google Workspace administrator with the + // [manage chat and spaces conversations + // privilege](https://support.google.com/a/answer/13369245). + // + // Requires the `chat.admin.spaces` [OAuth 2.0 + // scope](https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes). + // + // Some `FieldMask` values are not supported using admin access. For details, + // see the description of `update_mask`. + bool use_admin_access = 3; +} + +// Request to search for a list of spaces based on a query. +message SearchSpacesRequest { + // When `true`, the method runs using the user's Google Workspace + // administrator privileges. + // + // The calling user must be a Google Workspace administrator with the + // [manage chat and spaces conversations + // privilege](https://support.google.com/a/answer/13369245). + // + // Requires either the `chat.admin.spaces.readonly` or `chat.admin.spaces` + // [OAuth 2.0 + // scope](https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes). + // + // This method currently only supports admin access, thus only `true` is + // accepted for this field. + bool use_admin_access = 1; + + // The maximum number of spaces to return. The service may return fewer than + // this value. + // + // If unspecified, at most 100 spaces are returned. + // + // The maximum value is 1000. If you use a value more than 1000, it's + // automatically changed to 1000. + int32 page_size = 2; + + // A token, received from the previous search spaces call. Provide this + // parameter to retrieve the subsequent page. + // + // When paginating, all other parameters provided should match the call that + // provided the page token. Passing different values to the other parameters + // might lead to unexpected results. + string page_token = 3; + + // Required. A search query. + // + // You can search by using the following parameters: + // + // - `create_time` + // - `customer` + // - `display_name` + // - `external_user_allowed` + // - `last_active_time` + // - `space_history_state` + // - `space_type` + // + // `create_time` and `last_active_time` accept a timestamp in + // [RFC-3339](https://www.rfc-editor.org/rfc/rfc3339) format and the supported + // comparison operators are: `=`, `<`, `>`, `<=`, `>=`. + // + // `customer` is required and is used to indicate which customer + // to fetch spaces from. `customers/my_customer` is the only supported value. + // + // `display_name` only accepts the `HAS` (`:`) operator. The text to + // match is first tokenized into tokens and each token is prefix-matched + // case-insensitively and independently as a substring anywhere in the space's + // `display_name`. For example, `Fun Eve` matches `Fun event` or `The + // evening was fun`, but not `notFun event` or `even`. + // + // `external_user_allowed` accepts either `true` or `false`. + // + // `space_history_state` only accepts values from the [`historyState`] + // (https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces#Space.HistoryState) + // field of a `space` resource. + // + // `space_type` is required and the only valid value is `SPACE`. + // + // Across different fields, only `AND` operators are supported. A valid + // example is `space_type = "SPACE" AND display_name:"Hello"` and an invalid + // example is `space_type = "SPACE" OR display_name:"Hello"`. + // + // Among the same field, + // `space_type` doesn't support `AND` or `OR` operators. + // `display_name`, 'space_history_state', and 'external_user_allowed' only + // support `OR` operators. + // `last_active_time` and `create_time` support both `AND` and `OR` operators. + // `AND` can only be used to represent an interval, such as `last_active_time + // < "2022-01-01T00:00:00+00:00" AND last_active_time > + // "2023-01-01T00:00:00+00:00"`. + // + // The following example queries are valid: + // + // ``` + // customer = "customers/my_customer" AND space_type = "SPACE" + // + // customer = "customers/my_customer" AND space_type = "SPACE" AND + // display_name:"Hello World" + // + // customer = "customers/my_customer" AND space_type = "SPACE" AND + // (last_active_time < "2020-01-01T00:00:00+00:00" OR last_active_time > + // "2022-01-01T00:00:00+00:00") + // + // customer = "customers/my_customer" AND space_type = "SPACE" AND + // (display_name:"Hello World" OR display_name:"Fun event") AND + // (last_active_time > "2020-01-01T00:00:00+00:00" AND last_active_time < + // "2022-01-01T00:00:00+00:00") + // + // customer = "customers/my_customer" AND space_type = "SPACE" AND + // (create_time > "2019-01-01T00:00:00+00:00" AND create_time < + // "2020-01-01T00:00:00+00:00") AND (external_user_allowed = "true") AND + // (space_history_state = "HISTORY_ON" OR space_history_state = "HISTORY_OFF") + // ``` + string query = 4 [(google.api.field_behavior) = REQUIRED]; + + // Optional. How the list of spaces is ordered. + // + // Supported attributes to order by are: + // + // - `membership_count.joined_direct_human_user_count` — Denotes the count of + // human users that have directly joined a space. + // - `last_active_time` — Denotes the time when last eligible item is added to + // any topic of this space. + // - `create_time` — Denotes the time of the space creation. + // + // Valid ordering operation values are: + // + // - `ASC` for ascending. Default value. + // + // - `DESC` for descending. + // + // The supported syntax are: + // + // - `membership_count.joined_direct_human_user_count DESC` + // - `membership_count.joined_direct_human_user_count ASC` + // - `last_active_time DESC` + // - `last_active_time ASC` + // - `create_time DESC` + // - `create_time ASC` + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response with a list of spaces corresponding to the search spaces request. +message SearchSpacesResponse { + // A page of the requested spaces. + repeated Space spaces = 1; + + // A token that can be used to retrieve the next page. If this field is empty, + // there are no subsequent pages. + string next_page_token = 2; + + // The total number of spaces that match the query, across all pages. If the + // result is over 10,000 spaces, this value is an estimate. + int32 total_size = 3; } // Request for deleting a space. @@ -408,6 +699,17 @@ message DeleteSpaceRequest { (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "chat.googleapis.com/Space" } ]; + + // When `true`, the method runs using the user's Google Workspace + // administrator privileges. + // + // The calling user must be a Google Workspace administrator with the + // [manage chat and spaces conversations + // privilege](https://support.google.com/a/answer/13369245). + // + // Requires the `chat.admin.delete` [OAuth 2.0 + // scope](https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes). + bool use_admin_access = 2; } // Request message for completing the import process for a space. diff --git a/google/chat/v1/space_event.proto b/google/chat/v1/space_event.proto index 84379a096..8e450ad8c 100644 --- a/google/chat/v1/space_event.proto +++ b/google/chat/v1/space_event.proto @@ -284,6 +284,8 @@ message ListSpaceEventsRequest { // Response message for listing space events. message ListSpaceEventsResponse { // Results are returned in chronological order (oldest event first). + // Note: The `permissionSettings` field is not returned in the Space + // object for list requests. repeated SpaceEvent space_events = 1; // Continuation token used to fetch more events. diff --git a/google/cloud/abuseevent/logging/v1/BUILD.bazel b/google/cloud/abuseevent/logging/v1/BUILD.bazel index 83a898564..cc83331f9 100644 --- a/google/cloud/abuseevent/logging/v1/BUILD.bazel +++ b/google/cloud/abuseevent/logging/v1/BUILD.bazel @@ -16,6 +16,7 @@ proto_library( "abuse_event.proto", ], deps = [ + "//google/api:field_info_proto", "@com_google_protobuf//:timestamp_proto", ], ) @@ -60,7 +61,7 @@ go_proto_library( importpath = "cloud.google.com/go/abuseevent/logging/apiv1/loggingpb", protos = [":logging_proto"], deps = [ - + "//google/api:annotations_go_proto", ], ) @@ -88,6 +89,7 @@ moved_proto_library( name = "logging_moved_proto", srcs = [":logging_proto"], deps = [ + "//google/api:field_info_proto", "@com_google_protobuf//:timestamp_proto", ], ) diff --git a/google/cloud/abuseevent/logging/v1/abuse_event.proto b/google/cloud/abuseevent/logging/v1/abuse_event.proto index ce9f17092..8d676f89c 100644 --- a/google/cloud/abuseevent/logging/v1/abuse_event.proto +++ b/google/cloud/abuseevent/logging/v1/abuse_event.proto @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ syntax = "proto3"; package google.cloud.abuseevent.logging.v1; +import "google/api/field_info.proto"; import "google/protobuf/timestamp.proto"; option cc_enable_arenas = true; @@ -122,6 +123,10 @@ message CryptoMiningEvent { // Detected end time of the cryptocurrency mining. google.protobuf.Timestamp detected_mining_end_time = 3; + + // The IP address(es) of the VM associated with the cryptocurrency mining. + // This field may be empty if this information is not available. + repeated string vm_ip = 4 [(google.api.field_info).format = IPV4_OR_IPV6]; } // Information about the leaked client credentials observed on the monitored diff --git a/google/cloud/accessapproval/v1/BUILD.bazel b/google/cloud/accessapproval/v1/BUILD.bazel index 0de361ded..608459349 100644 --- a/google/cloud/accessapproval/v1/BUILD.bazel +++ b/google/cloud/accessapproval/v1/BUILD.bazel @@ -208,7 +208,7 @@ php_gapic_library( name = "accessapproval_php_gapic", srcs = [":accessapproval_proto_with_info"], grpc_service_config = "accessapproval_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "accessapproval_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/aiplatform/v1/BUILD.bazel b/google/cloud/aiplatform/v1/BUILD.bazel index 03a61a3ae..40e1194bc 100644 --- a/google/cloud/aiplatform/v1/BUILD.bazel +++ b/google/cloud/aiplatform/v1/BUILD.bazel @@ -52,6 +52,7 @@ proto_library( "entity_type.proto", "env_var.proto", "evaluated_annotation.proto", + "evaluation_service.proto", "event.proto", "execution.proto", "explanation.proto", @@ -99,6 +100,7 @@ proto_library( "nas_job.proto", "network_spec.proto", "notebook_euc_config.proto", + "notebook_execution_job.proto", "notebook_idle_shutdown_config.proto", "notebook_runtime.proto", "notebook_runtime_template_ref.proto", @@ -113,6 +115,7 @@ proto_library( "pipeline_state.proto", "prediction_service.proto", "publisher_model.proto", + "reservation_affinity.proto", "saved_query.proto", "schedule.proto", "schedule_service.proto", @@ -229,6 +232,7 @@ java_gapic_test( "com.google.cloud.aiplatform.v1.DatasetServiceClientTest", "com.google.cloud.aiplatform.v1.DeploymentResourcePoolServiceClientTest", "com.google.cloud.aiplatform.v1.EndpointServiceClientTest", + "com.google.cloud.aiplatform.v1.EvaluationServiceClientTest", "com.google.cloud.aiplatform.v1.FeatureOnlineStoreAdminServiceClientTest", "com.google.cloud.aiplatform.v1.FeatureOnlineStoreServiceClientTest", "com.google.cloud.aiplatform.v1.FeatureRegistryServiceClientTest", diff --git a/google/cloud/aiplatform/v1/accelerator_type.proto b/google/cloud/aiplatform/v1/accelerator_type.proto index bd01f486b..790eddc6f 100644 --- a/google/cloud/aiplatform/v1/accelerator_type.proto +++ b/google/cloud/aiplatform/v1/accelerator_type.proto @@ -29,8 +29,9 @@ enum AcceleratorType { // Unspecified accelerator type, which means no accelerator. ACCELERATOR_TYPE_UNSPECIFIED = 0; - // Nvidia Tesla K80 GPU. - NVIDIA_TESLA_K80 = 1; + // Deprecated: Nvidia Tesla K80 GPU has reached end of support, + // see https://cloud.google.com/compute/docs/eol/k80-eol. + NVIDIA_TESLA_K80 = 1 [deprecated = true]; // Nvidia Tesla P100 GPU. NVIDIA_TESLA_P100 = 2; diff --git a/google/cloud/aiplatform/v1/aiplatform_v1.yaml b/google/cloud/aiplatform/v1/aiplatform_v1.yaml index 95aeba514..e50db46f8 100644 --- a/google/cloud/aiplatform/v1/aiplatform_v1.yaml +++ b/google/cloud/aiplatform/v1/aiplatform_v1.yaml @@ -7,6 +7,7 @@ apis: - name: google.cloud.aiplatform.v1.DatasetService - name: google.cloud.aiplatform.v1.DeploymentResourcePoolService - name: google.cloud.aiplatform.v1.EndpointService +- name: google.cloud.aiplatform.v1.EvaluationService - name: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService - name: google.cloud.aiplatform.v1.FeatureOnlineStoreService - name: google.cloud.aiplatform.v1.FeatureRegistryService @@ -59,6 +60,7 @@ types: - name: google.cloud.aiplatform.v1.CreateIndexEndpointOperationMetadata - name: google.cloud.aiplatform.v1.CreateIndexOperationMetadata - name: google.cloud.aiplatform.v1.CreateMetadataStoreOperationMetadata +- name: google.cloud.aiplatform.v1.CreateNotebookExecutionJobOperationMetadata - name: google.cloud.aiplatform.v1.CreateNotebookRuntimeTemplateOperationMetadata - name: google.cloud.aiplatform.v1.CreatePersistentResourceOperationMetadata - name: google.cloud.aiplatform.v1.CreateRegistryFeatureOperationMetadata @@ -181,6 +183,8 @@ http: - post: '/v1/{resource=projects/*/locations/*/featurestores/*/entityTypes/*}:getIamPolicy' - post: '/v1/{resource=projects/*/locations/*/models/*}:getIamPolicy' - post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:getIamPolicy' + - post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:getIamPolicy' + - post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:getIamPolicy' - post: '/ui/{resource=projects/*/locations/*/featurestores/*}:getIamPolicy' - post: '/ui/{resource=projects/*/locations/*/featurestores/*/entityTypes/*}:getIamPolicy' - post: '/ui/{resource=projects/*/locations/*/models/*}:getIamPolicy' @@ -199,6 +203,10 @@ http: body: '*' - post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:setIamPolicy' body: '*' + - post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:setIamPolicy' + body: '*' + - post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:setIamPolicy' + body: '*' - post: '/ui/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy' body: '*' - post: '/ui/{resource=projects/*/locations/*/featurestores/*/entityTypes/*}:setIamPolicy' @@ -219,6 +227,8 @@ http: - post: '/v1/{resource=projects/*/locations/*/featurestores/*/entityTypes/*}:testIamPermissions' - post: '/v1/{resource=projects/*/locations/*/models/*}:testIamPermissions' - post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions' + - post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:testIamPermissions' + - post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:testIamPermissions' - post: '/ui/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions' - post: '/ui/{resource=projects/*/locations/*/featurestores/*/entityTypes/*}:testIamPermissions' - post: '/ui/{resource=projects/*/locations/*/models/*}:testIamPermissions' @@ -701,6 +711,10 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.aiplatform.v1.EvaluationService.EvaluateInstances + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.*' oauth: canonical_scopes: |- @@ -889,8 +903,25 @@ publishing: organization: CLOUD library_settings: - version: google.cloud.aiplatform.v1 + java_settings: + common: {} + cpp_settings: + common: {} + php_settings: + common: {} + python_settings: + common: {} + experimental_features: + rest_async_io_enabled: true + node_settings: + common: {} dotnet_settings: + common: {} renamed_resources: datalabeling.googleapis.com/Dataset: DataLabelingDataset automl.googleapis.com/Dataset: AutoMLDataset automl.googleapis.com/Model: AutoMLModel + ruby_settings: + common: {} + go_settings: + common: {} diff --git a/google/cloud/aiplatform/v1/batch_prediction_job.proto b/google/cloud/aiplatform/v1/batch_prediction_job.proto index 1b0a032aa..3688ad8d1 100644 --- a/google/cloud/aiplatform/v1/batch_prediction_job.proto +++ b/google/cloud/aiplatform/v1/batch_prediction_job.proto @@ -457,4 +457,10 @@ message BatchPredictionJob { // // User can disable container logging by setting this flag to true. bool disable_container_logging = 34; + + // Output only. Reserved for future use. + bool satisfies_pzs = 36 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 37 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1/content.proto b/google/cloud/aiplatform/v1/content.proto index 82cdb3f63..f7f4273b0 100644 --- a/google/cloud/aiplatform/v1/content.proto +++ b/google/cloud/aiplatform/v1/content.proto @@ -46,6 +46,9 @@ enum HarmCategory { // The harm category is sexually explicit content. HARM_CATEGORY_SEXUALLY_EXPLICIT = 4; + + // The harm category is civic integrity. + HARM_CATEGORY_CIVIC_INTEGRITY = 5; } // The base structured datatype containing multi-part content of a message. @@ -137,6 +140,48 @@ message VideoMetadata { // Generation config. message GenerationConfig { + // The configuration for routing the request to a specific model. + message RoutingConfig { + // When automated routing is specified, the routing will be determined by + // the pretrained routing model and customer provided model routing + // preference. + message AutoRoutingMode { + // The model routing preference. + enum ModelRoutingPreference { + // Unspecified model routing preference. + UNKNOWN = 0; + + // Prefer higher quality over low cost. + PRIORITIZE_QUALITY = 1; + + // Balanced model routing preference. + BALANCED = 2; + + // Prefer lower cost over higher quality. + PRIORITIZE_COST = 3; + } + + // The model routing preference. + optional ModelRoutingPreference model_routing_preference = 1; + } + + // When manual routing is set, the specified model will be used directly. + message ManualRoutingMode { + // The model name to use. Only the public LLM models are accepted. e.g. + // 'gemini-1.5-pro-001'. + optional string model_name = 1; + } + + // Routing mode. + oneof routing_config { + // Automated routing. + AutoRoutingMode auto_mode = 1; + + // Manual routing. + ManualRoutingMode manual_mode = 2; + } + } + // Optional. Controls the randomness of predictions. optional float temperature = 1 [(google.api.field_behavior) = OPTIONAL]; @@ -155,12 +200,21 @@ message GenerationConfig { // Optional. Stop sequences. repeated string stop_sequences = 6 [(google.api.field_behavior) = OPTIONAL]; + // Optional. If true, export the logprobs results in response. + optional bool response_logprobs = 18 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Logit probabilities. + optional int32 logprobs = 7 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Positive penalties. optional float presence_penalty = 8 [(google.api.field_behavior) = OPTIONAL]; // Optional. Frequency penalties. optional float frequency_penalty = 9 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Seed. + optional int32 seed = 12 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Output response mimetype of the generated candidate text. // Supported mimetype: // - `text/plain`: (default) Text output. @@ -178,6 +232,10 @@ message GenerationConfig { // Compatible mimetypes: // `application/json`: Schema for JSON response. optional Schema response_schema = 16 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Routing configuration. + optional RoutingConfig routing_config = 17 + [(google.api.field_behavior) = OPTIONAL]; } // Safety settings. @@ -198,6 +256,9 @@ message SafetySetting { // Block none. BLOCK_NONE = 4; + + // Turn off the safety filter. + OFF = 5; } // Probability vs severity. @@ -317,34 +378,34 @@ message Candidate { // The finish reason is unspecified. FINISH_REASON_UNSPECIFIED = 0; - // Natural stop point of the model or provided stop sequence. + // Token generation reached a natural stopping point or a configured stop + // sequence. STOP = 1; - // The maximum number of tokens as specified in the request was reached. + // Token generation reached the configured maximum output tokens. MAX_TOKENS = 2; - // The token generation was stopped as the response was flagged for safety - // reasons. NOTE: When streaming the Candidate.content will be empty if - // content filters blocked the output. + // Token generation stopped because the content potentially contains safety + // violations. NOTE: When streaming, + // [content][google.cloud.aiplatform.v1.Candidate.content] is empty if + // content filters blocks the output. SAFETY = 3; - // The token generation was stopped as the response was flagged for - // unauthorized citations. + // Token generation stopped because the content potentially contains + // copyright violations. RECITATION = 4; - // All other reasons that stopped the token generation + // All other reasons that stopped the token generation. OTHER = 5; - // The token generation was stopped as the response was flagged for the - // terms which are included from the terminology blocklist. + // Token generation stopped because the content contains forbidden terms. BLOCKLIST = 6; - // The token generation was stopped as the response was flagged for - // the prohibited contents. + // Token generation stopped for potentially containing prohibited content. PROHIBITED_CONTENT = 7; - // The token generation was stopped as the response was flagged for - // Sensitive Personally Identifiable Information (SPII) contents. + // Token generation stopped because the content potentially contains + // Sensitive Personally Identifiable Information (SPII). SPII = 8; // The function call generated by the model is invalid. @@ -357,6 +418,16 @@ message Candidate { // Output only. Content parts of the candidate. Content content = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Confidence score of the candidate. + double score = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Average log probability score of the candidate. + double avg_logprobs = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Log-likelihood scores for the response tokens and top tokens + LogprobsResult logprobs_result = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The reason why the model stopped generating tokens. // If empty, the model has not stopped generating the tokens. FinishReason finish_reason = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -381,6 +452,101 @@ message Candidate { [(google.api.field_behavior) = OUTPUT_ONLY]; } +// Logprobs Result +message LogprobsResult { + // Candidate for the logprobs token and score. + message Candidate { + // The candidate’s token string value. + optional string token = 1; + + // The candidate’s token id value. + optional int32 token_id = 3; + + // The candidate's log probability. + optional float log_probability = 2; + } + + // Candidates with top log probabilities at each decoding step. + message TopCandidates { + // Sorted by log probability in descending order. + repeated Candidate candidates = 1; + } + + // Length = total number of decoding steps. + repeated TopCandidates top_candidates = 1; + + // Length = total number of decoding steps. + // The chosen candidates may or may not be in top_candidates. + repeated Candidate chosen_candidates = 2; +} + +// Segment of the content. +message Segment { + // Output only. The index of a Part object within its parent Content object. + int32 part_index = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Start index in the given Part, measured in bytes. Offset from + // the start of the Part, inclusive, starting at zero. + int32 start_index = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. End index in the given Part, measured in bytes. Offset from + // the start of the Part, exclusive, starting at zero. + int32 end_index = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The text corresponding to the segment from the response. + string text = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Grounding chunk. +message GroundingChunk { + // Chunk from the web. + message Web { + // URI reference of the chunk. + optional string uri = 1; + + // Title of the chunk. + optional string title = 2; + } + + // Chunk from context retrieved by the retrieval tools. + message RetrievedContext { + // URI reference of the attribution. + optional string uri = 1; + + // Title of the attribution. + optional string title = 2; + + // Text of the attribution. + optional string text = 3; + } + + // Chunk type. + oneof chunk_type { + // Grounding chunk from the web. + Web web = 1; + + // Grounding chunk from context retrieved by the retrieval tools. + RetrievedContext retrieved_context = 2; + } +} + +// Grounding support. +message GroundingSupport { + // Segment of the content this support belongs to. + optional Segment segment = 1; + + // A list of indices (into 'grounding_chunk') specifying the + // citations associated with the claim. For instance [1,3,4] means + // that grounding_chunk[1], grounding_chunk[3], + // grounding_chunk[4] are the retrieved content attributed to the claim. + repeated int32 grounding_chunk_indices = 2; + + // Confidence score of the support references. Ranges from 0 to 1. 1 is the + // most confident. This list must have the same size as the + // grounding_chunk_indices. + repeated float confidence_scores = 3; +} + // Metadata returned to client when grounding is enabled. message GroundingMetadata { // Optional. Web search queries for the following-up web search. @@ -390,6 +556,19 @@ message GroundingMetadata { // Optional. Google search entry for the following-up web searches. optional SearchEntryPoint search_entry_point = 4 [(google.api.field_behavior) = OPTIONAL]; + + // List of supporting references retrieved from specified grounding source. + repeated GroundingChunk grounding_chunks = 5; + + // Optional. List of grounding support. + repeated GroundingSupport grounding_supports = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Output only. Retrieval metadata. + optional RetrievalMetadata retrieval_metadata = 7 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = OUTPUT_ONLY + ]; } // Google search entry point. @@ -402,3 +581,14 @@ message SearchEntryPoint { // url> tuple. bytes sdk_blob = 2 [(google.api.field_behavior) = OPTIONAL]; } + +// Metadata related to retrieval in the grounding flow. +message RetrievalMetadata { + // Optional. Score indicating how likely information from Google Search could + // help answer the prompt. The score is in the range `[0, 1]`, where 0 is the + // least likely and 1 is the most likely. This score is only populated when + // Google Search grounding and dynamic retrieval is enabled. It will be + // compared to the threshold to determine whether to trigger Google Search. + float google_search_dynamic_retrieval_score = 2 + [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/aiplatform/v1/custom_job.proto b/google/cloud/aiplatform/v1/custom_job.proto index 5c4bb4791..1175fa090 100644 --- a/google/cloud/aiplatform/v1/custom_job.proto +++ b/google/cloud/aiplatform/v1/custom_job.proto @@ -109,6 +109,12 @@ message CustomJob { // The values are the URIs for each node's interactive shell. map web_access_uris = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Represents the spec of a CustomJob. @@ -351,6 +357,31 @@ message PythonPackageSpec { // All parameters related to queuing and scheduling of custom jobs. message Scheduling { + // Optional. This determines which type of scheduling strategy to use. Right + // now users have two options such as STANDARD which will use regular on + // demand resources to schedule the job, the other is SPOT which would + // leverage spot resources alongwith regular resources to schedule + // the job. + enum Strategy { + // Strategy will default to STANDARD. + STRATEGY_UNSPECIFIED = 0; + + // Deprecated. Regular on-demand provisioning strategy. + ON_DEMAND = 1 [deprecated = true]; + + // Deprecated. Low cost by making potential use of spot resources. + LOW_COST = 2 [deprecated = true]; + + // Standard provisioning strategy uses regular on-demand resources. + STANDARD = 3; + + // Spot provisioning strategy uses spot resources. + SPOT = 4; + + // Flex Start strategy uses DWS to queue for resources. + FLEX_START = 6; + } + // The maximum job running time. The default is 7 days. google.protobuf.Duration timeout = 1; @@ -359,8 +390,18 @@ message Scheduling { // resilient to workers leaving and joining a job. bool restart_job_on_worker_restart = 3; + // Optional. This determines which type of scheduling strategy to use. + Strategy strategy = 4 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Indicates if the job should retry for internal errors after the // job starts running. If true, overrides // `Scheduling.restart_job_on_worker_restart` to false. bool disable_retries = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This is the maximum duration that a job will wait for the + // requested resources to be provisioned if the scheduling strategy is set to + // [Strategy.DWS_FLEX_START]. + // If set to 0, the job will wait indefinitely. The default is 24 hours. + google.protobuf.Duration max_wait_duration = 6 + [(google.api.field_behavior) = OPTIONAL]; } diff --git a/google/cloud/aiplatform/v1/data_item.proto b/google/cloud/aiplatform/v1/data_item.proto index bb4f03831..baef10ad0 100644 --- a/google/cloud/aiplatform/v1/data_item.proto +++ b/google/cloud/aiplatform/v1/data_item.proto @@ -70,4 +70,10 @@ message DataItem { // Optional. Used to perform consistent read-modify-write updates. If not set, // a blind "overwrite" update happens. string etag = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1/dataset.proto b/google/cloud/aiplatform/v1/dataset.proto index 66b4e3efa..8aa4e9608 100644 --- a/google/cloud/aiplatform/v1/dataset.proto +++ b/google/cloud/aiplatform/v1/dataset.proto @@ -39,8 +39,11 @@ message Dataset { pattern: "projects/{project}/locations/{location}/datasets/{dataset}" }; - // Output only. The resource name of the Dataset. - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Identifier. The resource name of the Dataset. + string name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = IDENTIFIER + ]; // Required. The user-defined name of the Dataset. // The name can be up to 128 characters long and can consist of any UTF-8 @@ -115,6 +118,12 @@ message Dataset { // Optional. Reference to the public base model last used by the dataset. Only // set for prompt datasets. string model_reference = 18 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Describes the location from where we import data into a Dataset, together diff --git a/google/cloud/aiplatform/v1/dataset_service.proto b/google/cloud/aiplatform/v1/dataset_service.proto index 8637c667b..72b247be7 100644 --- a/google/cloud/aiplatform/v1/dataset_service.proto +++ b/google/cloud/aiplatform/v1/dataset_service.proto @@ -52,6 +52,7 @@ service DatasetService { option (google.api.http) = { post: "/v1/{parent=projects/*/locations/*}/datasets" body: "dataset" + additional_bindings { post: "/v1/datasets" body: "dataset" } }; option (google.api.method_signature) = "parent,dataset"; option (google.longrunning.operation_info) = { @@ -64,6 +65,7 @@ service DatasetService { rpc GetDataset(GetDatasetRequest) returns (Dataset) { option (google.api.http) = { get: "/v1/{name=projects/*/locations/*/datasets/*}" + additional_bindings { get: "/v1/{name=datasets/*}" } }; option (google.api.method_signature) = "name"; } @@ -73,6 +75,10 @@ service DatasetService { option (google.api.http) = { patch: "/v1/{dataset.name=projects/*/locations/*/datasets/*}" body: "dataset" + additional_bindings { + patch: "/v1/{dataset.name=datasets/*}" + body: "dataset" + } }; option (google.api.method_signature) = "dataset,update_mask"; } @@ -81,6 +87,7 @@ service DatasetService { rpc ListDatasets(ListDatasetsRequest) returns (ListDatasetsResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*/locations/*}/datasets" + additional_bindings { get: "/v1/datasets" } }; option (google.api.method_signature) = "parent"; } @@ -90,6 +97,7 @@ service DatasetService { returns (google.longrunning.Operation) { option (google.api.http) = { delete: "/v1/{name=projects/*/locations/*/datasets/*}" + additional_bindings { delete: "/v1/{name=datasets/*}" } }; option (google.api.method_signature) = "name"; option (google.longrunning.operation_info) = { @@ -130,6 +138,10 @@ service DatasetService { option (google.api.http) = { post: "/v1/{parent=projects/*/locations/*/datasets/*}/datasetVersions" body: "dataset_version" + additional_bindings { + post: "/v1/{parent=datasets/*}/datasetVersions" + body: "dataset_version" + } }; option (google.api.method_signature) = "parent,dataset_version"; option (google.longrunning.operation_info) = { @@ -144,6 +156,10 @@ service DatasetService { option (google.api.http) = { patch: "/v1/{dataset_version.name=projects/*/locations/*/datasets/*/datasetVersions/*}" body: "dataset_version" + additional_bindings { + patch: "/v1/{dataset_version.name=datasets/*/datasetVersions/*}" + body: "dataset_version" + } }; option (google.api.method_signature) = "dataset_version,update_mask"; } @@ -153,6 +169,7 @@ service DatasetService { returns (google.longrunning.Operation) { option (google.api.http) = { delete: "/v1/{name=projects/*/locations/*/datasets/*/datasetVersions/*}" + additional_bindings { delete: "/v1/{name=datasets/*/datasetVersions/*}" } }; option (google.api.method_signature) = "name"; option (google.longrunning.operation_info) = { @@ -165,6 +182,7 @@ service DatasetService { rpc GetDatasetVersion(GetDatasetVersionRequest) returns (DatasetVersion) { option (google.api.http) = { get: "/v1/{name=projects/*/locations/*/datasets/*/datasetVersions/*}" + additional_bindings { get: "/v1/{name=datasets/*/datasetVersions/*}" } }; option (google.api.method_signature) = "name"; } @@ -174,6 +192,7 @@ service DatasetService { returns (ListDatasetVersionsResponse) { option (google.api.http) = { get: "/v1/{parent=projects/*/locations/*/datasets/*}/datasetVersions" + additional_bindings { get: "/v1/{parent=datasets/*}/datasetVersions" } }; option (google.api.method_signature) = "parent"; } @@ -183,6 +202,9 @@ service DatasetService { returns (google.longrunning.Operation) { option (google.api.http) = { get: "/v1/{name=projects/*/locations/*/datasets/*/datasetVersions/*}:restore" + additional_bindings { + get: "/v1/{name=datasets/*/datasetVersions/*}:restore" + } }; option (google.api.method_signature) = "name"; option (google.longrunning.operation_info) = { diff --git a/google/cloud/aiplatform/v1/dataset_version.proto b/google/cloud/aiplatform/v1/dataset_version.proto index 9ecf3a274..f363de9bd 100644 --- a/google/cloud/aiplatform/v1/dataset_version.proto +++ b/google/cloud/aiplatform/v1/dataset_version.proto @@ -36,8 +36,11 @@ message DatasetVersion { pattern: "projects/{project}/locations/{location}/datasets/{dataset}/datasetVersions/{dataset_version}" }; - // Output only. The resource name of the DatasetVersion. - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Identifier. The resource name of the DatasetVersion. + string name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = IDENTIFIER + ]; // Output only. Timestamp when this DatasetVersion was created. google.protobuf.Timestamp create_time = 2 @@ -68,4 +71,10 @@ message DatasetVersion { // Output only. Reference to the public base model last used by the dataset // version. Only set for prompt dataset versions. string model_reference = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1/deployment_resource_pool.proto b/google/cloud/aiplatform/v1/deployment_resource_pool.proto index 0f16f38d9..2dffa0fda 100644 --- a/google/cloud/aiplatform/v1/deployment_resource_pool.proto +++ b/google/cloud/aiplatform/v1/deployment_resource_pool.proto @@ -74,4 +74,10 @@ message DeploymentResourcePool { // Output only. Timestamp when this DeploymentResourcePool was created. google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1/endpoint.proto b/google/cloud/aiplatform/v1/endpoint.proto index 5c8292eb7..30c74dfb2 100644 --- a/google/cloud/aiplatform/v1/endpoint.proto +++ b/google/cloud/aiplatform/v1/endpoint.proto @@ -150,6 +150,28 @@ message Endpoint { // Configures the request-response logging for online prediction. PredictRequestResponseLoggingConfig predict_request_response_logging_config = 18; + + // If true, the endpoint will be exposed through a dedicated + // DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS + // will be isolated from other users' traffic and will have better performance + // and reliability. + // Note: Once you enabled dedicated endpoint, you won't be able to send + // request to the shared DNS {region}-aiplatform.googleapis.com. The + // limitation will be removed soon. + bool dedicated_endpoint_enabled = 24; + + // Output only. DNS of the dedicated endpoint. Will only be populated if + // dedicated_endpoint_enabled is true. + // Format: + // `https://{endpoint_id}.{region}-{project_number}.prediction.vertexai.goog`. + string dedicated_endpoint_dns = 25 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; } // A deployment of a Model. Endpoints contain one or more DeployedModels. diff --git a/google/cloud/aiplatform/v1/entity_type.proto b/google/cloud/aiplatform/v1/entity_type.proto index 9d239ae6d..bc67a3c2a 100644 --- a/google/cloud/aiplatform/v1/entity_type.proto +++ b/google/cloud/aiplatform/v1/entity_type.proto @@ -95,4 +95,10 @@ message EntityType { // values older than `offline_storage_ttl_days` since the feature generation // time. If unset (or explicitly set to 0), default to 4000 days TTL. int32 offline_storage_ttl_days = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1/evaluation_service.proto b/google/cloud/aiplatform/v1/evaluation_service.proto new file mode 100644 index 000000000..b96317cb2 --- /dev/null +++ b/google/cloud/aiplatform/v1/evaluation_service.proto @@ -0,0 +1,1193 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "EvaluationServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// Vertex AI Online Evaluation Service. +service EvaluationService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Evaluates instances based on a given metric. + rpc EvaluateInstances(EvaluateInstancesRequest) + returns (EvaluateInstancesResponse) { + option (google.api.http) = { + post: "/v1/{location=projects/*/locations/*}:evaluateInstances" + body: "*" + }; + } +} + +// Pairwise prediction autorater preference. +enum PairwiseChoice { + // Unspecified prediction choice. + PAIRWISE_CHOICE_UNSPECIFIED = 0; + + // Baseline prediction wins + BASELINE = 1; + + // Candidate prediction wins + CANDIDATE = 2; + + // Winner cannot be determined + TIE = 3; +} + +// Request message for EvaluationService.EvaluateInstances. +message EvaluateInstancesRequest { + // Instances and specs for evaluation + oneof metric_inputs { + // Auto metric instances. + // Instances and metric spec for exact match metric. + ExactMatchInput exact_match_input = 2; + + // Instances and metric spec for bleu metric. + BleuInput bleu_input = 3; + + // Instances and metric spec for rouge metric. + RougeInput rouge_input = 4; + + // LLM-based metric instance. + // General text generation metrics, applicable to other categories. + // Input for fluency metric. + FluencyInput fluency_input = 5; + + // Input for coherence metric. + CoherenceInput coherence_input = 6; + + // Input for safety metric. + SafetyInput safety_input = 8; + + // Input for groundedness metric. + GroundednessInput groundedness_input = 9; + + // Input for fulfillment metric. + FulfillmentInput fulfillment_input = 12; + + // Input for summarization quality metric. + SummarizationQualityInput summarization_quality_input = 7; + + // Input for pairwise summarization quality metric. + PairwiseSummarizationQualityInput pairwise_summarization_quality_input = 23; + + // Input for summarization helpfulness metric. + SummarizationHelpfulnessInput summarization_helpfulness_input = 14; + + // Input for summarization verbosity metric. + SummarizationVerbosityInput summarization_verbosity_input = 15; + + // Input for question answering quality metric. + QuestionAnsweringQualityInput question_answering_quality_input = 10; + + // Input for pairwise question answering quality metric. + PairwiseQuestionAnsweringQualityInput + pairwise_question_answering_quality_input = 24; + + // Input for question answering relevance metric. + QuestionAnsweringRelevanceInput question_answering_relevance_input = 16; + + // Input for question answering helpfulness + // metric. + QuestionAnsweringHelpfulnessInput question_answering_helpfulness_input = 17; + + // Input for question answering correctness + // metric. + QuestionAnsweringCorrectnessInput question_answering_correctness_input = 18; + + // Input for pointwise metric. + PointwiseMetricInput pointwise_metric_input = 28; + + // Input for pairwise metric. + PairwiseMetricInput pairwise_metric_input = 29; + + // Tool call metric instances. + // Input for tool call valid metric. + ToolCallValidInput tool_call_valid_input = 19; + + // Input for tool name match metric. + ToolNameMatchInput tool_name_match_input = 20; + + // Input for tool parameter key match metric. + ToolParameterKeyMatchInput tool_parameter_key_match_input = 21; + + // Input for tool parameter key value match metric. + ToolParameterKVMatchInput tool_parameter_kv_match_input = 22; + } + + // Required. The resource name of the Location to evaluate the instances. + // Format: `projects/{project}/locations/{location}` + string location = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; +} + +// Response message for EvaluationService.EvaluateInstances. +message EvaluateInstancesResponse { + // Evaluation results will be served in the same order as presented in + // EvaluationRequest.instances. + oneof evaluation_results { + // Auto metric evaluation results. + // Results for exact match metric. + ExactMatchResults exact_match_results = 1; + + // Results for bleu metric. + BleuResults bleu_results = 2; + + // Results for rouge metric. + RougeResults rouge_results = 3; + + // LLM-based metric evaluation result. + // General text generation metrics, applicable to other categories. + // Result for fluency metric. + FluencyResult fluency_result = 4; + + // Result for coherence metric. + CoherenceResult coherence_result = 5; + + // Result for safety metric. + SafetyResult safety_result = 7; + + // Result for groundedness metric. + GroundednessResult groundedness_result = 8; + + // Result for fulfillment metric. + FulfillmentResult fulfillment_result = 11; + + // Summarization only metrics. + // Result for summarization quality metric. + SummarizationQualityResult summarization_quality_result = 6; + + // Result for pairwise summarization quality metric. + PairwiseSummarizationQualityResult pairwise_summarization_quality_result = + 22; + + // Result for summarization helpfulness metric. + SummarizationHelpfulnessResult summarization_helpfulness_result = 13; + + // Result for summarization verbosity metric. + SummarizationVerbosityResult summarization_verbosity_result = 14; + + // Question answering only metrics. + // Result for question answering quality metric. + QuestionAnsweringQualityResult question_answering_quality_result = 9; + + // Result for pairwise question answering quality metric. + PairwiseQuestionAnsweringQualityResult + pairwise_question_answering_quality_result = 23; + + // Result for question answering relevance metric. + QuestionAnsweringRelevanceResult question_answering_relevance_result = 15; + + // Result for question answering helpfulness metric. + QuestionAnsweringHelpfulnessResult question_answering_helpfulness_result = + 16; + + // Result for question answering correctness metric. + QuestionAnsweringCorrectnessResult question_answering_correctness_result = + 17; + + // Generic metrics. + // Result for pointwise metric. + PointwiseMetricResult pointwise_metric_result = 27; + + // Result for pairwise metric. + PairwiseMetricResult pairwise_metric_result = 28; + + // Tool call metrics. + // Results for tool call valid metric. + ToolCallValidResults tool_call_valid_results = 18; + + // Results for tool name match metric. + ToolNameMatchResults tool_name_match_results = 19; + + // Results for tool parameter key match metric. + ToolParameterKeyMatchResults tool_parameter_key_match_results = 20; + + // Results for tool parameter key value match metric. + ToolParameterKVMatchResults tool_parameter_kv_match_results = 21; + } +} + +// Input for exact match metric. +message ExactMatchInput { + // Required. Spec for exact match metric. + ExactMatchSpec metric_spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Repeated exact match instances. + repeated ExactMatchInstance instances = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for exact match instance. +message ExactMatchInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for exact match metric - returns 1 if prediction and reference exactly +// matches, otherwise 0. +message ExactMatchSpec {} + +// Results for exact match metric. +message ExactMatchResults { + // Output only. Exact match metric values. + repeated ExactMatchMetricValue exact_match_metric_values = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Exact match metric value for an instance. +message ExactMatchMetricValue { + // Output only. Exact match score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for bleu metric. +message BleuInput { + // Required. Spec for bleu score metric. + BleuSpec metric_spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Repeated bleu instances. + repeated BleuInstance instances = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for bleu instance. +message BleuInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for bleu score metric - calculates the precision of n-grams in the +// prediction as compared to reference - returns a score ranging between 0 to 1. +message BleuSpec { + // Optional. Whether to use_effective_order to compute bleu score. + bool use_effective_order = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Results for bleu metric. +message BleuResults { + // Output only. Bleu metric values. + repeated BleuMetricValue bleu_metric_values = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Bleu metric value for an instance. +message BleuMetricValue { + // Output only. Bleu score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for rouge metric. +message RougeInput { + // Required. Spec for rouge score metric. + RougeSpec metric_spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Repeated rouge instances. + repeated RougeInstance instances = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for rouge instance. +message RougeInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for rouge score metric - calculates the recall of n-grams in prediction +// as compared to reference - returns a score ranging between 0 and 1. +message RougeSpec { + // Optional. Supported rouge types are rougen[1-9], rougeL, and rougeLsum. + string rouge_type = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Whether to use stemmer to compute rouge score. + bool use_stemmer = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Whether to split summaries while using rougeLsum. + bool split_summaries = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Results for rouge metric. +message RougeResults { + // Output only. Rouge metric values. + repeated RougeMetricValue rouge_metric_values = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Rouge metric value for an instance. +message RougeMetricValue { + // Output only. Rouge score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for coherence metric. +message CoherenceInput { + // Required. Spec for coherence score metric. + CoherenceSpec metric_spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Coherence instance. + CoherenceInstance instance = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for coherence instance. +message CoherenceInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for coherence score metric. +message CoherenceSpec { + // Optional. Which version to use for evaluation. + int32 version = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for coherence result. +message CoherenceResult { + // Output only. Coherence score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for coherence score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for coherence score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for fluency metric. +message FluencyInput { + // Required. Spec for fluency score metric. + FluencySpec metric_spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Fluency instance. + FluencyInstance instance = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for fluency instance. +message FluencyInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for fluency score metric. +message FluencySpec { + // Optional. Which version to use for evaluation. + int32 version = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for fluency result. +message FluencyResult { + // Output only. Fluency score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for fluency score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for fluency score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for safety metric. +message SafetyInput { + // Required. Spec for safety metric. + SafetySpec metric_spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Safety instance. + SafetyInstance instance = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for safety instance. +message SafetyInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for safety metric. +message SafetySpec { + // Optional. Which version to use for evaluation. + int32 version = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for safety result. +message SafetyResult { + // Output only. Safety score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for safety score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for safety score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for groundedness metric. +message GroundednessInput { + // Required. Spec for groundedness metric. + GroundednessSpec metric_spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Groundedness instance. + GroundednessInstance instance = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for groundedness instance. +message GroundednessInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Background information provided in context used to compare + // against the prediction. + optional string context = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for groundedness metric. +message GroundednessSpec { + // Optional. Which version to use for evaluation. + int32 version = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for groundedness result. +message GroundednessResult { + // Output only. Groundedness score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for groundedness score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for groundedness score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for fulfillment metric. +message FulfillmentInput { + // Required. Spec for fulfillment score metric. + FulfillmentSpec metric_spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Fulfillment instance. + FulfillmentInstance instance = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for fulfillment instance. +message FulfillmentInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Inference instruction prompt to compare prediction with. + optional string instruction = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for fulfillment metric. +message FulfillmentSpec { + // Optional. Which version to use for evaluation. + int32 version = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for fulfillment result. +message FulfillmentResult { + // Output only. Fulfillment score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for fulfillment score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for fulfillment score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for summarization quality metric. +message SummarizationQualityInput { + // Required. Spec for summarization quality score metric. + SummarizationQualitySpec metric_spec = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Summarization quality instance. + SummarizationQualityInstance instance = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for summarization quality instance. +message SummarizationQualityInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Text to be summarized. + optional string context = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Summarization prompt for LLM. + optional string instruction = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for summarization quality score metric. +message SummarizationQualitySpec { + // Optional. Whether to use instance.reference to compute summarization + // quality. + bool use_reference = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Which version to use for evaluation. + int32 version = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for summarization quality result. +message SummarizationQualityResult { + // Output only. Summarization Quality score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for summarization quality score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for summarization quality score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for pairwise summarization quality metric. +message PairwiseSummarizationQualityInput { + // Required. Spec for pairwise summarization quality score metric. + PairwiseSummarizationQualitySpec metric_spec = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Pairwise summarization quality instance. + PairwiseSummarizationQualityInstance instance = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for pairwise summarization quality instance. +message PairwiseSummarizationQualityInstance { + // Required. Output of the candidate model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Output of the baseline model. + optional string baseline_prediction = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Ground truth used to compare against the prediction. + optional string reference = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Text to be summarized. + optional string context = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. Summarization prompt for LLM. + optional string instruction = 5 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for pairwise summarization quality score metric. +message PairwiseSummarizationQualitySpec { + // Optional. Whether to use instance.reference to compute pairwise + // summarization quality. + bool use_reference = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Which version to use for evaluation. + int32 version = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for pairwise summarization quality result. +message PairwiseSummarizationQualityResult { + // Output only. Pairwise summarization prediction choice. + PairwiseChoice pairwise_choice = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for summarization quality score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for summarization quality score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for summarization helpfulness metric. +message SummarizationHelpfulnessInput { + // Required. Spec for summarization helpfulness score metric. + SummarizationHelpfulnessSpec metric_spec = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Summarization helpfulness instance. + SummarizationHelpfulnessInstance instance = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for summarization helpfulness instance. +message SummarizationHelpfulnessInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Text to be summarized. + optional string context = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Summarization prompt for LLM. + optional string instruction = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for summarization helpfulness score metric. +message SummarizationHelpfulnessSpec { + // Optional. Whether to use instance.reference to compute summarization + // helpfulness. + bool use_reference = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Which version to use for evaluation. + int32 version = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for summarization helpfulness result. +message SummarizationHelpfulnessResult { + // Output only. Summarization Helpfulness score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for summarization helpfulness score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for summarization helpfulness score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for summarization verbosity metric. +message SummarizationVerbosityInput { + // Required. Spec for summarization verbosity score metric. + SummarizationVerbositySpec metric_spec = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Summarization verbosity instance. + SummarizationVerbosityInstance instance = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for summarization verbosity instance. +message SummarizationVerbosityInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Text to be summarized. + optional string context = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Summarization prompt for LLM. + optional string instruction = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for summarization verbosity score metric. +message SummarizationVerbositySpec { + // Optional. Whether to use instance.reference to compute summarization + // verbosity. + bool use_reference = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Which version to use for evaluation. + int32 version = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for summarization verbosity result. +message SummarizationVerbosityResult { + // Output only. Summarization Verbosity score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for summarization verbosity score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for summarization verbosity score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for question answering quality metric. +message QuestionAnsweringQualityInput { + // Required. Spec for question answering quality score metric. + QuestionAnsweringQualitySpec metric_spec = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Question answering quality instance. + QuestionAnsweringQualityInstance instance = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for question answering quality instance. +message QuestionAnsweringQualityInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Text to answer the question. + optional string context = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Question Answering prompt for LLM. + optional string instruction = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for question answering quality score metric. +message QuestionAnsweringQualitySpec { + // Optional. Whether to use instance.reference to compute question answering + // quality. + bool use_reference = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Which version to use for evaluation. + int32 version = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for question answering quality result. +message QuestionAnsweringQualityResult { + // Output only. Question Answering Quality score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for question answering quality score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for question answering quality score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for pairwise question answering quality metric. +message PairwiseQuestionAnsweringQualityInput { + // Required. Spec for pairwise question answering quality score metric. + PairwiseQuestionAnsweringQualitySpec metric_spec = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Pairwise question answering quality instance. + PairwiseQuestionAnsweringQualityInstance instance = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for pairwise question answering quality instance. +message PairwiseQuestionAnsweringQualityInstance { + // Required. Output of the candidate model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Output of the baseline model. + optional string baseline_prediction = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Ground truth used to compare against the prediction. + optional string reference = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Text to answer the question. + optional string context = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. Question Answering prompt for LLM. + optional string instruction = 5 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for pairwise question answering quality score metric. +message PairwiseQuestionAnsweringQualitySpec { + // Optional. Whether to use instance.reference to compute question answering + // quality. + bool use_reference = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Which version to use for evaluation. + int32 version = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for pairwise question answering quality result. +message PairwiseQuestionAnsweringQualityResult { + // Output only. Pairwise question answering prediction choice. + PairwiseChoice pairwise_choice = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for question answering quality score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for question answering quality score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for question answering relevance metric. +message QuestionAnsweringRelevanceInput { + // Required. Spec for question answering relevance score metric. + QuestionAnsweringRelevanceSpec metric_spec = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Question answering relevance instance. + QuestionAnsweringRelevanceInstance instance = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for question answering relevance instance. +message QuestionAnsweringRelevanceInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Text provided as context to answer the question. + optional string context = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The question asked and other instruction in the inference prompt. + optional string instruction = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for question answering relevance metric. +message QuestionAnsweringRelevanceSpec { + // Optional. Whether to use instance.reference to compute question answering + // relevance. + bool use_reference = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Which version to use for evaluation. + int32 version = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for question answering relevance result. +message QuestionAnsweringRelevanceResult { + // Output only. Question Answering Relevance score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for question answering relevance score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for question answering relevance score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for question answering helpfulness metric. +message QuestionAnsweringHelpfulnessInput { + // Required. Spec for question answering helpfulness score metric. + QuestionAnsweringHelpfulnessSpec metric_spec = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Question answering helpfulness instance. + QuestionAnsweringHelpfulnessInstance instance = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for question answering helpfulness instance. +message QuestionAnsweringHelpfulnessInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Text provided as context to answer the question. + optional string context = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The question asked and other instruction in the inference prompt. + optional string instruction = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for question answering helpfulness metric. +message QuestionAnsweringHelpfulnessSpec { + // Optional. Whether to use instance.reference to compute question answering + // helpfulness. + bool use_reference = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Which version to use for evaluation. + int32 version = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for question answering helpfulness result. +message QuestionAnsweringHelpfulnessResult { + // Output only. Question Answering Helpfulness score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for question answering helpfulness score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for question answering helpfulness score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for question answering correctness metric. +message QuestionAnsweringCorrectnessInput { + // Required. Spec for question answering correctness score metric. + QuestionAnsweringCorrectnessSpec metric_spec = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Question answering correctness instance. + QuestionAnsweringCorrectnessInstance instance = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for question answering correctness instance. +message QuestionAnsweringCorrectnessInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Text provided as context to answer the question. + optional string context = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The question asked and other instruction in the inference prompt. + optional string instruction = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for question answering correctness metric. +message QuestionAnsweringCorrectnessSpec { + // Optional. Whether to use instance.reference to compute question answering + // correctness. + bool use_reference = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Which version to use for evaluation. + int32 version = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for question answering correctness result. +message QuestionAnsweringCorrectnessResult { + // Output only. Question Answering Correctness score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for question answering correctness score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Confidence for question answering correctness score. + optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for pointwise metric. +message PointwiseMetricInput { + // Required. Spec for pointwise metric. + PointwiseMetricSpec metric_spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Pointwise metric instance. + PointwiseMetricInstance instance = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Pointwise metric instance. Usually one instance corresponds to one row in an +// evaluation dataset. +message PointwiseMetricInstance { + // Instance for pointwise metric. + oneof instance { + // Instance specified as a json string. String key-value pairs are expected + // in the json_instance to render + // PointwiseMetricSpec.instance_prompt_template. + string json_instance = 1; + } +} + +// Spec for pointwise metric. +message PointwiseMetricSpec { + // Required. Metric prompt template for pointwise metric. + optional string metric_prompt_template = 1 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for pointwise metric result. +message PointwiseMetricResult { + // Output only. Pointwise metric score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for pointwise metric score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for pairwise metric. +message PairwiseMetricInput { + // Required. Spec for pairwise metric. + PairwiseMetricSpec metric_spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Pairwise metric instance. + PairwiseMetricInstance instance = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Pairwise metric instance. Usually one instance corresponds to one row in an +// evaluation dataset. +message PairwiseMetricInstance { + // Instance for pairwise metric. + oneof instance { + // Instance specified as a json string. String key-value pairs are expected + // in the json_instance to render + // PairwiseMetricSpec.instance_prompt_template. + string json_instance = 1; + } +} + +// Spec for pairwise metric. +message PairwiseMetricSpec { + // Required. Metric prompt template for pairwise metric. + optional string metric_prompt_template = 1 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for pairwise metric result. +message PairwiseMetricResult { + // Output only. Pairwise metric choice. + PairwiseChoice pairwise_choice = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for pairwise metric score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for tool call valid metric. +message ToolCallValidInput { + // Required. Spec for tool call valid metric. + ToolCallValidSpec metric_spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Repeated tool call valid instances. + repeated ToolCallValidInstance instances = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for tool call valid metric. +message ToolCallValidSpec {} + +// Spec for tool call valid instance. +message ToolCallValidInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Results for tool call valid metric. +message ToolCallValidResults { + // Output only. Tool call valid metric values. + repeated ToolCallValidMetricValue tool_call_valid_metric_values = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Tool call valid metric value for an instance. +message ToolCallValidMetricValue { + // Output only. Tool call valid score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for tool name match metric. +message ToolNameMatchInput { + // Required. Spec for tool name match metric. + ToolNameMatchSpec metric_spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Repeated tool name match instances. + repeated ToolNameMatchInstance instances = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for tool name match metric. +message ToolNameMatchSpec {} + +// Spec for tool name match instance. +message ToolNameMatchInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Results for tool name match metric. +message ToolNameMatchResults { + // Output only. Tool name match metric values. + repeated ToolNameMatchMetricValue tool_name_match_metric_values = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Tool name match metric value for an instance. +message ToolNameMatchMetricValue { + // Output only. Tool name match score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for tool parameter key match metric. +message ToolParameterKeyMatchInput { + // Required. Spec for tool parameter key match metric. + ToolParameterKeyMatchSpec metric_spec = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Repeated tool parameter key match instances. + repeated ToolParameterKeyMatchInstance instances = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for tool parameter key match metric. +message ToolParameterKeyMatchSpec {} + +// Spec for tool parameter key match instance. +message ToolParameterKeyMatchInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Results for tool parameter key match metric. +message ToolParameterKeyMatchResults { + // Output only. Tool parameter key match metric values. + repeated ToolParameterKeyMatchMetricValue + tool_parameter_key_match_metric_values = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Tool parameter key match metric value for an instance. +message ToolParameterKeyMatchMetricValue { + // Output only. Tool parameter key match score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for tool parameter key value match metric. +message ToolParameterKVMatchInput { + // Required. Spec for tool parameter key value match metric. + ToolParameterKVMatchSpec metric_spec = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Repeated tool parameter key value match instances. + repeated ToolParameterKVMatchInstance instances = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for tool parameter key value match metric. +message ToolParameterKVMatchSpec { + // Optional. Whether to use STRCIT string match on parameter values. + bool use_strict_string_match = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Spec for tool parameter key value match instance. +message ToolParameterKVMatchInstance { + // Required. Output of the evaluated model. + optional string prediction = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Ground truth used to compare against the prediction. + optional string reference = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Results for tool parameter key value match metric. +message ToolParameterKVMatchResults { + // Output only. Tool parameter key value match metric values. + repeated ToolParameterKVMatchMetricValue + tool_parameter_kv_match_metric_values = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Tool parameter key value match metric value for an instance. +message ToolParameterKVMatchMetricValue { + // Output only. Tool parameter key value match score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/aiplatform/v1/feature_group.proto b/google/cloud/aiplatform/v1/feature_group.proto index 63b44b1a4..9fda12178 100644 --- a/google/cloud/aiplatform/v1/feature_group.proto +++ b/google/cloud/aiplatform/v1/feature_group.proto @@ -40,6 +40,14 @@ message FeatureGroup { // Input source type for BigQuery Tables and Views. message BigQuery { + message TimeSeries { + // Optional. Column hosting timestamp values for a time-series source. + // Will be used to determine the latest `feature_values` for each entity. + // Optional. If not provided, column named `feature_timestamp` of + // type `TIMESTAMP` will be used. + string timestamp_column = 1 [(google.api.field_behavior) = OPTIONAL]; + } + // Required. Immutable. The BigQuery source URI that points to either a // BigQuery Table or View. BigQuerySource big_query_source = 1 [ @@ -51,6 +59,29 @@ message FeatureGroup { // If not provided defaults to `entity_id`. repeated string entity_id_columns = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Set if the data source is not a time-series. + bool static_data_source = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If the source is a time-series source, this can be set to + // control how downstream sources (ex: + // [FeatureView][google.cloud.aiplatform.v1.FeatureView] ) will treat + // time-series sources. If not set, will treat the source as a time-series + // source with `feature_timestamp` as timestamp column and no scan boundary. + TimeSeries time_series = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set, all feature values will be fetched + // from a single row per unique entityId including nulls. + // If not set, will collapse all rows for each unique entityId into a singe + // row with any non-null values if present, if no non-null values are + // present will sync null. + // ex: If source has schema + // `(entity_id, feature_timestamp, f0, f1)` and the following rows: + // `(e1, 2020-01-01T10:00:00.123Z, 10, 15)` + // `(e1, 2020-02-01T10:00:00.123Z, 20, null)` + // If dense is set, `(e1, 20, null)` is synced to online stores. If dense is + // not set, `(e1, 20, 15)` is synced to online stores. + bool dense = 5 [(google.api.field_behavior) = OPTIONAL]; } oneof source { diff --git a/google/cloud/aiplatform/v1/feature_online_store.proto b/google/cloud/aiplatform/v1/feature_online_store.proto index 4e6231173..be3bb26eb 100644 --- a/google/cloud/aiplatform/v1/feature_online_store.proto +++ b/google/cloud/aiplatform/v1/feature_online_store.proto @@ -159,4 +159,10 @@ message FeatureOnlineStore { // Optional. Customer-managed encryption key spec for data storage. If set, // online store will be secured by this key. EncryptionSpec encryption_spec = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1/feature_online_store_admin_service.proto b/google/cloud/aiplatform/v1/feature_online_store_admin_service.proto index 9e762747b..bda694351 100644 --- a/google/cloud/aiplatform/v1/feature_online_store_admin_service.proto +++ b/google/cloud/aiplatform/v1/feature_online_store_admin_service.proto @@ -318,10 +318,11 @@ message UpdateFeatureOnlineStoreRequest { // // Updatable fields: // - // * `big_query_source` - // * `bigtable` // * `labels` - // * `sync_config` + // * `description` + // * `bigtable` + // * `bigtable.auto_scaling` + // * `bigtable.enable_multi_region_replica` google.protobuf.FieldMask update_mask = 2; } @@ -481,7 +482,14 @@ message UpdateFeatureViewRequest { // Updatable fields: // // * `labels` - // * `serviceAgentType` + // * `service_agent_type` + // * `big_query_source` + // * `big_query_source.uri` + // * `big_query_source.entity_id_columns` + // * `feature_registry_source` + // * `feature_registry_source.feature_groups` + // * `sync_config` + // * `sync_config.cron` google.protobuf.FieldMask update_mask = 2; } @@ -535,7 +543,7 @@ message SyncFeatureViewRequest { ]; } -// Respose message for +// Response message for // [FeatureOnlineStoreAdminService.SyncFeatureView][google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.SyncFeatureView]. message SyncFeatureViewResponse { // Format: diff --git a/google/cloud/aiplatform/v1/feature_online_store_service.proto b/google/cloud/aiplatform/v1/feature_online_store_service.proto index 2e3e82ce3..64a4de7a1 100644 --- a/google/cloud/aiplatform/v1/feature_online_store_service.proto +++ b/google/cloud/aiplatform/v1/feature_online_store_service.proto @@ -175,6 +175,61 @@ message NearestNeighborQuery { repeated string deny_tokens = 3 [(google.api.field_behavior) = OPTIONAL]; } + // Numeric filter is used to search a subset of the entities by using boolean + // rules on numeric columns. + // For example: + // Database Point 0: {name: “a” value_int: 42} {name: “b” value_float: 1.0} + // Database Point 1: {name: “a” value_int: 10} {name: “b” value_float: 2.0} + // Database Point 2: {name: “a” value_int: -1} {name: “b” value_float: 3.0} + // Query: {name: “a” value_int: 12 operator: LESS} // Matches Point 1, 2 + // {name: “b” value_float: 2.0 operator: EQUAL} // Matches Point 1 + message NumericFilter { + // Datapoints for which Operator is true relative to the query’s Value + // field will be allowlisted. + enum Operator { + // Unspecified operator. + OPERATOR_UNSPECIFIED = 0; + + // Entities are eligible if their value is < the query's. + LESS = 1; + + // Entities are eligible if their value is <= the query's. + LESS_EQUAL = 2; + + // Entities are eligible if their value is == the query's. + EQUAL = 3; + + // Entities are eligible if their value is >= the query's. + GREATER_EQUAL = 4; + + // Entities are eligible if their value is > the query's. + GREATER = 5; + + // Entities are eligible if their value is != the query's. + NOT_EQUAL = 6; + } + + // The type of Value must be consistent for all datapoints with a given + // name. This is verified at runtime. + oneof Value { + // int value type. + int64 value_int = 2; + + // float value type. + float value_float = 3; + + // double value type. + double value_double = 4; + } + + // Required. Column name in BigQuery that used as filters. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. This MUST be specified for queries and must NOT be specified + // for database points. + optional Operator op = 5 [(google.api.field_behavior) = OPTIONAL]; + } + // Parameters that can be overrided in each query to tune query latency and // recall. message Parameters { @@ -210,6 +265,10 @@ message NearestNeighborQuery { repeated StringFilter string_filters = 4 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The list of numeric filters. + repeated NumericFilter numeric_filters = 8 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. Crowding is a constraint on a neighbor list produced by nearest // neighbor search requiring that no more than // sper_crowding_attribute_neighbor_count of the k neighbors returned have the diff --git a/google/cloud/aiplatform/v1/feature_registry_service.proto b/google/cloud/aiplatform/v1/feature_registry_service.proto index 951ab8d45..a113cac5b 100644 --- a/google/cloud/aiplatform/v1/feature_registry_service.proto +++ b/google/cloud/aiplatform/v1/feature_registry_service.proto @@ -286,6 +286,9 @@ message UpdateFeatureGroupRequest { // Updatable fields: // // * `labels` + // * `description` + // * `big_query` + // * `big_query.entity_id_columns` google.protobuf.FieldMask update_mask = 2; } diff --git a/google/cloud/aiplatform/v1/feature_view.proto b/google/cloud/aiplatform/v1/feature_view.proto index 4c0cb4438..58091dbbb 100644 --- a/google/cloud/aiplatform/v1/feature_view.proto +++ b/google/cloud/aiplatform/v1/feature_view.proto @@ -55,6 +55,10 @@ message FeatureView { // database. For example, "CRON_TZ=America/New_York 1 * * * *", or // "TZ=America/New_York 1 * * * *". string cron = 1; + + // Optional. If true, syncs the FeatureView in a continuous manner to Online + // Store. + bool continuous = 2 [(google.api.field_behavior) = OPTIONAL]; } // Configuration for vector indexing. @@ -157,6 +161,25 @@ message FeatureView { optional int64 project_number = 2 [(google.api.field_behavior) = OPTIONAL]; } + // A Vertex Rag source for features that need to be synced to Online + // Store. + message VertexRagSource { + // Required. The BigQuery view/table URI that will be materialized on each + // manual sync trigger. The table/view is expected to have the following + // columns and types at least: + // - `corpus_id` (STRING, NULLABLE/REQUIRED) + // - `file_id` (STRING, NULLABLE/REQUIRED) + // - `chunk_id` (STRING, NULLABLE/REQUIRED) + // - `chunk_data_type` (STRING, NULLABLE/REQUIRED) + // - `chunk_data` (STRING, NULLABLE/REQUIRED) + // - `embeddings` (FLOAT, REPEATED) + // - `file_original_uri` (STRING, NULLABLE/REQUIRED) + string uri = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The RAG corpus id corresponding to this FeatureView. + int64 rag_corpus_id = 2 [(google.api.field_behavior) = OPTIONAL]; + } + oneof source { // Optional. Configures how data is supposed to be extracted from a BigQuery // source to be loaded onto the FeatureOnlineStore. @@ -167,6 +190,10 @@ message FeatureView { // need to be loaded onto the FeatureOnlineStore. FeatureRegistrySource feature_registry_source = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Vertex RAG Source that the FeatureView is linked to. + VertexRagSource vertex_rag_source = 18 + [(google.api.field_behavior) = OPTIONAL]; } // Identifier. Name of the FeatureView. Format: @@ -208,4 +235,10 @@ message FeatureView { // so that approximate nearest neighbor (a.k.a ANN) algorithms search can be // performed during online serving. IndexConfig index_config = 15 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1/feature_view_sync.proto b/google/cloud/aiplatform/v1/feature_view_sync.proto index c50817da9..cc5199d47 100644 --- a/google/cloud/aiplatform/v1/feature_view_sync.proto +++ b/google/cloud/aiplatform/v1/feature_view_sync.proto @@ -46,6 +46,10 @@ message FeatureViewSync { // Output only. BigQuery slot milliseconds consumed for the sync job. int64 total_slot = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Lower bound of the system time watermark for the sync job. This is only + // set for continuously syncing feature views. + google.protobuf.Timestamp system_watermark_time = 5; } // Identifier. Name of the FeatureViewSync. Format: @@ -67,4 +71,10 @@ message FeatureViewSync { // Output only. Summary of the sync job. SyncSummary sync_summary = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1/featurestore.proto b/google/cloud/aiplatform/v1/featurestore.proto index 9c7dd9819..cc6068f51 100644 --- a/google/cloud/aiplatform/v1/featurestore.proto +++ b/google/cloud/aiplatform/v1/featurestore.proto @@ -149,4 +149,10 @@ message Featurestore { // Optional. Customer-managed encryption key spec for data storage. If set, // both of the online and offline data storage will be secured by this key. EncryptionSpec encryption_spec = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1/featurestore_service.proto b/google/cloud/aiplatform/v1/featurestore_service.proto index d7d5758a2..ac8be931c 100644 --- a/google/cloud/aiplatform/v1/featurestore_service.proto +++ b/google/cloud/aiplatform/v1/featurestore_service.proto @@ -1257,7 +1257,8 @@ message UpdateFeatureRequest { // // * `description` // * `labels` - // * `disable_monitoring` (Not supported for FeatureRegistry Feature) + // * `disable_monitoring` (Not supported for FeatureRegistryService Feature) + // * `point_of_contact` (Not supported for FeaturestoreService FeatureStore) google.protobuf.FieldMask update_mask = 2; } diff --git a/google/cloud/aiplatform/v1/genai_tuning_service.proto b/google/cloud/aiplatform/v1/genai_tuning_service.proto index d0c369d3b..d52023621 100644 --- a/google/cloud/aiplatform/v1/genai_tuning_service.proto +++ b/google/cloud/aiplatform/v1/genai_tuning_service.proto @@ -20,7 +20,10 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/io.proto"; +import "google/cloud/aiplatform/v1/operation.proto"; import "google/cloud/aiplatform/v1/tuning_job.proto"; +import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; @@ -82,6 +85,22 @@ service GenAiTuningService { }; option (google.api.method_signature) = "name"; } + + // Rebase a TunedModel. + // Creates a LongRunningOperation that takes a legacy Tuned GenAI model + // Reference and creates a TuningJob based on newly available model. + rpc RebaseTunedModel(RebaseTunedModelRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/tuningJobs:rebaseTunedModel" + body: "*" + }; + option (google.api.method_signature) = "parent,tuned_model_ref"; + option (google.longrunning.operation_info) = { + response_type: "TuningJob" + metadata_type: "RebaseTunedModelOperationMetadata" + }; + } } // Request message for @@ -162,3 +181,39 @@ message CancelTuningJobRequest { } ]; } + +// Request message for +// [GenAiTuningService.RebaseTunedModel][google.cloud.aiplatform.v1.GenAiTuningService.RebaseTunedModel]. +message RebaseTunedModelRequest { + // Required. The resource name of the Location into which to rebase the Model. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. TunedModel reference to retrieve the legacy model information. + TunedModelRef tuned_model_ref = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The TuningJob to be updated. Users can use this TuningJob field + // to overwrite tuning configs. + TuningJob tuning_job = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Google Cloud Storage location to write the artifacts. + GcsDestination artifact_destination = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. By default, bison to gemini migration will always create new + // model/endpoint, but for gemini-1.0 to gemini-1.5 migration, we default + // deploy to the same endpoint. See details in this Section. + bool deploy_to_same_endpoint = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Runtime operation information for +// [GenAiTuningService.RebaseTunedModel][google.cloud.aiplatform.v1.GenAiTuningService.RebaseTunedModel]. +message RebaseTunedModelOperationMetadata { + // The common part of the operation generic information. + GenericOperationMetadata generic_metadata = 1; +} diff --git a/google/cloud/aiplatform/v1/hyperparameter_tuning_job.proto b/google/cloud/aiplatform/v1/hyperparameter_tuning_job.proto index df860b268..caed8050d 100644 --- a/google/cloud/aiplatform/v1/hyperparameter_tuning_job.proto +++ b/google/cloud/aiplatform/v1/hyperparameter_tuning_job.proto @@ -113,4 +113,10 @@ message HyperparameterTuningJob { // If this is set, then all resources created by the HyperparameterTuningJob // will be encrypted with the provided encryption key. EncryptionSpec encryption_spec = 17; + + // Output only. Reserved for future use. + bool satisfies_pzs = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1/index.proto b/google/cloud/aiplatform/v1/index.proto index fa435b67a..7b83e6f37 100644 --- a/google/cloud/aiplatform/v1/index.proto +++ b/google/cloud/aiplatform/v1/index.proto @@ -125,6 +125,12 @@ message Index { // Immutable. Customer-managed encryption key spec for an Index. If set, this // Index and all sub-resources of this Index will be secured by this key. EncryptionSpec encryption_spec = 17 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; } // A datapoint of Index. diff --git a/google/cloud/aiplatform/v1/index_endpoint.proto b/google/cloud/aiplatform/v1/index_endpoint.proto index a0780dfc8..179a882cb 100644 --- a/google/cloud/aiplatform/v1/index_endpoint.proto +++ b/google/cloud/aiplatform/v1/index_endpoint.proto @@ -128,6 +128,12 @@ message IndexEndpoint { // set, this IndexEndpoint and all sub-resources of this IndexEndpoint will be // secured by this key. EncryptionSpec encryption_spec = 15 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; } // A deployment of an Index. IndexEndpoints contain one or more DeployedIndexes. @@ -254,6 +260,12 @@ message DeployedIndex { // // Note: we only support up to 5 deployment groups(not including 'default'). string deployment_group = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set for PSC deployed index, PSC connection will be + // automatically created after deployment is done and the endpoint information + // is populated in private_endpoints.psc_automated_endpoints. + repeated PSCAutomationConfig psc_automation_configs = 19 + [(google.api.field_behavior) = OPTIONAL]; } // Used to set up the auth on the DeployedIndex's private endpoint. diff --git a/google/cloud/aiplatform/v1/llm_utility_service.proto b/google/cloud/aiplatform/v1/llm_utility_service.proto index e6e8d8e8d..a73781e82 100644 --- a/google/cloud/aiplatform/v1/llm_utility_service.proto +++ b/google/cloud/aiplatform/v1/llm_utility_service.proto @@ -47,6 +47,14 @@ service LlmUtilityService { post: "/v1/{endpoint=projects/*/locations/*/publishers/*/models/*}:countTokens" body: "*" } + additional_bindings { + post: "/v1/{endpoint=endpoints/*}:countTokens" + body: "*" + } + additional_bindings { + post: "/v1/{endpoint=publishers/*/models/*}:countTokens" + body: "*" + } }; option (google.api.method_signature) = "endpoint,instances"; } @@ -60,6 +68,14 @@ service LlmUtilityService { post: "/v1/{endpoint=projects/*/locations/*/publishers/*/models/*}:computeTokens" body: "*" } + additional_bindings { + post: "/v1/{endpoint=endpoints/*}:computeTokens" + body: "*" + } + additional_bindings { + post: "/v1/{endpoint=publishers/*/models/*}:computeTokens" + body: "*" + } }; option (google.api.method_signature) = "endpoint,instances"; } diff --git a/google/cloud/aiplatform/v1/machine_resources.proto b/google/cloud/aiplatform/v1/machine_resources.proto index 30bad8f79..52112a886 100644 --- a/google/cloud/aiplatform/v1/machine_resources.proto +++ b/google/cloud/aiplatform/v1/machine_resources.proto @@ -18,6 +18,7 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/cloud/aiplatform/v1/accelerator_type.proto"; +import "google/cloud/aiplatform/v1/reservation_affinity.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb"; @@ -56,6 +57,13 @@ message MachineSpec { // Immutable. The topology of the TPUs. Corresponds to the TPU topologies // available from GKE. (Example: tpu_topology: "2x2x1"). string tpu_topology = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Optional. Immutable. Configuration controlling how this resource pool + // consumes reservation. + ReservationAffinity reservation_affinity = 5 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = OPTIONAL + ]; } // A description of resources that are dedicated to a DeployedModel, and @@ -121,6 +129,10 @@ message DedicatedResources { // to `80`. repeated AutoscalingMetricSpec autoscaling_metric_specs = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Optional. If true, schedule the deployment workload on [spot + // VMs](https://cloud.google.com/kubernetes-engine/docs/concepts/spot-vms). + bool spot = 5 [(google.api.field_behavior) = OPTIONAL]; } // A description of resources that to large degree are decided by Vertex AI, diff --git a/google/cloud/aiplatform/v1/model_deployment_monitoring_job.proto b/google/cloud/aiplatform/v1/model_deployment_monitoring_job.proto index 8e65d15a4..f16140336 100644 --- a/google/cloud/aiplatform/v1/model_deployment_monitoring_job.proto +++ b/google/cloud/aiplatform/v1/model_deployment_monitoring_job.proto @@ -224,6 +224,12 @@ message ModelDeploymentMonitoringJob { // Output only. Only populated when the job's state is `JOB_STATE_FAILED` or // `JOB_STATE_CANCELLED`. google.rpc.Status error = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; } // ModelDeploymentMonitoringBigQueryTable specifies the BigQuery table name diff --git a/google/cloud/aiplatform/v1/model_garden_service.proto b/google/cloud/aiplatform/v1/model_garden_service.proto index 06959c2c2..bfbb6dc02 100644 --- a/google/cloud/aiplatform/v1/model_garden_service.proto +++ b/google/cloud/aiplatform/v1/model_garden_service.proto @@ -75,9 +75,16 @@ message GetPublisherModelRequest { ]; // Optional. The IETF BCP-47 language code representing the language in which - // the publisher model's text information should be written in (see go/bcp47). + // the publisher model's text information should be written in. string language_code = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. PublisherModel view specifying which fields to read. PublisherModelView view = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Boolean indicates whether the requested model is a Hugging Face + // model. + bool is_hugging_face_model = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Token used to access Hugging Face gated models. + string hugging_face_token = 6 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/google/cloud/aiplatform/v1/nas_job.proto b/google/cloud/aiplatform/v1/nas_job.proto index b2c038efd..4cc3c3279 100644 --- a/google/cloud/aiplatform/v1/nas_job.proto +++ b/google/cloud/aiplatform/v1/nas_job.proto @@ -97,6 +97,12 @@ message NasJob { // and restricted image training for tenant project. bool enable_restricted_image_training = 14 [deprecated = true, (google.api.field_behavior) = OPTIONAL]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Represents a NasTrial details along with its parameters. If there is a diff --git a/google/cloud/aiplatform/v1/notebook_execution_job.proto b/google/cloud/aiplatform/v1/notebook_execution_job.proto new file mode 100644 index 000000000..43c961e31 --- /dev/null +++ b/google/cloud/aiplatform/v1/notebook_execution_job.proto @@ -0,0 +1,164 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/encryption_spec.proto"; +import "google/cloud/aiplatform/v1/job_state.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "NotebookExecutionJobProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// NotebookExecutionJob represents an instance of a notebook execution. +message NotebookExecutionJob { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/NotebookExecutionJob" + pattern: "projects/{project}/locations/{location}/notebookExecutionJobs/{notebook_execution_job}" + plural: "notebookExecutionJobs" + singular: "notebookExecutionJob" + }; + + // The Dataform Repository containing the input notebook. + message DataformRepositorySource { + // The resource name of the Dataform Repository. Format: + // `projects/{project_id}/locations/{location}/repositories/{repository_id}` + string dataform_repository_resource_name = 1; + + // The commit SHA to read repository with. If unset, the file will be read + // at HEAD. + string commit_sha = 2; + } + + // The Cloud Storage uri for the input notebook. + message GcsNotebookSource { + // The Cloud Storage uri pointing to the ipynb file. Format: + // `gs://bucket/notebook_file.ipynb` + string uri = 1; + + // The version of the Cloud Storage object to read. If unset, the current + // version of the object is read. See + // https://cloud.google.com/storage/docs/metadata#generation-number. + string generation = 2; + } + + // The content of the input notebook in ipynb format. + message DirectNotebookSource { + // The base64-encoded contents of the input notebook file. + bytes content = 1; + } + + // The input notebook. + oneof notebook_source { + // The Dataform Repository pointing to a single file notebook repository. + DataformRepositorySource dataform_repository_source = 3; + + // The Cloud Storage url pointing to the ipynb file. Format: + // `gs://bucket/notebook_file.ipynb` + GcsNotebookSource gcs_notebook_source = 4; + + // The contents of an input notebook file. + DirectNotebookSource direct_notebook_source = 17; + } + + // The compute config to use for an execution job. + oneof environment_spec { + // The NotebookRuntimeTemplate to source compute configuration from. + string notebook_runtime_template_resource_name = 14 + [(google.api.resource_reference) = { + type: "aiplatform.googleapis.com/NotebookRuntimeTemplate" + }]; + } + + // The location to store the notebook execution result. + oneof execution_sink { + // The Cloud Storage location to upload the result to. Format: + // `gs://bucket-name` + string gcs_output_uri = 8; + } + + // The identity to run the execution as. + oneof execution_identity { + // The user email to run the execution as. Only supported by Colab runtimes. + string execution_user = 9; + + // The service account to run the execution as. + string service_account = 18; + } + + // Output only. The resource name of this NotebookExecutionJob. Format: + // `projects/{project_id}/locations/{location}/notebookExecutionJobs/{job_id}` + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The display name of the NotebookExecutionJob. The name can be up to 128 + // characters long and can consist of any UTF-8 characters. + string display_name = 2; + + // Max running time of the execution job in seconds (default 86400s / 24 hrs). + google.protobuf.Duration execution_timeout = 5; + + // Output only. The Schedule resource name if this job is triggered by one. + // Format: + // `projects/{project_id}/locations/{location}/schedules/{schedule_id}` + string schedule_resource_name = 6 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Schedule" + } + ]; + + // Output only. The state of the NotebookExecutionJob. + JobState job_state = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Populated when the NotebookExecutionJob is completed. When + // there is an error during notebook execution, the error details are + // populated. + google.rpc.Status status = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this NotebookExecutionJob was created. + google.protobuf.Timestamp create_time = 12 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this NotebookExecutionJob was most recently + // updated. + google.protobuf.Timestamp update_time = 13 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The labels with user-defined metadata to organize NotebookExecutionJobs. + // + // Label keys and values can be no longer than 64 characters + // (Unicode codepoints), can only contain lowercase letters, numeric + // characters, underscores and dashes. International characters are allowed. + // + // See https://goo.gl/xmQnxf for more information and examples of labels. + // System reserved label keys are prefixed with "aiplatform.googleapis.com/" + // and are immutable. + map labels = 19; + + // Customer-managed encryption key spec for the notebook execution job. + // This field is auto-populated if the + // [NotebookService.NotebookRuntimeTemplate][] has an encryption spec. + EncryptionSpec encryption_spec = 22; +} diff --git a/google/cloud/aiplatform/v1/notebook_service.proto b/google/cloud/aiplatform/v1/notebook_service.proto index ae5ba9f49..e99b41997 100644 --- a/google/cloud/aiplatform/v1/notebook_service.proto +++ b/google/cloud/aiplatform/v1/notebook_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/aiplatform/v1/notebook_execution_job.proto"; import "google/cloud/aiplatform/v1/notebook_runtime.proto"; import "google/cloud/aiplatform/v1/operation.proto"; import "google/longrunning/operations.proto"; @@ -170,6 +171,64 @@ service NotebookService { metadata_type: "StartNotebookRuntimeOperationMetadata" }; } + + // Creates a NotebookExecutionJob. + rpc CreateNotebookExecutionJob(CreateNotebookExecutionJobRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/notebookExecutionJobs" + body: "notebook_execution_job" + }; + option (google.api.method_signature) = + "parent,notebook_execution_job,notebook_execution_job_id"; + option (google.longrunning.operation_info) = { + response_type: "NotebookExecutionJob" + metadata_type: "CreateNotebookExecutionJobOperationMetadata" + }; + } + + // Gets a NotebookExecutionJob. + rpc GetNotebookExecutionJob(GetNotebookExecutionJobRequest) + returns (NotebookExecutionJob) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/notebookExecutionJobs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists NotebookExecutionJobs in a Location. + rpc ListNotebookExecutionJobs(ListNotebookExecutionJobsRequest) + returns (ListNotebookExecutionJobsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/notebookExecutionJobs" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a NotebookExecutionJob. + rpc DeleteNotebookExecutionJob(DeleteNotebookExecutionJobRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/notebookExecutionJobs/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } +} + +// Views for Get/List NotebookExecutionJob +enum NotebookExecutionJobView { + // When unspecified, the API defaults to the BASIC view. + NOTEBOOK_EXECUTION_JOB_VIEW_UNSPECIFIED = 0; + + // Includes all fields except for direct notebook inputs. + NOTEBOOK_EXECUTION_JOB_VIEW_BASIC = 1; + + // Includes all fields. + NOTEBOOK_EXECUTION_JOB_VIEW_FULL = 2; } // Request message for @@ -538,3 +597,119 @@ message StartNotebookRuntimeOperationMetadata { // Response message for // [NotebookService.StartNotebookRuntime][google.cloud.aiplatform.v1.NotebookService.StartNotebookRuntime]. message StartNotebookRuntimeResponse {} + +// Request message for [NotebookService.CreateNotebookExecutionJob] +message CreateNotebookExecutionJobRequest { + // Required. The resource name of the Location to create the + // NotebookExecutionJob. Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The NotebookExecutionJob to create. + NotebookExecutionJob notebook_execution_job = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. User specified ID for the NotebookExecutionJob. + string notebook_execution_job_id = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Metadata information for +// [NotebookService.CreateNotebookExecutionJob][google.cloud.aiplatform.v1.NotebookService.CreateNotebookExecutionJob]. +message CreateNotebookExecutionJobOperationMetadata { + // The operation generic information. + GenericOperationMetadata generic_metadata = 1; + + // A human-readable message that shows the intermediate progress details of + // NotebookRuntime. + string progress_message = 2; +} + +// Request message for [NotebookService.GetNotebookExecutionJob] +message GetNotebookExecutionJobRequest { + // Required. The name of the NotebookExecutionJob resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/NotebookExecutionJob" + } + ]; + + // Optional. The NotebookExecutionJob view. Defaults to BASIC. + NotebookExecutionJobView view = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for [NotebookService.ListNotebookExecutionJobs] +message ListNotebookExecutionJobsRequest { + // Required. The resource name of the Location from which to list the + // NotebookExecutionJobs. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. An expression for filtering the results of the request. For field + // names both snake_case and camelCase are supported. + // + // * `notebookExecutionJob` supports = and !=. `notebookExecutionJob` + // represents the NotebookExecutionJob ID. + // * `displayName` supports = and != and regex. + // * `schedule` supports = and != and regex. + // + // Some examples: + // * `notebookExecutionJob="123"` + // * `notebookExecutionJob="my-execution-job"` + // * `displayName="myDisplayName"` and `displayName=~"myDisplayNameRegex"` + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The standard list page size. + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The standard list page token. + // Typically obtained via + // [ListNotebookExecutionJobs.next_page_token][] of the previous + // [NotebookService.ListNotebookExecutionJobs][google.cloud.aiplatform.v1.NotebookService.ListNotebookExecutionJobs] + // call. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A comma-separated list of fields to order by, sorted in ascending + // order. Use "desc" after a field name for descending. Supported fields: + // + // * `display_name` + // * `create_time` + // * `update_time` + // + // Example: `display_name, create_time desc`. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The NotebookExecutionJob view. Defaults to BASIC. + NotebookExecutionJobView view = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for [NotebookService.CreateNotebookExecutionJob] +message ListNotebookExecutionJobsResponse { + // List of NotebookExecutionJobs in the requested page. + repeated NotebookExecutionJob notebook_execution_jobs = 1; + + // A token to retrieve next page of results. + // Pass to [ListNotebookExecutionJobs.page_token][] to obtain that + // page. + string next_page_token = 2; +} + +// Request message for [NotebookService.DeleteNotebookExecutionJob] +message DeleteNotebookExecutionJobRequest { + // Required. The name of the NotebookExecutionJob resource to be deleted. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/NotebookExecutionJob" + } + ]; +} diff --git a/google/cloud/aiplatform/v1/openapi.proto b/google/cloud/aiplatform/v1/openapi.proto index 243670446..216f76aa7 100644 --- a/google/cloud/aiplatform/v1/openapi.proto +++ b/google/cloud/aiplatform/v1/openapi.proto @@ -54,8 +54,8 @@ enum Type { // Schema is used to define the format of input/output data. Represents a select // subset of an [OpenAPI 3.0 schema -// object](https://spec.openapis.org/oas/v3.0.3#schema). More fields may be -// added in the future as needed. +// object](https://spec.openapis.org/oas/v3.0.3#schema-object). More fields may +// be added in the future as needed. message Schema { // Optional. The type of the data. Type type = 1 [(google.api.field_behavior) = OPTIONAL]; @@ -98,6 +98,12 @@ message Schema { // Properties of Type.OBJECT. map properties = 3 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The order of the properties. + // Not a standard field in open api spec. Only used to support the order of + // the properties. + repeated string property_ordering = 25 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. Required properties of Type.OBJECT. repeated string required = 5 [(google.api.field_behavior) = OPTIONAL]; @@ -128,4 +134,8 @@ message Schema { // Optional. Example of the object. Will only populated when the object is the // root. google.protobuf.Value example = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The value should be validated against any (one or more) of the + // subschemas in the list. + repeated Schema any_of = 11 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/google/cloud/aiplatform/v1/persistent_resource.proto b/google/cloud/aiplatform/v1/persistent_resource.proto index 83707aa22..2519920cf 100644 --- a/google/cloud/aiplatform/v1/persistent_resource.proto +++ b/google/cloud/aiplatform/v1/persistent_resource.proto @@ -253,6 +253,9 @@ message RaySpec { // Optional. Ray metrics configurations. RayMetricSpec ray_metric_spec = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. OSS Ray logging configurations. + RayLogsSpec ray_logs_spec = 10 [(google.api.field_behavior) = OPTIONAL]; } // Persistent Cluster runtime information as output @@ -295,3 +298,9 @@ message RayMetricSpec { // Optional. Flag to disable the Ray metrics collection. bool disabled = 1 [(google.api.field_behavior) = OPTIONAL]; } + +// Configuration for the Ray OSS Logs. +message RayLogsSpec { + // Optional. Flag to disable the export of Ray OSS logs to Cloud Logging. + bool disabled = 1 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/aiplatform/v1/prediction_service.proto b/google/cloud/aiplatform/v1/prediction_service.proto index 9e609e918..4c961fd10 100644 --- a/google/cloud/aiplatform/v1/prediction_service.proto +++ b/google/cloud/aiplatform/v1/prediction_service.proto @@ -174,6 +174,14 @@ service PredictionService { post: "/v1/{model=projects/*/locations/*/publishers/*/models/*}:generateContent" body: "*" } + additional_bindings { + post: "/v1/{model=endpoints/*}:generateContent" + body: "*" + } + additional_bindings { + post: "/v1/{model=publishers/*/models/*}:generateContent" + body: "*" + } }; option (google.api.method_signature) = "model,contents"; } @@ -188,6 +196,14 @@ service PredictionService { post: "/v1/{model=projects/*/locations/*/publishers/*/models/*}:streamGenerateContent" body: "*" } + additional_bindings { + post: "/v1/{model=endpoints/*}:streamGenerateContent" + body: "*" + } + additional_bindings { + post: "/v1/{model=publishers/*/models/*}:streamGenerateContent" + body: "*" + } }; option (google.api.method_signature) = "model,contents"; } @@ -611,18 +627,37 @@ message CountTokensRequest { } ]; - // Required. The name of the publisher model requested to serve the + // Optional. The name of the publisher model requested to serve the // prediction. Format: // `projects/{project}/locations/{location}/publishers/*/models/*` - string model = 3 [(google.api.field_behavior) = REQUIRED]; + string model = 3 [(google.api.field_behavior) = OPTIONAL]; - // Required. The instances that are the input to token counting call. + // Optional. The instances that are the input to token counting call. // Schema is identical to the prediction schema of the underlying model. repeated google.protobuf.Value instances = 2 - [(google.api.field_behavior) = REQUIRED]; + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Input content. + repeated Content contents = 4 [(google.api.field_behavior) = OPTIONAL]; - // Required. Input content. - repeated Content contents = 4 [(google.api.field_behavior) = REQUIRED]; + // Optional. The user provided system instructions for the model. + // Note: only text should be used in parts and content in each part will be in + // a separate paragraph. + optional Content system_instruction = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A list of `Tools` the model may use to generate the next + // response. + // + // A `Tool` is a piece of code that enables the system to interact with + // external systems to perform an action, or set of actions, outside of + // knowledge and scope of the model. + repeated Tool tools = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Generation config that the model will use to generate the + // response. + optional GenerationConfig generation_config = 7 + [(google.api.field_behavior) = OPTIONAL]; } // Response message for [PredictionService.CountTokens][]. @@ -637,9 +672,14 @@ message CountTokensResponse { // Request message for [PredictionService.GenerateContent]. message GenerateContentRequest { - // Required. The name of the publisher model requested to serve the - // prediction. Format: + // Required. The fully qualified name of the publisher model or tuned model + // endpoint to use. + // + // Publisher model format: // `projects/{project}/locations/{location}/publishers/*/models/*` + // + // Tuned model endpoint format: + // `projects/{project}/locations/{location}/endpoints/{endpoint}` string model = 5 [(google.api.field_behavior) = REQUIRED]; // Required. The content of the current conversation with the model. @@ -667,6 +707,15 @@ message GenerateContentRequest { // request. ToolConfig tool_config = 7 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The labels with user-defined metadata for the request. It is used + // for billing and reporting only. + // + // Label keys and values can be no longer than 63 characters + // (Unicode codepoints) and can only contain lowercase letters, numeric + // characters, underscores, and dashes. International characters are allowed. + // Label values are optional. Label keys must start with a letter. + map labels = 10 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Per request settings for blocking unsafe content. // Enforced on GenerateContentResponse.candidates. repeated SafetySetting safety_settings = 3 @@ -713,18 +762,24 @@ message GenerateContentResponse { // Usage metadata about response(s). message UsageMetadata { - // Number of tokens in the request. + // Number of tokens in the request. When `cached_content` is set, this is + // still the total effective prompt size meaning this includes the number of + // tokens in the cached content. int32 prompt_token_count = 1; // Number of tokens in the response(s). int32 candidates_token_count = 2; + // Total token count for prompt and response candidates. int32 total_token_count = 3; } // Output only. Generated candidates. repeated Candidate candidates = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The model version used to generate the response. + string model_version = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Content filter results for a prompt sent in the request. // Note: Sent only in the first stream chunk. // Only happens when no candidates were generated due to content violations. diff --git a/google/cloud/aiplatform/v1/publisher_model.proto b/google/cloud/aiplatform/v1/publisher_model.proto index bf99e150f..d34884e24 100644 --- a/google/cloud/aiplatform/v1/publisher_model.proto +++ b/google/cloud/aiplatform/v1/publisher_model.proto @@ -121,6 +121,9 @@ message PublisherModel { // Optional. Labels for the deployment. For managing deployment config // like verifying, source of deployment config, etc. map labels = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Sample request for deployed endpoint. + string sample_request = 2 [(google.api.field_behavior) = OPTIONAL]; } // The prediction (for example, the machine) resources that the diff --git a/google/cloud/aiplatform/v1/reservation_affinity.proto b/google/cloud/aiplatform/v1/reservation_affinity.proto new file mode 100644 index 000000000..ba9d188b6 --- /dev/null +++ b/google/cloud/aiplatform/v1/reservation_affinity.proto @@ -0,0 +1,71 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "ReservationAffinityProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; +option (google.api.resource_definition) = { + type: "compute.googleapis.com/Reservation" + pattern: "projects/{project_id_or_number}/zones/{zone}/reservations/{reservation_name}" +}; + +// A ReservationAffinity can be used to configure a Vertex AI resource (e.g., a +// DeployedModel) to draw its Compute Engine resources from a Shared +// Reservation, or exclusively from on-demand capacity. +message ReservationAffinity { + // Identifies a type of reservation affinity. + enum Type { + // Default value. This should not be used. + TYPE_UNSPECIFIED = 0; + + // Do not consume from any reserved capacity, only use on-demand. + NO_RESERVATION = 1; + + // Consume any reservation available, falling back to on-demand. + ANY_RESERVATION = 2; + + // Consume from a specific reservation. When chosen, the reservation + // must be identified via the `key` and `values` fields. + SPECIFIC_RESERVATION = 3; + } + + // Required. Specifies the reservation affinity type. + Type reservation_affinity_type = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Corresponds to the label key of a reservation resource. To target + // a SPECIFIC_RESERVATION by name, use + // `compute.googleapis.com/reservation-name` as the key and specify the name + // of your reservation as its value. + string key = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Corresponds to the label values of a reservation resource. This + // must be the full resource name of the reservation. + repeated string values = 3 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "compute.googleapis.com/Reservation" + } + ]; +} diff --git a/google/cloud/aiplatform/v1/schedule.proto b/google/cloud/aiplatform/v1/schedule.proto index aa513cf95..d7e7bbb95 100644 --- a/google/cloud/aiplatform/v1/schedule.proto +++ b/google/cloud/aiplatform/v1/schedule.proto @@ -18,6 +18,7 @@ package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/notebook_service.proto"; import "google/cloud/aiplatform/v1/pipeline_service.proto"; import "google/protobuf/timestamp.proto"; @@ -86,6 +87,11 @@ message Schedule { // CreatePipelineJobRequest.parent field is required (format: // projects/{project}/locations/{location}). CreatePipelineJobRequest create_pipeline_job_request = 14; + + // Request for + // [NotebookService.CreateNotebookExecutionJob][google.cloud.aiplatform.v1.NotebookService.CreateNotebookExecutionJob]. + CreateNotebookExecutionJobRequest create_notebook_execution_job_request = + 20; } // Immutable. The resource name of the Schedule. diff --git a/google/cloud/aiplatform/v1/service_networking.proto b/google/cloud/aiplatform/v1/service_networking.proto index e941e04b3..039317084 100644 --- a/google/cloud/aiplatform/v1/service_networking.proto +++ b/google/cloud/aiplatform/v1/service_networking.proto @@ -26,6 +26,25 @@ option java_outer_classname = "ServiceNetworkingProto"; option java_package = "com.google.cloud.aiplatform.v1"; option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; option ruby_package = "Google::Cloud::AIPlatform::V1"; +option (google.api.resource_definition) = { + type: "compute.googleapis.com/NetworkAttachment" + pattern: "projects/{project}/regions/{region}/networkAttachments/{networkattachment}" +}; + +// PSC config that is used to automatically create forwarding rule via +// ServiceConnectionMap. +message PSCAutomationConfig { + // Required. Project id used to create forwarding rule. + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The full name of the Google Compute Engine + // [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks). + // [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): + // `projects/{project}/global/networks/{network}`. + // Where {project} is a project number, as in '12345', and {network} is + // network name. + string network = 2 [(google.api.field_behavior) = REQUIRED]; +} // Represents configuration for private service connect. message PrivateServiceConnectConfig { @@ -36,6 +55,11 @@ message PrivateServiceConnectConfig { // A list of Projects from which the forwarding rule will target the service // attachment. repeated string project_allowlist = 2; + + // Output only. The name of the generated service attachment resource. + // This is only populated if the endpoint is deployed with + // PrivateServiceConnect. + string service_attachment = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; } // PscAutomatedEndpoints defines the output of the forwarding rule diff --git a/google/cloud/aiplatform/v1/study.proto b/google/cloud/aiplatform/v1/study.proto index 231587ddb..db508c35f 100644 --- a/google/cloud/aiplatform/v1/study.proto +++ b/google/cloud/aiplatform/v1/study.proto @@ -196,7 +196,6 @@ message Trial { [(google.api.field_behavior) = OUTPUT_ONLY]; } -// Next ID: 3 message TrialContext { // A human-readable field which can store a description of this context. // This will become part of the resulting Trial's description field. diff --git a/google/cloud/aiplatform/v1/tool.proto b/google/cloud/aiplatform/v1/tool.proto index 48c10074b..3f25c21a8 100644 --- a/google/cloud/aiplatform/v1/tool.proto +++ b/google/cloud/aiplatform/v1/tool.proto @@ -127,23 +127,44 @@ message Retrieval { VertexAISearch vertex_ai_search = 2; } - // Optional. Disable using the result from this tool in detecting grounding - // attribution. This does not affect how the result is given to the model for - // generation. - bool disable_attribution = 3 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Deprecated. This option is no longer supported. + bool disable_attribution = 3 + [deprecated = true, (google.api.field_behavior) = OPTIONAL]; } // Retrieve from Vertex AI Search datastore for grounding. -// See https://cloud.google.com/vertex-ai-search-and-conversation +// See https://cloud.google.com/products/agent-builder message VertexAISearch { - // Required. Fully-qualified Vertex AI Search's datastore resource ID. + // Required. Fully-qualified Vertex AI Search data store resource ID. // Format: // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}` string datastore = 1 [(google.api.field_behavior) = REQUIRED]; } // Tool to retrieve public web data for grounding, powered by Google. -message GoogleSearchRetrieval {} +message GoogleSearchRetrieval { + // Specifies the dynamic retrieval configuration for the given source. + DynamicRetrievalConfig dynamic_retrieval_config = 2; +} + +// Describes the options to customize dynamic retrieval. +message DynamicRetrievalConfig { + // The mode of the predictor to be used in dynamic retrieval. + enum Mode { + // Always trigger retrieval. + MODE_UNSPECIFIED = 0; + + // Run retrieval only when system decides it is necessary. + MODE_DYNAMIC = 1; + } + + // The mode of the predictor to be used in dynamic retrieval. + Mode mode = 1; + + // Optional. The threshold to be used in dynamic retrieval. + // If not set, a system default value is used. + optional float dynamic_threshold = 2 [(google.api.field_behavior) = OPTIONAL]; +} // Tool config. This config is shared for all tools provided in the request. message ToolConfig { @@ -160,7 +181,7 @@ message FunctionCallingConfig { MODE_UNSPECIFIED = 0; // Default model behavior, model decides to predict either a function call - // or a natural language repspose. + // or a natural language response. AUTO = 1; // Model is constrained to always predicting a function call only. diff --git a/google/cloud/aiplatform/v1/tuning_job.proto b/google/cloud/aiplatform/v1/tuning_job.proto index 803df1820..db1899232 100644 --- a/google/cloud/aiplatform/v1/tuning_job.proto +++ b/google/cloud/aiplatform/v1/tuning_job.proto @@ -173,6 +173,9 @@ message SupervisedTuningDatasetDistribution { // Output only. Sum of a given population of values. int64 sum = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Sum of a given population of values that are billable. + int64 billable_sum = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The minimum of the population values. double min = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -208,6 +211,10 @@ message SupervisedTuningDataStats { // Output only. Number of billable characters in the tuning dataset. int64 total_billable_character_count = 3 + [deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of billable tokens in the tuning dataset. + int64 total_billable_token_count = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Number of tuning steps for this Tuning Job. @@ -228,6 +235,14 @@ message SupervisedTuningDataStats { // Output only. Sample user messages in the training dataset uri. repeated Content user_dataset_examples = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The number of examples in the dataset that have been truncated by any + // amount. + int64 total_truncated_example_count = 10; + + // A partial sample of the indices (starting from 1) of the truncated + // examples. + repeated int64 truncated_example_indices = 11; } // The tuning data statistic values for @@ -270,7 +285,7 @@ message SupervisedHyperParameters { AdapterSize adapter_size = 3 [(google.api.field_behavior) = OPTIONAL]; } -// Tuning Spec for Supervised Tuning. +// Tuning Spec for Supervised Tuning for first party models. message SupervisedTuningSpec { // Required. Cloud Storage path to file containing training dataset for // tuning. The dataset must be formatted as a JSONL file. @@ -284,3 +299,26 @@ message SupervisedTuningSpec { SupervisedHyperParameters hyper_parameters = 3 [(google.api.field_behavior) = OPTIONAL]; } + +// TunedModel Reference for legacy model migration. +message TunedModelRef { + // The Tuned Model Reference for the model. + oneof tuned_model_ref { + // Support migration from model registry. + string tuned_model = 1 [(google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Model" + }]; + + // Support migration from tuning job list page, from gemini-1.0-pro-002 + // to 1.5 and above. + string tuning_job = 2 [(google.api.resource_reference) = { + type: "aiplatform.googleapis.com/TuningJob" + }]; + + // Support migration from tuning job list page, from bison model to gemini + // model. + string pipeline_job = 3 [(google.api.resource_reference) = { + type: "aiplatform.googleapis.com/PipelineJob" + }]; + } +} diff --git a/google/cloud/aiplatform/v1beta1/BUILD.bazel b/google/cloud/aiplatform/v1beta1/BUILD.bazel index 9349147fe..dbdff1aea 100644 --- a/google/cloud/aiplatform/v1beta1/BUILD.bazel +++ b/google/cloud/aiplatform/v1beta1/BUILD.bazel @@ -24,6 +24,7 @@ proto_library( "accelerator_type.proto", "annotation.proto", "annotation_spec.proto", + "api_auth.proto", "artifact.proto", "batch_prediction_job.proto", "cached_content.proto", @@ -119,6 +120,7 @@ proto_library( "pipeline_state.proto", "prediction_service.proto", "publisher_model.proto", + "reservation_affinity.proto", "reasoning_engine.proto", "reasoning_engine_execution_service.proto", "reasoning_engine_service.proto", @@ -139,6 +141,7 @@ proto_library( "training_pipeline.proto", "tuning_job.proto", "types.proto", + "ui_pipeline_spec.proto", "unmanaged_container_model.proto", "user_action_reference.proto", "value.proto", diff --git a/google/cloud/aiplatform/v1beta1/accelerator_type.proto b/google/cloud/aiplatform/v1beta1/accelerator_type.proto index c617d9491..0d1f673ef 100644 --- a/google/cloud/aiplatform/v1beta1/accelerator_type.proto +++ b/google/cloud/aiplatform/v1beta1/accelerator_type.proto @@ -29,8 +29,9 @@ enum AcceleratorType { // Unspecified accelerator type, which means no accelerator. ACCELERATOR_TYPE_UNSPECIFIED = 0; - // Nvidia Tesla K80 GPU. - NVIDIA_TESLA_K80 = 1; + // Deprecated: Nvidia Tesla K80 GPU has reached end of support, + // see https://cloud.google.com/compute/docs/eol/k80-eol. + NVIDIA_TESLA_K80 = 1 [deprecated = true]; // Nvidia Tesla P100 GPU. NVIDIA_TESLA_P100 = 2; diff --git a/google/cloud/aiplatform/v1beta1/aiplatform_v1beta1.yaml b/google/cloud/aiplatform/v1beta1/aiplatform_v1beta1.yaml index a51d59b03..ee8cb1496 100644 --- a/google/cloud/aiplatform/v1beta1/aiplatform_v1beta1.yaml +++ b/google/cloud/aiplatform/v1beta1/aiplatform_v1beta1.yaml @@ -104,6 +104,8 @@ types: - name: google.cloud.aiplatform.v1beta1.MutateDeployedIndexResponse - name: google.cloud.aiplatform.v1beta1.MutateDeployedModelOperationMetadata - name: google.cloud.aiplatform.v1beta1.MutateDeployedModelResponse +- name: google.cloud.aiplatform.v1beta1.PredictLongRunningMetadata +- name: google.cloud.aiplatform.v1beta1.PredictLongRunningResponse - name: google.cloud.aiplatform.v1beta1.PurgeArtifactsMetadata - name: google.cloud.aiplatform.v1beta1.PurgeArtifactsResponse - name: google.cloud.aiplatform.v1beta1.PurgeContextsMetadata @@ -954,8 +956,25 @@ publishing: organization: CLOUD library_settings: - version: google.cloud.aiplatform.v1beta1 + java_settings: + common: {} + cpp_settings: + common: {} + php_settings: + common: {} + python_settings: + common: {} + experimental_features: + rest_async_io_enabled: true + node_settings: + common: {} dotnet_settings: + common: {} renamed_resources: datalabeling.googleapis.com/Dataset: DataLabelingDataset automl.googleapis.com/Dataset: AutoMLDataset automl.googleapis.com/Model: AutoMLModel + ruby_settings: + common: {} + go_settings: + common: {} diff --git a/google/cloud/aiplatform/v1beta1/api_auth.proto b/google/cloud/aiplatform/v1beta1/api_auth.proto new file mode 100644 index 000000000..1c727bd18 --- /dev/null +++ b/google/cloud/aiplatform/v1beta1/api_auth.proto @@ -0,0 +1,49 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "ApiAuthProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// The generic reusable api auth config. +message ApiAuth { + // The API secret. + message ApiKeyConfig { + // Required. The SecretManager secret version resource name storing API key. + // e.g. projects/{project}/secrets/{secret}/versions/{version} + string api_key_secret_version = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "secretmanager.googleapis.com/SecretVersion" + } + ]; + } + + // The auth config. + oneof auth_config { + // The API secret. + ApiKeyConfig api_key_config = 1; + } +} diff --git a/google/cloud/aiplatform/v1beta1/batch_prediction_job.proto b/google/cloud/aiplatform/v1beta1/batch_prediction_job.proto index 0e7d1edf8..514e8ff24 100644 --- a/google/cloud/aiplatform/v1beta1/batch_prediction_job.proto +++ b/google/cloud/aiplatform/v1beta1/batch_prediction_job.proto @@ -474,4 +474,10 @@ message BatchPredictionJob { // // User can disable container logging by setting this flag to true. bool disable_container_logging = 34; + + // Output only. Reserved for future use. + bool satisfies_pzs = 36 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 37 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1beta1/cached_content.proto b/google/cloud/aiplatform/v1beta1/cached_content.proto index b57cdea1a..36c4fae0f 100644 --- a/google/cloud/aiplatform/v1beta1/cached_content.proto +++ b/google/cloud/aiplatform/v1beta1/cached_content.proto @@ -41,6 +41,24 @@ message CachedContent { singular: "cachedContent" }; + // Metadata on the usage of the cached content. + message UsageMetadata { + // Total number of tokens that the cached content consumes. + int32 total_token_count = 1; + + // Number of text characters. + int32 text_count = 2; + + // Number of images. + int32 image_count = 3; + + // Duration of video in seconds. + int32 video_duration_seconds = 4; + + // Duration of audio in seconds. + int32 audio_duration_seconds = 5; + } + // Expiration time of the cached content. oneof expiration { // Timestamp of when this resource is considered expired. @@ -62,6 +80,13 @@ message CachedContent { (google.api.field_behavior) = IMMUTABLE ]; + // Optional. Immutable. The user-generated meaningful display name of the + // cached content. + string display_name = 11 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = IMMUTABLE + ]; + // Immutable. The name of the publisher model to use for cached content. // Format: // projects/{project}/locations/{location}/publishers/{publisher}/models/{model} @@ -105,4 +130,7 @@ message CachedContent { // Output only. When the cache entry was last updated in UTC time. google.protobuf.Timestamp update_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Metadata on the usage of the cached content. + UsageMetadata usage_metadata = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1beta1/content.proto b/google/cloud/aiplatform/v1beta1/content.proto index f139feb2b..757ca4cb5 100644 --- a/google/cloud/aiplatform/v1beta1/content.proto +++ b/google/cloud/aiplatform/v1beta1/content.proto @@ -46,6 +46,9 @@ enum HarmCategory { // The harm category is sexually explicit content. HARM_CATEGORY_SEXUALLY_EXPLICIT = 4; + + // The harm category is civic integrity. + HARM_CATEGORY_CIVIC_INTEGRITY = 5; } // The base structured datatype containing multi-part content of a message. @@ -137,6 +140,48 @@ message VideoMetadata { // Generation config. message GenerationConfig { + // The configuration for routing the request to a specific model. + message RoutingConfig { + // When automated routing is specified, the routing will be determined by + // the pretrained routing model and customer provided model routing + // preference. + message AutoRoutingMode { + // The model routing preference. + enum ModelRoutingPreference { + // Unspecified model routing preference. + UNKNOWN = 0; + + // Prefer higher quality over low cost. + PRIORITIZE_QUALITY = 1; + + // Balanced model routing preference. + BALANCED = 2; + + // Prefer lower cost over higher quality. + PRIORITIZE_COST = 3; + } + + // The model routing preference. + optional ModelRoutingPreference model_routing_preference = 1; + } + + // When manual routing is set, the specified model will be used directly. + message ManualRoutingMode { + // The model name to use. Only the public LLM models are accepted. e.g. + // 'gemini-1.5-pro-001'. + optional string model_name = 1; + } + + // Routing mode. + oneof routing_config { + // Automated routing. + AutoRoutingMode auto_mode = 1; + + // Manual routing. + ManualRoutingMode manual_mode = 2; + } + } + // Optional. Controls the randomness of predictions. optional float temperature = 1 [(google.api.field_behavior) = OPTIONAL]; @@ -155,12 +200,21 @@ message GenerationConfig { // Optional. Stop sequences. repeated string stop_sequences = 6 [(google.api.field_behavior) = OPTIONAL]; + // Optional. If true, export the logprobs results in response. + optional bool response_logprobs = 18 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Logit probabilities. + optional int32 logprobs = 7 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Positive penalties. optional float presence_penalty = 8 [(google.api.field_behavior) = OPTIONAL]; // Optional. Frequency penalties. optional float frequency_penalty = 9 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Seed. + optional int32 seed = 12 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Output response mimetype of the generated candidate text. // Supported mimetype: // - `text/plain`: (default) Text output. @@ -178,6 +232,14 @@ message GenerationConfig { // Compatible mimetypes: // `application/json`: Schema for JSON response. optional Schema response_schema = 16 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Routing configuration. + optional RoutingConfig routing_config = 17 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If enabled, audio timestamp will be included in the request to + // the model. + optional bool audio_timestamp = 20 [(google.api.field_behavior) = OPTIONAL]; } // Safety settings. @@ -198,6 +260,9 @@ message SafetySetting { // Block none. BLOCK_NONE = 4; + + // Turn off the safety filter. + OFF = 5; } // Probability vs severity. @@ -317,34 +382,34 @@ message Candidate { // The finish reason is unspecified. FINISH_REASON_UNSPECIFIED = 0; - // Natural stop point of the model or provided stop sequence. + // Token generation reached a natural stopping point or a configured stop + // sequence. STOP = 1; - // The maximum number of tokens as specified in the request was reached. + // Token generation reached the configured maximum output tokens. MAX_TOKENS = 2; - // The token generation was stopped as the response was flagged for safety - // reasons. NOTE: When streaming the Candidate.content will be empty if - // content filters blocked the output. + // Token generation stopped because the content potentially contains safety + // violations. NOTE: When streaming, + // [content][google.cloud.aiplatform.v1beta1.Candidate.content] is empty if + // content filters blocks the output. SAFETY = 3; - // The token generation was stopped as the response was flagged for - // unauthorized citations. + // Token generation stopped because the content potentially contains + // copyright violations. RECITATION = 4; - // All other reasons that stopped the token generation + // All other reasons that stopped the token generation. OTHER = 5; - // The token generation was stopped as the response was flagged for the - // terms which are included from the terminology blocklist. + // Token generation stopped because the content contains forbidden terms. BLOCKLIST = 6; - // The token generation was stopped as the response was flagged for - // the prohibited contents. + // Token generation stopped for potentially containing prohibited content. PROHIBITED_CONTENT = 7; - // The token generation was stopped as the response was flagged for - // Sensitive Personally Identifiable Information (SPII) contents. + // Token generation stopped because the content potentially contains + // Sensitive Personally Identifiable Information (SPII). SPII = 8; // The function call generated by the model is invalid. @@ -357,6 +422,13 @@ message Candidate { // Output only. Content parts of the candidate. Content content = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Average log probability score of the candidate. + double avg_logprobs = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Log-likelihood scores for the response tokens and top tokens + LogprobsResult logprobs_result = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The reason why the model stopped generating tokens. // If empty, the model has not stopped generating the tokens. FinishReason finish_reason = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -381,6 +453,34 @@ message Candidate { [(google.api.field_behavior) = OUTPUT_ONLY]; } +// Logprobs Result +message LogprobsResult { + // Candidate for the logprobs token and score. + message Candidate { + // The candidate’s token string value. + optional string token = 1; + + // The candidate’s token id value. + optional int32 token_id = 3; + + // The candidate's log probability. + optional float log_probability = 2; + } + + // Candidates with top log probabilities at each decoding step. + message TopCandidates { + // Sorted by log probability in descending order. + repeated Candidate candidates = 1; + } + + // Length = total number of decoding steps. + repeated TopCandidates top_candidates = 1; + + // Length = total number of decoding steps. + // The chosen candidates may or may not be in top_candidates. + repeated Candidate chosen_candidates = 2; +} + // Segment of the content. message Segment { // Output only. The index of a Part object within its parent Content object. @@ -416,6 +516,9 @@ message GroundingChunk { // Title of the attribution. optional string title = 2; + + // Text of the attribution. + optional string text = 3; } // Chunk type. @@ -445,46 +548,6 @@ message GroundingSupport { repeated float confidence_scores = 3; } -// Grounding attribution. -message GroundingAttribution { - // Attribution from the web. - message Web { - // Output only. URI reference of the attribution. - string uri = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Title of the attribution. - string title = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Attribution from context retrieved by the retrieval tools. - message RetrievedContext { - // Output only. URI reference of the attribution. - string uri = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Title of the attribution. - string title = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - oneof reference { - // Optional. Attribution from the web. - Web web = 3 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Attribution from context retrieved by the retrieval tools. - RetrievedContext retrieved_context = 4 - [(google.api.field_behavior) = OPTIONAL]; - } - - // Output only. Segment of the content this attribution belongs to. - Segment segment = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Optional. Output only. Confidence score of the attribution. Ranges from 0 - // to 1. 1 is the most confident. - optional float confidence_score = 2 [ - (google.api.field_behavior) = OPTIONAL, - (google.api.field_behavior) = OUTPUT_ONLY - ]; -} - // Metadata returned to client when grounding is enabled. message GroundingMetadata { // Optional. Web search queries for the following-up web search. @@ -499,16 +562,18 @@ message GroundingMetadata { repeated string retrieval_queries = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. List of grounding attributions. - repeated GroundingAttribution grounding_attributions = 2 - [(google.api.field_behavior) = OPTIONAL]; - // List of supporting references retrieved from specified grounding source. repeated GroundingChunk grounding_chunks = 5; // Optional. List of grounding support. repeated GroundingSupport grounding_supports = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Output only. Retrieval metadata. + optional RetrievalMetadata retrieval_metadata = 7 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = OUTPUT_ONLY + ]; } // Google search entry point. @@ -521,3 +586,14 @@ message SearchEntryPoint { // url> tuple. bytes sdk_blob = 2 [(google.api.field_behavior) = OPTIONAL]; } + +// Metadata related to retrieval in the grounding flow. +message RetrievalMetadata { + // Optional. Score indicating how likely information from Google Search could + // help answer the prompt. The score is in the range `[0, 1]`, where 0 is the + // least likely and 1 is the most likely. This score is only populated when + // Google Search grounding and dynamic retrieval is enabled. It will be + // compared to the threshold to determine whether to trigger Google Search. + float google_search_dynamic_retrieval_score = 2 + [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/aiplatform/v1beta1/custom_job.proto b/google/cloud/aiplatform/v1beta1/custom_job.proto index 42474266b..c5d069b4d 100644 --- a/google/cloud/aiplatform/v1beta1/custom_job.proto +++ b/google/cloud/aiplatform/v1beta1/custom_job.proto @@ -23,6 +23,7 @@ import "google/cloud/aiplatform/v1beta1/env_var.proto"; 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/service_networking.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; @@ -109,6 +110,12 @@ message CustomJob { // The values are the URIs for each node's interactive shell. map web_access_uris = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Represents the spec of a CustomJob. @@ -172,6 +179,10 @@ message CustomJobSpec { repeated string reserved_ip_ranges = 13 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Configuration for PSC-I for CustomJob. + PscInterfaceConfig psc_interface_config = 21 + [(google.api.field_behavior) = OPTIONAL]; + // The Cloud Storage location to store the output of this CustomJob or // HyperparameterTuningJob. For HyperparameterTuningJob, // the baseOutputDirectory of @@ -351,6 +362,31 @@ message PythonPackageSpec { // All parameters related to queuing and scheduling of custom jobs. message Scheduling { + // Optional. This determines which type of scheduling strategy to use. Right + // now users have two options such as STANDARD which will use regular on + // demand resources to schedule the job, the other is SPOT which would + // leverage spot resources alongwith regular resources to schedule + // the job. + enum Strategy { + // Strategy will default to STANDARD. + STRATEGY_UNSPECIFIED = 0; + + // Deprecated. Regular on-demand provisioning strategy. + ON_DEMAND = 1 [deprecated = true]; + + // Deprecated. Low cost by making potential use of spot resources. + LOW_COST = 2 [deprecated = true]; + + // Standard provisioning strategy uses regular on-demand resources. + STANDARD = 3; + + // Spot provisioning strategy uses spot resources. + SPOT = 4; + + // Flex Start strategy uses DWS to queue for resources. + FLEX_START = 6; + } + // The maximum job running time. The default is 7 days. google.protobuf.Duration timeout = 1; @@ -359,8 +395,18 @@ message Scheduling { // resilient to workers leaving and joining a job. bool restart_job_on_worker_restart = 3; + // Optional. This determines which type of scheduling strategy to use. + Strategy strategy = 4 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Indicates if the job should retry for internal errors after the // job starts running. If true, overrides // `Scheduling.restart_job_on_worker_restart` to false. bool disable_retries = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This is the maximum duration that a job will wait for the + // requested resources to be provisioned if the scheduling strategy is set to + // [Strategy.DWS_FLEX_START]. + // If set to 0, the job will wait indefinitely. The default is 24 hours. + google.protobuf.Duration max_wait_duration = 6 + [(google.api.field_behavior) = OPTIONAL]; } diff --git a/google/cloud/aiplatform/v1beta1/data_item.proto b/google/cloud/aiplatform/v1beta1/data_item.proto index 50dbad174..f59f0a4ff 100644 --- a/google/cloud/aiplatform/v1beta1/data_item.proto +++ b/google/cloud/aiplatform/v1beta1/data_item.proto @@ -71,4 +71,10 @@ message DataItem { // Optional. Used to perform consistent read-modify-write updates. If not set, // a blind "overwrite" update happens. string etag = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1beta1/dataset.proto b/google/cloud/aiplatform/v1beta1/dataset.proto index 640759a4b..ac0d59911 100644 --- a/google/cloud/aiplatform/v1beta1/dataset.proto +++ b/google/cloud/aiplatform/v1beta1/dataset.proto @@ -39,8 +39,11 @@ message Dataset { pattern: "projects/{project}/locations/{location}/datasets/{dataset}" }; - // Output only. The resource name of the Dataset. - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Identifier. The resource name of the Dataset. + string name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = IDENTIFIER + ]; // Required. The user-defined name of the Dataset. // The name can be up to 128 characters long and can consist of any UTF-8 @@ -115,6 +118,12 @@ message Dataset { // Optional. Reference to the public base model last used by the dataset. Only // set for prompt datasets. string model_reference = 18 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Describes the location from where we import data into a Dataset, together diff --git a/google/cloud/aiplatform/v1beta1/dataset_service.proto b/google/cloud/aiplatform/v1beta1/dataset_service.proto index 76a46750d..63797d5f8 100644 --- a/google/cloud/aiplatform/v1beta1/dataset_service.proto +++ b/google/cloud/aiplatform/v1beta1/dataset_service.proto @@ -51,6 +51,7 @@ service DatasetService { option (google.api.http) = { post: "/v1beta1/{parent=projects/*/locations/*}/datasets" body: "dataset" + additional_bindings { post: "/v1beta1/datasets" body: "dataset" } }; option (google.api.method_signature) = "parent,dataset"; option (google.longrunning.operation_info) = { @@ -63,6 +64,7 @@ service DatasetService { rpc GetDataset(GetDatasetRequest) returns (Dataset) { option (google.api.http) = { get: "/v1beta1/{name=projects/*/locations/*/datasets/*}" + additional_bindings { get: "/v1beta1/{name=datasets/*}" } }; option (google.api.method_signature) = "name"; } @@ -72,6 +74,10 @@ service DatasetService { option (google.api.http) = { patch: "/v1beta1/{dataset.name=projects/*/locations/*/datasets/*}" body: "dataset" + additional_bindings { + patch: "/v1beta1/{dataset.name=datasets/*}" + body: "dataset" + } }; option (google.api.method_signature) = "dataset,update_mask"; } @@ -80,6 +86,7 @@ service DatasetService { rpc ListDatasets(ListDatasetsRequest) returns (ListDatasetsResponse) { option (google.api.http) = { get: "/v1beta1/{parent=projects/*/locations/*}/datasets" + additional_bindings { get: "/v1beta1/datasets" } }; option (google.api.method_signature) = "parent"; } @@ -89,6 +96,7 @@ service DatasetService { returns (google.longrunning.Operation) { option (google.api.http) = { delete: "/v1beta1/{name=projects/*/locations/*/datasets/*}" + additional_bindings { delete: "/v1beta1/{name=datasets/*}" } }; option (google.api.method_signature) = "name"; option (google.longrunning.operation_info) = { @@ -129,6 +137,10 @@ service DatasetService { option (google.api.http) = { post: "/v1beta1/{parent=projects/*/locations/*/datasets/*}/datasetVersions" body: "dataset_version" + additional_bindings { + post: "/v1beta1/{parent=datasets/*}/datasetVersions" + body: "dataset_version" + } }; option (google.api.method_signature) = "parent,dataset_version"; option (google.longrunning.operation_info) = { @@ -143,6 +155,10 @@ service DatasetService { option (google.api.http) = { patch: "/v1beta1/{dataset_version.name=projects/*/locations/*/datasets/*/datasetVersions/*}" body: "dataset_version" + additional_bindings { + patch: "/v1beta1/{dataset_version.name=datasets/*/datasetVersions/*}" + body: "dataset_version" + } }; option (google.api.method_signature) = "dataset_version,update_mask"; } @@ -152,6 +168,9 @@ service DatasetService { returns (google.longrunning.Operation) { option (google.api.http) = { delete: "/v1beta1/{name=projects/*/locations/*/datasets/*/datasetVersions/*}" + additional_bindings { + delete: "/v1beta1/{name=datasets/*/datasetVersions/*}" + } }; option (google.api.method_signature) = "name"; option (google.longrunning.operation_info) = { @@ -164,6 +183,9 @@ service DatasetService { rpc GetDatasetVersion(GetDatasetVersionRequest) returns (DatasetVersion) { option (google.api.http) = { get: "/v1beta1/{name=projects/*/locations/*/datasets/*/datasetVersions/*}" + additional_bindings { + get: "/v1beta1/{name=datasets/*/datasetVersions/*}" + } }; option (google.api.method_signature) = "name"; } @@ -173,6 +195,9 @@ service DatasetService { returns (ListDatasetVersionsResponse) { option (google.api.http) = { get: "/v1beta1/{parent=projects/*/locations/*/datasets/*}/datasetVersions" + additional_bindings { + get: "/v1beta1/{parent=datasets/*}/datasetVersions" + } }; option (google.api.method_signature) = "parent"; } @@ -182,6 +207,9 @@ service DatasetService { returns (google.longrunning.Operation) { option (google.api.http) = { get: "/v1beta1/{name=projects/*/locations/*/datasets/*/datasetVersions/*}:restore" + additional_bindings { + get: "/v1beta1/{name=datasets/*/datasetVersions/*}:restore" + } }; option (google.api.method_signature) = "name"; option (google.longrunning.operation_info) = { diff --git a/google/cloud/aiplatform/v1beta1/dataset_version.proto b/google/cloud/aiplatform/v1beta1/dataset_version.proto index 11c2a6e5f..b3e9a2242 100644 --- a/google/cloud/aiplatform/v1beta1/dataset_version.proto +++ b/google/cloud/aiplatform/v1beta1/dataset_version.proto @@ -36,8 +36,11 @@ message DatasetVersion { pattern: "projects/{project}/locations/{location}/datasets/{dataset}/datasetVersions/{dataset_version}" }; - // Output only. The resource name of the DatasetVersion. - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Identifier. The resource name of the DatasetVersion. + string name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = IDENTIFIER + ]; // Output only. Timestamp when this DatasetVersion was created. google.protobuf.Timestamp create_time = 2 @@ -68,4 +71,10 @@ message DatasetVersion { // Output only. Reference to the public base model last used by the dataset // version. Only set for prompt dataset versions. string model_reference = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1beta1/deployment_resource_pool.proto b/google/cloud/aiplatform/v1beta1/deployment_resource_pool.proto index ecd781a21..cdc101dc8 100644 --- a/google/cloud/aiplatform/v1beta1/deployment_resource_pool.proto +++ b/google/cloud/aiplatform/v1beta1/deployment_resource_pool.proto @@ -74,4 +74,10 @@ message DeploymentResourcePool { // Output only. Timestamp when this DeploymentResourcePool was created. google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1beta1/endpoint.proto b/google/cloud/aiplatform/v1beta1/endpoint.proto index 785d8a577..c0110653d 100644 --- a/google/cloud/aiplatform/v1beta1/endpoint.proto +++ b/google/cloud/aiplatform/v1beta1/endpoint.proto @@ -150,6 +150,28 @@ message Endpoint { // Configures the request-response logging for online prediction. PredictRequestResponseLoggingConfig predict_request_response_logging_config = 18; + + // If true, the endpoint will be exposed through a dedicated + // DNS [Endpoint.dedicated_endpoint_dns]. Your request to the dedicated DNS + // will be isolated from other users' traffic and will have better performance + // and reliability. + // Note: Once you enabled dedicated endpoint, you won't be able to send + // request to the shared DNS {region}-aiplatform.googleapis.com. The + // limitation will be removed soon. + bool dedicated_endpoint_enabled = 24; + + // Output only. DNS of the dedicated endpoint. Will only be populated if + // dedicated_endpoint_enabled is true. + // Format: + // `https://{endpoint_id}.{region}-{project_number}.prediction.vertexai.goog`. + string dedicated_endpoint_dns = 25 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; } // A deployment of a Model. Endpoints contain one or more DeployedModels. diff --git a/google/cloud/aiplatform/v1beta1/entity_type.proto b/google/cloud/aiplatform/v1beta1/entity_type.proto index f37a185a6..83528407d 100644 --- a/google/cloud/aiplatform/v1beta1/entity_type.proto +++ b/google/cloud/aiplatform/v1beta1/entity_type.proto @@ -95,4 +95,10 @@ message EntityType { // values older than `offline_storage_ttl_days` since the feature generation // time. If unset (or explicitly set to 0), default to 4000 days TTL. int32 offline_storage_ttl_days = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1beta1/evaluation_service.proto b/google/cloud/aiplatform/v1beta1/evaluation_service.proto index beac5d5cd..3c32c1290 100644 --- a/google/cloud/aiplatform/v1beta1/evaluation_service.proto +++ b/google/cloud/aiplatform/v1beta1/evaluation_service.proto @@ -121,6 +121,12 @@ message EvaluateInstancesRequest { // metric. QuestionAnsweringCorrectnessInput question_answering_correctness_input = 18; + // Input for pointwise metric. + PointwiseMetricInput pointwise_metric_input = 28; + + // Input for pairwise metric. + PairwiseMetricInput pairwise_metric_input = 29; + // Tool call metric instances. // Input for tool call valid metric. ToolCallValidInput tool_call_valid_input = 19; @@ -210,6 +216,13 @@ message EvaluateInstancesResponse { QuestionAnsweringCorrectnessResult question_answering_correctness_result = 17; + // Generic metrics. + // Result for pointwise metric. + PointwiseMetricResult pointwise_metric_result = 27; + + // Result for pairwise metric. + PairwiseMetricResult pairwise_metric_result = 28; + // Tool call metrics. // Results for tool call valid metric. ToolCallValidResults tool_call_valid_results = 18; @@ -957,6 +970,81 @@ message QuestionAnsweringCorrectnessResult { optional float confidence = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } +// Input for pointwise metric. +message PointwiseMetricInput { + // Required. Spec for pointwise metric. + PointwiseMetricSpec metric_spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Pointwise metric instance. + PointwiseMetricInstance instance = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Pointwise metric instance. Usually one instance corresponds to one row in an +// evaluation dataset. +message PointwiseMetricInstance { + // Instance for pointwise metric. + oneof instance { + // Instance specified as a json string. String key-value pairs are expected + // in the json_instance to render + // PointwiseMetricSpec.instance_prompt_template. + string json_instance = 1; + } +} + +// Spec for pointwise metric. +message PointwiseMetricSpec { + // Required. Metric prompt template for pointwise metric. + optional string metric_prompt_template = 1 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for pointwise metric result. +message PointwiseMetricResult { + // Output only. Pointwise metric score. + optional float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for pointwise metric score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Input for pairwise metric. +message PairwiseMetricInput { + // Required. Spec for pairwise metric. + PairwiseMetricSpec metric_spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Pairwise metric instance. + PairwiseMetricInstance instance = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Pairwise metric instance. Usually one instance corresponds to one row in an +// evaluation dataset. +message PairwiseMetricInstance { + // Instance for pairwise metric. + oneof instance { + // Instance specified as a json string. String key-value pairs are expected + // in the json_instance to render + // PairwiseMetricSpec.instance_prompt_template. + string json_instance = 1; + } +} + +// Spec for pairwise metric. +message PairwiseMetricSpec { + // Required. Metric prompt template for pairwise metric. + optional string metric_prompt_template = 1 + [(google.api.field_behavior) = REQUIRED]; +} + +// Spec for pairwise metric result. +message PairwiseMetricResult { + // Output only. Pairwise metric choice. + PairwiseChoice pairwise_choice = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Explanation for pairwise metric score. + string explanation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + // Input for tool call valid metric. message ToolCallValidInput { // Required. Spec for tool call valid metric. diff --git a/google/cloud/aiplatform/v1beta1/feature_group.proto b/google/cloud/aiplatform/v1beta1/feature_group.proto index 611dcfb8c..165d88f65 100644 --- a/google/cloud/aiplatform/v1beta1/feature_group.proto +++ b/google/cloud/aiplatform/v1beta1/feature_group.proto @@ -40,6 +40,14 @@ message FeatureGroup { // Input source type for BigQuery Tables and Views. message BigQuery { + message TimeSeries { + // Optional. Column hosting timestamp values for a time-series source. + // Will be used to determine the latest `feature_values` for each entity. + // Optional. If not provided, column named `feature_timestamp` of + // type `TIMESTAMP` will be used. + string timestamp_column = 1 [(google.api.field_behavior) = OPTIONAL]; + } + // Required. Immutable. The BigQuery source URI that points to either a // BigQuery Table or View. BigQuerySource big_query_source = 1 [ @@ -51,6 +59,29 @@ message FeatureGroup { // If not provided defaults to `entity_id`. repeated string entity_id_columns = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Set if the data source is not a time-series. + bool static_data_source = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If the source is a time-series source, this can be set to + // control how downstream sources (ex: + // [FeatureView][google.cloud.aiplatform.v1beta1.FeatureView] ) will treat + // time-series sources. If not set, will treat the source as a time-series + // source with `feature_timestamp` as timestamp column and no scan boundary. + TimeSeries time_series = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set, all feature values will be fetched + // from a single row per unique entityId including nulls. + // If not set, will collapse all rows for each unique entityId into a singe + // row with any non-null values if present, if no non-null values are + // present will sync null. + // ex: If source has schema + // `(entity_id, feature_timestamp, f0, f1)` and the following rows: + // `(e1, 2020-01-01T10:00:00.123Z, 10, 15)` + // `(e1, 2020-02-01T10:00:00.123Z, 20, null)` + // If dense is set, `(e1, 20, null)` is synced to online stores. If dense is + // not set, `(e1, 20, 15)` is synced to online stores. + bool dense = 5 [(google.api.field_behavior) = OPTIONAL]; } oneof source { diff --git a/google/cloud/aiplatform/v1beta1/feature_online_store.proto b/google/cloud/aiplatform/v1beta1/feature_online_store.proto index cd37404e4..84becd50d 100644 --- a/google/cloud/aiplatform/v1beta1/feature_online_store.proto +++ b/google/cloud/aiplatform/v1beta1/feature_online_store.proto @@ -179,4 +179,10 @@ message FeatureOnlineStore { // Optional. Customer-managed encryption key spec for data storage. If set, // online store will be secured by this key. EncryptionSpec encryption_spec = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1beta1/feature_online_store_admin_service.proto b/google/cloud/aiplatform/v1beta1/feature_online_store_admin_service.proto index 4e7bf701e..0ec4ce9c0 100644 --- a/google/cloud/aiplatform/v1beta1/feature_online_store_admin_service.proto +++ b/google/cloud/aiplatform/v1beta1/feature_online_store_admin_service.proto @@ -318,10 +318,11 @@ message UpdateFeatureOnlineStoreRequest { // // Updatable fields: // - // * `big_query_source` - // * `bigtable` // * `labels` - // * `sync_config` + // * `description` + // * `bigtable` + // * `bigtable.auto_scaling` + // * `bigtable.enable_multi_region_replica` google.protobuf.FieldMask update_mask = 2; } @@ -481,7 +482,14 @@ message UpdateFeatureViewRequest { // Updatable fields: // // * `labels` - // * `serviceAgentType` + // * `service_agent_type` + // * `big_query_source` + // * `big_query_source.uri` + // * `big_query_source.entity_id_columns` + // * `feature_registry_source` + // * `feature_registry_source.feature_groups` + // * `sync_config` + // * `sync_config.cron` google.protobuf.FieldMask update_mask = 2; } @@ -535,7 +543,7 @@ message SyncFeatureViewRequest { ]; } -// Respose message for +// Response message for // [FeatureOnlineStoreAdminService.SyncFeatureView][google.cloud.aiplatform.v1beta1.FeatureOnlineStoreAdminService.SyncFeatureView]. message SyncFeatureViewResponse { // Format: diff --git a/google/cloud/aiplatform/v1beta1/feature_online_store_service.proto b/google/cloud/aiplatform/v1beta1/feature_online_store_service.proto index 8fc70adda..1b60096a8 100644 --- a/google/cloud/aiplatform/v1beta1/feature_online_store_service.proto +++ b/google/cloud/aiplatform/v1beta1/feature_online_store_service.proto @@ -255,6 +255,61 @@ message NearestNeighborQuery { repeated string deny_tokens = 3 [(google.api.field_behavior) = OPTIONAL]; } + // Numeric filter is used to search a subset of the entities by using boolean + // rules on numeric columns. + // For example: + // Database Point 0: {name: “a” value_int: 42} {name: “b” value_float: 1.0} + // Database Point 1: {name: “a” value_int: 10} {name: “b” value_float: 2.0} + // Database Point 2: {name: “a” value_int: -1} {name: “b” value_float: 3.0} + // Query: {name: “a” value_int: 12 operator: LESS} // Matches Point 1, 2 + // {name: “b” value_float: 2.0 operator: EQUAL} // Matches Point 1 + message NumericFilter { + // Datapoints for which Operator is true relative to the query’s Value + // field will be allowlisted. + enum Operator { + // Unspecified operator. + OPERATOR_UNSPECIFIED = 0; + + // Entities are eligible if their value is < the query's. + LESS = 1; + + // Entities are eligible if their value is <= the query's. + LESS_EQUAL = 2; + + // Entities are eligible if their value is == the query's. + EQUAL = 3; + + // Entities are eligible if their value is >= the query's. + GREATER_EQUAL = 4; + + // Entities are eligible if their value is > the query's. + GREATER = 5; + + // Entities are eligible if their value is != the query's. + NOT_EQUAL = 6; + } + + // The type of Value must be consistent for all datapoints with a given + // name. This is verified at runtime. + oneof Value { + // int value type. + int64 value_int = 2; + + // float value type. + float value_float = 3; + + // double value type. + double value_double = 4; + } + + // Required. Column name in BigQuery that used as filters. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. This MUST be specified for queries and must NOT be specified + // for database points. + optional Operator op = 5 [(google.api.field_behavior) = OPTIONAL]; + } + // Parameters that can be overrided in each query to tune query latency and // recall. message Parameters { @@ -290,6 +345,10 @@ message NearestNeighborQuery { repeated StringFilter string_filters = 4 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The list of numeric filters. + repeated NumericFilter numeric_filters = 8 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. Crowding is a constraint on a neighbor list produced by nearest // neighbor search requiring that no more than // sper_crowding_attribute_neighbor_count of the k neighbors returned have the diff --git a/google/cloud/aiplatform/v1beta1/feature_registry_service.proto b/google/cloud/aiplatform/v1beta1/feature_registry_service.proto index d9e792e35..72e423503 100644 --- a/google/cloud/aiplatform/v1beta1/feature_registry_service.proto +++ b/google/cloud/aiplatform/v1beta1/feature_registry_service.proto @@ -286,6 +286,9 @@ message UpdateFeatureGroupRequest { // Updatable fields: // // * `labels` + // * `description` + // * `big_query` + // * `big_query.entity_id_columns` google.protobuf.FieldMask update_mask = 2; } diff --git a/google/cloud/aiplatform/v1beta1/feature_view.proto b/google/cloud/aiplatform/v1beta1/feature_view.proto index 0afe17230..bb1e974f5 100644 --- a/google/cloud/aiplatform/v1beta1/feature_view.proto +++ b/google/cloud/aiplatform/v1beta1/feature_view.proto @@ -237,6 +237,25 @@ message FeatureView { optional int64 project_number = 2 [(google.api.field_behavior) = OPTIONAL]; } + // A Vertex Rag source for features that need to be synced to Online + // Store. + message VertexRagSource { + // Required. The BigQuery view/table URI that will be materialized on each + // manual sync trigger. The table/view is expected to have the following + // columns and types at least: + // - `corpus_id` (STRING, NULLABLE/REQUIRED) + // - `file_id` (STRING, NULLABLE/REQUIRED) + // - `chunk_id` (STRING, NULLABLE/REQUIRED) + // - `chunk_data_type` (STRING, NULLABLE/REQUIRED) + // - `chunk_data` (STRING, NULLABLE/REQUIRED) + // - `embeddings` (FLOAT, REPEATED) + // - `file_original_uri` (STRING, NULLABLE/REQUIRED) + string uri = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The RAG corpus id corresponding to this FeatureView. + int64 rag_corpus_id = 2 [(google.api.field_behavior) = OPTIONAL]; + } + // Service agent type used during data sync. enum ServiceAgentType { // By default, the project-level Vertex AI Service Agent is enabled. @@ -263,6 +282,10 @@ message FeatureView { // need to be loaded onto the FeatureOnlineStore. FeatureRegistrySource feature_registry_source = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Vertex RAG Source that the FeatureView is linked to. + VertexRagSource vertex_rag_source = 18 + [(google.api.field_behavior) = OPTIONAL]; } // Identifier. Name of the FeatureView. Format: @@ -324,4 +347,10 @@ message FeatureView { // bigquery.dataViewer should be granted to this service account to allow // Vertex AI Feature Store to sync data to the online store. string service_account_email = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1beta1/feature_view_sync.proto b/google/cloud/aiplatform/v1beta1/feature_view_sync.proto index eac71f7bb..f823a2c4a 100644 --- a/google/cloud/aiplatform/v1beta1/feature_view_sync.proto +++ b/google/cloud/aiplatform/v1beta1/feature_view_sync.proto @@ -46,6 +46,10 @@ message FeatureViewSync { // Output only. BigQuery slot milliseconds consumed for the sync job. int64 total_slot = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Lower bound of the system time watermark for the sync job. This is only + // set for continuously syncing feature views. + google.protobuf.Timestamp system_watermark_time = 5; } // Identifier. Name of the FeatureViewSync. Format: @@ -67,4 +71,10 @@ message FeatureViewSync { // Output only. Summary of the sync job. SyncSummary sync_summary = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1beta1/featurestore.proto b/google/cloud/aiplatform/v1beta1/featurestore.proto index 90371930f..052e6d3b5 100644 --- a/google/cloud/aiplatform/v1beta1/featurestore.proto +++ b/google/cloud/aiplatform/v1beta1/featurestore.proto @@ -149,4 +149,10 @@ message Featurestore { // Optional. Customer-managed encryption key spec for data storage. If set, // both of the online and offline data storage will be secured by this key. EncryptionSpec encryption_spec = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1beta1/featurestore_service.proto b/google/cloud/aiplatform/v1beta1/featurestore_service.proto index 2a32aca23..c0a4c2792 100644 --- a/google/cloud/aiplatform/v1beta1/featurestore_service.proto +++ b/google/cloud/aiplatform/v1beta1/featurestore_service.proto @@ -1257,7 +1257,8 @@ message UpdateFeatureRequest { // // * `description` // * `labels` - // * `disable_monitoring` (Not supported for FeatureRegistry Feature) + // * `disable_monitoring` (Not supported for FeatureRegistryService Feature) + // * `point_of_contact` (Not supported for FeaturestoreService FeatureStore) google.protobuf.FieldMask update_mask = 2; } diff --git a/google/cloud/aiplatform/v1beta1/genai_tuning_service.proto b/google/cloud/aiplatform/v1beta1/genai_tuning_service.proto index cc44a829f..124db6e52 100644 --- a/google/cloud/aiplatform/v1beta1/genai_tuning_service.proto +++ b/google/cloud/aiplatform/v1beta1/genai_tuning_service.proto @@ -20,7 +20,10 @@ import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/io.proto"; +import "google/cloud/aiplatform/v1beta1/operation.proto"; import "google/cloud/aiplatform/v1beta1/tuning_job.proto"; +import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; @@ -82,6 +85,22 @@ service GenAiTuningService { }; option (google.api.method_signature) = "name"; } + + // Rebase a TunedModel. + // Creates a LongRunningOperation that takes a legacy Tuned GenAI model + // Reference and creates a TuningJob based on newly available model. + rpc RebaseTunedModel(RebaseTunedModelRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*}/tuningJobs:rebaseTunedModel" + body: "*" + }; + option (google.api.method_signature) = "parent,tuned_model_ref"; + option (google.longrunning.operation_info) = { + response_type: "TuningJob" + metadata_type: "RebaseTunedModelOperationMetadata" + }; + } } // Request message for @@ -162,3 +181,39 @@ message CancelTuningJobRequest { } ]; } + +// Request message for +// [GenAiTuningService.RebaseTunedModel][google.cloud.aiplatform.v1beta1.GenAiTuningService.RebaseTunedModel]. +message RebaseTunedModelRequest { + // Required. The resource name of the Location into which to rebase the Model. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. TunedModel reference to retrieve the legacy model information. + TunedModelRef tuned_model_ref = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The TuningJob to be updated. Users can use this TuningJob field + // to overwrite tuning configs. + TuningJob tuning_job = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Google Cloud Storage location to write the artifacts. + GcsDestination artifact_destination = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. By default, bison to gemini migration will always create new + // model/endpoint, but for gemini-1.0 to gemini-1.5 migration, we default + // deploy to the same endpoint. See details in this Section. + bool deploy_to_same_endpoint = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Runtime operation information for +// [GenAiTuningService.RebaseTunedModel][google.cloud.aiplatform.v1beta1.GenAiTuningService.RebaseTunedModel]. +message RebaseTunedModelOperationMetadata { + // The common part of the operation generic information. + GenericOperationMetadata generic_metadata = 1; +} diff --git a/google/cloud/aiplatform/v1beta1/hyperparameter_tuning_job.proto b/google/cloud/aiplatform/v1beta1/hyperparameter_tuning_job.proto index abc835822..c79a649ac 100644 --- a/google/cloud/aiplatform/v1beta1/hyperparameter_tuning_job.proto +++ b/google/cloud/aiplatform/v1beta1/hyperparameter_tuning_job.proto @@ -113,4 +113,10 @@ message HyperparameterTuningJob { // If this is set, then all resources created by the HyperparameterTuningJob // will be encrypted with the provided encryption key. EncryptionSpec encryption_spec = 17; + + // Output only. Reserved for future use. + bool satisfies_pzs = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/aiplatform/v1beta1/index.proto b/google/cloud/aiplatform/v1beta1/index.proto index af235fbe7..f0c71a59a 100644 --- a/google/cloud/aiplatform/v1beta1/index.proto +++ b/google/cloud/aiplatform/v1beta1/index.proto @@ -125,6 +125,12 @@ message Index { // Immutable. Customer-managed encryption key spec for an Index. If set, this // Index and all sub-resources of this Index will be secured by this key. EncryptionSpec encryption_spec = 17 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; } // A datapoint of Index. diff --git a/google/cloud/aiplatform/v1beta1/index_endpoint.proto b/google/cloud/aiplatform/v1beta1/index_endpoint.proto index 4fa4b3b3e..7dc2648fc 100644 --- a/google/cloud/aiplatform/v1beta1/index_endpoint.proto +++ b/google/cloud/aiplatform/v1beta1/index_endpoint.proto @@ -128,6 +128,12 @@ message IndexEndpoint { // set, this IndexEndpoint and all sub-resources of this IndexEndpoint will be // secured by this key. EncryptionSpec encryption_spec = 15 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; } // A deployment of an Index. IndexEndpoints contain one or more DeployedIndexes. @@ -255,6 +261,12 @@ message DeployedIndex { // // Note: we only support up to 5 deployment groups(not including 'default'). string deployment_group = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set for PSC deployed index, PSC connection will be + // automatically created after deployment is done and the endpoint information + // is populated in private_endpoints.psc_automated_endpoints. + repeated PSCAutomationConfig psc_automation_configs = 19 + [(google.api.field_behavior) = OPTIONAL]; } // Used to set up the auth on the DeployedIndex's private endpoint. diff --git a/google/cloud/aiplatform/v1beta1/io.proto b/google/cloud/aiplatform/v1beta1/io.proto index 42cea8ccf..e96c1cd89 100644 --- a/google/cloud/aiplatform/v1beta1/io.proto +++ b/google/cloud/aiplatform/v1beta1/io.proto @@ -17,6 +17,8 @@ syntax = "proto3"; package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; +import "google/cloud/aiplatform/v1beta1/api_auth.proto"; +import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; @@ -137,3 +139,112 @@ message GoogleDriveSource { // The input content is encapsulated and uploaded in the request. message DirectUploadSource {} + +// The Slack source for the ImportRagFilesRequest. +message SlackSource { + // SlackChannels contains the Slack channels and corresponding access token. + message SlackChannels { + // SlackChannel contains the Slack channel ID and the time range to import. + message SlackChannel { + // Required. The Slack channel ID. + string channel_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The starting timestamp for messages to import. + google.protobuf.Timestamp start_time = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The ending timestamp for messages to import. + google.protobuf.Timestamp end_time = 3 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. The Slack channel IDs. + repeated SlackChannel channels = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The SecretManager secret version resource name (e.g. + // projects/{project}/secrets/{secret}/versions/{version}) storing the + // Slack channel access token that has access to the slack channel IDs. + // See: https://api.slack.com/tutorials/tracks/getting-a-token. + ApiAuth.ApiKeyConfig api_key_config = 3 + [(google.api.field_behavior) = REQUIRED]; + } + + // Required. The Slack channels. + repeated SlackChannels channels = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The Jira source for the ImportRagFilesRequest. +message JiraSource { + // JiraQueries contains the Jira queries and corresponding authentication. + message JiraQueries { + // A list of Jira projects to import in their entirety. + repeated string projects = 3; + + // A list of custom Jira queries to import. For information about JQL (Jira + // Query Language), see + // https://support.atlassian.com/jira-service-management-cloud/docs/use-advanced-search-with-jira-query-language-jql/ + repeated string custom_queries = 4; + + // Required. The Jira email address. + string email = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Jira server URI. + string server_uri = 6 [(google.api.field_behavior) = REQUIRED]; + + // Required. The SecretManager secret version resource name (e.g. + // projects/{project}/secrets/{secret}/versions/{version}) storing the + // Jira API key + // (https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/). + ApiAuth.ApiKeyConfig api_key_config = 7 + [(google.api.field_behavior) = REQUIRED]; + } + + // Required. The Jira queries. + repeated JiraQueries jira_queries = 1 + [(google.api.field_behavior) = REQUIRED]; +} + +// The SharePointSources to pass to ImportRagFiles. +message SharePointSources { + // An individual SharePointSource. + message SharePointSource { + // The SharePoint folder source. If not provided, uses "root". + oneof folder_source { + // The path of the SharePoint folder to download from. + string sharepoint_folder_path = 5; + + // The ID of the SharePoint folder to download from. + string sharepoint_folder_id = 6; + } + + // The SharePoint drive source. + oneof drive_source { + // The name of the drive to download from. + string drive_name = 7; + + // The ID of the drive to download from. + string drive_id = 8; + } + + // The Application ID for the app registered in Microsoft Azure Portal. + // The application must also be configured with MS Graph permissions + // "Files.ReadAll", "Sites.ReadAll" and BrowserSiteLists.Read.All. + string client_id = 1; + + // The application secret for the app registered in Azure. + ApiAuth.ApiKeyConfig client_secret = 2; + + // Unique identifier of the Azure Active Directory Instance. + string tenant_id = 3; + + // The name of the SharePoint site to download from. This can be the site + // name or the site id. + string sharepoint_site_name = 4; + + // Output only. The SharePoint file id. Output only. + string file_id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The SharePoint sources. + repeated SharePointSource share_point_sources = 1; +} diff --git a/google/cloud/aiplatform/v1beta1/llm_utility_service.proto b/google/cloud/aiplatform/v1beta1/llm_utility_service.proto index f5f554937..a03d4a4dd 100644 --- a/google/cloud/aiplatform/v1beta1/llm_utility_service.proto +++ b/google/cloud/aiplatform/v1beta1/llm_utility_service.proto @@ -46,6 +46,14 @@ service LlmUtilityService { post: "/v1beta1/{endpoint=projects/*/locations/*/publishers/*/models/*}:computeTokens" body: "*" } + additional_bindings { + post: "/v1beta1/{endpoint=endpoints/*}:computeTokens" + body: "*" + } + additional_bindings { + post: "/v1beta1/{endpoint=publishers/*/models/*}:computeTokens" + body: "*" + } }; option (google.api.method_signature) = "endpoint,instances"; } diff --git a/google/cloud/aiplatform/v1beta1/machine_resources.proto b/google/cloud/aiplatform/v1beta1/machine_resources.proto index b2fc44926..3951f0e39 100644 --- a/google/cloud/aiplatform/v1beta1/machine_resources.proto +++ b/google/cloud/aiplatform/v1beta1/machine_resources.proto @@ -18,6 +18,7 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/cloud/aiplatform/v1beta1/accelerator_type.proto"; +import "google/cloud/aiplatform/v1beta1/reservation_affinity.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; @@ -56,6 +57,13 @@ message MachineSpec { // Immutable. The topology of the TPUs. Corresponds to the TPU topologies // available from GKE. (Example: tpu_topology: "2x2x1"). string tpu_topology = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Optional. Immutable. Configuration controlling how this resource pool + // consumes reservation. + ReservationAffinity reservation_affinity = 5 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = OPTIONAL + ]; } // A description of resources that are dedicated to a DeployedModel, and @@ -121,6 +129,10 @@ message DedicatedResources { // to `80`. repeated AutoscalingMetricSpec autoscaling_metric_specs = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Optional. If true, schedule the deployment workload on [spot + // VMs](https://cloud.google.com/kubernetes-engine/docs/concepts/spot-vms). + bool spot = 5 [(google.api.field_behavior) = OPTIONAL]; } // A description of resources that to large degree are decided by Vertex AI, diff --git a/google/cloud/aiplatform/v1beta1/model_deployment_monitoring_job.proto b/google/cloud/aiplatform/v1beta1/model_deployment_monitoring_job.proto index a83fa1253..3ed7eb06a 100644 --- a/google/cloud/aiplatform/v1beta1/model_deployment_monitoring_job.proto +++ b/google/cloud/aiplatform/v1beta1/model_deployment_monitoring_job.proto @@ -224,6 +224,12 @@ message ModelDeploymentMonitoringJob { // Output only. Only populated when the job's state is `JOB_STATE_FAILED` or // `JOB_STATE_CANCELLED`. google.rpc.Status error = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; } // ModelDeploymentMonitoringBigQueryTable specifies the BigQuery table name diff --git a/google/cloud/aiplatform/v1beta1/model_garden_service.proto b/google/cloud/aiplatform/v1beta1/model_garden_service.proto index 972964282..1a6e13742 100644 --- a/google/cloud/aiplatform/v1beta1/model_garden_service.proto +++ b/google/cloud/aiplatform/v1beta1/model_garden_service.proto @@ -84,11 +84,18 @@ message GetPublisherModelRequest { ]; // Optional. The IETF BCP-47 language code representing the language in which - // the publisher model's text information should be written in (see go/bcp47). + // the publisher model's text information should be written in. string language_code = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. PublisherModel view specifying which fields to read. PublisherModelView view = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Boolean indicates whether the requested model is a Hugging Face + // model. + bool is_hugging_face_model = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Token used to access Hugging Face gated models. + string hugging_face_token = 6 [(google.api.field_behavior) = OPTIONAL]; } // Request message for @@ -120,8 +127,8 @@ message ListPublisherModelsRequest { string order_by = 6 [(google.api.field_behavior) = OPTIONAL]; // Optional. The IETF BCP-47 language code representing the language in which - // the publisher models' text information should be written in (see go/bcp47). - // If not set, by default English (en). + // the publisher models' text information should be written in. If not set, by + // default English (en). string language_code = 7 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/google/cloud/aiplatform/v1beta1/model_monitor.proto b/google/cloud/aiplatform/v1beta1/model_monitor.proto index b9b3c7095..033f2b964 100644 --- a/google/cloud/aiplatform/v1beta1/model_monitor.proto +++ b/google/cloud/aiplatform/v1beta1/model_monitor.proto @@ -116,6 +116,12 @@ message ModelMonitor { // Output only. Timestamp when this ModelMonitor was updated most recently. google.protobuf.Timestamp update_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; } // The Model Monitoring Schema definition. diff --git a/google/cloud/aiplatform/v1beta1/nas_job.proto b/google/cloud/aiplatform/v1beta1/nas_job.proto index 18a0e011b..0074669de 100644 --- a/google/cloud/aiplatform/v1beta1/nas_job.proto +++ b/google/cloud/aiplatform/v1beta1/nas_job.proto @@ -97,6 +97,12 @@ message NasJob { // and restricted image training for tenant project. bool enable_restricted_image_training = 14 [deprecated = true, (google.api.field_behavior) = OPTIONAL]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Represents a NasTrial details along with its parameters. If there is a diff --git a/google/cloud/aiplatform/v1beta1/notebook_execution_job.proto b/google/cloud/aiplatform/v1beta1/notebook_execution_job.proto index 3b544a27d..9ed515260 100644 --- a/google/cloud/aiplatform/v1beta1/notebook_execution_job.proto +++ b/google/cloud/aiplatform/v1beta1/notebook_execution_job.proto @@ -18,6 +18,7 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/encryption_spec.proto"; import "google/cloud/aiplatform/v1beta1/job_state.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; @@ -155,4 +156,9 @@ message NotebookExecutionJob { // System reserved label keys are prefixed with "aiplatform.googleapis.com/" // and are immutable. map labels = 19; + + // Customer-managed encryption key spec for the notebook execution job. + // This field is auto-populated if the + // [NotebookService.NotebookRuntimeTemplate][] has an encryption spec. + EncryptionSpec encryption_spec = 22; } diff --git a/google/cloud/aiplatform/v1beta1/openapi.proto b/google/cloud/aiplatform/v1beta1/openapi.proto index ba8f6a753..e17a1aeb2 100644 --- a/google/cloud/aiplatform/v1beta1/openapi.proto +++ b/google/cloud/aiplatform/v1beta1/openapi.proto @@ -54,8 +54,8 @@ enum Type { // Schema is used to define the format of input/output data. Represents a select // subset of an [OpenAPI 3.0 schema -// object](https://spec.openapis.org/oas/v3.0.3#schema). More fields may be -// added in the future as needed. +// object](https://spec.openapis.org/oas/v3.0.3#schema-object). More fields may +// be added in the future as needed. message Schema { // Optional. The type of the data. Type type = 1 [(google.api.field_behavior) = OPTIONAL]; @@ -98,6 +98,12 @@ message Schema { // Properties of Type.OBJECT. map properties = 3 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The order of the properties. + // Not a standard field in open api spec. Only used to support the order of + // the properties. + repeated string property_ordering = 25 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. Required properties of Type.OBJECT. repeated string required = 5 [(google.api.field_behavior) = OPTIONAL]; @@ -128,4 +134,8 @@ message Schema { // Optional. Example of the object. Will only populated when the object is the // root. google.protobuf.Value example = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The value should be validated against any (one or more) of the + // subschemas in the list. + repeated Schema any_of = 11 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/google/cloud/aiplatform/v1beta1/persistent_resource.proto b/google/cloud/aiplatform/v1beta1/persistent_resource.proto index 78a279edf..e94b41d3e 100644 --- a/google/cloud/aiplatform/v1beta1/persistent_resource.proto +++ b/google/cloud/aiplatform/v1beta1/persistent_resource.proto @@ -20,6 +20,7 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/aiplatform/v1beta1/encryption_spec.proto"; import "google/cloud/aiplatform/v1beta1/machine_resources.proto"; +import "google/cloud/aiplatform/v1beta1/service_networking.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; @@ -131,6 +132,10 @@ message PersistentResource { (google.api.resource_reference) = { type: "compute.googleapis.com/Network" } ]; + // Optional. Configuration for PSC-I for PersistentResource. + PscInterfaceConfig psc_interface_config = 17 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. Customer-managed encryption key spec for a PersistentResource. // If set, this PersistentResource and all sub-resources of this // PersistentResource will be secured by this key. @@ -253,6 +258,9 @@ message RaySpec { // Optional. Ray metrics configurations. RayMetricSpec ray_metric_spec = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. OSS Ray logging configurations. + RayLogsSpec ray_logs_spec = 10 [(google.api.field_behavior) = OPTIONAL]; } // Persistent Cluster runtime information as output @@ -308,3 +316,9 @@ message RayMetricSpec { // Optional. Flag to disable the Ray metrics collection. bool disabled = 1 [(google.api.field_behavior) = OPTIONAL]; } + +// Configuration for the Ray OSS Logs. +message RayLogsSpec { + // Optional. Flag to disable the export of Ray OSS logs to Cloud Logging. + bool disabled = 1 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/aiplatform/v1beta1/pipeline_job.proto b/google/cloud/aiplatform/v1beta1/pipeline_job.proto index 7a602ce17..310c0c8a6 100644 --- a/google/cloud/aiplatform/v1beta1/pipeline_job.proto +++ b/google/cloud/aiplatform/v1beta1/pipeline_job.proto @@ -24,6 +24,8 @@ 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/service_networking.proto"; +import "google/cloud/aiplatform/v1beta1/ui_pipeline_spec.proto"; import "google/cloud/aiplatform/v1beta1/value.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; @@ -62,6 +64,44 @@ message PipelineJob { } } + // Persistent resource based runtime detail. For more information, refer to + // https://cloud.google.com/vertex-ai/docs/training/persistent-resource-overview + message PersistentResourceRuntimeDetail { + // An enum that specifies the behavior to take if the timeout is reached. + enum TaskResourceUnavailableTimeoutBehavior { + // Unspecified. Behavior is same as `FAIL`. + TASK_RESOURCE_UNAVAILABLE_TIMEOUT_BEHAVIOR_UNSPECIFIED = 0; + + // Fail the task if the timeout is reached. + FAIL = 1; + + // Fall back to on-demand execution if the timeout is reached. + FALL_BACK_TO_ON_DEMAND = 2; + } + + // Persistent resource name. + // Format: + // `projects/{project}/locations/{location}/persistentResources/{persistent_resource}` + string persistent_resource_name = 1; + + // The max time a pipeline task waits for the required CPU, memory, or + // accelerator resource to become available from the specified persistent + // resource. Default wait time is 0. + int64 task_resource_unavailable_wait_time_ms = 2; + + // Specifies the behavior to take if the timeout is reached. + TaskResourceUnavailableTimeoutBehavior + task_resource_unavailable_timeout_behavior = 3; + } + + // The default runtime for the PipelineJob. + message DefaultRuntime { + oneof runtime_detail { + // Persistent resource based runtime detail. + PersistentResourceRuntimeDetail persistent_resource_runtime_detail = 1; + } + } + // Deprecated. Use // [RuntimeConfig.parameter_values][google.cloud.aiplatform.v1beta1.PipelineJob.RuntimeConfig.parameter_values] // instead. The runtime parameters of the PipelineJob. The parameters will @@ -101,6 +141,12 @@ message PipelineJob { // 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; + + // Optional. The default runtime for the PipelineJob. If not provided, + // Vertex Custom Job(on demand) is used as the runtime. For Vertex Custom + // Job, please refer to + // https://cloud.google.com/vertex-ai/docs/training/overview. + DefaultRuntime default_runtime = 6 [(google.api.field_behavior) = OPTIONAL]; } // Output only. The resource name of the PipelineJob. @@ -197,6 +243,10 @@ message PipelineJob { // Example: ['vertex-ai-ip-range']. repeated string reserved_ip_ranges = 25; + // Optional. Configuration for PSC-I for PipelineJob. + PscInterfaceConfig psc_interface_config = 31 + [(google.api.field_behavior) = OPTIONAL]; + // A template uri from where the // [PipelineJob.pipeline_spec][google.cloud.aiplatform.v1beta1.PipelineJob.pipeline_spec], // if empty, will be downloaded. Currently, only uri from Vertex Template @@ -216,6 +266,27 @@ message PipelineJob { // Optional. Whether to do component level validations before job creation. bool preflight_validations = 26 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The original pipeline job id if this pipeline job is a rerun of a + // previous pipeline job. + int64 original_pipeline_job_id = 29 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The rerun configs for each task in the pipeline job. + // By default, the rerun will: + // 1. Use the same input artifacts as the original run. + // 2. Use the same input parameters as the original run. + // 3. Skip all the tasks that are already succeeded in the original run. + // 4. Rerun all the tasks that are not succeeded in the original run. + // By providing this field, users can override the default behavior and + // specify the rerun config for each task. + repeated PipelineTaskRerunConfig pipeline_task_rerun_configs = 30 + [(google.api.field_behavior) = OPTIONAL]; } // Pipeline template metadata if @@ -429,3 +500,41 @@ message PipelineTaskExecutorDetail { [(google.api.field_behavior) = OUTPUT_ONLY]; } } + +// User provided rerun config to submit a rerun pipelinejob. This includes +// 1. Which task to rerun +// 2. User override input parameters and artifacts. +message PipelineTaskRerunConfig { + // A list of artifact metadata. + message ArtifactList { + // Optional. A list of artifact metadata. + repeated RuntimeArtifact artifacts = 1 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Runtime inputs data of the task. + message Inputs { + // Optional. Input artifacts. + map artifacts = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Input parameters. + map parameter_values = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. The system generated ID of the task. Retrieved from original run. + int64 task_id = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The name of the task. + string task_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The runtime input of the task overridden by the user. + Inputs inputs = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Whether to skip this task. Default value is False. + bool skip_task = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Whether to skip downstream tasks. Default value is False. + bool skip_downstream_tasks = 5 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/aiplatform/v1beta1/prediction_service.proto b/google/cloud/aiplatform/v1beta1/prediction_service.proto index 05650bd27..10446ada9 100644 --- a/google/cloud/aiplatform/v1beta1/prediction_service.proto +++ b/google/cloud/aiplatform/v1beta1/prediction_service.proto @@ -173,6 +173,14 @@ service PredictionService { post: "/v1beta1/{endpoint=projects/*/locations/*/publishers/*/models/*}:countTokens" body: "*" } + additional_bindings { + post: "/v1beta1/{endpoint=endpoints/*}:countTokens" + body: "*" + } + additional_bindings { + post: "/v1beta1/{endpoint=publishers/*/models/*}:countTokens" + body: "*" + } }; option (google.api.method_signature) = "endpoint,instances"; } @@ -187,6 +195,14 @@ service PredictionService { post: "/v1beta1/{model=projects/*/locations/*/publishers/*/models/*}:generateContent" body: "*" } + additional_bindings { + post: "/v1beta1/{model=endpoints/*}:generateContent" + body: "*" + } + additional_bindings { + post: "/v1beta1/{model=publishers/*/models/*}:generateContent" + body: "*" + } }; option (google.api.method_signature) = "model,contents"; } @@ -201,6 +217,14 @@ service PredictionService { post: "/v1beta1/{model=projects/*/locations/*/publishers/*/models/*}:streamGenerateContent" body: "*" } + additional_bindings { + post: "/v1beta1/{model=endpoints/*}:streamGenerateContent" + body: "*" + } + additional_bindings { + post: "/v1beta1/{model=publishers/*/models/*}:streamGenerateContent" + body: "*" + } }; option (google.api.method_signature) = "model,contents"; } @@ -664,18 +688,37 @@ message CountTokensRequest { } ]; - // Required. The name of the publisher model requested to serve the + // Optional. The name of the publisher model requested to serve the // prediction. Format: // `projects/{project}/locations/{location}/publishers/*/models/*` - string model = 3 [(google.api.field_behavior) = REQUIRED]; + string model = 3 [(google.api.field_behavior) = OPTIONAL]; - // Required. The instances that are the input to token counting call. + // Optional. The instances that are the input to token counting call. // Schema is identical to the prediction schema of the underlying model. repeated google.protobuf.Value instances = 2 - [(google.api.field_behavior) = REQUIRED]; + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Input content. + repeated Content contents = 4 [(google.api.field_behavior) = OPTIONAL]; - // Required. Input content. - repeated Content contents = 4 [(google.api.field_behavior) = REQUIRED]; + // Optional. The user provided system instructions for the model. + // Note: only text should be used in parts and content in each part will be in + // a separate paragraph. + optional Content system_instruction = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A list of `Tools` the model may use to generate the next + // response. + // + // A `Tool` is a piece of code that enables the system to interact with + // external systems to perform an action, or set of actions, outside of + // knowledge and scope of the model. + repeated Tool tools = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Generation config that the model will use to generate the + // response. + optional GenerationConfig generation_config = 7 + [(google.api.field_behavior) = OPTIONAL]; } // Response message for @@ -691,9 +734,14 @@ message CountTokensResponse { // Request message for [PredictionService.GenerateContent]. message GenerateContentRequest { - // Required. The name of the publisher model requested to serve the - // prediction. Format: + // Required. The fully qualified name of the publisher model or tuned model + // endpoint to use. + // + // Publisher model format: // `projects/{project}/locations/{location}/publishers/*/models/*` + // + // Tuned model endpoint format: + // `projects/{project}/locations/{location}/endpoints/{endpoint}` string model = 5 [(google.api.field_behavior) = REQUIRED]; // Required. The content of the current conversation with the model. @@ -733,6 +781,15 @@ message GenerateContentRequest { // request. ToolConfig tool_config = 7 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The labels with user-defined metadata for the request. It is used + // for billing and reporting only. + // + // Label keys and values can be no longer than 63 characters + // (Unicode codepoints) and can only contain lowercase letters, numeric + // characters, underscores, and dashes. International characters are allowed. + // Label values are optional. Label keys must start with a letter. + map labels = 10 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Per request settings for blocking unsafe content. // Enforced on GenerateContentResponse.candidates. repeated SafetySetting safety_settings = 3 @@ -779,18 +836,29 @@ message GenerateContentResponse { // Usage metadata about response(s). message UsageMetadata { - // Number of tokens in the request. + // Number of tokens in the request. When `cached_content` is set, this is + // still the total effective prompt size meaning this includes the number of + // tokens in the cached content. int32 prompt_token_count = 1; // Number of tokens in the response(s). int32 candidates_token_count = 2; + // Total token count for prompt and response candidates. int32 total_token_count = 3; + + // Output only. Number of tokens in the cached part in the input (the cached + // content). + int32 cached_content_token_count = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Output only. Generated candidates. repeated Candidate candidates = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The model version used to generate the response. + string model_version = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Content filter results for a prompt sent in the request. // Note: Sent only in the first stream chunk. // Only happens when no candidates were generated due to content violations. @@ -803,9 +871,9 @@ message GenerateContentResponse { // Request message for [PredictionService.ChatCompletions] message ChatCompletionsRequest { - // Required. The name of the Endpoint requested to serve the prediction. + // Required. The name of the endpoint requested to serve the prediction. // Format: - // `projects/{project}/locations/{location}/endpoints/openapi` + // `projects/{project}/locations/{location}/endpoints/{endpoint}` string endpoint = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -817,3 +885,27 @@ message ChatCompletionsRequest { // payload. google.api.HttpBody http_body = 2 [(google.api.field_behavior) = OPTIONAL]; } + +// Response message for [PredictionService.PredictLongRunning] +message PredictLongRunningResponse { + // The response of the long running operation. + oneof response { + // The response of the video generation prediction. + GenerateVideoResponse generate_video_response = 1; + } +} + +// Metadata for PredictLongRunning long running operations. +message PredictLongRunningMetadata {} + +// Generate video response. +message GenerateVideoResponse { + // The cloud storage uris of the generated videos. + repeated string generated_samples = 1; + + // Returns if any videos were filtered due to RAI policies. + optional int32 rai_media_filtered_count = 2; + + // Returns rai failure reasons if any. + repeated string rai_media_filtered_reasons = 3; +} diff --git a/google/cloud/aiplatform/v1beta1/publisher_model.proto b/google/cloud/aiplatform/v1beta1/publisher_model.proto index eff93af47..19bc412c4 100644 --- a/google/cloud/aiplatform/v1beta1/publisher_model.proto +++ b/google/cloud/aiplatform/v1beta1/publisher_model.proto @@ -131,6 +131,9 @@ message PublisherModel { // Optional. Labels for the deployment. For managing deployment config // like verifying, source of deployment config, etc. map labels = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Sample request for deployed endpoint. + string sample_request = 2 [(google.api.field_behavior) = OPTIONAL]; } // The prediction (for example, the machine) resources that the diff --git a/google/cloud/aiplatform/v1beta1/reservation_affinity.proto b/google/cloud/aiplatform/v1beta1/reservation_affinity.proto new file mode 100644 index 000000000..49fb148e5 --- /dev/null +++ b/google/cloud/aiplatform/v1beta1/reservation_affinity.proto @@ -0,0 +1,71 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "ReservationAffinityProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; +option (google.api.resource_definition) = { + type: "compute.googleapis.com/Reservation" + pattern: "projects/{project_id_or_number}/zones/{zone}/reservations/{reservation_name}" +}; + +// A ReservationAffinity can be used to configure a Vertex AI resource (e.g., a +// DeployedModel) to draw its Compute Engine resources from a Shared +// Reservation, or exclusively from on-demand capacity. +message ReservationAffinity { + // Identifies a type of reservation affinity. + enum Type { + // Default value. This should not be used. + TYPE_UNSPECIFIED = 0; + + // Do not consume from any reserved capacity, only use on-demand. + NO_RESERVATION = 1; + + // Consume any reservation available, falling back to on-demand. + ANY_RESERVATION = 2; + + // Consume from a specific reservation. When chosen, the reservation + // must be identified via the `key` and `values` fields. + SPECIFIC_RESERVATION = 3; + } + + // Required. Specifies the reservation affinity type. + Type reservation_affinity_type = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Corresponds to the label key of a reservation resource. To target + // a SPECIFIC_RESERVATION by name, use + // `compute.googleapis.com/reservation-name` as the key and specify the name + // of your reservation as its value. + string key = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Corresponds to the label values of a reservation resource. This + // must be the full resource name of the reservation. + repeated string values = 3 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "compute.googleapis.com/Reservation" + } + ]; +} diff --git a/google/cloud/aiplatform/v1beta1/service_networking.proto b/google/cloud/aiplatform/v1beta1/service_networking.proto index 7131038e2..17d938ca7 100644 --- a/google/cloud/aiplatform/v1beta1/service_networking.proto +++ b/google/cloud/aiplatform/v1beta1/service_networking.proto @@ -26,6 +26,25 @@ option java_outer_classname = "ServiceNetworkingProto"; option java_package = "com.google.cloud.aiplatform.v1beta1"; option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; +option (google.api.resource_definition) = { + type: "compute.googleapis.com/NetworkAttachment" + pattern: "projects/{project}/regions/{region}/networkAttachments/{networkattachment}" +}; + +// PSC config that is used to automatically create forwarding rule via +// ServiceConnectionMap. +message PSCAutomationConfig { + // Required. Project id used to create forwarding rule. + string project_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The full name of the Google Compute Engine + // [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks). + // [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): + // `projects/{project}/global/networks/{network}`. + // Where {project} is a project number, as in '12345', and {network} is + // network name. + string network = 2 [(google.api.field_behavior) = REQUIRED]; +} // Represents configuration for private service connect. message PrivateServiceConnectConfig { @@ -36,6 +55,18 @@ message PrivateServiceConnectConfig { // A list of Projects from which the forwarding rule will target the service // attachment. repeated string project_allowlist = 2; + + // Optional. If set to true, enable secure private service connect with IAM + // authorization. Otherwise, private service connect will be done without + // authorization. Note latency will be slightly increased if authorization is + // enabled. + bool enable_secure_private_service_connect = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The name of the generated service attachment resource. + // This is only populated if the endpoint is deployed with + // PrivateServiceConnect. + string service_attachment = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; } // PscAutomatedEndpoints defines the output of the forwarding rule @@ -50,3 +81,25 @@ message PscAutomatedEndpoints { // Ip Address created by the automated forwarding rule. string match_address = 3; } + +// Configuration for PSC-I. +message PscInterfaceConfig { + // Optional. The full name of the Compute Engine + // [network + // attachment](https://cloud.google.com/vpc/docs/about-network-attachments) to + // attach to the resource. + // For example, `projects/12345/regions/us-central1/networkAttachments/myNA`. + // is of the form + // `projects/{project}/regions/{region}/networkAttachments/{networkAttachment}`. + // Where {project} is a project number, as in `12345`, and {networkAttachment} + // is a network attachment name. + // To specify this field, you must have already [created a network attachment] + // (https://cloud.google.com/vpc/docs/create-manage-network-attachments#create-network-attachments). + // This field is only used for resources using PSC-I. + string network_attachment = 1 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "compute.googleapis.com/NetworkAttachment" + } + ]; +} diff --git a/google/cloud/aiplatform/v1beta1/study.proto b/google/cloud/aiplatform/v1beta1/study.proto index 69daae1b6..fc575b080 100644 --- a/google/cloud/aiplatform/v1beta1/study.proto +++ b/google/cloud/aiplatform/v1beta1/study.proto @@ -196,7 +196,6 @@ message Trial { [(google.api.field_behavior) = OUTPUT_ONLY]; } -// Next ID: 3 message TrialContext { // A human-readable field which can store a description of this context. // This will become part of the resulting Trial's description field. diff --git a/google/cloud/aiplatform/v1beta1/tool.proto b/google/cloud/aiplatform/v1beta1/tool.proto index 290001c42..021238957 100644 --- a/google/cloud/aiplatform/v1beta1/tool.proto +++ b/google/cloud/aiplatform/v1beta1/tool.proto @@ -174,10 +174,9 @@ message Retrieval { VertexRagStore vertex_rag_store = 4; } - // Optional. Disable using the result from this tool in detecting grounding - // attribution. This does not affect how the result is given to the model for - // generation. - bool disable_attribution = 3 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Deprecated. This option is no longer supported. + bool disable_attribution = 3 + [deprecated = true, (google.api.field_behavior) = OPTIONAL]; } // Retrieve from Vertex RAG Store for grounding. @@ -225,9 +224,9 @@ message VertexRagStore { } // Retrieve from Vertex AI Search datastore for grounding. -// See https://cloud.google.com/vertex-ai-search-and-conversation +// See https://cloud.google.com/products/agent-builder message VertexAISearch { - // Required. Fully-qualified Vertex AI Search's datastore resource ID. + // Required. Fully-qualified Vertex AI Search data store resource ID. // Format: // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}` string datastore = 1 [(google.api.field_behavior) = REQUIRED]; @@ -235,10 +234,27 @@ message VertexAISearch { // Tool to retrieve public web data for grounding, powered by Google. message GoogleSearchRetrieval { - // Optional. Disable using the result from this tool in detecting grounding - // attribution. This does not affect how the result is given to the model for - // generation. - bool disable_attribution = 1 [(google.api.field_behavior) = OPTIONAL]; + // Specifies the dynamic retrieval configuration for the given source. + DynamicRetrievalConfig dynamic_retrieval_config = 2; +} + +// Describes the options to customize dynamic retrieval. +message DynamicRetrievalConfig { + // The mode of the predictor to be used in dynamic retrieval. + enum Mode { + // Always trigger retrieval. + MODE_UNSPECIFIED = 0; + + // Run retrieval only when system decides it is necessary. + MODE_DYNAMIC = 1; + } + + // The mode of the predictor to be used in dynamic retrieval. + Mode mode = 1; + + // Optional. The threshold to be used in dynamic retrieval. + // If not set, a system default value is used. + optional float dynamic_threshold = 2 [(google.api.field_behavior) = OPTIONAL]; } // Tool config. This config is shared for all tools provided in the request. @@ -256,7 +272,7 @@ message FunctionCallingConfig { MODE_UNSPECIFIED = 0; // Default model behavior, model decides to predict either a function call - // or a natural language repspose. + // or a natural language response. AUTO = 1; // Model is constrained to always predicting a function call only. diff --git a/google/cloud/aiplatform/v1beta1/tuning_job.proto b/google/cloud/aiplatform/v1beta1/tuning_job.proto index 7dd52c504..a42e468fb 100644 --- a/google/cloud/aiplatform/v1beta1/tuning_job.proto +++ b/google/cloud/aiplatform/v1beta1/tuning_job.proto @@ -21,6 +21,7 @@ import "google/api/resource.proto"; import "google/cloud/aiplatform/v1beta1/content.proto"; import "google/cloud/aiplatform/v1beta1/encryption_spec.proto"; import "google/cloud/aiplatform/v1beta1/job_state.proto"; +import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; @@ -49,6 +50,12 @@ message TuningJob { oneof tuning_spec { // Tuning Spec for Supervised Fine Tuning. SupervisedTuningSpec supervised_tuning_spec = 5; + + // Tuning Spec for Distillation. + DistillationSpec distillation_spec = 17; + + // Tuning Spec for open sourced and third party partner models. + PartnerModelTuningSpec partner_model_tuning_spec = 21; } // Output only. Identifier. Resource name of a TuningJob. Format: @@ -127,6 +134,16 @@ message TuningJob { TuningDataStats tuning_data_stats = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The resource name of the PipelineJob associated with the + // [TuningJob][google.cloud.aiplatform.v1.TuningJob]. Format: + // `projects/{project}/locations/{location}/pipelineJobs/{pipeline_job}`. + string pipeline_job = 18 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/PipelineJob" + } + ]; + // Customer-managed encryption key options for a TuningJob. If this is set, // then all resources created by the TuningJob will be encrypted with the // provided encryption key. @@ -173,6 +190,9 @@ message SupervisedTuningDatasetDistribution { // Output only. Sum of a given population of values. int64 sum = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Sum of a given population of values that are billable. + int64 billable_sum = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The minimum of the population values. double min = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -208,6 +228,10 @@ message SupervisedTuningDataStats { // Output only. Number of billable characters in the tuning dataset. int64 total_billable_character_count = 3 + [deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of billable tokens in the tuning dataset. + int64 total_billable_token_count = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Number of tuning steps for this Tuning Job. @@ -228,6 +252,96 @@ message SupervisedTuningDataStats { // Output only. Sample user messages in the training dataset uri. repeated Content user_dataset_examples = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The number of examples in the dataset that have been truncated by any + // amount. + int64 total_truncated_example_count = 10; + + // A partial sample of the indices (starting from 1) of the truncated + // examples. + repeated int64 truncated_example_indices = 11; +} + +// Distribution computed over a tuning dataset. +message DatasetDistribution { + // Dataset bucket used to create a histogram for the distribution given a + // population of values. + message DistributionBucket { + // Output only. Number of values in the bucket. + int64 count = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Left bound of the bucket. + double left = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Right bound of the bucket. + double right = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. Sum of a given population of values. + double sum = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The minimum of the population values. + double min = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The maximum of the population values. + double max = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The arithmetic mean of the values in the population. + double mean = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The median of the values in the population. + double median = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The 5th percentile of the values in the population. + double p5 = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The 95th percentile of the values in the population. + double p95 = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Defines the histogram bucket. + repeated DistributionBucket buckets = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Statistics computed over a tuning dataset. +message DatasetStats { + // Output only. Number of examples in the tuning dataset. + int64 tuning_dataset_example_count = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of tuning characters in the tuning dataset. + int64 total_tuning_character_count = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of billable characters in the tuning dataset. + int64 total_billable_character_count = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of tuning steps for this Tuning Job. + int64 tuning_step_count = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Dataset distributions for the user input tokens. + DatasetDistribution user_input_token_distribution = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Dataset distributions for the user output tokens. + optional DatasetDistribution user_output_token_distribution = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Dataset distributions for the messages per example. + DatasetDistribution user_message_per_example_distribution = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Sample user messages in the training dataset uri. + repeated Content user_dataset_examples = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Statistics computed for datasets used for distillation. +message DistillationDataStats { + // Output only. Statistics computed for the training dataset. + DatasetStats training_dataset_stats = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // The tuning data statistic values for @@ -236,6 +350,10 @@ message TuningDataStats { oneof tuning_data_stats { // The SFT Tuning data stats. SupervisedTuningDataStats supervised_tuning_data_stats = 1; + + // Output only. Statistics for distillation. + DistillationDataStats distillation_data_stats = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; } } @@ -270,7 +388,7 @@ message SupervisedHyperParameters { AdapterSize adapter_size = 3 [(google.api.field_behavior) = OPTIONAL]; } -// Tuning Spec for Supervised Tuning. +// Tuning Spec for Supervised Tuning for first party models. message SupervisedTuningSpec { // Required. Cloud Storage path to file containing training dataset for // tuning. The dataset must be formatted as a JSONL file. @@ -284,3 +402,93 @@ message SupervisedTuningSpec { SupervisedHyperParameters hyper_parameters = 3 [(google.api.field_behavior) = OPTIONAL]; } + +// Tuning Spec for Distillation. +message DistillationSpec { + // The teacher model that is being distilled from, e.g., "gemini-1.0-pro-002". + oneof teacher_model { + // The base teacher model that is being distilled, e.g., + // "gemini-1.0-pro-002". + string base_teacher_model = 5; + + // The resource name of the Tuned teacher model. Format: + // `projects/{project}/locations/{location}/models/{model}`. + string tuned_teacher_model_source = 6 [(google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Model" + }]; + } + + // Required. Cloud Storage path to file containing training dataset for + // tuning. The dataset must be formatted as a JSONL file. + string training_dataset_uri = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Cloud Storage path to file containing validation dataset for + // tuning. The dataset must be formatted as a JSONL file. + optional string validation_dataset_uri = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hyperparameters for Distillation. + DistillationHyperParameters hyper_parameters = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // The student model that is being tuned, e.g., "google/gemma-2b-1.1-it". + string student_model = 4; + + // Required. A path in a Cloud Storage bucket, which will be treated as the + // root output directory of the distillation pipeline. It is used by the + // system to generate the paths of output artifacts. + string pipeline_root_directory = 7 [(google.api.field_behavior) = REQUIRED]; +} + +// Hyperparameters for Distillation. +message DistillationHyperParameters { + // Optional. Number of complete passes the model makes over the entire + // training dataset during training. + optional int64 epoch_count = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Multiplier for adjusting the default learning rate. + optional double learning_rate_multiplier = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Adapter size for distillation. + SupervisedHyperParameters.AdapterSize adapter_size = 3 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Tuning spec for Partner models. +message PartnerModelTuningSpec { + // Required. Cloud Storage path to file containing training dataset for + // tuning. The dataset must be formatted as a JSONL file. + string training_dataset_uri = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Cloud Storage path to file containing validation dataset for + // tuning. The dataset must be formatted as a JSONL file. + string validation_dataset_uri = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Hyperparameters for tuning. The accepted hyper_parameters and their valid + // range of values will differ depending on the base model. + map hyper_parameters = 3; +} + +// TunedModel Reference for legacy model migration. +message TunedModelRef { + // The Tuned Model Reference for the model. + oneof tuned_model_ref { + // Support migration from model registry. + string tuned_model = 1 [(google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Model" + }]; + + // Support migration from tuning job list page, from gemini-1.0-pro-002 + // to 1.5 and above. + string tuning_job = 2 [(google.api.resource_reference) = { + type: "aiplatform.googleapis.com/TuningJob" + }]; + + // Support migration from tuning job list page, from bison model to gemini + // model. + string pipeline_job = 3 [(google.api.resource_reference) = { + type: "aiplatform.googleapis.com/PipelineJob" + }]; + } +} diff --git a/google/cloud/aiplatform/v1beta1/ui_pipeline_spec.proto b/google/cloud/aiplatform/v1beta1/ui_pipeline_spec.proto new file mode 100644 index 000000000..89e2aba9c --- /dev/null +++ b/google/cloud/aiplatform/v1beta1/ui_pipeline_spec.proto @@ -0,0 +1,85 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.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"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; +option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; +option java_multiple_files = true; +option java_outer_classname = "UiPipelineSpecProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; +option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; + +// The definition of a artifact type in MLMD. +message ArtifactTypeSchema { + oneof kind { + // The name of the type. The format of the title must be: + // `.`. + // Examples: + // - `aiplatform.Model` + // - `acme.CustomModel` + // When this field is set, the type must be pre-registered in the MLMD + // store. + string schema_title = 1; + + // Points to a YAML file stored on Cloud Storage describing the + // format. + // Deprecated. Use [PipelineArtifactTypeSchema.schema_title][] or + // [PipelineArtifactTypeSchema.instance_schema][] instead. + string schema_uri = 2 [deprecated = true]; + + // Contains a raw YAML string, describing the format of + // the properties of the type. + string instance_schema = 3; + } + + // The schema version of the artifact. If the value is not set, it defaults + // to the latest version in the system. + string schema_version = 4; +} + +// The definition of a runtime artifact. +message RuntimeArtifact { + // The name of an artifact. + string name = 1; + + // The type of the artifact. + ArtifactTypeSchema type = 2; + + // The URI of the artifact. + string uri = 3; + + // The properties of the artifact. + // Deprecated. Use + // [RuntimeArtifact.metadata][google.cloud.aiplatform.v1beta1.RuntimeArtifact.metadata] + // instead. + map<string, Value> properties = 4 [deprecated = true]; + + // The custom properties of the artifact. + // Deprecated. Use + // [RuntimeArtifact.metadata][google.cloud.aiplatform.v1beta1.RuntimeArtifact.metadata] + // instead. + map<string, Value> custom_properties = 5 [deprecated = true]; + + // Properties of the Artifact. + google.protobuf.Struct metadata = 6; +} diff --git a/google/cloud/aiplatform/v1beta1/vertex_rag_data.proto b/google/cloud/aiplatform/v1beta1/vertex_rag_data.proto index 42aae758e..cc23d8cbf 100644 --- a/google/cloud/aiplatform/v1beta1/vertex_rag_data.proto +++ b/google/cloud/aiplatform/v1beta1/vertex_rag_data.proto @@ -18,6 +18,7 @@ package google.cloud.aiplatform.v1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/api_auth.proto"; import "google/cloud/aiplatform/v1beta1/io.proto"; import "google/protobuf/timestamp.proto"; @@ -61,16 +62,173 @@ message RagEmbeddingModelConfig { string model_version_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } + // Configuration for sparse emebdding generation. + message SparseEmbeddingConfig { + // Message for BM25 parameters. + message Bm25 { + // Optional. Use multilingual tokenizer if set to true. + bool multilingual = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The parameter to control term frequency saturation. It + // determines the scaling between the matching term frequency and final + // score. k1 is in the range of [1.2, 3]. The default value is 1.2. + optional float k1 = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The parameter to control document length normalization. It + // determines how much the document length affects the final score. b is + // in the range of [0, 1]. The default value is 0.75. + optional float b = 3 [(google.api.field_behavior) = OPTIONAL]; + } + + // The model to use for sparse embedding generation. + oneof model { + // Use BM25 scoring algorithm. + Bm25 bm25 = 1; + } + } + + // Config for hybrid search. + message HybridSearchConfig { + // Optional. The configuration for sparse embedding generation. This field + // is optional the default behavior depends on the vector database choice on + // the RagCorpus. + SparseEmbeddingConfig sparse_embedding_config = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Required. The Vertex AI Prediction Endpoint that hosts the embedding + // model for dense embedding generations. + VertexPredictionEndpoint dense_embedding_model_prediction_endpoint = 2 + [(google.api.field_behavior) = REQUIRED]; + } + // The model config to use. oneof model_config { // The Vertex AI Prediction Endpoint that either refers to a publisher model // or an endpoint that is hosting a 1P fine-tuned text embedding model. // Endpoints hosting non-1P fine-tuned text embedding models are // currently not supported. + // This is used for dense vector search. VertexPredictionEndpoint vertex_prediction_endpoint = 1; + + // Configuration for hybrid search. + HybridSearchConfig hybrid_search_config = 2; } } +// Config for the Vector DB to use for RAG. +message RagVectorDbConfig { + // The config for the default RAG-managed Vector DB. + message RagManagedDb {} + + // The config for the Weaviate. + message Weaviate { + // Weaviate DB instance HTTP endpoint. e.g. 34.56.78.90:8080 + // Vertex RAG only supports HTTP connection to Weaviate. + // This value cannot be changed after it's set. + string http_endpoint = 1; + + // The corresponding collection this corpus maps to. + // This value cannot be changed after it's set. + string collection_name = 2; + } + + // The config for the Pinecone. + message Pinecone { + // Pinecone index name. + // This value cannot be changed after it's set. + string index_name = 1; + } + + // The config for the Vertex Feature Store. + message VertexFeatureStore { + // The resource name of the FeatureView. + // Format: + // `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}` + string feature_view_resource_name = 1; + } + + // The config for the Vertex Vector Search. + message VertexVectorSearch { + // The resource name of the Index Endpoint. + // Format: + // `projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}` + string index_endpoint = 1; + + // The resource name of the Index. + // Format: + // `projects/{project}/locations/{location}/indexes/{index}` + string index = 2; + } + + // The config for the Vector DB. + oneof vector_db { + // The config for the RAG-managed Vector DB. + RagManagedDb rag_managed_db = 1; + + // The config for the Weaviate. + Weaviate weaviate = 2; + + // The config for the Pinecone. + Pinecone pinecone = 3; + + // The config for the Vertex Feature Store. + VertexFeatureStore vertex_feature_store = 4; + + // The config for the Vertex Vector Search. + VertexVectorSearch vertex_vector_search = 6; + } + + // Authentication config for the chosen Vector DB. + ApiAuth api_auth = 5; +} + +// RagFile status. +message FileStatus { + // RagFile state. + enum State { + // RagFile state is unspecified. + STATE_UNSPECIFIED = 0; + + // RagFile resource has been created and indexed successfully. + ACTIVE = 1; + + // RagFile resource is in a problematic state. + // See `error_message` field for details. + ERROR = 2; + } + + // Output only. RagFile state. + State state = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Only when the `state` field is ERROR. + string error_status = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// RagCorpus status. +message CorpusStatus { + // RagCorpus life state. + enum State { + // This state is not supposed to happen. + UNKNOWN = 0; + + // RagCorpus resource entry is initialized, but hasn't done validation. + INITIALIZED = 1; + + // RagCorpus is provisioned successfully and is ready to serve. + ACTIVE = 2; + + // RagCorpus is in a problematic situation. + // See `error_message` field for details. + ERROR = 3; + } + + // Output only. RagCorpus life state. + State state = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Only when the `state` field is ERROR. + string error_status = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + // A RagCorpus is a RagFile container and a project can have multiple // RagCorpora. message RagCorpus { @@ -98,6 +256,12 @@ message RagCorpus { (google.api.field_behavior) = IMMUTABLE ]; + // Optional. Immutable. The Vector DB config of the RagCorpus. + RagVectorDbConfig rag_vector_db_config = 7 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = IMMUTABLE + ]; + // Output only. Timestamp when this RagCorpus was created. google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -105,6 +269,9 @@ message RagCorpus { // Output only. Timestamp when this RagCorpus was last updated. google.protobuf.Timestamp update_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. RagCorpus state. + CorpusStatus corpus_status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; } // A RagFile contains user data for chunking, embedding and indexing. @@ -144,6 +311,15 @@ message RagFile { // UploadRagFile request. DirectUploadSource direct_upload_source = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The RagFile is imported from a Slack channel. + SlackSource slack_source = 11; + + // The RagFile is imported from a Jira query. + JiraSource jira_source = 12; + + // The RagFile is imported from a SharePoint source. + SharePointSources share_point_sources = 14; } // Output only. The resource name of the RagFile. @@ -170,6 +346,9 @@ message RagFile { // Output only. Timestamp when this RagFile was last updated. google.protobuf.Timestamp update_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. State of the RagFile. + FileStatus file_status = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Specifies the size and overlap of chunks for RagFiles. @@ -181,6 +360,12 @@ message RagFileChunkingConfig { int32 chunk_overlap = 2; } +// Specifies the parsing config for RagFiles. +message RagFileParsingConfig { + // Whether to use advanced PDF parsing. + bool use_advanced_pdf_parsing = 2; +} + // Config for uploading RagFile. message UploadRagFileConfig { // Specifies the size and overlap of chunks after uploading RagFile. @@ -189,6 +374,7 @@ message UploadRagFileConfig { // Config for importing RagFiles. message ImportRagFilesConfig { + // The source of the import. oneof import_source { // Google Cloud Storage location. Supports importing individual files as // well as entire Google Cloud Storage directories. Sample formats: @@ -199,11 +385,37 @@ message ImportRagFilesConfig { // Google Drive location. Supports importing individual files as // well as Google Drive folders. GoogleDriveSource google_drive_source = 3; + + // Slack channels with their corresponding access tokens. + SlackSource slack_source = 6; + + // Jira queries with their corresponding authentication. + JiraSource jira_source = 7; + + // SharePoint sources. + SharePointSources share_point_sources = 13; + } + + // Optional. If provided, all partial failures are written to the sink. + oneof partial_failure_sink { + // The Cloud Storage path to write partial failures to. + GcsDestination partial_failure_gcs_sink = 11; + + // The BigQuery destination to write partial failures to. It should be a + // bigquery table resource name (e.g. + // "bq://projectId.bqDatasetId.bqTableId"). If the dataset id does not + // exist, it will be created. If the table does not exist, it will be + // created with the expected schema. If the table exists, the schema will be + // validated and data will be added to this existing table. + BigQueryDestination partial_failure_bigquery_sink = 12; } // Specifies the size and overlap of chunks after importing RagFiles. RagFileChunkingConfig rag_file_chunking_config = 4; + // Specifies the parsing config for RagFiles. + RagFileParsingConfig rag_file_parsing_config = 8; + // Optional. The max number of queries per minute that this job is allowed to // make to the embedding model specified on the corpus. This value is specific // to this job and not shared across other import jobs. Consult the Quotas diff --git a/google/cloud/aiplatform/v1beta1/vertex_rag_data_service.proto b/google/cloud/aiplatform/v1beta1/vertex_rag_data_service.proto index 7ded7ed20..7b28718df 100644 --- a/google/cloud/aiplatform/v1beta1/vertex_rag_data_service.proto +++ b/google/cloud/aiplatform/v1beta1/vertex_rag_data_service.proto @@ -54,6 +54,20 @@ service VertexRagDataService { }; } + // Updates a RagCorpus. + rpc UpdateRagCorpus(UpdateRagCorpusRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1beta1/{rag_corpus.name=projects/*/locations/*/ragCorpora/*}" + body: "rag_corpus" + }; + option (google.api.method_signature) = "rag_corpus"; + option (google.longrunning.operation_info) = { + response_type: "RagCorpus" + metadata_type: "UpdateRagCorpusOperationMetadata" + }; + } + // Gets a RagCorpus. rpc GetRagCorpus(GetRagCorpusRequest) returns (RagCorpus) { option (google.api.http) = { @@ -248,6 +262,7 @@ message UploadRagFileRequest { // Response message for // [VertexRagDataService.UploadRagFile][google.cloud.aiplatform.v1beta1.VertexRagDataService.UploadRagFile]. message UploadRagFileResponse { + // The result of the upload. oneof result { // The RagFile that had been uploaded into the RagCorpus. RagFile rag_file = 1; @@ -280,6 +295,16 @@ message ImportRagFilesRequest { // Response message for // [VertexRagDataService.ImportRagFiles][google.cloud.aiplatform.v1beta1.VertexRagDataService.ImportRagFiles]. message ImportRagFilesResponse { + // The location into which the partial failures were written. + oneof partial_failure_sink { + // The Google Cloud Storage path into which the partial failures were + // written. + string partial_failures_gcs_path = 4; + + // The BigQuery table into which the partial failures were written. + string partial_failures_bigquery_table = 5; + } + // The number of RagFiles that had been imported into the RagCorpus. int64 imported_rag_files_count = 1; @@ -363,6 +388,20 @@ message CreateRagCorpusOperationMetadata { GenericOperationMetadata generic_metadata = 1; } +// Request message for +// [VertexRagDataService.UpdateRagCorpus][google.cloud.aiplatform.v1beta1.VertexRagDataService.UpdateRagCorpus]. +message UpdateRagCorpusRequest { + // Required. The RagCorpus which replaces the resource on the server. + RagCorpus rag_corpus = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Runtime operation information for +// [VertexRagDataService.UpdateRagCorpus][google.cloud.aiplatform.v1beta1.VertexRagDataService.UpdateRagCorpus]. +message UpdateRagCorpusOperationMetadata { + // The operation generic information. + GenericOperationMetadata generic_metadata = 1; +} + // Runtime operation information for // [VertexRagDataService.ImportRagFiles][google.cloud.aiplatform.v1beta1.VertexRagDataService.ImportRagFiles]. message ImportRagFilesOperationMetadata { diff --git a/google/cloud/aiplatform/v1beta1/vertex_rag_service.proto b/google/cloud/aiplatform/v1beta1/vertex_rag_service.proto index 58fe6869e..e83db577d 100644 --- a/google/cloud/aiplatform/v1beta1/vertex_rag_service.proto +++ b/google/cloud/aiplatform/v1beta1/vertex_rag_service.proto @@ -48,6 +48,15 @@ service VertexRagService { // A query to retrieve relevant contexts. message RagQuery { + // Configurations for hybrid search results ranking. + message Ranking { + // Optional. Alpha value controls the weight between dense and sparse vector + // search results. The range is [0, 1], while 0 means sparse vector search + // only and 1 means dense vector search only. The default value is 0.5 which + // balances sparse and dense vector search equally. + optional float alpha = 1 [(google.api.field_behavior) = OPTIONAL]; + } + // The query to retrieve contexts. // Currently only text query is supported. oneof query { @@ -57,6 +66,9 @@ message RagQuery { // Optional. The number of contexts to retrieve. int32 similarity_top_k = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Configurations for hybrid search results ranking. + Ranking ranking = 4 [(google.api.field_behavior) = OPTIONAL]; } // Request message for @@ -132,8 +144,13 @@ message RagContexts { // The text chunk. string text = 2; - // The distance between the query vector and the context text vector. + // The distance between the query dense embedding vector and the context + // text vector. double distance = 3; + + // The distance between the query sparse embedding vector and the context + // text vector. + double sparse_distance = 4; } // All its contexts. diff --git a/google/cloud/alloydb/v1/BUILD.bazel b/google/cloud/alloydb/v1/BUILD.bazel index 2ae1864b5..ffba11e9a 100644 --- a/google/cloud/alloydb/v1/BUILD.bazel +++ b/google/cloud/alloydb/v1/BUILD.bazel @@ -9,18 +9,22 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "alloydb_proto", srcs = [ + "data_model.proto", "resources.proto", "service.proto", ], @@ -28,6 +32,7 @@ proto_library( "//google/api:annotations_proto", "//google/api:client_proto", "//google/api:field_behavior_proto", + "//google/api:field_info_proto", "//google/api:resource_proto", "//google/longrunning:operations_proto", "//google/rpc:status_proto", @@ -54,6 +59,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -120,6 +126,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -177,6 +184,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -217,6 +225,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -237,7 +246,9 @@ php_gapic_library( rest_numeric_enums = True, service_yaml = "alloydb_v1.yaml", transport = "grpc+rest", - deps = [":alloydb_php_proto"], + deps = [ + ":alloydb_php_proto", + ], ) # Open Source Packages @@ -252,6 +263,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -282,6 +294,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -331,6 +344,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -341,6 +355,7 @@ load( csharp_proto_library( name = "alloydb_csharp_proto", + extra_opts = [], deps = [":alloydb_proto"], ) @@ -357,6 +372,7 @@ csharp_gapic_library( grpc_service_config = "alloydb_v1_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "alloydb_v1.yaml", + transport = "grpc+rest", deps = [ ":alloydb_csharp_grpc", ":alloydb_csharp_proto", @@ -376,6 +392,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/google/cloud/alloydb/v1/data_model.proto b/google/cloud/alloydb/v1/data_model.proto new file mode 100644 index 000000000..6529fccb8 --- /dev/null +++ b/google/cloud/alloydb/v1/data_model.proto @@ -0,0 +1,62 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.alloydb.v1; + +option csharp_namespace = "Google.Cloud.AlloyDb.V1"; +option go_package = "cloud.google.com/go/alloydb/apiv1/alloydbpb;alloydbpb"; +option java_multiple_files = true; +option java_outer_classname = "DataModelProto"; +option java_package = "com.google.cloud.alloydb.v1"; +option php_namespace = "Google\\Cloud\\AlloyDb\\V1"; +option ruby_package = "Google::Cloud::AlloyDB::V1"; + +// SqlResult represents the result for the execution of a sql statement. +message SqlResult { + // List of columns included in the result. This also includes the data type + // of the column. + repeated SqlResultColumn columns = 1; + + // Rows returned by the SQL statement. + repeated SqlResultRow rows = 2; +} + +// Contains the name and datatype of a column in a SQL Result. +message SqlResultColumn { + // Name of the column. + string name = 1; + + // Datatype of the column as reported by the postgres driver. + // Common type names are "VARCHAR", "TEXT", "NVARCHAR", "DECIMAL", "BOOL", + // "INT", and "BIGINT". + string type = 2; +} + +// A single row from a sql result. +message SqlResultRow { + // List of values in a row of sql result. + repeated SqlResultValue values = 1; +} + +// A single value in a row from a sql result. +message SqlResultValue { + // The cell value represented in string format. + // Timestamps are converted to string using RFC3339Nano format. + optional string value = 1; + + // Set to true if cell value is null. + optional bool null_value = 2; +} diff --git a/google/cloud/alloydb/v1/resources.proto b/google/cloud/alloydb/v1/resources.proto index 5b7cf9750..424baceef 100644 --- a/google/cloud/alloydb/v1/resources.proto +++ b/google/cloud/alloydb/v1/resources.proto @@ -17,6 +17,7 @@ syntax = "proto3"; package google.cloud.alloydb.v1; import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; import "google/api/resource.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; @@ -83,6 +84,27 @@ enum DatabaseVersion { // The database version is Postgres 14. POSTGRES_14 = 2; + + // The database version is Postgres 15. + POSTGRES_15 = 3; + + // The database version is Postgres 16. + POSTGRES_16 = 4; +} + +// Subscription_type added to distinguish between Standard and Trial +// subscriptions. By default, a subscription type is considered STANDARD unless +// explicitly specified. +enum SubscriptionType { + // This is an unknown subscription type. By default, the subscription type is + // STANDARD. + SUBSCRIPTION_TYPE_UNSPECIFIED = 0; + + // Standard subscription. + STANDARD = 1; + + // Trial subscription. + TRIAL = 2; } // The username/password for a database user. Used for specifying initial @@ -162,7 +184,7 @@ message EncryptionInfo { message SslConfig { // SSL mode options. enum SslMode { - // SSL mode not specified. Defaults to ENCRYPTED_ONLY. + // SSL mode is not specified. Defaults to ENCRYPTED_ONLY. SSL_MODE_UNSPECIFIED = 0; // SSL connections are optional. CA verification not enforced. @@ -174,7 +196,7 @@ message SslConfig { SSL_MODE_REQUIRE = 2 [deprecated = true]; // SSL connections are required. CA verification enforced. - // Clients must have certificates signed by a Cluster CA, e.g. via + // Clients must have certificates signed by a Cluster CA, for example, using // GenerateClientCertificate. SSL_MODE_VERIFY_CA = 3 [deprecated = true]; @@ -371,6 +393,33 @@ message ContinuousBackupSource { [(google.api.field_behavior) = REQUIRED]; } +// MaintenanceUpdatePolicy defines the policy for system updates. +message MaintenanceUpdatePolicy { + // MaintenanceWindow specifies a preferred day and time for maintenance. + message MaintenanceWindow { + // Preferred day of the week for maintenance, e.g. MONDAY, TUESDAY, etc. + google.type.DayOfWeek day = 1; + + // Preferred time to start the maintenance operation on the specified day. + // Maintenance will start within 1 hour of this time. + google.type.TimeOfDay start_time = 2; + } + + // Preferred windows to perform maintenance. Currently limited to 1. + repeated MaintenanceWindow maintenance_windows = 1; +} + +// MaintenanceSchedule stores the maintenance schedule generated from +// the MaintenanceUpdatePolicy, once a maintenance rollout is triggered, if +// MaintenanceWindow is set, and if there is no conflicting DenyPeriod. +// The schedule is cleared once the update takes place. This field cannot be +// manually changed; modify the MaintenanceUpdatePolicy instead. +message MaintenanceSchedule { + // Output only. The scheduled start time for the maintenance. + google.protobuf.Timestamp start_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + // A cluster is a collection of regional AlloyDB resources. It can include a // primary instance and one or more read pool instances. // All cluster resources share a storage layer, which scales as needed. @@ -378,19 +427,21 @@ message Cluster { option (google.api.resource) = { type: "alloydb.googleapis.com/Cluster" pattern: "projects/{project}/locations/{location}/clusters/{cluster}" + plural: "clusters" + singular: "cluster" style: DECLARATIVE_FRIENDLY }; // Metadata related to network configuration. message NetworkConfig { - // Required. The resource link for the VPC network in which cluster + // Optional. The resource link for the VPC network in which cluster // resources are created and from which they are accessible via Private IP. // The network must belong to the same project as the cluster. It is // specified in the form: - // "projects/{project_number}/global/networks/{network_id}". This is + // `projects/{project_number}/global/networks/{network_id}`. This is // required to create a cluster. string network = 1 [ - (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = OPTIONAL, (google.api.resource_reference) = { type: "compute.googleapis.com/Network" } @@ -424,6 +475,28 @@ message Cluster { [(google.api.field_behavior) = OUTPUT_ONLY]; } + // PscConfig contains PSC related configuration at a cluster level. + message PscConfig { + // Optional. Create an instance that allows connections from Private Service + // Connect endpoints to the instance. + bool psc_enabled = 1 [(google.api.field_behavior) = OPTIONAL]; + } + + // Contains information and all metadata related to TRIAL clusters. + message TrialMetadata { + // start time of the trial cluster. + google.protobuf.Timestamp start_time = 1; + + // End time of the trial cluster. + google.protobuf.Timestamp end_time = 2; + + // Upgrade time of trial cluster to Standard cluster. + google.protobuf.Timestamp upgrade_time = 3; + + // grace end time of the cluster. + google.protobuf.Timestamp grace_end_time = 4; + } + // Cluster State enum State { // The state of the cluster is unknown. @@ -539,7 +612,7 @@ message Cluster { // Required. The resource link for the VPC network in which cluster resources // are created and from which they are accessible via Private IP. The network // must belong to the same project as the cluster. It is specified in the - // form: "projects/{project}/global/networks/{network_id}". This is required + // form: `projects/{project}/global/networks/{network_id}`. This is required // to create a cluster. Deprecated, use network_config.network instead. string network = 10 [ deprecated = true, @@ -603,6 +676,42 @@ message Cluster { // Output only. Cross Region replication config specific to PRIMARY cluster. PrimaryConfig primary_config = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The configuration for Private Service Connect (PSC) for the + // cluster. + PscConfig psc_config = 31 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The maintenance update policy determines when to allow or deny + // updates. + MaintenanceUpdatePolicy maintenance_update_policy = 32 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The maintenance schedule for the cluster, generated for a + // specific rollout if a maintenance window is set. + MaintenanceSchedule maintenance_schedule = 37 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Subscription type of the cluster. + SubscriptionType subscription_type = 38 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Metadata for free trial clusters + TrialMetadata trial_metadata = 39 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Input only. Immutable. Tag keys/values directly bound to this + // resource. For example: + // ``` + // "123/environment": "production", + // "123/costCenter": "marketing" + // ``` + map<string, string> tags = 41 [ + (google.api.field_behavior) = INPUT_ONLY, + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = OPTIONAL + ]; } // An Instance is a computing unit that an end customer can connect to. @@ -611,6 +720,8 @@ message Instance { option (google.api.resource) = { type: "alloydb.googleapis.com/Instance" pattern: "projects/{project}/locations/{location}/clusters/{cluster}/instances/{instance}" + plural: "instances" + singular: "instance" style: DECLARATIVE_FRIENDLY }; @@ -672,10 +783,50 @@ message Instance { // connections to the database. bool require_connectors = 1 [(google.api.field_behavior) = OPTIONAL]; - // Optional. SSL config option for this instance. + // Optional. SSL configuration option for this instance. SslConfig ssl_config = 2 [(google.api.field_behavior) = OPTIONAL]; } + // PscInstanceConfig contains PSC related configuration at an + // instance level. + message PscInstanceConfig { + // Output only. The service attachment created when Private + // Service Connect (PSC) is enabled for the instance. + // The name of the resource will be in the format of + // `projects/<alloydb-tenant-project-number>/regions/<region-name>/serviceAttachments/<service-attachment-name>` + string service_attachment_link = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. List of consumer projects that are allowed to create + // PSC endpoints to service-attachments to this instance. + repeated string allowed_consumer_projects = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The DNS name of the instance for PSC connectivity. + // Name convention: <uid>.<uid>.<region>.alloydb-psc.goog + string psc_dns_name = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Metadata related to instance-level network configuration. + message InstanceNetworkConfig { + // AuthorizedNetwork contains metadata for an authorized network. + message AuthorizedNetwork { + // CIDR range for one authorzied network of the instance. + string cidr_range = 1 [(google.api.field_info).format = IPV4]; + } + + // Optional. A list of external network authorized to access this instance. + repeated AuthorizedNetwork authorized_external_networks = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Enabling public ip for the instance. + bool enable_public_ip = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Enabling an outbound public IP address to support a database + // server sending requests out into the internet. + bool enable_outbound_public_ip = 3 [(google.api.field_behavior) = OPTIONAL]; + } + // Instance State enum State { // The state of the instance is unknown. @@ -843,6 +994,14 @@ message Instance { // This is the connection endpoint for an end-user application. string ip_address = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The public IP addresses for the Instance. This is available + // ONLY when enable_public_ip is set. This is the connection endpoint for an + // end-user application. + string public_ip_address = 27 [ + (google.api.field_info).format = IPV4, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + // Output only. Reconciling (https://google.aip.dev/128#reconciliation). // Set to true if the current state of Instance does not match the user's // intended state, and the service is actively updating the resource to @@ -861,6 +1020,24 @@ message Instance { // Optional. Client connection specific configurations ClientConnectionConfig client_connection_config = 23 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The configuration for Private Service Connect (PSC) for the + // instance. + PscInstanceConfig psc_instance_config = 28 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Instance-level network configuration. + InstanceNetworkConfig network_config = 29 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. All outbound public IP addresses configured for the instance. + repeated string outbound_public_ip_addresses = 34 [ + (google.api.field_info).format = IPV4, + (google.api.field_behavior) = OUTPUT_ONLY + ]; } // ConnectionInfo singleton resource. @@ -869,6 +1046,8 @@ message ConnectionInfo { option (google.api.resource) = { type: "alloydb.googleapis.com/ConnectionInfo" pattern: "projects/{project}/locations/{location}/clusters/{cluster}/instances/{instance}/connectionInfo" + plural: "connectionInfos" + singular: "connectionInfo" }; // The name of the ConnectionInfo singleton resource, e.g.: @@ -881,6 +1060,14 @@ message ConnectionInfo { // is set). This is the connection endpoint for an end-user application. string ip_address = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The public IP addresses for the Instance. This is available + // ONLY when enable_public_ip is set. This is the connection endpoint for an + // end-user application. + string public_ip_address = 5 [ + (google.api.field_info).format = IPV4, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + // Output only. The unique ID of the Instance. string instance_uid = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -890,6 +1077,8 @@ message Backup { option (google.api.resource) = { type: "alloydb.googleapis.com/Backup" pattern: "projects/{project}/locations/{location}/backups/{backup}" + plural: "backups" + singular: "backup" style: DECLARATIVE_FRIENDLY }; @@ -1045,11 +1234,26 @@ message Backup { QuantityBasedExpiry expiry_quantity = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Reserved for future use. + bool satisfies_pzs = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The database engine major version of the cluster this backup // was created from. Any restored cluster created from this backup will have // the same database version. DatabaseVersion database_version = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Input only. Immutable. Tag keys/values directly bound to this + // resource. For example: + // ``` + // "123/environment": "production", + // "123/costCenter": "marketing" + // ``` + map<string, string> tags = 25 [ + (google.api.field_behavior) = INPUT_ONLY, + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = OPTIONAL + ]; } // SupportedDatabaseFlag gives general information about a database flag, @@ -1061,6 +1265,8 @@ message SupportedDatabaseFlag { option (google.api.resource) = { type: "alloydb.googleapis.com/SupportedDatabaseFlag" pattern: "projects/{project}/locations/{location}/flags/{flag}" + plural: "supportedDatabaseFlags" + singular: "supportedDatabaseFlag" }; // Restrictions on STRING type values @@ -1138,6 +1344,8 @@ message User { option (google.api.resource) = { type: "alloydb.googleapis.com/User" pattern: "projects/{project}/locations/{location}/clusters/{cluster}/users/{user}" + plural: "users" + singular: "user" style: DECLARATIVE_FRIENDLY }; @@ -1167,4 +1375,33 @@ message User { // Optional. Type of this user. UserType user_type = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Input only. If the user already exists and it has additional roles, keep + // them granted. + bool keep_extra_roles = 6 [(google.api.field_behavior) = INPUT_ONLY]; +} + +// Message describing Database object. +message Database { + option (google.api.resource) = { + type: "alloydb.googleapis.com/Database" + pattern: "projects/{project}/locations/{location}/clusters/{cluster}/databases/{database}" + plural: "databases" + singular: "database" + style: DECLARATIVE_FRIENDLY + }; + + // Identifier. Name of the resource in the form of + // `projects/{project}/locations/{location}/clusters/{cluster}/databases/{database}`. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. Charset for the database. + // This field can contain any PostgreSQL supported charset name. + // Example values include "UTF8", "SQL_ASCII", etc. + string charset = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Collation for the database. + // Name of the custom or native collation for postgres. + // Example values include "C", "POSIX", etc + string collation = 3 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/google/cloud/alloydb/v1/service.proto b/google/cloud/alloydb/v1/service.proto index a3eba091f..ab73dc5cc 100644 --- a/google/cloud/alloydb/v1/service.proto +++ b/google/cloud/alloydb/v1/service.proto @@ -19,7 +19,9 @@ package google.cloud.alloydb.v1; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; import "google/api/resource.proto"; +import "google/cloud/alloydb/v1/data_model.proto"; import "google/cloud/alloydb/v1/resources.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/duration.proto"; @@ -116,6 +118,22 @@ service AlloyDBAdmin { }; } + // Switches the roles of PRIMARY and SECONDARY clusters without any data loss. + // This promotes the SECONDARY cluster to PRIMARY and sets up the original + // PRIMARY cluster to replicate from this newly promoted cluster. + rpc SwitchoverCluster(SwitchoverClusterRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/clusters/*}:switchover" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "Cluster" + metadata_type: "OperationMetadata" + }; + } + // Creates a new Cluster in a given project and location, with a volume // restored from the provided source, either a backup ID or a point-in-time // and a source cluster. @@ -284,6 +302,16 @@ service AlloyDBAdmin { }; } + // Executes a SQL statement in a database inside an AlloyDB instance. + rpc ExecuteSql(ExecuteSqlRequest) returns (ExecuteSqlResponse) { + option (google.api.http) = { + post: "/v1/{instance=projects/*/locations/*/clusters/*/instances/*}:executeSql" + body: "*" + }; + option (google.api.method_signature) = + "instance,database,user,sql_statement,password"; + } + // Lists Backups in a given project and location. rpc ListBackups(ListBackupsRequest) returns (ListBackupsResponse) { option (google.api.http) = { @@ -410,6 +438,14 @@ service AlloyDBAdmin { }; option (google.api.method_signature) = "name"; } + + // Lists Databases in a given project and location. + rpc ListDatabases(ListDatabasesRequest) returns (ListDatabasesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/clusters/*}/databases" + }; + option (google.api.method_signature) = "parent"; + } } // Message for requesting list of Clusters @@ -482,23 +518,23 @@ message CreateSecondaryClusterRequest { Cluster cluster = 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. + // request ID so that if you must retry your request, the server ignores the + // request if it has already been completed. The server guarantees that for at + // least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request - // ID, the server can check if original operation with the same request ID - // was received, and if so, will ignore the second request. This prevents + // ID, the server can check if the original operation with the same request ID + // was received, and if so, ignores the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is // not supported (00000000-0000-0000-0000-000000000000). string request_id = 5 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If set, performs request validation (e.g. permission checks and - // any other type of validation), but do not actually execute the create - // request. + // Optional. If set, performs request validation, for example, permission + // checks and any other type of validation, but does not actually execute the + // create request. bool validate_only = 6 [(google.api.field_behavior) = OPTIONAL]; } @@ -520,23 +556,23 @@ message CreateClusterRequest { Cluster cluster = 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. + // request ID so that if you must retry your request, the server ignores the + // request if it has already been completed. The server guarantees that for at + // least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request - // ID, the server can check if original operation with the same request ID - // was received, and if so, will ignore the second request. This prevents + // ID, the server can check if the original operation with the same request ID + // was received, and if so, ignores the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is // not supported (00000000-0000-0000-0000-000000000000). string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If set, performs request validation (e.g. permission checks and - // any other type of validation), but do not actually execute the create - // request. + // Optional. If set, performs request validation, for example, permission + // checks and any other type of validation, but does not actually execute the + // create request. bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL]; } @@ -554,23 +590,23 @@ message UpdateClusterRequest { Cluster cluster = 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. + // request ID so that if you must retry your request, the server ignores the + // request if it has already been completed. The server guarantees that for at + // least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request - // ID, the server can check if original operation with the same request ID - // was received, and if so, will ignore the second request. This prevents + // ID, the server can check if the original operation with the same request ID + // was received, and if so, ignores the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is // not supported (00000000-0000-0000-0000-000000000000). string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If set, performs request validation (e.g. permission checks and - // any other type of validation), but do not actually execute the update - // request. + // Optional. If set, performs request validation, for example, permission + // checks and any other type of validation, but does not actually execute the + // create request. bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. If set to true, update succeeds even if cluster is not found. In @@ -588,14 +624,14 @@ message DeleteClusterRequest { ]; // 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. + // request ID so that if you must retry your request, the server ignores the + // request if it has already been completed. The server guarantees that for at + // least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request - // ID, the server can check if original operation with the same request ID - // was received, and if so, will ignore the second request. This prevents + // ID, the server can check if the original operation with the same request ID + // was received, and if so, ignores the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is @@ -607,14 +643,45 @@ message DeleteClusterRequest { // deletion will be blocked and an ABORTED error will be returned. string etag = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If set, performs request validation (e.g. permission checks and - // any other type of validation), but do not actually execute the delete. + // Optional. If set, performs request validation, for example, permission + // checks and any other type of validation, but does not actually execute the + // create request. bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. Whether to cascade delete child instances for given cluster. bool force = 5 [(google.api.field_behavior) = OPTIONAL]; } +// Message for switching over to a cluster +message SwitchoverClusterRequest { + // Required. The name of the resource. For the required format, see the + // comment on the Cluster.name field + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "alloydb.googleapis.com/Cluster" } + ]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server ignores the + // request if it has already been completed. The server guarantees that for at + // least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if the original operation with the same request ID + // was received, and if so, ignores the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set, performs request validation, for example, permission + // checks and any other type of validation, but does not actually execute the + // create request. + bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL]; +} + // Message for promoting a Cluster message PromoteClusterRequest { // Required. The name of the resource. For the required format, see the @@ -625,9 +692,9 @@ message PromoteClusterRequest { ]; // 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. + // request ID so that if you must retry your request, the server ignores the + // request if it has already been completed. The server guarantees that for at + // least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request @@ -644,8 +711,9 @@ message PromoteClusterRequest { // deletion will be blocked and an ABORTED error will be returned. string etag = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If set, performs request validation (e.g. permission checks and - // any other type of validation), but do not actually execute the delete. + // Optional. If set, performs request validation, for example, permission + // checks and any other type of validation, but does not actually execute the + // create request. bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL]; } @@ -679,23 +747,23 @@ message RestoreClusterRequest { Cluster cluster = 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. + // request ID so that if you must retry your request, the server ignores the + // request if it has already been completed. The server guarantees that for at + // least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request - // ID, the server can check if original operation with the same request ID - // was received, and if so, will ignore the second request. This prevents + // ID, the server can check if the original operation with the same request ID + // was received, and if so, ignores the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is // not supported (00000000-0000-0000-0000-000000000000). string request_id = 5 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If set, performs request validation (e.g. permission checks and - // any other type of validation), but do not actually execute the import - // request. + // Optional. If set, performs request validation, for example, permission + // checks and any other type of validation, but does not actually execute the + // create request. bool validate_only = 6 [(google.api.field_behavior) = OPTIONAL]; } @@ -773,23 +841,23 @@ message CreateInstanceRequest { Instance instance = 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. + // request ID so that if you must retry your request, the server ignores the + // request if it has already been completed. The server guarantees that for at + // least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request - // ID, the server can check if original operation with the same request ID - // was received, and if so, will ignore the second request. This prevents + // ID, the server can check if the original operation with the same request ID + // was received, and if so, ignores the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is // not supported (00000000-0000-0000-0000-000000000000). string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If set, performs request validation (e.g. permission checks and - // any other type of validation), but do not actually execute the create - // request. + // Optional. If set, performs request validation, for example, permission + // checks and any other type of validation, but does not actually execute the + // create request. bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL]; } @@ -811,23 +879,23 @@ message CreateSecondaryInstanceRequest { Instance instance = 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. + // request ID so that if you must retry your request, the server ignores the + // request if it has already been completed. The server guarantees that for at + // least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request - // ID, the server can check if original operation with the same request ID - // was received, and if so, will ignore the second request. This prevents + // ID, the server can check if the original operation with the same request ID + // was received, and if so, ignores the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is // not supported (00000000-0000-0000-0000-000000000000). string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If set, performs request validation (e.g. permission checks and - // any other type of validation), but do not actually execute the create - // request. + // Optional. If set, performs request validation, for example, permission + // checks and any other type of validation, but does not actually execute the + // create request. bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL]; } @@ -853,14 +921,14 @@ message BatchCreateInstancesRequest { CreateInstanceRequests requests = 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. + // request ID so that if you must retry your request, the server ignores the + // request if it has already been completed. The server guarantees that for at + // least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request - // ID, the server can check if original operation with the same request ID - // was received, and if so, will ignore the second request. This prevents + // ID, the server can check if the original operation with the same request ID + // was received, and if so, ignores the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is @@ -916,7 +984,7 @@ message BatchCreateInstanceStatus { STATE_UNSPECIFIED = 0; // Instance is pending creation and has not yet been picked up for - // processsing in the backend. + // processing in the backend. PENDING_CREATE = 1; // The instance is active and running. @@ -972,23 +1040,23 @@ message UpdateInstanceRequest { Instance instance = 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. + // request ID so that if you must retry your request, the server ignores the + // request if it has already been completed. The server guarantees that for at + // least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request - // ID, the server can check if original operation with the same request ID - // was received, and if so, will ignore the second request. This prevents + // ID, the server can check if the original operation with the same request ID + // was received, and if so, ignores the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is // not supported (00000000-0000-0000-0000-000000000000). string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If set, performs request validation (e.g. permission checks and - // any other type of validation), but do not actually execute the update - // request. + // Optional. If set, performs request validation, for example, permission + // checks and any other type of validation, but does not actually execute the + // create request. bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. If set to true, update succeeds even if instance is not found. In @@ -1008,14 +1076,14 @@ message DeleteInstanceRequest { ]; // 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. + // request ID so that if you must retry your request, the server ignores the + // request if it has already been completed. The server guarantees that for at + // least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request - // ID, the server can check if original operation with the same request ID - // was received, and if so, will ignore the second request. This prevents + // ID, the server can check if the original operation with the same request ID + // was received, and if so, ignores the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is @@ -1027,8 +1095,9 @@ message DeleteInstanceRequest { // deletion will be blocked and an ABORTED error will be returned. string etag = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If set, performs request validation (e.g. permission checks and - // any other type of validation), but do not actually execute the delete. + // Optional. If set, performs request validation, for example, permission + // checks and any other type of validation, but does not actually execute the + // create request. bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL]; } @@ -1044,22 +1113,23 @@ message FailoverInstanceRequest { ]; // 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. + // request ID so that if you must retry your request, the server ignores the + // request if it has already been completed. The server guarantees that for at + // least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request - // ID, the server can check if original operation with the same request ID - // was received, and if so, will ignore the second request. This prevents + // ID, the server can check if the original operation with the same request ID + // was received, and if so, ignores the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is // not supported (00000000-0000-0000-0000-000000000000). string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If set, performs request validation (e.g. permission checks and - // any other type of validation), but do not actually execute the failover. + // Optional. If set, performs request validation, for example, permission + // checks and any other type of validation, but does not actually execute the + // create request. bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL]; } @@ -1088,23 +1158,23 @@ message InjectFaultRequest { ]; // 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. + // request ID so that if you must retry your request, the server ignores the + // request if it has already been completed. The server guarantees that for at + // least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request - // ID, the server can check if original operation with the same request ID - // was received, and if so, will ignore the second request. This prevents + // ID, the server can check if the original operation with the same request ID + // was received, and if so, ignores the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is // not supported (00000000-0000-0000-0000-000000000000). string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If set, performs request validation (e.g. permission checks and - // any other type of validation), but do not actually execute the fault - // injection. + // Optional. If set, performs request validation, for example, permission + // checks and any other type of validation, but does not actually execute the + // create request. bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL]; } @@ -1119,23 +1189,113 @@ message RestartInstanceRequest { ]; // 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. + // request ID so that if you must retry your request, the server ignores the + // request if it has already been completed. The server guarantees that for at + // least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request - // ID, the server can check if original operation with the same request ID - // was received, and if so, will ignore the second request. This prevents + // ID, the server can check if the original operation with the same request ID + // was received, and if so, ignores the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is // not supported (00000000-0000-0000-0000-000000000000). string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If set, performs request validation (e.g. permission checks and - // any other type of validation), but do not actually execute the restart. + // Optional. If set, performs request validation, for example, permission + // checks and any other type of validation, but does not actually execute the + // create request. bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Full name of the nodes as obtained from INSTANCE_VIEW_FULL to + // restart upon. Applicable only to read instances. + repeated string node_ids = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for ExecuteSql rpc. +message ExecuteSqlRequest { + // Oneof field to support other credential mechanisms in future like + // SecretManager etc. + oneof user_credential { + // Optional. The database native user’s password. + string password = 5 [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. The instance where the SQL will be executed. For the required + // format, see the comment on the Instance.name field. + string instance = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "alloydb.googleapis.com/Instance" + } + ]; + + // Required. Name of the database where the query will be executed. + // Note - Value provided should be the same as expected from `SELECT + // current_database();` and NOT as a resource reference. + string database = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Database user to be used for executing the SQL. + // Note - Value provided should be the same as expected from + // `SELECT current_user;` and NOT as a resource reference. + string user = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. SQL statement to execute on database. Any valid statement is + // permitted, including DDL, DML, DQL statements. + string sql_statement = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Execute a SQL statement response. +message ExecuteSqlResponse { + // SqlResult represents the results for the execution of sql statements. + repeated SqlResult sql_results = 1; + + // Any additional metadata information regarding the execution of the sql + // statement. + ExecuteSqlMetadata metadata = 3; +} + +// Any additional metadata information regarding the execution of the SQL +message ExecuteSqlMetadata { + // Status contains all valid Status a SQL execution can end up in. + enum Status { + // The status is unknown. + STATUS_UNSPECIFIED = 0; + + // No error during SQL execution i.e. All SQL statements ran to completion. + // The "message" will be empty. + OK = 1; + + // Same as OK, except indicates that only partial results were + // returned. The "message" field will contain details on why results were + // truncated. + PARTIAL = 2; + + // Error during SQL execution. Atleast 1 SQL statement execution resulted in + // a error. Side effects of other statements are rolled back. The "message" + // field will contain human readable error given by Postgres of the first + // bad SQL statement. SQL execution errors don't constitute API errors as + // defined in https://google.aip.dev/193 but will be returned as part of + // this message. + ERROR = 3; + } + + // Message related to SQL execution. Marked as core content since it + // can potentially contain details related to the query or result set. This + // field can be used to convey messages such as "when the SQL result set + // exceeds the acceptable response size limits." + string message = 1; + + // Set to true if SQL returned a result set larger than the acceptable + // response size limits and the result was truncated. + bool partial_result = 2; + + // The time duration taken to execute the sql statement. + google.protobuf.Duration sql_statement_execution_duration = 3; + + // Status of SQL execution. + Status status = 4; } // Message for requesting list of Backups @@ -1200,14 +1360,14 @@ message CreateBackupRequest { Backup backup = 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. + // request ID so that if you must retry your request, the server ignores the + // request if it has already been completed. The server guarantees that for at + // least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request - // ID, the server can check if original operation with the same request ID - // was received, and if so, will ignore the second request. This prevents + // ID, the server can check if the original operation with the same request ID + // was received, and if so, ignores the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is @@ -1233,14 +1393,14 @@ message UpdateBackupRequest { Backup backup = 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. + // request ID so that if you must retry your request, the server ignores the + // request if it has already been completed. The server guarantees that for at + // least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request - // ID, the server can check if original operation with the same request ID - // was received, and if so, will ignore the second request. This prevents + // ID, the server can check if the original operation with the same request ID + // was received, and if so, ignores the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is @@ -1266,14 +1426,14 @@ message DeleteBackupRequest { ]; // 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. + // request ID so that if you must retry your request, the server ignores the + // request if it has already been completed. The server guarantees that for at + // least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request - // ID, the server can check if original operation with the same request ID - // was received, and if so, will ignore the second request. This prevents + // ID, the server can check if the original operation with the same request ID + // was received, and if so, ignores the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is @@ -1334,14 +1494,14 @@ message GenerateClientCertificateRequest { ]; // 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. + // request ID so that if you must retry your request, the server ignores the + // request if it has already been completed. The server guarantees that for at + // least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request - // ID, the server can check if original operation with the same request ID - // was received, and if so, will ignore the second request. This prevents + // ID, the server can check if the original operation with the same request ID + // was received, and if so, ignores the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is @@ -1388,14 +1548,14 @@ message GetConnectionInfoRequest { ]; // 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. + // request ID so that if you must retry your request, the server ignores the + // request if it has already been completed. The server guarantees that for at + // least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request - // ID, the server can check if original operation with the same request ID - // was received, and if so, will ignore the second request. This prevents + // ID, the server can check if the original operation with the same request ID + // was received, and if so, ignores the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is @@ -1503,14 +1663,14 @@ message CreateUserRequest { User user = 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. + // request ID so that if you must retry your request, the server ignores the + // request if it has already been completed. The server guarantees that for at + // least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request - // ID, the server can check if original operation with the same request ID - // was received, and if so, will ignore the second request. This prevents + // ID, the server can check if the original operation with the same request ID + // was received, and if so, ignores the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is @@ -1536,14 +1696,14 @@ message UpdateUserRequest { User user = 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. + // request ID so that if you must retry your request, the server ignores the + // request if it has already been completed. The server guarantees that for at + // least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request - // ID, the server can check if original operation with the same request ID - // was received, and if so, will ignore the second request. This prevents + // ID, the server can check if the original operation with the same request ID + // was received, and if so, ignores the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is @@ -1568,14 +1728,14 @@ message DeleteUserRequest { ]; // 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. + // request ID so that if you must retry your request, the server ignores the + // request if it has already been completed. The server guarantees that for at + // least 60 minutes since the first request. // // For example, consider a situation where you make an initial request and // the request times out. If you make the request again with the same request - // ID, the server can check if original operation with the same request ID - // was received, and if so, will ignore the second request. This prevents + // ID, the server can check if the original operation with the same request ID + // was received, and if so, ignores the second request. This prevents // clients from accidentally creating duplicate commitments. // // The request ID must be a valid UUID with the exception that zero UUID is @@ -1586,3 +1746,39 @@ message DeleteUserRequest { // execute it. bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL]; } + +// Message for requesting list of Databases. +message ListDatabasesRequest { + // Required. Parent value for ListDatabasesRequest. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "alloydb.googleapis.com/Database" + } + ]; + + // Optional. The maximum number of databases to return. The service may return + // fewer than this value. If unspecified, 2000 is the default page_size. The + // max value of page_size will be 4000, values above max will be coerced to + // max. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListDatabases` call. + // This should be provided to retrieve the subsequent page. + // This field is currently not supported, its value will be ignored if passed. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering results. + // This field is currently not supported, its value will be ignored if passed. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for response to listing Databases. +message ListDatabasesResponse { + // The list of databases + repeated Database databases = 1; + + // A token identifying the next page of results the server should return. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} diff --git a/google/cloud/alloydb/v1beta/resources.proto b/google/cloud/alloydb/v1beta/resources.proto index d6c3927f6..4fee0dc94 100644 --- a/google/cloud/alloydb/v1beta/resources.proto +++ b/google/cloud/alloydb/v1beta/resources.proto @@ -375,6 +375,33 @@ message ContinuousBackupSource { [(google.api.field_behavior) = REQUIRED]; } +// MaintenanceUpdatePolicy defines the policy for system updates. +message MaintenanceUpdatePolicy { + // MaintenanceWindow specifies a preferred day and time for maintenance. + message MaintenanceWindow { + // Preferred day of the week for maintenance, e.g. MONDAY, TUESDAY, etc. + google.type.DayOfWeek day = 1; + + // Preferred time to start the maintenance operation on the specified day. + // Maintenance will start within 1 hour of this time. + google.type.TimeOfDay start_time = 2; + } + + // Preferred windows to perform maintenance. Currently limited to 1. + repeated MaintenanceWindow maintenance_windows = 1; +} + +// MaintenanceSchedule stores the maintenance schedule generated from +// the MaintenanceUpdatePolicy, once a maintenance rollout is triggered, if +// MaintenanceWindow is set, and if there is no conflicting DenyPeriod. +// The schedule is cleared once the update takes place. This field cannot be +// manually changed; modify the MaintenanceUpdatePolicy instead. +message MaintenanceSchedule { + // Output only. The scheduled start time for the maintenance. + google.protobuf.Timestamp start_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + // A cluster is a collection of regional AlloyDB resources. It can include a // primary instance and one or more read pool instances. // All cluster resources share a storage layer, which scales as needed. @@ -391,7 +418,7 @@ message Cluster { // resources are created and from which they are accessible via Private IP. // The network must belong to the same project as the cluster. It is // specified in the form: - // "projects/{project_number}/global/networks/{network_id}". This is + // `projects/{project_number}/global/networks/{network_id}`. This is // required to create a cluster. string network = 1 [ (google.api.field_behavior) = OPTIONAL, @@ -543,7 +570,7 @@ message Cluster { // Required. The resource link for the VPC network in which cluster resources // are created and from which they are accessible via Private IP. The network // must belong to the same project as the cluster. It is specified in the - // form: "projects/{project}/global/networks/{network_id}". This is required + // form: `projects/{project}/global/networks/{network_id}`. This is required // to create a cluster. Deprecated, use network_config.network instead. string network = 10 [ deprecated = true, @@ -610,6 +637,16 @@ message Cluster { // Output only. Reserved for future use. bool satisfies_pzs = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The maintenance update policy determines when to allow or deny + // updates. + MaintenanceUpdatePolicy maintenance_update_policy = 32 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The maintenance schedule for the cluster, generated for a + // specific rollout if a maintenance window is set. + MaintenanceSchedule maintenance_schedule = 37 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // An Instance is a computing unit that an end customer can connect to. @@ -773,6 +810,10 @@ message Instance { // Optional. Enabling public ip for the instance. bool enable_public_ip = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Enabling an outbound public IP address to support a database + // server sending requests out into the internet. + bool enable_outbound_public_ip = 3 [(google.api.field_behavior) = OPTIONAL]; } // Instance State @@ -945,7 +986,10 @@ message Instance { // Output only. The public IP addresses for the Instance. This is available // ONLY when enable_public_ip is set. This is the connection endpoint for an // end-user application. - string public_ip_address = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; + string public_ip_address = 27 [ + (google.api.field_info).format = IPV4, + (google.api.field_behavior) = OUTPUT_ONLY + ]; // Output only. Reconciling (https://google.aip.dev/128#reconciliation). // Set to true if the current state of Instance does not match the user's @@ -983,6 +1027,12 @@ message Instance { // Optional. Instance level network configuration. InstanceNetworkConfig network_config = 29 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. All outbound public IP addresses configured for the instance. + repeated string outbound_public_ip_addresses = 34 [ + (google.api.field_info).format = IPV4, + (google.api.field_behavior) = OUTPUT_ONLY + ]; } // ConnectionInfo singleton resource. diff --git a/google/cloud/apigateway/v1/BUILD.bazel b/google/cloud/apigateway/v1/BUILD.bazel index c2ddcc1f2..e65d1889f 100644 --- a/google/cloud/apigateway/v1/BUILD.bazel +++ b/google/cloud/apigateway/v1/BUILD.bazel @@ -213,7 +213,7 @@ php_gapic_library( name = "apigateway_php_gapic", srcs = [":apigateway_proto_with_info"], grpc_service_config = "apigateway_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "apigateway_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/apigeeconnect/v1/BUILD.bazel b/google/cloud/apigeeconnect/v1/BUILD.bazel index 8412880d2..1aa091136 100644 --- a/google/cloud/apigeeconnect/v1/BUILD.bazel +++ b/google/cloud/apigeeconnect/v1/BUILD.bazel @@ -208,7 +208,7 @@ php_gapic_library( name = "apigeeconnect_php_gapic", srcs = [":apigeeconnect_proto_with_info"], grpc_service_config = "connection_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "apigeeconnect_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/apigeeregistry/v1/BUILD.bazel b/google/cloud/apigeeregistry/v1/BUILD.bazel index 257fff5bf..0bb45964c 100644 --- a/google/cloud/apigeeregistry/v1/BUILD.bazel +++ b/google/cloud/apigeeregistry/v1/BUILD.bazel @@ -234,7 +234,7 @@ php_gapic_library( name = "apigeeregistry_php_gapic", srcs = [":apigeeregistry_proto_with_info"], grpc_service_config = "apigeeregistry_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "apigeeregistry_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/apihub/BUILD.bazel b/google/cloud/apihub/BUILD.bazel new file mode 100644 index 000000000..2cb032fd1 --- /dev/null +++ b/google/cloud/apihub/BUILD.bazel @@ -0,0 +1,36 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-api_hub. + +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", +) + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +# Generates a Ruby wrapper client for apihub. +# 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 = "apihub_ruby_wrapper", + srcs = ["//google/cloud/apihub/v1:apihub_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-api_hub", + "ruby-cloud-wrapper-of=v1:0.0", + ], + service_yaml = "//google/cloud/apihub/v1:apihub_v1.yaml", + transport = "rest", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-api_hub-ruby", + deps = [ + ":apihub_ruby_wrapper", + ], +) diff --git a/google/cloud/apihub/v1/BUILD.bazel b/google/cloud/apihub/v1/BUILD.bazel new file mode 100644 index 000000000..64085881c --- /dev/null +++ b/google/cloud/apihub/v1/BUILD.bazel @@ -0,0 +1,412 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "apihub_proto", + srcs = [ + "apihub_service.proto", + "common_fields.proto", + "host_project_registration_service.proto", + "linting_service.proto", + "plugin_service.proto", + "provisioning_service.proto", + "runtime_project_attachment_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//:empty_proto", + "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "apihub_proto_with_info", + deps = [ + ":apihub_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load + +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "apihub_java_proto", + deps = [":apihub_proto"], +) + +java_grpc_library( + name = "apihub_java_grpc", + srcs = [":apihub_proto"], + deps = [":apihub_java_proto"], +) + +java_gapic_library( + name = "apihub_java_gapic", + srcs = [":apihub_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "apihub_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "apihub_v1.yaml", + test_deps = [ + "//google/cloud/location:location_java_grpc", + ":apihub_java_grpc", + ], + transport = "rest", + deps = [ + ":apihub_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + ], +) + +java_gapic_test( + name = "apihub_java_gapic_test_suite", + test_classes = [ + #"com.google.cloud.apihub.v1.ApiHubClientHttpJsonTest", + "com.google.cloud.apihub.v1.ApiHubClientTest", + #"com.google.cloud.apihub.v1.ApiHubDependenciesClientHttpJsonTest", + "com.google.cloud.apihub.v1.ApiHubDependenciesClientTest", + #"com.google.cloud.apihub.v1.ApiHubPluginClientHttpJsonTest", + "com.google.cloud.apihub.v1.ApiHubPluginClientTest", + #"com.google.cloud.apihub.v1.HostProjectRegistrationServiceClientHttpJsonTest", + "com.google.cloud.apihub.v1.HostProjectRegistrationServiceClientTest", + #"com.google.cloud.apihub.v1.LintingServiceClientHttpJsonTest", + "com.google.cloud.apihub.v1.LintingServiceClientTest", + #"com.google.cloud.apihub.v1.ProvisioningClientHttpJsonTest", + "com.google.cloud.apihub.v1.ProvisioningClientTest", + #"com.google.cloud.apihub.v1.RuntimeProjectAttachmentServiceClientHttpJsonTest", + "com.google.cloud.apihub.v1.RuntimeProjectAttachmentServiceClientTest", + ], + runtime_deps = [":apihub_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-apihub-v1-java", + transport = "rest", + deps = [ + ":apihub_java_gapic", + ":apihub_java_grpc", + ":apihub_java_proto", + ":apihub_proto", + ], + include_samples = True, +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "apihub_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/apihub/apiv1/apihubpb", + protos = [":apihub_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + ], +) + +go_gapic_library( + name = "apihub_go_gapic", + srcs = [":apihub_proto_with_info"], + grpc_service_config = "apihub_v1_grpc_service_config.json", + importpath = "cloud.google.com/go/apihub/apiv1;apihub", + metadata = True, + release_level = "beta", + rest_numeric_enums = True, + service_yaml = "apihub_v1.yaml", + transport = "rest", + deps = [ + ":apihub_go_proto", + "//google/cloud/location:location_go_proto", + "//google/longrunning:longrunning_go_proto", + "@com_google_cloud_go_longrunning//:go_default_library", + "@com_google_cloud_go_longrunning//autogen:go_default_library", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-apihub-v1-go", + deps = [ + ":apihub_go_gapic", + ":apihub_go_gapic_srcjar-metadata.srcjar", + ":apihub_go_gapic_srcjar-snippets.srcjar", + ":apihub_go_gapic_srcjar-test.srcjar", + ":apihub_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "apihub_py_gapic", + srcs = [":apihub_proto"], + grpc_service_config = "apihub_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "apihub_v1.yaml", + transport = "rest", + deps = [], +) + +py_test( + name = "apihub_py_gapic_test", + srcs = [ + "apihub_py_gapic_pytest.py", + "apihub_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":apihub_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "apihub-v1-py", + deps = [ + ":apihub_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + +php_proto_library( + name = "apihub_php_proto", + deps = [":apihub_proto"], +) + +php_gapic_library( + name = "apihub_php_gapic", + srcs = [":apihub_proto_with_info"], + grpc_service_config = "apihub_v1_grpc_service_config.json", + migration_mode = "NEW_SURFACE_ONLY", + rest_numeric_enums = True, + service_yaml = "apihub_v1.yaml", + transport = "rest", + deps = [ + ":apihub_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-apihub-v1-php", + deps = [ + ":apihub_php_gapic", + ":apihub_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "apihub_nodejs_gapic", + package_name = "@google-cloud/apihub", + src = ":apihub_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "apihub_v1_grpc_service_config.json", + package = "google.cloud.apihub.v1", + rest_numeric_enums = True, + service_yaml = "apihub_v1.yaml", + transport = "rest", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "apihub-v1-nodejs", + deps = [ + ":apihub_nodejs_gapic", + ":apihub_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "apihub_ruby_proto", + deps = [":apihub_proto"], +) + +ruby_grpc_library( + name = "apihub_ruby_grpc", + srcs = [":apihub_proto"], + deps = [":apihub_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "apihub_ruby_gapic", + srcs = [":apihub_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-api_hub-v1", + ], + grpc_service_config = "apihub_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "apihub_v1.yaml", + transport = "rest", + deps = [ + ":apihub_ruby_grpc", + ":apihub_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-apihub-v1-ruby", + deps = [ + ":apihub_ruby_gapic", + ":apihub_ruby_grpc", + ":apihub_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "apihub_csharp_proto", + extra_opts = [], + deps = [":apihub_proto"], +) + +csharp_grpc_library( + name = "apihub_csharp_grpc", + srcs = [":apihub_proto"], + deps = [":apihub_csharp_proto"], +) + +csharp_gapic_library( + name = "apihub_csharp_gapic", + srcs = [":apihub_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "apihub_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "apihub_v1.yaml", + transport = "rest", + deps = [ + ":apihub_csharp_grpc", + ":apihub_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-apihub-v1-csharp", + deps = [ + ":apihub_csharp_gapic", + ":apihub_csharp_grpc", + ":apihub_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "apihub_cc_proto", + deps = [":apihub_proto"], +) + +cc_grpc_library( + name = "apihub_cc_grpc", + srcs = [":apihub_proto"], + grpc_only = True, + deps = [":apihub_cc_proto"], +) diff --git a/google/cloud/apihub/v1/apihub_service.proto b/google/cloud/apihub/v1/apihub_service.proto new file mode 100644 index 000000000..bbc89cae3 --- /dev/null +++ b/google/cloud/apihub/v1/apihub_service.proto @@ -0,0 +1,1836 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.apihub.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/apihub/v1/common_fields.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.ApiHub.V1"; +option go_package = "cloud.google.com/go/apihub/apiv1/apihubpb;apihubpb"; +option java_multiple_files = true; +option java_outer_classname = "ApiHubServiceProto"; +option java_package = "com.google.cloud.apihub.v1"; +option php_namespace = "Google\\Cloud\\ApiHub\\V1"; +option ruby_package = "Google::Cloud::ApiHub::V1"; + +// This service provides all methods related to the API hub. +service ApiHub { + option (google.api.default_host) = "apihub.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Create an API resource in the API hub. + // Once an API resource is created, versions can be added to it. + 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"; + } + + // Get API resource details including the API versions contained in it. + rpc GetApi(GetApiRequest) returns (Api) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/apis/*}" + }; + option (google.api.method_signature) = "name"; + } + + // List API resources in the API hub. + rpc ListApis(ListApisRequest) returns (ListApisResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/apis" + }; + option (google.api.method_signature) = "parent"; + } + + // Update an API resource in the API hub. The following fields in the + // [API][] can be updated: + // + // * [display_name][google.cloud.apihub.v1.Api.display_name] + // * [description][google.cloud.apihub.v1.Api.description] + // * [owner][google.cloud.apihub.v1.Api.owner] + // * [documentation][google.cloud.apihub.v1.Api.documentation] + // * [target_user][google.cloud.apihub.v1.Api.target_user] + // * [team][google.cloud.apihub.v1.Api.team] + // * [business_unit][google.cloud.apihub.v1.Api.business_unit] + // * [maturity_level][google.cloud.apihub.v1.Api.maturity_level] + // * [attributes][google.cloud.apihub.v1.Api.attributes] + // + // The + // [update_mask][google.cloud.apihub.v1.UpdateApiRequest.update_mask] + // should be used to specify the fields being updated. + // + // Updating the owner field requires complete owner message + // and updates both owner and email fields. + 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"; + } + + // Delete an API resource in the API hub. API can only be deleted if all + // underlying versions are deleted. + rpc DeleteApi(DeleteApiRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/apis/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Create an API version for an API resource in the API hub. + rpc CreateVersion(CreateVersionRequest) returns (Version) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/apis/*}/versions" + body: "version" + }; + option (google.api.method_signature) = "parent,version,version_id"; + } + + // Get details about the API version of an API resource. This will include + // information about the specs and operations present in the API + // version as well as the deployments linked to it. + rpc GetVersion(GetVersionRequest) returns (Version) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/apis/*/versions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // List API versions of an API resource in the API hub. + rpc ListVersions(ListVersionsRequest) returns (ListVersionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/apis/*}/versions" + }; + option (google.api.method_signature) = "parent"; + } + + // Update API version. The following fields in the + // [version][google.cloud.apihub.v1.Version] can be updated currently: + // + // * [display_name][google.cloud.apihub.v1.Version.display_name] + // * [description][google.cloud.apihub.v1.Version.description] + // * [documentation][google.cloud.apihub.v1.Version.documentation] + // * [deployments][google.cloud.apihub.v1.Version.deployments] + // * [lifecycle][google.cloud.apihub.v1.Version.lifecycle] + // * [compliance][google.cloud.apihub.v1.Version.compliance] + // * [accreditation][google.cloud.apihub.v1.Version.accreditation] + // * [attributes][google.cloud.apihub.v1.Version.attributes] + // + // The + // [update_mask][google.cloud.apihub.v1.UpdateVersionRequest.update_mask] + // should be used to specify the fields being updated. + rpc UpdateVersion(UpdateVersionRequest) returns (Version) { + option (google.api.http) = { + patch: "/v1/{version.name=projects/*/locations/*/apis/*/versions/*}" + body: "version" + }; + option (google.api.method_signature) = "version,update_mask"; + } + + // Delete an API version. Version can only be deleted if all underlying specs, + // operations, definitions and linked deployments are deleted. + rpc DeleteVersion(DeleteVersionRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/apis/*/versions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Add a spec to an API version in the API hub. + // Multiple specs can be added to an API version. + // Note, while adding a spec, at least one of `contents` or `source_uri` must + // be provided. If `contents` is provided, then `spec_type` must also be + // provided. + // + // On adding a spec with contents to the version, the operations present in it + // will be added to the version.Note that the file contents in the spec should + // be of the same type as defined in the + // `projects/{project}/locations/{location}/attributes/system-spec-type` + // attribute associated with spec resource. Note that specs of various types + // can be uploaded, however parsing of details is supported for OpenAPI spec + // currently. + // + // In order to access the information parsed from the spec, use the + // [GetSpec][google.cloud.apihub.v1.ApiHub.GetSpec] method. + // In order to access the raw contents for a particular spec, use the + // [GetSpecContents][google.cloud.apihub.v1.ApiHub.GetSpecContents] method. + // In order to access the operations parsed from the spec, use the + // [ListAPIOperations][google.cloud.apihub.v1.ApiHub.ListApiOperations] + // method. + rpc CreateSpec(CreateSpecRequest) returns (Spec) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/apis/*/versions/*}/specs" + body: "spec" + }; + option (google.api.method_signature) = "parent,spec,spec_id"; + } + + // Get details about the information parsed from a spec. + // Note that this method does not return the raw spec contents. + // Use [GetSpecContents][google.cloud.apihub.v1.ApiHub.GetSpecContents] method + // to retrieve the same. + rpc GetSpec(GetSpecRequest) returns (Spec) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Get spec contents. + rpc GetSpecContents(GetSpecContentsRequest) returns (SpecContents) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}:contents" + }; + option (google.api.method_signature) = "name"; + } + + // List specs corresponding to a particular API resource. + rpc ListSpecs(ListSpecsRequest) returns (ListSpecsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/apis/*/versions/*}/specs" + }; + option (google.api.method_signature) = "parent"; + } + + // Update spec. The following fields in the + // [spec][google.cloud.apihub.v1.Spec] can be updated: + // + // * [display_name][google.cloud.apihub.v1.Spec.display_name] + // * [source_uri][google.cloud.apihub.v1.Spec.source_uri] + // * [lint_response][google.cloud.apihub.v1.Spec.lint_response] + // * [attributes][google.cloud.apihub.v1.Spec.attributes] + // * [contents][google.cloud.apihub.v1.Spec.contents] + // * [spec_type][google.cloud.apihub.v1.Spec.spec_type] + // + // In case of an OAS spec, updating spec contents can lead to: + // 1. Creation, deletion and update of operations. + // 2. Creation, deletion and update of definitions. + // 3. Update of other info parsed out from the new spec. + // + // In case of contents or source_uri being present in update mask, spec_type + // must also be present. Also, spec_type can not be present in update mask if + // contents or source_uri is not present. + // + // The + // [update_mask][google.cloud.apihub.v1.UpdateSpecRequest.update_mask] + // should be used to specify the fields being updated. + rpc UpdateSpec(UpdateSpecRequest) returns (Spec) { + option (google.api.http) = { + patch: "/v1/{spec.name=projects/*/locations/*/apis/*/versions/*/specs/*}" + body: "spec" + }; + option (google.api.method_signature) = "spec,update_mask"; + } + + // Delete a spec. + // Deleting a spec will also delete the associated operations from the + // version. + rpc DeleteSpec(DeleteSpecRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Get details about a particular operation in API version. + rpc GetApiOperation(GetApiOperationRequest) returns (ApiOperation) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/apis/*/versions/*/operations/*}" + }; + option (google.api.method_signature) = "name"; + } + + // List operations in an API version. + rpc ListApiOperations(ListApiOperationsRequest) + returns (ListApiOperationsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/apis/*/versions/*}/operations" + }; + option (google.api.method_signature) = "parent"; + } + + // Get details about a definition in an API version. + rpc GetDefinition(GetDefinitionRequest) returns (Definition) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/apis/*/versions/*/definitions/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Create a deployment resource in the API hub. + // Once a deployment resource is created, it can be associated with API + // versions. + rpc CreateDeployment(CreateDeploymentRequest) returns (Deployment) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/deployments" + body: "deployment" + }; + option (google.api.method_signature) = "parent,deployment,deployment_id"; + } + + // Get details about a deployment and the API versions linked to it. + rpc GetDeployment(GetDeploymentRequest) returns (Deployment) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/deployments/*}" + }; + option (google.api.method_signature) = "name"; + } + + // List deployment resources in the API hub. + rpc ListDeployments(ListDeploymentsRequest) + returns (ListDeploymentsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/deployments" + }; + option (google.api.method_signature) = "parent"; + } + + // Update a deployment resource in the API hub. The following fields in the + // [deployment resource][google.cloud.apihub.v1.Deployment] can be + // updated: + // + // * [display_name][google.cloud.apihub.v1.Deployment.display_name] + // * [description][google.cloud.apihub.v1.Deployment.description] + // * [documentation][google.cloud.apihub.v1.Deployment.documentation] + // * [deployment_type][google.cloud.apihub.v1.Deployment.deployment_type] + // * [resource_uri][google.cloud.apihub.v1.Deployment.resource_uri] + // * [endpoints][google.cloud.apihub.v1.Deployment.endpoints] + // * [slo][google.cloud.apihub.v1.Deployment.slo] + // * [environment][google.cloud.apihub.v1.Deployment.environment] + // * [attributes][google.cloud.apihub.v1.Deployment.attributes] + // + // The + // [update_mask][google.cloud.apihub.v1.UpdateDeploymentRequest.update_mask] + // should be used to specify the fields being updated. + rpc UpdateDeployment(UpdateDeploymentRequest) returns (Deployment) { + option (google.api.http) = { + patch: "/v1/{deployment.name=projects/*/locations/*/deployments/*}" + body: "deployment" + }; + option (google.api.method_signature) = "deployment,update_mask"; + } + + // Delete a deployment resource in the API hub. + rpc DeleteDeployment(DeleteDeploymentRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/deployments/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Create a user defined attribute. + // + // Certain pre defined attributes are already created by the API hub. These + // attributes will have type as `SYSTEM_DEFINED` and can be listed via + // [ListAttributes][google.cloud.apihub.v1.ApiHub.ListAttributes] method. + // Allowed values for the same can be updated via + // [UpdateAttribute][google.cloud.apihub.v1.ApiHub.UpdateAttribute] method. + rpc CreateAttribute(CreateAttributeRequest) returns (Attribute) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/attributes" + body: "attribute" + }; + option (google.api.method_signature) = "parent,attribute,attribute_id"; + } + + // Get details about the attribute. + rpc GetAttribute(GetAttributeRequest) returns (Attribute) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/attributes/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Update the attribute. The following fields in the + // [Attribute resource][google.cloud.apihub.v1.Attribute] can be updated: + // + // * [display_name][google.cloud.apihub.v1.Attribute.display_name] + // The display name can be updated for user defined attributes only. + // * [description][google.cloud.apihub.v1.Attribute.description] + // The description can be updated for user defined attributes only. + // * [allowed_values][google.cloud.apihub.v1.Attribute.allowed_values] + // To update the list of allowed values, clients need to use the fetched list + // of allowed values and add or remove values to or from the same list. + // The mutable allowed values can be updated for both user defined and System + // defined attributes. The immutable allowed values cannot be updated or + // deleted. The updated list of allowed values cannot be empty. If an allowed + // value that is already used by some resource's attribute is deleted, then + // the association between the resource and the attribute value will also be + // deleted. + // * [cardinality][google.cloud.apihub.v1.Attribute.cardinality] + // The cardinality can be updated for user defined attributes only. + // Cardinality can only be increased during an update. + // + // The + // [update_mask][google.cloud.apihub.v1.UpdateAttributeRequest.update_mask] + // should be used to specify the fields being updated. + rpc UpdateAttribute(UpdateAttributeRequest) returns (Attribute) { + option (google.api.http) = { + patch: "/v1/{attribute.name=projects/*/locations/*/attributes/*}" + body: "attribute" + }; + option (google.api.method_signature) = "attribute,update_mask"; + } + + // Delete an attribute. + // + // Note: System defined attributes cannot be deleted. All + // associations of the attribute being deleted with any API hub resource will + // also get deleted. + rpc DeleteAttribute(DeleteAttributeRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/attributes/*}" + }; + option (google.api.method_signature) = "name"; + } + + // List all attributes. + rpc ListAttributes(ListAttributesRequest) returns (ListAttributesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/attributes" + }; + option (google.api.method_signature) = "parent"; + } + + // Search across API-Hub resources. + rpc SearchResources(SearchResourcesRequest) + returns (SearchResourcesResponse) { + option (google.api.http) = { + post: "/v1/{location=projects/*/locations/*}:searchResources" + body: "*" + }; + option (google.api.method_signature) = "location,query"; + } + + // Create an External API resource in the API hub. + rpc CreateExternalApi(CreateExternalApiRequest) returns (ExternalApi) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/externalApis" + body: "external_api" + }; + option (google.api.method_signature) = + "parent,external_api,external_api_id"; + } + + // Get details about an External API resource in the API hub. + rpc GetExternalApi(GetExternalApiRequest) returns (ExternalApi) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/externalApis/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Update an External API resource in the API hub. The following fields can be + // updated: + // + // * [display_name][google.cloud.apihub.v1.ExternalApi.display_name] + // * [description][google.cloud.apihub.v1.ExternalApi.description] + // * [documentation][google.cloud.apihub.v1.ExternalApi.documentation] + // * [endpoints][google.cloud.apihub.v1.ExternalApi.endpoints] + // * [paths][google.cloud.apihub.v1.ExternalApi.paths] + // + // The + // [update_mask][google.cloud.apihub.v1.UpdateExternalApiRequest.update_mask] + // should be used to specify the fields being updated. + rpc UpdateExternalApi(UpdateExternalApiRequest) returns (ExternalApi) { + option (google.api.http) = { + patch: "/v1/{external_api.name=projects/*/locations/*/externalApis/*}" + body: "external_api" + }; + option (google.api.method_signature) = "external_api,update_mask"; + } + + // Delete an External API resource in the API hub. + rpc DeleteExternalApi(DeleteExternalApiRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/externalApis/*}" + }; + option (google.api.method_signature) = "name"; + } + + // List External API resources in the API hub. + rpc ListExternalApis(ListExternalApisRequest) + returns (ListExternalApisResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/externalApis" + }; + option (google.api.method_signature) = "parent"; + } +} + +// This service provides methods for various operations related to a +// [Dependency][google.cloud.apihub.v1.Dependency] in the API hub. +service ApiHubDependencies { + option (google.api.default_host) = "apihub.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Create a dependency between two entities in the API hub. + rpc CreateDependency(CreateDependencyRequest) returns (Dependency) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/dependencies" + body: "dependency" + }; + option (google.api.method_signature) = "parent,dependency,dependency_id"; + } + + // Get details about a dependency resource in the API hub. + rpc GetDependency(GetDependencyRequest) returns (Dependency) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/dependencies/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Update a dependency based on the + // [update_mask][google.cloud.apihub.v1.UpdateDependencyRequest.update_mask] + // provided in the request. + // + // The following fields in the [dependency][google.cloud.apihub.v1.Dependency] + // can be updated: + // * [description][google.cloud.apihub.v1.Dependency.description] + rpc UpdateDependency(UpdateDependencyRequest) returns (Dependency) { + option (google.api.http) = { + patch: "/v1/{dependency.name=projects/*/locations/*/dependencies/*}" + body: "dependency" + }; + option (google.api.method_signature) = "dependency,update_mask"; + } + + // Delete the dependency resource. + rpc DeleteDependency(DeleteDependencyRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/dependencies/*}" + }; + option (google.api.method_signature) = "name"; + } + + // List dependencies based on the provided filter and pagination parameters. + rpc ListDependencies(ListDependenciesRequest) + returns (ListDependenciesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/dependencies" + }; + option (google.api.method_signature) = "parent"; + } +} + +// The [CreateApi][google.cloud.apihub.v1.ApiHub.CreateApi] method's request. +message CreateApiRequest { + // Required. The parent resource for the API resource. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apihub.googleapis.com/Api" + } + ]; + + // Optional. The ID to use for the API resource, which will become the final + // component of the API's resource name. This field is optional. + // + // * If provided, the same will be used. The service will throw an error if + // the specified id is already used by another API resource in the API hub. + // * If not provided, a system generated id will be used. + // + // This value should be 4-500 characters, and valid characters + // are /[a-z][A-Z][0-9]-_/. + string api_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The API resource to create. + Api api = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// The [GetApi][google.cloud.apihub.v1.ApiHub.GetApi] method's request. +message GetApiRequest { + // Required. The name of the API resource to retrieve. + // Format: `projects/{project}/locations/{location}/apis/{api}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "apihub.googleapis.com/Api" } + ]; +} + +// The [UpdateApi][google.cloud.apihub.v1.ApiHub.UpdateApi] method's request. +message UpdateApiRequest { + // Required. The API resource to update. + // + // The API resource's `name` field is used to identify the API resource to + // update. + // Format: `projects/{project}/locations/{location}/apis/{api}` + Api api = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of fields to update. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// The [DeleteApi][google.cloud.apihub.v1.ApiHub.DeleteApi] method's request. +message DeleteApiRequest { + // Required. The name of the API resource to delete. + // Format: `projects/{project}/locations/{location}/apis/{api}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "apihub.googleapis.com/Api" } + ]; + + // Optional. If set to true, any versions from this API will also be deleted. + // Otherwise, the request will only work if the API has no versions. + bool force = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// The [ListApis][google.cloud.apihub.v1.ApiHub.ListApis] method's request. +message ListApisRequest { + // Required. The parent, which owns this collection of API resources. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apihub.googleapis.com/Api" + } + ]; + + // Optional. An expression that filters the list of ApiResources. + // + // A filter expression consists of a field name, a comparison + // operator, and a value for filtering. The value must be a string. The + // comparison operator must be one of: `<`, `>`, `:` or `=`. Filters are not + // case sensitive. + // + // The following fields in the `ApiResource` are eligible for filtering: + // + // * `owner.email` - The email of the team which owns the ApiResource. + // Allowed comparison operators: `=`. + // * `create_time` - The time at which the ApiResource was created. The + // value should be in the (RFC3339)[https://tools.ietf.org/html/rfc3339] + // format. Allowed comparison operators: `>` and `<`. + // * `display_name` - The display name of the ApiResource. Allowed + // comparison operators: `=`. + // * `target_user.enum_values.values.id` - The allowed value id of the + // target users attribute associated with the ApiResource. Allowed + // comparison operator is `:`. + // * `target_user.enum_values.values.display_name` - The allowed value + // display name of the target users attribute associated with the + // ApiResource. Allowed comparison operator is `:`. + // * `team.enum_values.values.id` - The allowed value id of the team + // attribute associated with the ApiResource. Allowed comparison operator is + // `:`. + // * `team.enum_values.values.display_name` - The allowed value display name + // of the team attribute associated with the ApiResource. Allowed comparison + // operator is `:`. + // * `business_unit.enum_values.values.id` - The allowed value id of the + // business unit attribute associated with the ApiResource. Allowed + // comparison operator is `:`. + // * `business_unit.enum_values.values.display_name` - The allowed value + // display name of the business unit attribute associated with the + // ApiResource. Allowed comparison operator is `:`. + // * `maturity_level.enum_values.values.id` - The allowed value id of the + // maturity level attribute associated with the ApiResource. Allowed + // comparison operator is `:`. + // * `maturity_level.enum_values.values.display_name` - The allowed value + // display name of the maturity level attribute associated with the + // ApiResource. Allowed comparison operator is `:`. + // * `api_style.enum_values.values.id` - The allowed value id of the + // api style attribute associated with the ApiResource. Allowed + // comparison operator is `:`. + // * `api_style.enum_values.values.display_name` - The allowed value display + // name of the api style attribute associated with the ApiResource. Allowed + // comparison operator is `:`. + // + // Expressions are combined with either `AND` logic operator or `OR` logical + // operator but not both of them together i.e. only one of the `AND` or `OR` + // operator can be used throughout the filter string and both the operators + // cannot be used together. No other logical operators are supported. At most + // three filter fields are allowed in the filter string and if provided + // more than that then `INVALID_ARGUMENT` error is returned by the API. + // + // Here are a few examples: + // + // * `owner.email = \"apihub@google.com\"` - - The owner team email is + // _apihub@google.com_. + // * `owner.email = \"apihub@google.com\" AND create_time < + // \"2021-08-15T14:50:00Z\" AND create_time > \"2021-08-10T12:00:00Z\"` - + // The owner team email is _apihub@google.com_ and the api was created + // before _2021-08-15 14:50:00 UTC_ and after _2021-08-10 12:00:00 UTC_. + // * `owner.email = \"apihub@google.com\" OR team.enum_values.values.id: + // apihub-team-id` - The filter string specifies the APIs where the owner + // team email is _apihub@google.com_ or the id of the allowed value + // associated with the team attribute is _apihub-team-id_. + // * `owner.email = \"apihub@google.com\" OR + // team.enum_values.values.display_name: ApiHub Team` - The filter string + // specifies the APIs where the owner team email is _apihub@google.com_ or + // the display name of the allowed value associated with the team attribute + // is `ApiHub Team`. + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The maximum number of API resources to return. The service may + // return fewer than this value. If unspecified, at most 50 Apis will be + // returned. The maximum value is 1000; values above 1000 will be coerced to + // 1000. + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListApis` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters (except page_size) provided to + // `ListApis` must match the call that provided the page token. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// The [ListApis][google.cloud.apihub.v1.ApiHub.ListApis] method's response. +message ListApisResponse { + // The API resources present in the API hub. + 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; +} + +// The [CreateVersion][google.cloud.apihub.v1.ApiHub.CreateVersion] method's +// request. +message CreateVersionRequest { + // Required. The parent resource for API version. + // Format: `projects/{project}/locations/{location}/apis/{api}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "apihub.googleapis.com/Api" } + ]; + + // Optional. The ID to use for the API version, which will become the final + // component of the version's resource name. This field is optional. + // + // * If provided, the same will be used. The service will throw an error if + // the specified id is already used by another version in the API resource. + // * If not provided, a system generated id will be used. + // + // This value should be 4-500 characters, and valid characters + // are /[a-z][A-Z][0-9]-_/. + string version_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The version to create. + Version version = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// The [GetVersion][google.cloud.apihub.v1.ApiHub.GetVersion] method's request. +message GetVersionRequest { + // Required. The name of the API version to retrieve. + // Format: + // `projects/{project}/locations/{location}/apis/{api}/versions/{version}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "apihub.googleapis.com/Version" } + ]; +} + +// The [UpdateVersion][google.cloud.apihub.v1.ApiHub.UpdateVersion] method's +// request. +message UpdateVersionRequest { + // Required. The API version to update. + // + // The version's `name` field is used to identify the API version to update. + // Format: + // `projects/{project}/locations/{location}/apis/{api}/versions/{version}` + Version version = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of fields to update. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// The [DeleteVersion][google.cloud.apihub.v1.ApiHub.DeleteVersion] method's +// request. +message DeleteVersionRequest { + // Required. The name of the version to delete. + // Format: + // `projects/{project}/locations/{location}/apis/{api}/versions/{version}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "apihub.googleapis.com/Version" } + ]; + + // Optional. If set to true, any specs from this version will also be deleted. + // Otherwise, the request will only work if the version has no specs. + bool force = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// The [ListVersions][google.cloud.apihub.v1.ApiHub.ListVersions] method's +// request. +message ListVersionsRequest { + // Required. The parent which owns this collection of API versions i.e., the + // API resource Format: `projects/{project}/locations/{location}/apis/{api}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apihub.googleapis.com/Version" + } + ]; + + // Optional. An expression that filters the list of Versions. + // + // 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 `Version` are eligible for filtering: + // + // * `display_name` - The display name of the Version. Allowed + // comparison operators: `=`. + // * `create_time` - The time at which the Version was created. The + // value should be in the (RFC3339)[https://tools.ietf.org/html/rfc3339] + // format. Allowed comparison operators: `>` and `<`. + // * `lifecycle.enum_values.values.id` - The allowed value id of the + // lifecycle attribute associated with the Version. Allowed comparison + // operators: `:`. + // * `lifecycle.enum_values.values.display_name` - The allowed value display + // name of the lifecycle attribute associated with the Version. Allowed + // comparison operators: `:`. + // * `compliance.enum_values.values.id` - The allowed value id of the + // compliances attribute associated with the Version. Allowed comparison + // operators: `:`. + // * `compliance.enum_values.values.display_name` - The allowed value + // display name of the compliances attribute associated with the Version. + // Allowed comparison operators: `:`. + // * `accreditation.enum_values.values.id` - The allowed value id of the + // accreditations attribute associated with the Version. Allowed + // comparison operators: `:`. + // * `accreditation.enum_values.values.display_name` - The allowed value + // display name of the accreditations attribute associated with the Version. + // Allowed comparison operators: `:`. + // + // Expressions are combined with either `AND` logic operator or `OR` logical + // operator but not both of them together i.e. only one of the `AND` or `OR` + // operator can be used throughout the filter string and both the operators + // cannot be used together. No other logical operators are + // supported. At most three filter fields are allowed in the filter + // string and if provided more than that then `INVALID_ARGUMENT` error is + // returned by the API. + // + // Here are a few examples: + // + // * `lifecycle.enum_values.values.id: preview-id` - The filter string + // specifies that the id of the allowed value associated with the lifecycle + // attribute of the Version is _preview-id_. + // * `lifecycle.enum_values.values.display_name: \"Preview Display Name\"` - + // The filter string specifies that the display name of the allowed value + // associated with the lifecycle attribute of the Version is `Preview + // Display Name`. + // * `lifecycle.enum_values.values.id: preview-id AND create_time < + // \"2021-08-15T14:50:00Z\" AND create_time > \"2021-08-10T12:00:00Z\"` - + // The id of the allowed value associated with the lifecycle attribute of + // the Version is _preview-id_ and it was created before _2021-08-15 + // 14:50:00 UTC_ and after _2021-08-10 12:00:00 UTC_. + // * `compliance.enum_values.values.id: gdpr-id OR + // compliance.enum_values.values.id: pci-dss-id` + // - The id of the allowed value associated with the compliance attribute is + // _gdpr-id_ or _pci-dss-id_. + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The maximum number of versions to return. The service may return + // fewer than this value. If unspecified, at most 50 versions 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]; + + // Optional. A page token, received from a previous `ListVersions` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters (except page_size) provided to + // `ListVersions` must match the call that provided the page token. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// The [ListVersions][google.cloud.apihub.v1.ApiHub.ListVersions] method's +// response. +message ListVersionsResponse { + // The versions corresponding to an API. + repeated Version 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; +} + +// The [CreateSpec][google.cloud.apihub.v1.ApiHub.CreateSpec] method's request. +message CreateSpecRequest { + // Required. The parent resource for Spec. + // Format: + // `projects/{project}/locations/{location}/apis/{api}/versions/{version}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "apihub.googleapis.com/Version" } + ]; + + // Optional. The ID to use for the spec, which will become the final component + // of the spec's resource name. This field is optional. + // + // * If provided, the same will be used. The service will throw an error if + // the specified id is already used by another spec in the API + // resource. + // * If not provided, a system generated id will be used. + // + // This value should be 4-500 characters, and valid characters + // are /[a-z][A-Z][0-9]-_/. + string spec_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The spec to create. + Spec spec = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// The [GetSpec][google.cloud.apihub.v1.ApiHub.GetSpec] method's request. +message GetSpecRequest { + // Required. The name of the spec to retrieve. + // Format: + // `projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "apihub.googleapis.com/Spec" } + ]; +} + +// The [UpdateSpec][google.cloud.apihub.v1.ApiHub.UpdateSpec] method's request. +message UpdateSpecRequest { + // Required. The spec to update. + // + // The spec's `name` field is used to identify the spec to + // update. Format: + // `projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}` + Spec spec = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of fields to update. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// The [DeleteSpec][google.cloud.apihub.v1.ApiHub.DeleteSpec] method's request. +message DeleteSpecRequest { + // Required. The name of the spec to delete. + // Format: + // `projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "apihub.googleapis.com/Spec" } + ]; +} + +// The [ListSpecs][ListSpecs] method's request. +message ListSpecsRequest { + // Required. The parent, which owns this collection of specs. + // Format: + // `projects/{project}/locations/{location}/apis/{api}/versions/{version}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apihub.googleapis.com/Spec" + } + ]; + + // Optional. An expression that filters the list of Specs. + // + // A filter expression consists of a field name, a comparison + // operator, and a value for filtering. The value must be a string. The + // comparison operator must be one of: `<`, `>`, `:` or `=`. Filters are not + // case sensitive. + // + // The following fields in the `Spec` are eligible for filtering: + // + // * `display_name` - The display name of the Spec. Allowed comparison + // operators: `=`. + // * `create_time` - The time at which the Spec was created. The + // value should be in the (RFC3339)[https://tools.ietf.org/html/rfc3339] + // format. Allowed comparison operators: `>` and `<`. + // * `spec_type.enum_values.values.id` - The allowed value id of the + // spec_type attribute associated with the Spec. Allowed comparison + // operators: `:`. + // * `spec_type.enum_values.values.display_name` - The allowed value display + // name of the spec_type attribute associated with the Spec. Allowed + // comparison operators: `:`. + // * `lint_response.json_values.values` - The json value of the + // lint_response attribute associated with the Spec. Allowed comparison + // operators: `:`. + // * `mime_type` - The MIME type of the Spec. Allowed comparison + // operators: `=`. + // + // Expressions are combined with either `AND` logic operator or `OR` logical + // operator but not both of them together i.e. only one of the `AND` or `OR` + // operator can be used throughout the filter string and both the operators + // cannot be used together. No other logical operators are + // supported. At most three filter fields are allowed in the filter + // string and if provided more than that then `INVALID_ARGUMENT` error is + // returned by the API. + // + // Here are a few examples: + // + // * `spec_type.enum_values.values.id: rest-id` - The filter + // string specifies that the id of the allowed value associated with the + // spec_type attribute is _rest-id_. + // * `spec_type.enum_values.values.display_name: \"Rest Display Name\"` - + // The filter string specifies that the display name of the allowed value + // associated with the spec_type attribute is `Rest Display Name`. + // * `spec_type.enum_values.values.id: grpc-id AND create_time < + // \"2021-08-15T14:50:00Z\" AND create_time > \"2021-08-10T12:00:00Z\"` - + // The id of the allowed value associated with the spec_type attribute is + // _grpc-id_ and the spec was created before _2021-08-15 14:50:00 UTC_ and + // after _2021-08-10 12:00:00 UTC_. + // * `spec_type.enum_values.values.id: rest-id OR + // spec_type.enum_values.values.id: grpc-id` + // - The id of the allowed value associated with the spec_type attribute is + // _rest-id_ or _grpc-id_. + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The maximum number of specs to return. The service may return + // fewer than this value. If unspecified, at most 50 specs 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]; + + // Optional. A page token, received from a previous `ListSpecs` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListSpecs` must + // match the call that provided the page token. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// The [ListSpecs][google.cloud.apihub.v1.ApiHub.ListSpecs] method's response. +message ListSpecsResponse { + // The specs corresponding to an API. + repeated Spec 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; +} + +// The [GetSpecContents][google.cloud.apihub.v1.ApiHub.GetSpecContents] method's +// request. +message GetSpecContentsRequest { + // Required. The name of the spec whose contents need to be retrieved. + // Format: + // `projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "apihub.googleapis.com/Spec" } + ]; +} + +// The [GetApiOperation][google.cloud.apihub.v1.ApiHub.GetApiOperation] method's +// request. +message GetApiOperationRequest { + // Required. The name of the operation to retrieve. + // Format: + // `projects/{project}/locations/{location}/apis/{api}/versions/{version}/operations/{operation}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apihub.googleapis.com/ApiOperation" + } + ]; +} + +// The [ListApiOperations][google.cloud.apihub.v1.ApiHub.ListApiOperations] +// method's request. +message ListApiOperationsRequest { + // Required. The parent which owns this collection of operations i.e., the API + // version. Format: + // `projects/{project}/locations/{location}/apis/{api}/versions/{version}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apihub.googleapis.com/ApiOperation" + } + ]; + + // Optional. An expression that filters the list of ApiOperations. + // + // A filter expression consists of a field name, a comparison + // operator, and a value for filtering. The value must be a string or a + // boolean. The comparison operator must be one of: `<`, `>` or + // `=`. Filters are not case sensitive. + // + // The following fields in the `ApiOperation` are eligible for filtering: + // * `name` - The ApiOperation resource name. Allowed comparison + // operators: + // `=`. + // * `details.http_operation.path.path` - The http operation's complete path + // relative to server endpoint. Allowed comparison operators: `=`. + // * `details.http_operation.method` - The http operation method type. + // Allowed comparison operators: `=`. + // * `details.deprecated` - Indicates if the ApiOperation is deprecated. + // Allowed values are True / False indicating the deprycation status of the + // ApiOperation. Allowed comparison operators: `=`. + // * `create_time` - The time at which the ApiOperation was created. The + // value should be in the (RFC3339)[https://tools.ietf.org/html/rfc3339] + // format. Allowed comparison operators: `>` and `<`. + // + // Expressions are combined with either `AND` logic operator or `OR` logical + // operator but not both of them together i.e. only one of the `AND` or `OR` + // operator can be used throughout the filter string and both the operators + // cannot be used together. No other logical operators are supported. At most + // three filter fields are allowed in the filter string and if provided + // more than that then `INVALID_ARGUMENT` error is returned by the API. + // + // Here are a few examples: + // + // * `details.deprecated = True` - The ApiOperation is deprecated. + // * `details.http_operation.method = GET AND create_time < + // \"2021-08-15T14:50:00Z\" AND create_time > \"2021-08-10T12:00:00Z\"` - + // The method of the http operation of the ApiOperation is _GET_ and the + // spec was created before _2021-08-15 14:50:00 UTC_ and after _2021-08-10 + // 12:00:00 UTC_. + // * `details.http_operation.method = GET OR details.http_operation.method = + // POST`. - The http operation of the method of ApiOperation is _GET_ or + // _POST_. + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The maximum number of operations to return. The service may + // return fewer than this value. If unspecified, at most 50 operations 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]; + + // Optional. A page token, received from a previous `ListApiOperations` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters (except page_size) provided to + // `ListApiOperations` must match the call that provided the page token. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// The [ListApiOperations][google.cloud.apihub.v1.ApiHub.ListApiOperations] +// method's response. +message ListApiOperationsResponse { + // The operations corresponding to an API version. + // Only following field will be populated in the response: name, + // spec, details.deprecated, details.http_operation.path.path, + // details.http_operation.method and details.documentation.external_uri. + repeated ApiOperation api_operations = 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; +} + +// The [GetDefinition][google.cloud.apihub.v1.ApiHub.GetDefinition] method's +// request. +message GetDefinitionRequest { + // Required. The name of the definition to retrieve. + // Format: + // `projects/{project}/locations/{location}/apis/{api}/versions/{version}/definitions/{definition}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apihub.googleapis.com/Definition" + } + ]; +} + +// The [CreateDeployment][google.cloud.apihub.v1.ApiHub.CreateDeployment] +// method's request. +message CreateDeploymentRequest { + // Required. The parent resource for the deployment resource. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apihub.googleapis.com/Deployment" + } + ]; + + // Optional. The ID to use for the deployment resource, which will become the + // final component of the deployment's resource name. This field is optional. + // + // * If provided, the same will be used. The service will throw an error if + // the specified id is already used by another deployment resource in the API + // hub. + // * If not provided, a system generated id will be used. + // + // This value should be 4-500 characters, and valid characters + // are /[a-z][A-Z][0-9]-_/. + string deployment_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The deployment resource to create. + Deployment deployment = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// The [GetDeployment][google.cloud.apihub.v1.ApiHub.GetDeployment] method's +// request. +message GetDeploymentRequest { + // Required. The name of the deployment resource to retrieve. + // Format: `projects/{project}/locations/{location}/deployments/{deployment}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apihub.googleapis.com/Deployment" + } + ]; +} + +// The [UpdateDeployment][google.cloud.apihub.v1.ApiHub.UpdateDeployment] +// method's request. +message UpdateDeploymentRequest { + // Required. The deployment resource to update. + // + // The deployment resource's `name` field is used to identify the deployment + // resource to update. + // Format: `projects/{project}/locations/{location}/deployments/{deployment}` + Deployment deployment = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of fields to update. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// The [DeleteDeployment][google.cloud.apihub.v1.ApiHub.DeleteDeployment] +// method's request. +message DeleteDeploymentRequest { + // Required. The name of the deployment resource to delete. + // Format: `projects/{project}/locations/{location}/deployments/{deployment}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apihub.googleapis.com/Deployment" + } + ]; +} + +// The [ListDeployments][google.cloud.apihub.v1.ApiHub.ListDeployments] method's +// request. +message ListDeploymentsRequest { + // Required. The parent, which owns this collection of deployment resources. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apihub.googleapis.com/Deployment" + } + ]; + + // Optional. An expression that filters the list of Deployments. + // + // A filter expression consists of a field name, a comparison + // operator, and a value for filtering. The value must be a string. The + // comparison operator must be one of: `<`, `>` or + // `=`. Filters are not case sensitive. + // + // The following fields in the `Deployments` are eligible for filtering: + // + // * `display_name` - The display name of the Deployment. Allowed + // comparison operators: `=`. + // * `create_time` - The time at which the Deployment was created. The + // value should be in the (RFC3339)[https://tools.ietf.org/html/rfc3339] + // format. Allowed comparison operators: `>` and `<`. + // * `resource_uri` - A URI to the deployment resource. Allowed + // comparison operators: `=`. + // * `api_versions` - The API versions linked to this deployment. Allowed + // comparison operators: `:`. + // * `deployment_type.enum_values.values.id` - The allowed value id of the + // deployment_type attribute associated with the Deployment. Allowed + // comparison operators: `:`. + // * `deployment_type.enum_values.values.display_name` - The allowed value + // display name of the deployment_type attribute associated with the + // Deployment. Allowed comparison operators: `:`. + // * `slo.string_values.values` -The allowed string value of the slo + // attribute associated with the deployment. Allowed comparison + // operators: `:`. + // * `environment.enum_values.values.id` - The allowed value id of the + // environment attribute associated with the deployment. Allowed + // comparison operators: `:`. + // * `environment.enum_values.values.display_name` - The allowed value + // display name of the environment attribute associated with the deployment. + // Allowed comparison operators: `:`. + // + // Expressions are combined with either `AND` logic operator or `OR` logical + // operator but not both of them together i.e. only one of the `AND` or `OR` + // operator can be used throughout the filter string and both the operators + // cannot be used together. No other logical operators are supported. At most + // three filter fields are allowed in the filter string and if provided + // more than that then `INVALID_ARGUMENT` error is returned by the API. + // + // Here are a few examples: + // + // * `environment.enum_values.values.id: staging-id` - The allowed value id + // of the environment attribute associated with the Deployment is + // _staging-id_. + // * `environment.enum_values.values.display_name: \"Staging Deployment\"` - + // The allowed value display name of the environment attribute associated + // with the Deployment is `Staging Deployment`. + // * `environment.enum_values.values.id: production-id AND create_time < + // \"2021-08-15T14:50:00Z\" AND create_time > \"2021-08-10T12:00:00Z\"` - + // The allowed value id of the environment attribute associated with the + // Deployment is _production-id_ and Deployment was created before + // _2021-08-15 14:50:00 UTC_ and after _2021-08-10 12:00:00 UTC_. + // * `environment.enum_values.values.id: production-id OR + // slo.string_values.values: \"99.99%\"` + // - The allowed value id of the environment attribute Deployment is + // _production-id_ or string value of the slo attribute is _99.99%_. + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The maximum number of deployment resources to return. The service + // may return fewer than this value. If unspecified, at most 50 deployments + // 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]; + + // Optional. A page token, received from a previous `ListDeployments` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters (except page_size) provided to + // `ListDeployments` must match the call that provided the page token. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// The [ListDeployments][google.cloud.apihub.v1.ApiHub.ListDeployments] method's +// response. +message ListDeploymentsResponse { + // The deployment resources present in the API hub. + repeated Deployment 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; +} + +// The [CreateAttribute][google.cloud.apihub.v1.ApiHub.CreateAttribute] method's +// request. +message CreateAttributeRequest { + // Required. The parent resource for Attribute. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apihub.googleapis.com/Attribute" + } + ]; + + // Optional. The ID to use for the attribute, which will become the final + // component of the attribute's resource name. This field is optional. + // + // * If provided, the same will be used. The service will throw an error if + // the specified id is already used by another attribute resource in the API + // hub. + // * If not provided, a system generated id will be used. + // + // This value should be 4-500 characters, and valid characters + // are /[a-z][A-Z][0-9]-_/. + string attribute_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The attribute to create. + Attribute attribute = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// The [GetAttribute][google.cloud.apihub.v1.ApiHub.GetAttribute] method's +// request. +message GetAttributeRequest { + // Required. The name of the attribute to retrieve. + // Format: + // `projects/{project}/locations/{location}/attributes/{attribute}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apihub.googleapis.com/Attribute" + } + ]; +} + +// The [UpdateAttribute][google.cloud.apihub.v1.ApiHub.UpdateAttribute] method's +// request. +message UpdateAttributeRequest { + // Required. The attribute to update. + // + // The attribute's `name` field is used to identify the attribute to update. + // Format: + // `projects/{project}/locations/{location}/attributes/{attribute}` + Attribute attribute = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of fields to update. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// The [DeleteAttribute][google.cloud.apihub.v1.ApiHub.DeleteAttribute] method's +// request. +message DeleteAttributeRequest { + // Required. The name of the attribute to delete. + // Format: + // `projects/{project}/locations/{location}/attributes/{attribute}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apihub.googleapis.com/Attribute" + } + ]; +} + +// The [ListAttributes][google.cloud.apihub.v1.ApiHub.ListAttributes] method's +// request. +message ListAttributesRequest { + // Required. The parent resource for Attribute. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apihub.googleapis.com/Attribute" + } + ]; + + // Optional. An expression that filters the list of Attributes. + // + // A filter expression consists of a field name, a comparison + // operator, and a value for filtering. The value must be a string or a + // boolean. The comparison operator must be one of: `<`, `>` or + // `=`. Filters are not case sensitive. + // + // The following fields in the `Attribute` are eligible for filtering: + // + // * `display_name` - The display name of the Attribute. Allowed + // comparison operators: `=`. + // * `definition_type` - The definition type of the attribute. Allowed + // comparison operators: `=`. + // * `scope` - The scope of the attribute. Allowed comparison operators: + // `=`. + // * `data_type` - The type of the data of the attribute. Allowed + // comparison operators: `=`. + // * `mandatory` - Denotes whether the attribute is mandatory or not. + // Allowed comparison operators: `=`. + // * `create_time` - The time at which the Attribute was created. The + // value should be in the (RFC3339)[https://tools.ietf.org/html/rfc3339] + // format. Allowed comparison operators: `>` and `<`. + // + // Expressions are combined with either `AND` logic operator or `OR` logical + // operator but not both of them together i.e. only one of the `AND` or `OR` + // operator can be used throughout the filter string and both the operators + // cannot be used together. No other logical operators are + // supported. At most three filter fields are allowed in the filter + // string and if provided more than that then `INVALID_ARGUMENT` error is + // returned by the API. + // + // Here are a few examples: + // + // * `display_name = production` - - The display name of the attribute is + // _production_. + // * `(display_name = production) AND (create_time < + // \"2021-08-15T14:50:00Z\") AND (create_time > \"2021-08-10T12:00:00Z\")` - + // The display name of the attribute is _production_ and the attribute was + // created before _2021-08-15 14:50:00 UTC_ and after _2021-08-10 12:00:00 + // UTC_. + // * `display_name = production OR scope = api` - + // The attribute where the display name is _production_ or the scope is + // _api_. + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The maximum number of attribute resources to return. The service + // may return fewer than this value. If unspecified, at most 50 attributes + // 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]; + + // Optional. A page token, received from a previous `ListAttributes` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListAttributes` must + // match the call that provided the page token. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// The [ListAttributes][google.cloud.apihub.v1.ApiHub.ListAttributes] method's +// response. +message ListAttributesResponse { + // The list of all attributes. + repeated Attribute attributes = 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; +} + +// The [SearchResources][google.cloud.apihub.v1.ApiHub.SearchResources] method's +// request. +message SearchResourcesRequest { + // Required. The resource name of the location which will be of the type + // `projects/{project_id}/locations/{location_id}`. This field is used to + // identify the instance of API-Hub in which resources should be searched. + string location = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The free text search query. This query can contain keywords which + // could be related to any detail of the API-Hub resources such display names, + // descriptions, attributes etc. + string query = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An expression that filters the list of search results. + // + // 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 `=`. Filters are not case + // sensitive. + // + // The following field names are eligible for filtering: + // * `resource_type` - The type of resource in the search results. + // Must be one of the following: `Api`, `ApiOperation`, `Deployment`, + // `Definition`, `Spec` or `Version`. This field can only be specified once + // in the filter. + // + // Here are is an example: + // + // * `resource_type = Api` - The resource_type is _Api_. + string filter = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The maximum number of search results to return. The service may + // return fewer than this value. If unspecified at most 10 search results will + // be returned. If value is negative then `INVALID_ARGUMENT` error is + // returned. The maximum value is 25; values above 25 will be coerced to 25. + // While paginating, you can specify a new page size parameter for each page + // of search results to be listed. + int32 page_size = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous + // [SearchResources][SearchResources] + // call. Specify this parameter to retrieve the next page of transactions. + // + // When paginating, you must specify the `page_token` parameter and all the + // other parameters except + // [page_size][google.cloud.apihub.v1.SearchResourcesRequest.page_size] + // should be specified with the same value which was used in the previous + // call. If the other fields are set with a different value than the previous + // call then `INVALID_ARGUMENT` error is returned. + string page_token = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// ApiHubResource is one of the resources such as Api, Operation, Deployment, +// Definition, Spec and Version resources stored in API-Hub. +message ApiHubResource { + oneof resource { + // This represents Api resource in search results. Only name, display_name, + // description and owner fields are populated in search results. + Api api = 1; + + // This represents ApiOperation resource in search results. Only name, + // and description fields are populated in search results. + ApiOperation operation = 2; + + // This represents Deployment resource in search results. Only name, + // display_name and description fields are populated in search results. + Deployment deployment = 3; + + // This represents Spec resource in search results. Only name, + // display_name and description fields are populated in search results. + Spec spec = 4; + + // This represents Definition resource in search results. + // Only name field is populated in search results. + Definition definition = 5; + + // This represents Version resource in search results. Only name, + // display_name and description fields are populated in search results. + Version version = 6; + } +} + +// Represents the search results. +message SearchResult { + // This represents the ApiHubResource. + // Note: Only selected fields of the resources are populated in response. + ApiHubResource resource = 1; +} + +// Response for the +// [SearchResources][google.cloud.apihub.v1.ApiHub.SearchResources] method. +message SearchResourcesResponse { + // List of search results according to the filter and search query specified. + // The order of search results represents the ranking. + repeated SearchResult search_results = 1; + + // Pass this token in the + // [SearchResourcesRequest][google.cloud.apihub.v1.SearchResourcesRequest] + // 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; +} + +// The +// [CreateDependency][google.cloud.apihub.v1.ApiHubDependencies.CreateDependency] +// method's request. +message CreateDependencyRequest { + // Required. The parent resource for the dependency resource. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apihub.googleapis.com/Dependency" + } + ]; + + // Optional. The ID to use for the dependency resource, which will become the + // final component of the dependency's resource name. This field is optional. + // * If provided, the same will be used. The service will throw an error if + // duplicate id is provided by the client. + // * If not provided, a system generated id will be used. + // + // This value should be 4-500 characters, and valid characters + // are `[a-z][A-Z][0-9]-_`. + string dependency_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The dependency resource to create. + Dependency dependency = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// The [GetDependency][.ApiHubDependencies.GetDependency] +// method's request. +message GetDependencyRequest { + // Required. The name of the dependency resource to retrieve. + // Format: `projects/{project}/locations/{location}/dependencies/{dependency}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apihub.googleapis.com/Dependency" + } + ]; +} + +// The +// [UpdateDependency][google.cloud.apihub.v1.ApiHubDependencies.UpdateDependency] +// method's request. +message UpdateDependencyRequest { + // Required. The dependency resource to update. + // + // The dependency's `name` field is used to identify the dependency to update. + // Format: `projects/{project}/locations/{location}/dependencies/{dependency}` + Dependency dependency = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of fields to update. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// The +// [DeleteDependency][google.cloud.apihub.v1.ApiHubDependencies.DeleteDependency] +// method's request. +message DeleteDependencyRequest { + // Required. The name of the dependency resource to delete. + // Format: `projects/{project}/locations/{location}/dependencies/{dependency}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apihub.googleapis.com/Dependency" + } + ]; +} + +// The +// [ListDependencies][google.cloud.apihub.v1.ApiHubDependencies.ListDependencies] +// method's request. +message ListDependenciesRequest { + // Required. The parent which owns this collection of dependency resources. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apihub.googleapis.com/Dependency" + } + ]; + + // Optional. An expression that filters the list of Dependencies. + // + // A filter expression consists of a field name, a comparison operator, and + // a value for filtering. The value must be a string. Allowed comparison + // operator is `=`. Filters are not case sensitive. + // + // The following fields in the `Dependency` are eligible for filtering: + // + // * `consumer.operation_resource_name` - The operation resource name for + // the consumer entity involved in a dependency. Allowed comparison + // operators: `=`. + // * `consumer.external_api_resource_name` - The external api resource name + // for the consumer entity involved in a dependency. Allowed comparison + // operators: `=`. + // * `supplier.operation_resource_name` - The operation resource name for + // the supplier entity involved in a dependency. Allowed comparison + // operators: `=`. + // * `supplier.external_api_resource_name` - The external api resource name + // for the supplier entity involved in a dependency. Allowed comparison + // operators: `=`. + // + // Expressions are combined with either `AND` logic operator or `OR` logical + // operator but not both of them together i.e. only one of the `AND` or `OR` + // operator can be used throughout the filter string and both the operators + // cannot be used together. No other logical operators are supported. At most + // three filter fields are allowed in the filter string and if provided + // more than that then `INVALID_ARGUMENT` error is returned by the API. + // + // For example, `consumer.operation_resource_name = + // \"projects/p1/locations/global/apis/a1/versions/v1/operations/o1\" OR + // supplier.operation_resource_name = + // \"projects/p1/locations/global/apis/a1/versions/v1/operations/o1\"` - The + // dependencies with either consumer or supplier operation resource name as + // _projects/p1/locations/global/apis/a1/versions/v1/operations/o1_. + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The maximum number of dependency resources to return. The service + // may return fewer than this value. If unspecified, at most 50 dependencies + // 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]; + + // Optional. A page token, received from a previous `ListDependencies` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListDependencies` must + // match the call that provided the page token. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// The +// [ListDependencies][google.cloud.apihub.v1.ApiHubDependencies.ListDependencies] +// method's response. +message ListDependenciesResponse { + // The dependency resources present in the API hub. + // Only following field will be populated in the response: name. + repeated Dependency dependencies = 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; +} + +// The [CreateExternalApi][google.cloud.apihub.v1.ApiHub.CreateExternalApi] +// method's request. +message CreateExternalApiRequest { + // Required. The parent resource for the External API resource. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apihub.googleapis.com/ExternalApi" + } + ]; + + // Optional. The ID to use for the External API resource, which will become + // the final component of the External API's resource name. This field is + // optional. + // + // * If provided, the same will be used. The service will throw an error if + // the specified id is already used by another External API resource in the + // API hub. + // * If not provided, a system generated id will be used. + // + // This value should be 4-500 characters, and valid characters + // are /[a-z][A-Z][0-9]-_/. + string external_api_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The External API resource to create. + ExternalApi external_api = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// The [GetExternalApi][google.cloud.apihub.v1.ApiHub.GetExternalApi] method's +// request. +message GetExternalApiRequest { + // Required. The name of the External API resource to retrieve. + // Format: + // `projects/{project}/locations/{location}/externalApis/{externalApi}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apihub.googleapis.com/ExternalApi" + } + ]; +} + +// The [UpdateExternalApi][google.cloud.apihub.v1.ApiHub.UpdateExternalApi] +// method's request. +message UpdateExternalApiRequest { + // Required. The External API resource to update. + // + // The External API resource's `name` field is used to identify the External + // API resource to update. Format: + // `projects/{project}/locations/{location}/externalApis/{externalApi}` + ExternalApi external_api = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of fields to update. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// The [DeleteExternalApi][google.cloud.apihub.v1.ApiHub.DeleteExternalApi] +// method's request. +message DeleteExternalApiRequest { + // Required. The name of the External API resource to delete. + // Format: + // `projects/{project}/locations/{location}/externalApis/{externalApi}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apihub.googleapis.com/ExternalApi" + } + ]; +} + +// The [ListExternalApis][google.cloud.apihub.v1.ApiHub.ListExternalApis] +// method's request. +message ListExternalApisRequest { + // Required. The parent, which owns this collection of External API resources. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apihub.googleapis.com/ExternalApi" + } + ]; + + // Optional. The maximum number of External API resources to return. The + // service may return fewer than this value. If unspecified, at most 50 + // ExternalApis 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 `ListExternalApis` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters (except page_size) provided to + // `ListExternalApis` must match the call that provided the page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// The [ListExternalApis][google.cloud.apihub.v1.ApiHub.ListExternalApis] +// method's response. +message ListExternalApisResponse { + // The External API resources present in the API hub. + // Only following fields will be populated in the response: name, + // display_name, documentation.external_uri. + repeated ExternalApi external_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; +} diff --git a/google/cloud/apihub/v1/apihub_v1.yaml b/google/cloud/apihub/v1/apihub_v1.yaml new file mode 100644 index 000000000..c1d253951 --- /dev/null +++ b/google/cloud/apihub/v1/apihub_v1.yaml @@ -0,0 +1,136 @@ +type: google.api.Service +config_version: 3 +name: apihub.googleapis.com +title: API hub API + +apis: +- name: google.cloud.apihub.v1.ApiHub +- name: google.cloud.apihub.v1.ApiHubDependencies +- name: google.cloud.apihub.v1.ApiHubPlugin +- name: google.cloud.apihub.v1.HostProjectRegistrationService +- name: google.cloud.apihub.v1.LintingService +- name: google.cloud.apihub.v1.Provisioning +- name: google.cloud.apihub.v1.RuntimeProjectAttachmentService +- name: google.cloud.location.Locations +- name: google.longrunning.Operations + +types: +- name: google.cloud.apihub.v1.OperationMetadata + +documentation: + overview: |- + API hub lets you consolidate and organize information about all of the APIs + of interest to your organization. API hub lets you capture critical + information about APIs that allows developers to discover and evaluate + them easily and leverage the work of other teams wherever possible. API + platform teams can use API hub to have visibility into and manage their + portfolio of APIs. + rules: + - selector: google.cloud.location.Locations.GetLocation + description: Gets information about a location. + + - selector: google.cloud.location.Locations.ListLocations + description: Lists information about the supported locations for this service. + +http: + rules: + - selector: google.cloud.location.Locations.GetLocation + get: '/v1/{name=projects/*/locations/*}' + - selector: google.cloud.location.Locations.ListLocations + get: '/v1/{name=projects/*}/locations' + - selector: google.longrunning.Operations.CancelOperation + post: '/v1/{name=projects/*/locations/*/operations/*}:cancel' + body: '*' + - selector: google.longrunning.Operations.DeleteOperation + delete: '/v1/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.GetOperation + get: '/v1/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v1/{name=projects/*/locations/*}/operations' + +authentication: + rules: + - selector: 'google.cloud.apihub.v1.ApiHub.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.apihub.v1.ApiHubDependencies.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.apihub.v1.ApiHubPlugin.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.apihub.v1.HostProjectRegistrationService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.apihub.v1.LintingService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.apihub.v1.Provisioning.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.apihub.v1.RuntimeProjectAttachmentService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.location.Locations.GetLocation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.location.Locations.ListLocations + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.longrunning.Operations.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=1447560 + documentation_uri: https://cloud.google.com/apigee/docs/apihub/what-is-api-hub + api_short_name: apihub + github_label: 'api: apihub' + doc_tag_prefix: apihub + organization: CLOUD + library_settings: + - version: google.cloud.apihub.v1 + launch_stage: GA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + cpp_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER + proto_reference_documentation_uri: https://cloud.google.com/apigee/docs/reference/apis/apihub/rpc diff --git a/google/cloud/apihub/v1/apihub_v1_grpc_service_config.json b/google/cloud/apihub/v1/apihub_v1_grpc_service_config.json new file mode 100644 index 000000000..62b4abdfb --- /dev/null +++ b/google/cloud/apihub/v1/apihub_v1_grpc_service_config.json @@ -0,0 +1,77 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.cloud.apihub.v1.ApiHub", "method": "GetApi" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "ListApis" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "GetVersion" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "ListVersions" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "GetSpec" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "GetSpecContents" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "ListSpecs" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "GetApiOperation" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "ListApiOperations" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "GetDefinition" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "GetDeployment" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "ListDeployments" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "GetAttribute" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "ListAttributes" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "SearchResources" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "GetExternalApi" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "ListExternalApis" }, + { "service": "google.cloud.apihub.v1.ApiHubDependencies", "method": "GetDependency" }, + { "service": "google.cloud.apihub.v1.ApiHubDependencies", "method": "ListDependencies" }, + { "service": "google.cloud.apihub.v1.HostProjectRegistrationService", "method": "GetHostProjectRegistration" }, + { "service": "google.cloud.apihub.v1.HostProjectRegistrationService", "method": "ListHostProjectRegistrations" }, + { "service": "google.cloud.apihub.v1.LintingService", "method": "GetStyleGuide" }, + { "service": "google.cloud.apihub.v1.LintingService", "method": "GetStyleGuideContents" }, + { "service": "google.cloud.apihub.v1.ApiHubPlugin", "method": "GetPlugin" }, + { "service": "google.cloud.apihub.v1.Provisioning", "method": "GetApiHubInstance" }, + { "service": "google.cloud.apihub.v1.Provisioning", "method": "LookupApiHubInstance" }, + { "service": "google.cloud.apihub.v1.RuntimeProjectAttachmentService", "method": "GetRuntimeProjectAttachment" }, + { "service": "google.cloud.apihub.v1.RuntimeProjectAttachmentService", "method": "ListRuntimeProjectAttachments" }, + { "service": "google.cloud.apihub.v1.RuntimeProjectAttachmentService", "method": "LookupRuntimeProjectAttachment" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { "service": "google.cloud.apihub.v1.ApiHub", "method": "CreateApi" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "UpdateApi" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "DeleteApi" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "CreateVersion" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "UpdateVersion" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "DeleteVersion" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "CreateSpec" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "UpdateSpec" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "DeleteSpec" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "CreateDeployment" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "UpdateDeployment" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "DeleteDeployment" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "CreateAttribute" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "UpdateAttribute" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "DeleteAttribute" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "CreateExternalApi" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "UpdateExternalApi" }, + { "service": "google.cloud.apihub.v1.ApiHub", "method": "DeleteExternalApi" }, + { "service": "google.cloud.apihub.v1.ApiHubDependencies", "method": "CreateDependency" }, + { "service": "google.cloud.apihub.v1.ApiHubDependencies", "method": "UpdateDependency" }, + { "service": "google.cloud.apihub.v1.ApiHubDependencies", "method": "DeleteDependency" }, + { "service": "google.cloud.apihub.v1.HostProjectRegistrationService", "method": "CreateHostProjectRegistration" }, + { "service": "google.cloud.apihub.v1.LintingService", "method": "UpdateStyleGuide" }, + { "service": "google.cloud.apihub.v1.LintingService", "method": "LintSpec" }, + { "service": "google.cloud.apihub.v1.ApiHubPlugin", "method": "EnablePlugin" }, + { "service": "google.cloud.apihub.v1.ApiHubPlugin", "method": "DisablePlugin" }, + { "service": "google.cloud.apihub.v1.Provisioning", "method": "CreateApiHubInstance" }, + { "service": "google.cloud.apihub.v1.RuntimeProjectAttachmentService", "method": "CreateRuntimeProjectAttachment" }, + { "service": "google.cloud.apihub.v1.RuntimeProjectAttachmentService", "method": "DeleteRuntimeProjectAttachment" } + ], + "timeout": "60s" + }] +} \ No newline at end of file diff --git a/google/cloud/apihub/v1/common_fields.proto b/google/cloud/apihub/v1/common_fields.proto new file mode 100644 index 000000000..9d1c87f19 --- /dev/null +++ b/google/cloud/apihub/v1/common_fields.proto @@ -0,0 +1,1297 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.apihub.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.ApiHub.V1"; +option go_package = "cloud.google.com/go/apihub/apiv1/apihubpb;apihubpb"; +option java_multiple_files = true; +option java_outer_classname = "CommonFieldsProto"; +option java_package = "com.google.cloud.apihub.v1"; +option php_namespace = "Google\\Cloud\\ApiHub\\V1"; +option ruby_package = "Google::Cloud::ApiHub::V1"; +option (google.api.resource_definition) = { + type: "aiplatform.googleapis.com/Extension" + pattern: "projects/{project}/locations/{location}/extensions/{extension}" +}; + +// Lint state represents success or failure for linting. +enum LintState { + // Lint state unspecified. + LINT_STATE_UNSPECIFIED = 0; + + // Linting was completed successfully. + LINT_STATE_SUCCESS = 1; + + // Linting encountered errors. + LINT_STATE_ERROR = 2; +} + +// Enumeration of linter types. +enum Linter { + // Linter type unspecified. + LINTER_UNSPECIFIED = 0; + + // Linter type spectral. + SPECTRAL = 1; + + // Linter type other. + OTHER = 2; +} + +// Severity of the issue. +enum Severity { + // Severity unspecified. + SEVERITY_UNSPECIFIED = 0; + + // Severity error. + SEVERITY_ERROR = 1; + + // Severity warning. + SEVERITY_WARNING = 2; + + // Severity info. + SEVERITY_INFO = 3; + + // Severity hint. + SEVERITY_HINT = 4; +} + +// An API resource in the API Hub. +message Api { + option (google.api.resource) = { + type: "apihub.googleapis.com/Api" + pattern: "projects/{project}/locations/{location}/apis/{api}" + plural: "apis" + singular: "api" + }; + + // Identifier. The name of the API resource in the API Hub. + // + // Format: + // `projects/{project}/locations/{location}/apis/{api}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. The display name of the API resource. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The description of the API resource. + string description = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The documentation for the API resource. + Documentation documentation = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Owner details for the API resource. + Owner owner = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The list of versions present in an API resource. + // Note: An API resource can be associated with more than 1 version. + // Format is + // `projects/{project}/locations/{location}/apis/{api}/versions/{version}` + repeated string versions = 6 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "apihub.googleapis.com/Version" } + ]; + + // Output only. The time at which the API resource was created. + google.protobuf.Timestamp create_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which the API resource was last updated. + google.protobuf.Timestamp update_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The target users for the API. + // This maps to the following system defined attribute: + // `projects/{project}/locations/{location}/attributes/system-target-user` + // attribute. + // The number of values for this attribute will be based on the + // cardinality of the attribute. The same can be retrieved via GetAttribute + // API. All values should be from the list of allowed values defined for the + // attribute. + AttributeValues target_user = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The team owning the API. + // This maps to the following system defined attribute: + // `projects/{project}/locations/{location}/attributes/system-team` + // attribute. + // The number of values for this attribute will be based on the + // cardinality of the attribute. The same can be retrieved via GetAttribute + // API. All values should be from the list of allowed values defined for the + // attribute. + AttributeValues team = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The business unit owning the API. + // This maps to the following system defined attribute: + // `projects/{project}/locations/{location}/attributes/system-business-unit` + // attribute. + // The number of values for this attribute will be based on the + // cardinality of the attribute. The same can be retrieved via GetAttribute + // API. All values should be from the list of allowed values defined for the + // attribute. + AttributeValues business_unit = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The maturity level of the API. + // This maps to the following system defined attribute: + // `projects/{project}/locations/{location}/attributes/system-maturity-level` + // attribute. + // The number of values for this attribute will be based on the + // cardinality of the attribute. The same can be retrieved via GetAttribute + // API. All values should be from the list of allowed values defined for the + // attribute. + AttributeValues maturity_level = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The list of user defined attributes associated with the API + // resource. The key is the attribute name. It will be of the format: + // `projects/{project}/locations/{location}/attributes/{attribute}`. + // The value is the attribute values associated with the resource. + map<string, AttributeValues> attributes = 13 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The style of the API. + // This maps to the following system defined attribute: + // `projects/{project}/locations/{location}/attributes/system-api-style` + // attribute. + // The number of values for this attribute will be based on the + // cardinality of the attribute. The same can be retrieved via GetAttribute + // API. All values should be from the list of allowed values defined for the + // attribute. + AttributeValues api_style = 14 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The selected version for an API resource. + // This can be used when special handling is needed on client side for + // particular version of the API. Format is + // `projects/{project}/locations/{location}/apis/{api}/versions/{version}` + string selected_version = 15 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { type: "apihub.googleapis.com/Version" } + ]; +} + +// Represents a version of the API resource in API hub. This is also referred +// to as the API version. +message Version { + option (google.api.resource) = { + type: "apihub.googleapis.com/Version" + pattern: "projects/{project}/locations/{location}/apis/{api}/versions/{version}" + plural: "versions" + singular: "version" + }; + + // Identifier. The name of the version. + // + // Format: + // `projects/{project}/locations/{location}/apis/{api}/versions/{version}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. The display name of the version. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The description of the version. + string description = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The documentation of the version. + Documentation documentation = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The specs associated with this version. + // Note that an API version can be associated with multiple specs. + // Format is + // `projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}` + repeated string specs = 5 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "apihub.googleapis.com/Spec" } + ]; + + // Output only. The operations contained in the API version. + // These operations will be added to the version when a new spec is + // added or when an existing spec is updated. Format is + // `projects/{project}/locations/{location}/apis/{api}/versions/{version}/operations/{operation}` + repeated string api_operations = 6 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "apihub.googleapis.com/ApiOperation" + } + ]; + + // Output only. The definitions contained in the API version. + // These definitions will be added to the version when a new spec is + // added or when an existing spec is updated. Format is + // `projects/{project}/locations/{location}/apis/{api}/versions/{version}/definitions/{definition}` + repeated string definitions = 7 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "apihub.googleapis.com/Definition" + } + ]; + + // Optional. The deployments linked to this API version. + // Note: A particular API version could be deployed to multiple deployments + // (for dev deployment, UAT deployment, etc) + // Format is + // `projects/{project}/locations/{location}/deployments/{deployment}` + repeated string deployments = 8 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "apihub.googleapis.com/Deployment" + } + ]; + + // Output only. The time at which the version was created. + google.protobuf.Timestamp create_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which the version was last updated. + google.protobuf.Timestamp update_time = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The lifecycle of the API version. + // This maps to the following system defined attribute: + // `projects/{project}/locations/{location}/attributes/system-lifecycle` + // attribute. + // The number of values for this attribute will be based on the + // cardinality of the attribute. The same can be retrieved via GetAttribute + // API. All values should be from the list of allowed values defined for the + // attribute. + AttributeValues lifecycle = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The compliance associated with the API version. + // This maps to the following system defined attribute: + // `projects/{project}/locations/{location}/attributes/system-compliance` + // attribute. + // The number of values for this attribute will be based on the + // cardinality of the attribute. The same can be retrieved via GetAttribute + // API. All values should be from the list of allowed values defined for the + // attribute. + AttributeValues compliance = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The accreditations associated with the API version. + // This maps to the following system defined attribute: + // `projects/{project}/locations/{location}/attributes/system-accreditation` + // attribute. + // The number of values for this attribute will be based on the + // cardinality of the attribute. The same can be retrieved via GetAttribute + // API. All values should be from the list of allowed values defined for the + // attribute. + AttributeValues accreditation = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The list of user defined attributes associated with the Version + // resource. The key is the attribute name. It will be of the format: + // `projects/{project}/locations/{location}/attributes/{attribute}`. + // The value is the attribute values associated with the resource. + map<string, AttributeValues> attributes = 14 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The selected deployment for a Version resource. + // This can be used when special handling is needed on client side for a + // particular deployment linked to the version. + // Format is + // `projects/{project}/locations/{location}/deployments/{deployment}` + string selected_deployment = 16 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "apihub.googleapis.com/Deployment" + } + ]; +} + +// Represents a spec associated with an API version in the API +// Hub. Note that specs of various types can be uploaded, however +// parsing of details is supported for OpenAPI spec currently. +message Spec { + option (google.api.resource) = { + type: "apihub.googleapis.com/Spec" + pattern: "projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}" + plural: "specs" + singular: "spec" + }; + + // Specifies the parsing mode for API specifications during creation and + // update. + // - `RELAXED`: Parsing errors in the specification content do not fail the + // API call. + // - `STRICT`: Parsing errors in the specification content result in failure + // of the API call. + // If not specified, defaults to `RELAXED`. + enum ParsingMode { + // Defaults to `RELAXED`. + PARSING_MODE_UNSPECIFIED = 0; + + // Parsing of the Spec on create and update is relaxed, meaning that + // parsing errors the spec contents will not fail the API call. + RELAXED = 1; + + // Parsing of the Spec on create and update is strict, meaning that + // parsing errors in the spec contents will fail the API call. + STRICT = 2; + } + + // Identifier. The name of the spec. + // + // Format: + // `projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. The display name of the spec. + // This can contain the file name of the spec. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The type of spec. + // The value should be one of the allowed values defined for + // `projects/{project}/locations/{location}/attributes/system-spec-type` + // attribute. + // The number of values for this attribute will be based on the + // cardinality of the attribute. The same can be retrieved via GetAttribute + // API. + // + // Note, this field is mandatory if content is provided. + AttributeValues spec_type = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Input only. The contents of the uploaded spec. + SpecContents contents = 4 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = INPUT_ONLY + ]; + + // Output only. Details parsed from the spec. + SpecDetails details = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The URI of the spec source in case file is uploaded + // from an external version control system. + string source_uri = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The time at which the spec was created. + google.protobuf.Timestamp create_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which the spec was last updated. + google.protobuf.Timestamp update_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The lint response for the spec. + LintResponse lint_response = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The list of user defined attributes associated with the spec. + // The key is the attribute name. It will be of the format: + // `projects/{project}/locations/{location}/attributes/{attribute}`. + // The value is the attribute values associated with the resource. + map<string, AttributeValues> attributes = 10 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The documentation of the spec. + // For OpenAPI spec, this will be populated from `externalDocs` in OpenAPI + // spec. + Documentation documentation = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Input only. Enum specifying the parsing mode for OpenAPI + // Specification (OAS) parsing. + ParsingMode parsing_mode = 12 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = INPUT_ONLY + ]; +} + +// Details of the deployment where APIs are hosted. +// A deployment could represent an Apigee proxy, API gateway, other Google Cloud +// services or non-Google Cloud services as well. A deployment entity is a root +// level entity in the API hub and exists independent of any API. +message Deployment { + option (google.api.resource) = { + type: "apihub.googleapis.com/Deployment" + pattern: "projects/{project}/locations/{location}/deployments/{deployment}" + plural: "deployments" + singular: "deployment" + }; + + // Identifier. The name of the deployment. + // + // Format: + // `projects/{project}/locations/{location}/deployments/{deployment}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. The display name of the deployment. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The description of the deployment. + string description = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The documentation of the deployment. + Documentation documentation = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The type of deployment. + // This maps to the following system defined attribute: + // `projects/{project}/locations/{location}/attributes/system-deployment-type` + // attribute. + // The number of values for this attribute will be based on the + // cardinality of the attribute. The same can be retrieved via GetAttribute + // API. All values should be from the list of allowed values defined for the + // attribute. + AttributeValues deployment_type = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. A URI to the runtime resource. This URI can be used to manage the + // resource. For example, if the runtime resource is of type APIGEE_PROXY, + // then this field will contain the URI to the management UI of the proxy. + string resource_uri = 6 [(google.api.field_behavior) = REQUIRED]; + + // Required. The endpoints at which this deployment resource is listening for + // API requests. This could be a list of complete URIs, hostnames or an IP + // addresses. + repeated string endpoints = 7 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The API versions linked to this deployment. + // Note: A particular deployment could be linked to multiple different API + // versions (of same or different APIs). + repeated string api_versions = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which the deployment was created. + google.protobuf.Timestamp create_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which the deployment was last updated. + google.protobuf.Timestamp update_time = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The SLO for this deployment. + // This maps to the following system defined attribute: + // `projects/{project}/locations/{location}/attributes/system-slo` + // attribute. + // The number of values for this attribute will be based on the + // cardinality of the attribute. The same can be retrieved via GetAttribute + // API. All values should be from the list of allowed values defined for the + // attribute. + AttributeValues slo = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The environment mapping to this deployment. + // This maps to the following system defined attribute: + // `projects/{project}/locations/{location}/attributes/system-environment` + // attribute. + // The number of values for this attribute will be based on the + // cardinality of the attribute. The same can be retrieved via GetAttribute + // API. All values should be from the list of allowed values defined for the + // attribute. + AttributeValues environment = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The list of user defined attributes associated with the + // deployment resource. The key is the attribute name. It will be of the + // format: `projects/{project}/locations/{location}/attributes/{attribute}`. + // The value is the attribute values associated with the resource. + map<string, AttributeValues> attributes = 13 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents an operation contained in an API version in the API Hub. +// An operation is added/updated/deleted in an API version when a new spec is +// added or an existing spec is updated/deleted in a version. +// Currently, an operation will be created only corresponding to OpenAPI spec as +// parsing is supported for OpenAPI spec. +message ApiOperation { + option (google.api.resource) = { + type: "apihub.googleapis.com/ApiOperation" + pattern: "projects/{project}/locations/{location}/apis/{api}/versions/{version}/operations/{operation}" + plural: "apiOperations" + singular: "apiOperation" + }; + + // Identifier. The name of the operation. + // + // Format: + // `projects/{project}/locations/{location}/apis/{api}/versions/{version}/operations/{operation}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. The name of the spec from where the operation was parsed. + // Format is + // `projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}` + string spec = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "apihub.googleapis.com/Spec" } + ]; + + // Output only. Operation details. + OperationDetails details = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which the operation was created. + google.protobuf.Timestamp create_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which the operation was last updated. + google.protobuf.Timestamp update_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The list of user defined attributes associated with the API + // operation resource. The key is the attribute name. It will be of the + // format: `projects/{project}/locations/{location}/attributes/{attribute}`. + // The value is the attribute values associated with the resource. + map<string, AttributeValues> attributes = 6 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents a definition for example schema, request, response definitions +// contained in an API version. +// A definition is added/updated/deleted in an API version when a new spec is +// added or an existing spec is updated/deleted in a version. Currently, +// definition will be created only corresponding to OpenAPI spec as parsing is +// supported for OpenAPI spec. Also, within OpenAPI spec, only `schema` object +// is supported. +message Definition { + option (google.api.resource) = { + type: "apihub.googleapis.com/Definition" + pattern: "projects/{project}/locations/{location}/apis/{api}/versions/{version}/definitions/{definition}" + plural: "definitions" + singular: "definition" + }; + + // Enumeration of definition types. + enum Type { + // Definition type unspecified. + TYPE_UNSPECIFIED = 0; + + // Definition type schema. + SCHEMA = 1; + } + + oneof value { + // Output only. The value of a schema definition. + Schema schema = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Identifier. The name of the definition. + // + // Format: + // `projects/{project}/locations/{location}/apis/{api}/versions/{version}/definitions/{definition}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. The name of the spec from where the definition was parsed. + // Format is + // `projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}` + string spec = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "apihub.googleapis.com/Spec" } + ]; + + // Output only. The type of the definition. + Type type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which the definition was created. + google.protobuf.Timestamp create_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which the definition was last updated. + google.protobuf.Timestamp update_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The list of user defined attributes associated with the + // definition resource. The key is the attribute name. It will be of the + // format: `projects/{project}/locations/{location}/attributes/{attribute}`. + // The value is the attribute values associated with the resource. + map<string, AttributeValues> attributes = 7 + [(google.api.field_behavior) = OPTIONAL]; +} + +// An attribute in the API Hub. +// An attribute is a name value pair which can be attached to different +// resources in the API hub based on the scope of the attribute. Attributes can +// either be pre-defined by the API Hub or created by users. +message Attribute { + option (google.api.resource) = { + type: "apihub.googleapis.com/Attribute" + pattern: "projects/{project}/locations/{location}/attributes/{attribute}" + plural: "attributes" + singular: "attribute" + }; + + // The value that can be assigned to the attribute when the data type is + // enum. + message AllowedValue { + // Required. The ID of the allowed value. + // * If provided, the same will be used. The service will throw an error if + // the specified id is already used by another allowed value in the same + // attribute resource. + // * If not provided, a system generated id derived from the display name + // will be used. In this case, the service will handle conflict resolution + // by adding a system generated suffix in case of duplicates. + // + // This value should be 4-63 characters, and valid characters + // are /[a-z][0-9]-/. + string id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The display name of the allowed value. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The detailed description of the allowed value. + string description = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. When set to true, the allowed value cannot be updated or + // deleted by the user. It can only be true for System defined attributes. + bool immutable = 4 [(google.api.field_behavior) = OPTIONAL]; + } + + // Enumeration of attribute definition types. + enum DefinitionType { + // Attribute definition type unspecified. + DEFINITION_TYPE_UNSPECIFIED = 0; + + // The attribute is predefined by the API Hub. Note that only the list of + // allowed values can be updated in this case via UpdateAttribute method. + SYSTEM_DEFINED = 1; + + // The attribute is defined by the user. + USER_DEFINED = 2; + } + + // Enumeration for the scope of the attribute representing the resource in the + // API Hub to which the attribute can be linked. + enum Scope { + // Scope Unspecified. + SCOPE_UNSPECIFIED = 0; + + // Attribute can be linked to an API. + API = 1; + + // Attribute can be linked to an API version. + VERSION = 2; + + // Attribute can be linked to a Spec. + SPEC = 3; + + // Attribute can be linked to an API Operation. + API_OPERATION = 4; + + // Attribute can be linked to a Deployment. + DEPLOYMENT = 5; + + // Attribute can be linked to a Dependency. + DEPENDENCY = 6; + + // Attribute can be linked to a definition. + DEFINITION = 7; + + // Attribute can be linked to a ExternalAPI. + EXTERNAL_API = 8; + + // Attribute can be linked to a Plugin. + PLUGIN = 9; + } + + // Enumeration of attribute's data type. + enum DataType { + // Attribute data type unspecified. + DATA_TYPE_UNSPECIFIED = 0; + + // Attribute's value is of type enum. + ENUM = 1; + + // Attribute's value is of type json. + JSON = 2; + + // Attribute's value is of type string. + STRING = 3; + } + + // Identifier. The name of the attribute in the API Hub. + // + // Format: + // `projects/{project}/locations/{location}/attributes/{attribute}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. The display name of the attribute. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The description of the attribute. + string description = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The definition type of the attribute. + DefinitionType definition_type = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The scope of the attribute. It represents the resource in the API + // Hub to which the attribute can be linked. + Scope scope = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. The type of the data of the attribute. + DataType data_type = 6 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The list of allowed values when the attribute value is of type + // enum. This is required when the data_type of the attribute is ENUM. The + // maximum number of allowed values of an attribute will be 1000. + repeated AllowedValue allowed_values = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The maximum number of values that the attribute can have when + // associated with an API Hub resource. Cardinality 1 would represent a + // single-valued attribute. It must not be less than 1 or greater than 20. If + // not specified, the cardinality would be set to 1 by default and represent a + // single-valued attribute. + int32 cardinality = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. When mandatory is true, the attribute is mandatory for the + // resource specified in the scope. Only System defined attributes can be + // mandatory. + bool mandatory = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which the attribute was created. + google.protobuf.Timestamp create_time = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which the attribute was last updated. + google.protobuf.Timestamp update_time = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The spec contents. +message SpecContents { + // Required. The contents of the spec. + bytes contents = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The mime type of the content for example application/json, + // application/yaml, application/wsdl etc. + string mime_type = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// SpecDetails contains the details parsed from supported +// spec types. +message SpecDetails { + oneof details { + // Output only. Additional details apart from `OperationDetails` parsed from + // an OpenAPI spec. The OperationDetails parsed from the spec can be + // obtained by using + // [ListAPIOperations][google.cloud.apihub.v1.ApiHub.ListApiOperations] + // method. + OpenApiSpecDetails open_api_spec_details = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The description of the spec. + string description = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// OpenApiSpecDetails contains the details parsed from an OpenAPI spec in +// addition to the fields mentioned in +// [SpecDetails][google.cloud.apihub.v1.SpecDetails]. +message OpenApiSpecDetails { + // Enumeration of spec formats. + enum Format { + // SpecFile type unspecified. + FORMAT_UNSPECIFIED = 0; + + // OpenAPI Spec v2.0. + OPEN_API_SPEC_2_0 = 1; + + // OpenAPI Spec v3.0. + OPEN_API_SPEC_3_0 = 2; + + // OpenAPI Spec v3.1. + OPEN_API_SPEC_3_1 = 3; + } + + // Output only. The format of the spec. + Format format = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The version in the spec. + // This maps to `info.version` in OpenAPI spec. + string version = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Owner details for the spec. + // This maps to `info.contact` in OpenAPI spec. + Owner owner = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The operation details parsed from the spec. +message OperationDetails { + oneof operation { + // The HTTP Operation. + HttpOperation http_operation = 4; + } + + // Output only. Description of the operation behavior. + // For OpenAPI spec, this will map to `operation.description` in the + // spec, in case description is empty, `operation.summary` will be used. + string description = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Additional external documentation for this operation. + // For OpenAPI spec, this will map to `operation.documentation` in the spec. + Documentation documentation = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. For OpenAPI spec, this will be set if `operation.deprecated`is + // marked as `true` in the spec. + bool deprecated = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The HTTP Operation. +message HttpOperation { + // Enumeration of Method types. + enum Method { + // Method unspecified. + METHOD_UNSPECIFIED = 0; + + // Get Operation type. + GET = 1; + + // Put Operation type. + PUT = 2; + + // Post Operation type. + POST = 3; + + // Delete Operation type. + DELETE = 4; + + // Options Operation type. + OPTIONS = 5; + + // Head Operation type. + HEAD = 6; + + // Patch Operation type. + PATCH = 7; + + // Trace Operation type. + TRACE = 8; + } + + // Output only. The path details for the Operation. + Path path = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Operation method + Method method = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The path details derived from the spec. +message Path { + // Output only. Complete path relative to server endpoint. + string path = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A short description for the path applicable to all operations. + string description = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The schema details derived from the spec. Currently, this entity is supported +// for OpenAPI spec only. +// For OpenAPI spec, this maps to the schema defined in +// the `definitions` section for OpenAPI 2.0 version and in +// `components.schemas` section for OpenAPI 3.0 and 3.1 version. +message Schema { + // Output only. The display name of the schema. + // This will map to the name of the schema in the spec. + string display_name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The raw value of the schema definition corresponding to the + // schema name in the spec. + bytes raw_value = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Owner details. +message Owner { + // Optional. The name of the owner. + string display_name = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The email of the owner. + string email = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Documentation details. +message Documentation { + // Optional. The uri of the externally hosted documentation. + string external_uri = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// The attribute values associated with resource. +message AttributeValues { + // The attribute values of data type enum. + message EnumAttributeValues { + // Required. The attribute values in case attribute data type is enum. + repeated Attribute.AllowedValue values = 1 + [(google.api.field_behavior) = REQUIRED]; + } + + // The attribute values of data type string or JSON. + message StringAttributeValues { + // Required. The attribute values in case attribute data type is string or + // JSON. + repeated string values = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // The attribute values associated with the resource. + oneof Value { + // The attribute values associated with a resource in case attribute data + // type is enum. + EnumAttributeValues enum_values = 2; + + // The attribute values associated with a resource in case attribute data + // type is string. + StringAttributeValues string_values = 3; + + // The attribute values associated with a resource in case attribute data + // type is JSON. + StringAttributeValues json_values = 4; + } + + // Output only. The name of the attribute. + // Format: projects/{project}/locations/{location}/attributes/{attribute} + string attribute = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "apihub.googleapis.com/Attribute" + } + ]; +} + +// A dependency resource defined in the API hub describes a dependency directed +// from a consumer to a supplier entity. A dependency can be defined between two +// [Operations][google.cloud.apihub.v1.Operation] or between +// an [Operation][google.cloud.apihub.v1.Operation] and [External +// API][google.cloud.apihub.v1.ExternalApi]. +message Dependency { + option (google.api.resource) = { + type: "apihub.googleapis.com/Dependency" + pattern: "projects/{project}/locations/{location}/dependencies/{dependency}" + plural: "dependencies" + singular: "dependency" + }; + + // Possible states for a dependency. + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // Dependency will be in a proposed state when it is newly identified by the + // API hub on its own. + PROPOSED = 1; + + // Dependency will be in a validated state when it is validated by the + // admin or manually created in the API hub. + VALIDATED = 2; + } + + // Possible modes of discovering the dependency. + enum DiscoveryMode { + // Default value. This value is unused. + DISCOVERY_MODE_UNSPECIFIED = 0; + + // Manual mode of discovery when the dependency is defined by the user. + MANUAL = 1; + } + + // Identifier. The name of the dependency in the API Hub. + // + // Format: `projects/{project}/locations/{location}/dependencies/{dependency}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. Immutable. The entity acting as the consumer in the dependency. + DependencyEntityReference consumer = 2 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = REQUIRED + ]; + + // Required. Immutable. The entity acting as the supplier in the dependency. + DependencyEntityReference supplier = 3 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = REQUIRED + ]; + + // Output only. State of the dependency. + State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Human readable description corresponding of the dependency. + string description = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Discovery mode of the dependency. + DiscoveryMode discovery_mode = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Error details of a dependency if the system has detected it + // internally. + DependencyErrorDetail error_detail = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which the dependency was created. + google.protobuf.Timestamp create_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time at which the dependency was last updated. + google.protobuf.Timestamp update_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The list of user defined attributes associated with the + // dependency resource. The key is the attribute name. It will be of the + // format: `projects/{project}/locations/{location}/attributes/{attribute}`. + // The value is the attribute values associated with the resource. + map<string, AttributeValues> attributes = 10 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Reference to an entity participating in a dependency. +message DependencyEntityReference { + // Required. Unique identifier for the participating entity. + oneof identifier { + // The resource name of an operation in the API Hub. + // + // Format: + // `projects/{project}/locations/{location}/apis/{api}/versions/{version}/operations/{operation}` + string operation_resource_name = 2; + + // The resource name of an external API in the API Hub. + // + // Format: + // `projects/{project}/locations/{location}/externalApis/{external_api}` + string external_api_resource_name = 3; + } + + // Output only. Display name of the entity. + string display_name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Details describing error condition of a dependency. +message DependencyErrorDetail { + // Possible values representing an error in the dependency. + enum Error { + // Default value used for no error in the dependency. + ERROR_UNSPECIFIED = 0; + + // Supplier entity has been deleted. + SUPPLIER_NOT_FOUND = 1; + + // Supplier entity has been recreated. + SUPPLIER_RECREATED = 2; + } + + // Optional. Error in the dependency. + Error error = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Timestamp at which the error was found. + google.protobuf.Timestamp error_time = 2 + [(google.api.field_behavior) = OPTIONAL]; +} + +// LintResponse contains the response from the linter. +message LintResponse { + // Count of issues with a given severity. + message SummaryEntry { + // Required. Severity of the issue. + Severity severity = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Count of issues with the given severity. + int32 count = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Optional. Array of issues found in the analyzed document. + repeated Issue issues = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Summary of all issue types and counts for each severity level. + repeated SummaryEntry summary = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Lint state represents success or failure for linting. + LintState state = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Name of the linting application. + string source = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. Name of the linter used. + Linter linter = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. Timestamp when the linting response was generated. + google.protobuf.Timestamp create_time = 6 + [(google.api.field_behavior) = REQUIRED]; +} + +// Issue contains the details of a single issue found by the linter. +message Issue { + // Required. Rule code unique to each rule defined in linter. + string code = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. An array of strings indicating the location in the analyzed + // document where the rule was triggered. + repeated string path = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Human-readable message describing the issue found by the linter. + string message = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Severity level of the rule violation. + Severity severity = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. Object describing where in the file the issue was found. + Range range = 5 [(google.api.field_behavior) = REQUIRED]; +} + +// Object describing where in the file the issue was found. +message Range { + // Required. Start of the issue. + Point start = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. End of the issue. + Point end = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Point within the file (line and character). +message Point { + // Required. Line number (zero-indexed). + int32 line = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Character position within the line (zero-indexed). + int32 character = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Represents the metadata of the long-running operation. +message OperationMetadata { + // Output only. The time the operation was created. + google.protobuf.Timestamp create_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time the operation finished running. + google.protobuf.Timestamp end_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server-defined resource path for the target of the operation. + string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the verb executed by the operation. + string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Human-readable status of the operation, if any. + string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Identifies whether the user has requested cancellation + // of the operation. Operations that have been cancelled successfully + // have [Operation.error][] value with a + // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to + // `Code.CANCELLED`. + bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. API version used to start the operation. + string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// An ApiHubInstance represents the instance resources of the API Hub. +// Currently, only one ApiHub instance is allowed for each project. +message ApiHubInstance { + option (google.api.resource) = { + type: "apihub.googleapis.com/ApiHubInstance" + pattern: "projects/{project}/locations/{location}/apiHubInstances/{api_hub_instance}" + plural: "apiHubInstances" + singular: "apiHubInstance" + }; + + // Available configurations to provision an ApiHub Instance. + message Config { + // 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 the instance location. + string cmek_key_name = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // State of the ApiHub Instance. + enum State { + // The default value. This value is used if the state is omitted. + STATE_UNSPECIFIED = 0; + + // The ApiHub instance has not been initialized or has been deleted. + INACTIVE = 1; + + // The ApiHub instance is being created. + CREATING = 2; + + // The ApiHub instance has been created and is ready for use. + ACTIVE = 3; + + // The ApiHub instance is being updated. + UPDATING = 4; + + // The ApiHub instance is being deleted. + DELETING = 5; + + // The ApiHub instance encountered an error during a state change. + FAILED = 6; + } + + // Identifier. Format: + // `projects/{project}/locations/{location}/apiHubInstances/{apiHubInstance}`. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // 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 ApiHub instance. + State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Extra information about ApiHub instance state. Currently the + // message would be populated when state is `FAILED`. + string state_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Config of the ApiHub instance. + Config config = 6 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Instance labels to represent user-provided metadata. + // Refer to cloud documentation on labels for more details. + // https://cloud.google.com/compute/docs/labeling-resources + map<string, string> labels = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Description of the ApiHub instance. + string description = 8 [(google.api.field_behavior) = OPTIONAL]; +} + +// An external API represents an API being provided by external sources. This +// can be used to model third-party APIs and can be used to define dependencies. +message ExternalApi { + option (google.api.resource) = { + type: "apihub.googleapis.com/ExternalApi" + pattern: "projects/{project}/locations/{location}/externalApis/{external_api}" + plural: "externalApis" + singular: "externalApi" + }; + + // Identifier. Format: + // `projects/{project}/locations/{location}/externalApi/{externalApi}`. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. Display name of the external API. Max length is 63 characters + // (Unicode Code Points). + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Description of the external API. Max length is 2000 characters + // (Unicode Code Points). + string description = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. List of endpoints on which this API is accessible. + repeated string endpoints = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. List of paths served by this API. + repeated string paths = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Documentation of the external API. + Documentation documentation = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The list of user defined attributes associated with the Version + // resource. The key is the attribute name. It will be of the format: + // `projects/{project}/locations/{location}/attributes/{attribute}`. + // The value is the attribute values associated with the resource. + map<string, AttributeValues> attributes = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Creation timestamp. + google.protobuf.Timestamp create_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Last update timestamp. + google.protobuf.Timestamp update_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/apihub/v1/host_project_registration_service.proto b/google/cloud/apihub/v1/host_project_registration_service.proto new file mode 100644 index 000000000..2f9f370c8 --- /dev/null +++ b/google/cloud/apihub/v1/host_project_registration_service.proto @@ -0,0 +1,207 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.apihub.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/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.ApiHub.V1"; +option go_package = "cloud.google.com/go/apihub/apiv1/apihubpb;apihubpb"; +option java_multiple_files = true; +option java_outer_classname = "HostProjectRegistrationServiceProto"; +option java_package = "com.google.cloud.apihub.v1"; +option php_namespace = "Google\\Cloud\\ApiHub\\V1"; +option ruby_package = "Google::Cloud::ApiHub::V1"; + +// This service is used for managing the host project registrations. +service HostProjectRegistrationService { + option (google.api.default_host) = "apihub.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Create a host project registration. + // A Google cloud project can be registered as a host project if it is not + // attached as a runtime project to another host project. + // A project can be registered as a host project only once. Subsequent + // register calls for the same project will fail. + rpc CreateHostProjectRegistration(CreateHostProjectRegistrationRequest) + returns (HostProjectRegistration) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/hostProjectRegistrations" + body: "host_project_registration" + }; + option (google.api.method_signature) = + "parent,host_project_registration,host_project_registration_id"; + } + + // Get a host project registration. + rpc GetHostProjectRegistration(GetHostProjectRegistrationRequest) + returns (HostProjectRegistration) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/hostProjectRegistrations/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists host project registrations. + rpc ListHostProjectRegistrations(ListHostProjectRegistrationsRequest) + returns (ListHostProjectRegistrationsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/hostProjectRegistrations" + }; + option (google.api.method_signature) = "parent"; + } +} + +// The +// [CreateHostProjectRegistration][google.cloud.apihub.v1.HostProjectRegistrationService.CreateHostProjectRegistration] +// method's request. +message CreateHostProjectRegistrationRequest { + // Required. The parent resource for the host project. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apihub.googleapis.com/HostProjectRegistration" + } + ]; + + // Required. The ID to use for the Host Project Registration, which will + // become the final component of the host project registration's resource + // name. The ID must be the same as the Google cloud project specified in the + // host_project_registration.gcp_project field. + string host_project_registration_id = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The host project registration to register. + HostProjectRegistration host_project_registration = 3 + [(google.api.field_behavior) = REQUIRED]; +} + +// The +// [GetHostProjectRegistration][google.cloud.apihub.v1.HostProjectRegistrationService.GetHostProjectRegistration] +// method's request. +message GetHostProjectRegistrationRequest { + // Required. Host project registration resource name. + // projects/{project}/locations/{location}/hostProjectRegistrations/{host_project_registration_id} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apihub.googleapis.com/HostProjectRegistration" + } + ]; +} + +// The +// [ListHostProjectRegistrations][google.cloud.apihub.v1.HostProjectRegistrationService.ListHostProjectRegistrations] +// method's request. +message ListHostProjectRegistrationsRequest { + // Required. The parent, which owns this collection of host projects. + // Format: `projects/*/locations/*` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apihub.googleapis.com/HostProjectRegistration" + } + ]; + + // Optional. The maximum number of host project registrations to return. The + // service may return fewer than this value. If unspecified, at most 50 host + // project registrations 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 + // `ListHostProjectRegistrations` call. Provide this to retrieve the + // subsequent page. + // + // When paginating, all other parameters (except page_size) provided to + // `ListHostProjectRegistrations` must match the call that provided the page + // token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. An expression that filters the list of HostProjectRegistrations. + // + // A filter expression consists of a field name, a comparison + // operator, and a value for filtering. The value must be a string. All + // standard operators as documented at https://google.aip.dev/160 are + // supported. + // + // The following fields in the `HostProjectRegistration` are eligible for + // filtering: + // + // * `name` - The name of the HostProjectRegistration. + // * `create_time` - The time at which the HostProjectRegistration was + // created. The value should be in the + // (RFC3339)[https://tools.ietf.org/html/rfc3339] format. + // * `gcp_project` - The Google cloud project associated with the + // HostProjectRegistration. + 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]; +} + +// The +// [ListHostProjectRegistrations][google.cloud.apihub.v1.HostProjectRegistrationService.ListHostProjectRegistrations] +// method's response. +message ListHostProjectRegistrationsResponse { + // The list of host project registrations. + repeated HostProjectRegistration host_project_registrations = 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; +} + +// Host project registration refers to the registration of a Google cloud +// project with Api Hub as a host project. This is the project where Api Hub is +// provisioned. It acts as the consumer project for the Api Hub instance +// provisioned. Multiple runtime projects can be attached to the host project +// and these attachments define the scope of Api Hub. +message HostProjectRegistration { + option (google.api.resource) = { + type: "apihub.googleapis.com/HostProjectRegistration" + pattern: "projects/{project}/locations/{location}/hostProjectRegistrations/{host_project_registration}" + plural: "hostProjectRegistrations" + singular: "hostProjectRegistration" + }; + + // Identifier. The name of the host project registration. + // Format: + // "projects/{project}/locations/{location}/hostProjectRegistrations/{host_project_registration}". + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. Immutable. Google cloud project name in the format: + // "projects/abc" or "projects/123". As input, project name with either + // project id or number are accepted. As output, this field will contain + // project number. + string gcp_project = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; + + // Output only. The time at which the host project registration was created. + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/apihub/v1/linting_service.proto b/google/cloud/apihub/v1/linting_service.proto new file mode 100644 index 000000000..9001c551a --- /dev/null +++ b/google/cloud/apihub/v1/linting_service.proto @@ -0,0 +1,159 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.apihub.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/apihub/v1/common_fields.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.ApiHub.V1"; +option go_package = "cloud.google.com/go/apihub/apiv1/apihubpb;apihubpb"; +option java_multiple_files = true; +option java_outer_classname = "LintingServiceProto"; +option java_package = "com.google.cloud.apihub.v1"; +option php_namespace = "Google\\Cloud\\ApiHub\\V1"; +option ruby_package = "Google::Cloud::ApiHub::V1"; + +// This service provides all methods related to the 1p Linter. +service LintingService { + option (google.api.default_host) = "apihub.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Get the style guide being used for linting. + rpc GetStyleGuide(GetStyleGuideRequest) returns (StyleGuide) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/plugins/*/styleGuide}" + }; + option (google.api.method_signature) = "name"; + } + + // Update the styleGuide to be used for liniting in by API hub. + rpc UpdateStyleGuide(UpdateStyleGuideRequest) returns (StyleGuide) { + option (google.api.http) = { + patch: "/v1/{style_guide.name=projects/*/locations/*/plugins/*/styleGuide}" + body: "style_guide" + }; + option (google.api.method_signature) = "style_guide,update_mask"; + } + + // Get the contents of the style guide. + rpc GetStyleGuideContents(GetStyleGuideContentsRequest) + returns (StyleGuideContents) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/plugins/*/styleGuide}:contents" + }; + option (google.api.method_signature) = "name"; + } + + // Lints the requested spec and updates the corresponding API Spec with the + // lint response. This lint response will be available in all subsequent + // Get and List Spec calls to Core service. + rpc LintSpec(LintSpecRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}:lint" + body: "*" + }; + } +} + +// The [GetStyleGuide][ApiHub.GetStyleGuide] method's request. +message GetStyleGuideRequest { + // Required. The name of the spec to retrieve. + // Format: + // `projects/{project}/locations/{location}/plugins/{plugin}/styleGuide`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apihub.googleapis.com/StyleGuide" + } + ]; +} + +// The [UpdateStyleGuide][ApiHub.UpdateStyleGuide] method's request. +message UpdateStyleGuideRequest { + // Required. The Style guide resource to update. + StyleGuide style_guide = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The list of fields to update. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = OPTIONAL]; +} + +// The [GetStyleGuideContents][ApiHub.GetStyleGuideContents] method's request. +message GetStyleGuideContentsRequest { + // Required. The name of the StyleGuide whose contents need to be retrieved. + // There is exactly one style guide resource per project per location. + // The expected format is + // `projects/{project}/locations/{location}/plugins/{plugin}/styleGuide`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apihub.googleapis.com/StyleGuide" + } + ]; +} + +// The [LintSpec][ApiHub.LintSpec] method's request. +message LintSpecRequest { + // Required. The name of the spec to be linted. + // Format: + // `projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "apihub.googleapis.com/Spec" } + ]; +} + +// The style guide contents. +message StyleGuideContents { + // Required. The contents of the style guide. + bytes contents = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The mime type of the content. + string mime_type = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Represents a singleton style guide resource to be used for linting Open API +// specs. +message StyleGuide { + option (google.api.resource) = { + type: "apihub.googleapis.com/StyleGuide" + pattern: "projects/{project}/locations/{location}/plugins/{plugin}/styleGuide" + plural: "styleGuides" + singular: "styleGuide" + }; + + // Identifier. The name of the style guide. + // + // Format: + // `projects/{project}/locations/{location}/plugins/{plugin}/styleGuide` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. Target linter for the style guide. + Linter linter = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Input only. The contents of the uploaded style guide. + StyleGuideContents contents = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = INPUT_ONLY + ]; +} diff --git a/google/cloud/apihub/v1/plugin_service.proto b/google/cloud/apihub/v1/plugin_service.proto new file mode 100644 index 000000000..233c0669a --- /dev/null +++ b/google/cloud/apihub/v1/plugin_service.proto @@ -0,0 +1,148 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.apihub.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/apihub/v1/common_fields.proto"; + +option csharp_namespace = "Google.Cloud.ApiHub.V1"; +option go_package = "cloud.google.com/go/apihub/apiv1/apihubpb;apihubpb"; +option java_multiple_files = true; +option java_outer_classname = "PluginServiceProto"; +option java_package = "com.google.cloud.apihub.v1"; +option php_namespace = "Google\\Cloud\\ApiHub\\V1"; +option ruby_package = "Google::Cloud::ApiHub::V1"; + +// This service is used for managing plugins inside the API Hub. +service ApiHubPlugin { + option (google.api.default_host) = "apihub.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Get details about an API Hub plugin. + rpc GetPlugin(GetPluginRequest) returns (Plugin) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/plugins/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Enables a plugin. + // The `state` of the plugin after enabling is `ENABLED` + rpc EnablePlugin(EnablePluginRequest) returns (Plugin) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/plugins/*}:enable" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + + // Disables a plugin. + // The `state` of the plugin after disabling is `DISABLED` + rpc DisablePlugin(DisablePluginRequest) returns (Plugin) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/plugins/*}:disable" + body: "*" + }; + option (google.api.method_signature) = "name"; + } +} + +// A plugin resource in the API Hub. +message Plugin { + option (google.api.resource) = { + type: "apihub.googleapis.com/Plugin" + pattern: "projects/{project}/locations/{location}/plugins/{plugin}" + plural: "plugins" + singular: "plugin" + }; + + // Possible states a plugin can have. Note that this enum may receive new + // values in the future. Consumers are advised to always code against the + // enum values expecting new states can be added later on. + enum State { + // The default value. This value is used if the state is omitted. + STATE_UNSPECIFIED = 0; + + // The plugin is enabled. + ENABLED = 1; + + // The plugin is disabled. + DISABLED = 2; + } + + // Identifier. The name of the plugin. + // Format: `projects/{project}/locations/{location}/plugins/{plugin}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. The display name of the plugin. Max length is 50 characters + // (Unicode code points). + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The type of the API. + // This maps to the following system defined attribute: + // `projects/{project}/locations/{location}/attributes/system-plugin-type` + // attribute. + // The number of allowed values for this attribute will be based on the + // cardinality of the attribute. The same can be retrieved via GetAttribute + // API. All values should be from the list of allowed values defined for the + // attribute. + AttributeValues type = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The plugin description. Max length is 2000 characters (Unicode + // code points). + string description = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Represents the state of the plugin. + State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The [GetPlugin][google.cloud.apihub.v1.ApiHubPlugin.GetPlugin] method's +// request. +message GetPluginRequest { + // Required. The name of the plugin to retrieve. + // Format: `projects/{project}/locations/{location}/plugins/{plugin}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "apihub.googleapis.com/Plugin" } + ]; +} + +// The [EnablePlugin][google.cloud.apihub.v1.ApiHubPlugin.EnablePlugin] method's +// request. +message EnablePluginRequest { + // Required. The name of the plugin to enable. + // Format: `projects/{project}/locations/{location}/plugins/{plugin}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "apihub.googleapis.com/Plugin" } + ]; +} + +// The [DisablePlugin][google.cloud.apihub.v1.ApiHubPlugin.DisablePlugin] +// method's request. +message DisablePluginRequest { + // Required. The name of the plugin to disable. + // Format: `projects/{project}/locations/{location}/plugins/{plugin}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "apihub.googleapis.com/Plugin" } + ]; +} diff --git a/google/cloud/apihub/v1/provisioning_service.proto b/google/cloud/apihub/v1/provisioning_service.proto new file mode 100644 index 000000000..2bf39fab7 --- /dev/null +++ b/google/cloud/apihub/v1/provisioning_service.proto @@ -0,0 +1,136 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.apihub.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/apihub/v1/common_fields.proto"; +import "google/longrunning/operations.proto"; + +option csharp_namespace = "Google.Cloud.ApiHub.V1"; +option go_package = "cloud.google.com/go/apihub/apiv1/apihubpb;apihubpb"; +option java_multiple_files = true; +option java_outer_classname = "ProvisioningServiceProto"; +option java_package = "com.google.cloud.apihub.v1"; +option php_namespace = "Google\\Cloud\\ApiHub\\V1"; +option ruby_package = "Google::Cloud::ApiHub::V1"; + +// This service is used for managing the data plane provisioning of the API hub. +service Provisioning { + option (google.api.default_host) = "apihub.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Provisions instance resources for the API Hub. + rpc CreateApiHubInstance(CreateApiHubInstanceRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/apiHubInstances" + body: "api_hub_instance" + }; + option (google.api.method_signature) = + "parent,api_hub_instance,api_hub_instance_id"; + option (google.longrunning.operation_info) = { + response_type: "ApiHubInstance" + metadata_type: "OperationMetadata" + }; + } + + // Gets details of a single API Hub instance. + rpc GetApiHubInstance(GetApiHubInstanceRequest) returns (ApiHubInstance) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/apiHubInstances/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Looks up an Api Hub instance in a given GCP project. There will always be + // only one Api Hub instance for a GCP project across all locations. + rpc LookupApiHubInstance(LookupApiHubInstanceRequest) + returns (LookupApiHubInstanceResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/apiHubInstances:lookup" + }; + option (google.api.method_signature) = "parent"; + } +} + +// The +// [CreateApiHubInstance][google.cloud.apihub.v1.Provisioning.CreateApiHubInstance] +// method's request. +message CreateApiHubInstanceRequest { + // Required. The parent resource for the Api Hub instance resource. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. Identifier to assign to the Api Hub instance. Must be unique + // within scope of the parent resource. If the field is not provided, system + // generated id will be used. + // + // This value should be 4-40 characters, and valid characters + // are `/[a-z][A-Z][0-9]-_/`. + string api_hub_instance_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The ApiHub instance. + ApiHubInstance api_hub_instance = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// The +// [GetApiHubInstance][google.cloud.apihub.v1.Provisioning.GetApiHubInstance] +// method's request. +message GetApiHubInstanceRequest { + // Required. The name of the Api Hub instance to retrieve. + // Format: + // `projects/{project}/locations/{location}/apiHubInstances/{apiHubInstance}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apihub.googleapis.com/ApiHubInstance" + } + ]; +} + +// The +// [LookupApiHubInstance][google.cloud.apihub.v1.Provisioning.LookupApiHubInstance] +// method's request. +message LookupApiHubInstanceRequest { + // Required. There will always be only one Api Hub instance for a GCP project + // across all locations. + // The parent resource for the Api Hub instance resource. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apihub.googleapis.com/ApiHubInstance" + } + ]; +} + +// The +// [LookupApiHubInstance][google.cloud.apihub.v1.Provisioning.LookupApiHubInstance] +// method's response.` +message LookupApiHubInstanceResponse { + // API Hub instance for a project if it exists, empty otherwise. + ApiHubInstance api_hub_instance = 1; +} diff --git a/google/cloud/apihub/v1/runtime_project_attachment_service.proto b/google/cloud/apihub/v1/runtime_project_attachment_service.proto new file mode 100644 index 000000000..71c361c02 --- /dev/null +++ b/google/cloud/apihub/v1/runtime_project_attachment_service.proto @@ -0,0 +1,261 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.apihub.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/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.ApiHub.V1"; +option go_package = "cloud.google.com/go/apihub/apiv1/apihubpb;apihubpb"; +option java_multiple_files = true; +option java_outer_classname = "RuntimeProjectAttachmentServiceProto"; +option java_package = "com.google.cloud.apihub.v1"; +option php_namespace = "Google\\Cloud\\ApiHub\\V1"; +option ruby_package = "Google::Cloud::ApiHub::V1"; + +// This service is used for managing the runtime project attachments. +service RuntimeProjectAttachmentService { + option (google.api.default_host) = "apihub.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Attaches a runtime project to the host project. + rpc CreateRuntimeProjectAttachment(CreateRuntimeProjectAttachmentRequest) + returns (RuntimeProjectAttachment) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/runtimeProjectAttachments" + body: "runtime_project_attachment" + }; + option (google.api.method_signature) = + "parent,runtime_project_attachment,runtime_project_attachment_id"; + } + + // Gets a runtime project attachment. + rpc GetRuntimeProjectAttachment(GetRuntimeProjectAttachmentRequest) + returns (RuntimeProjectAttachment) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/runtimeProjectAttachments/*}" + }; + option (google.api.method_signature) = "name"; + } + + // List runtime projects attached to the host project. + rpc ListRuntimeProjectAttachments(ListRuntimeProjectAttachmentsRequest) + returns (ListRuntimeProjectAttachmentsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/runtimeProjectAttachments" + }; + option (google.api.method_signature) = "parent"; + } + + // Delete a runtime project attachment in the API Hub. This call will detach + // the runtime project from the host project. + rpc DeleteRuntimeProjectAttachment(DeleteRuntimeProjectAttachmentRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/runtimeProjectAttachments/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Look up a runtime project attachment. This API can be called in the context + // of any project. + rpc LookupRuntimeProjectAttachment(LookupRuntimeProjectAttachmentRequest) + returns (LookupRuntimeProjectAttachmentResponse) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*}:lookupRuntimeProjectAttachment" + }; + option (google.api.method_signature) = "name"; + } +} + +// The +// [CreateRuntimeProjectAttachment][google.cloud.apihub.v1.RuntimeProjectAttachmentService.CreateRuntimeProjectAttachment] +// method's request. +message CreateRuntimeProjectAttachmentRequest { + // Required. The parent resource for the Runtime Project Attachment. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apihub.googleapis.com/RuntimeProjectAttachment" + } + ]; + + // Required. The ID to use for the Runtime Project Attachment, which will + // become the final component of the Runtime Project Attachment's name. The ID + // must be the same as the project ID of the Google cloud project specified in + // the runtime_project_attachment.runtime_project field. + string runtime_project_attachment_id = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The Runtime Project Attachment to create. + RuntimeProjectAttachment runtime_project_attachment = 3 + [(google.api.field_behavior) = REQUIRED]; +} + +// The +// [GetRuntimeProjectAttachment][google.cloud.apihub.v1.RuntimeProjectAttachmentService.GetRuntimeProjectAttachment] +// method's request. +message GetRuntimeProjectAttachmentRequest { + // Required. The name of the API resource to retrieve. + // Format: + // `projects/{project}/locations/{location}/runtimeProjectAttachments/{runtime_project_attachment}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apihub.googleapis.com/RuntimeProjectAttachment" + } + ]; +} + +// The +// [ListRuntimeProjectAttachments][google.cloud.apihub.v1.RuntimeProjectAttachmentService.ListRuntimeProjectAttachments] +// method's request. +message ListRuntimeProjectAttachmentsRequest { + // Required. The parent, which owns this collection of runtime project + // attachments. Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "apihub.googleapis.com/RuntimeProjectAttachment" + } + ]; + + // Optional. The maximum number of runtime project attachments to return. The + // service may return fewer than this value. If unspecified, at most 50 + // runtime project attachments 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 + // `ListRuntimeProjectAttachments` call. Provide this to retrieve the + // subsequent page. + // + // When paginating, all other parameters (except page_size) provided to + // `ListRuntimeProjectAttachments` must match the call that provided the page + // token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. An expression that filters the list of RuntimeProjectAttachments. + // + // A filter expression consists of a field name, a comparison + // operator, and a value for filtering. The value must be a string. All + // standard operators as documented at https://google.aip.dev/160 are + // supported. + // + // The following fields in the `RuntimeProjectAttachment` are eligible for + // filtering: + // + // * `name` - The name of the RuntimeProjectAttachment. + // * `create_time` - The time at which the RuntimeProjectAttachment was + // created. The value should be in the + // (RFC3339)[https://tools.ietf.org/html/rfc3339] format. + // * `runtime_project` - The Google cloud project associated with the + // RuntimeProjectAttachment. + 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]; +} + +// The +// [ListRuntimeProjectAttachments][google.cloud.apihub.v1.RuntimeProjectAttachmentService.ListRuntimeProjectAttachments] +// method's response. +message ListRuntimeProjectAttachmentsResponse { + // List of runtime project attachments. + repeated RuntimeProjectAttachment runtime_project_attachments = 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; +} + +// The +// [DeleteRuntimeProjectAttachment][google.cloud.apihub.v1.RuntimeProjectAttachmentService.DeleteRuntimeProjectAttachment] +// method's request. +message DeleteRuntimeProjectAttachmentRequest { + // Required. The name of the Runtime Project Attachment to delete. + // Format: + // `projects/{project}/locations/{location}/runtimeProjectAttachments/{runtime_project_attachment}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "apihub.googleapis.com/RuntimeProjectAttachment" + } + ]; +} + +// The +// [LookupRuntimeProjectAttachment][google.cloud.apihub.v1.RuntimeProjectAttachmentService.LookupRuntimeProjectAttachment] +// method's request. +message LookupRuntimeProjectAttachmentRequest { + // Required. Runtime project ID to look up runtime project attachment for. + // Lookup happens across all regions. Expected format: + // `projects/{project}/locations/{location}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; +} + +// The +// [ListRuntimeProjectAttachments][google.cloud.apihub.v1.RuntimeProjectAttachmentService.ListRuntimeProjectAttachments] +// method's response. +message LookupRuntimeProjectAttachmentResponse { + // Runtime project attachment for a project if exists, empty otherwise. + RuntimeProjectAttachment runtime_project_attachment = 1; +} + +// Runtime project attachment represents an attachment from the runtime project +// to the host project. Api Hub looks for deployments in the attached runtime +// projects and creates corresponding resources in Api Hub for the discovered +// deployments. +message RuntimeProjectAttachment { + option (google.api.resource) = { + type: "apihub.googleapis.com/RuntimeProjectAttachment" + pattern: "projects/{project}/locations/{location}/runtimeProjectAttachments/{runtime_project_attachment}" + plural: "runtimeProjectAttachments" + singular: "runtimeProjectAttachment" + }; + + // Identifier. The resource name of a runtime project attachment. Format: + // "projects/{project}/locations/{location}/runtimeProjectAttachments/{runtime_project_attachment}". + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. Immutable. Google cloud project name in the format: + // "projects/abc" or "projects/123". As input, project name with either + // project id or number are accepted. As output, this field will contain + // project number. + string runtime_project = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; + + // Output only. Create time. + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/asset/v1/BUILD.bazel b/google/cloud/asset/v1/BUILD.bazel index b5af68636..7e85e6990 100644 --- a/google/cloud/asset/v1/BUILD.bazel +++ b/google/cloud/asset/v1/BUILD.bazel @@ -243,7 +243,7 @@ php_gapic_library( name = "asset_php_gapic", srcs = [":asset_proto_with_info"], grpc_service_config = "cloudasset_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "cloudasset_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/asset/v1/asset_service.proto b/google/cloud/asset/v1/asset_service.proto index d9b60233c..5ce750677 100644 --- a/google/cloud/asset/v1/asset_service.proto +++ b/google/cloud/asset/v1/asset_service.proto @@ -1996,10 +1996,12 @@ message QueryAssetsResponse { // 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 + // If `done` == `false` and the query result is being saved in an output, the // output_config field will be set. // If `done` == `true`, exactly one of // `error`, `query_result` or `output_config` will be set. + // [done] is unset unless the [QueryAssetsResponse] contains a + // [QueryAssetsResponse.job_reference]. bool done = 2; oneof response { @@ -2009,8 +2011,9 @@ message QueryAssetsResponse { // 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. + // Output configuration, which indicates that instead of being returned in + // an API response on the fly, the query result will be saved in a specific + // output. QueryAssetsOutputConfig output_config = 5; } } diff --git a/google/cloud/asset/v1/assets.proto b/google/cloud/asset/v1/assets.proto index d40a3492c..336eda2fa 100644 --- a/google/cloud/asset/v1/assets.proto +++ b/google/cloud/asset/v1/assets.proto @@ -341,7 +341,6 @@ message EffectiveTagDetails { } // A result of Resource Search, containing information of a cloud resource. -// Next ID: 34 message ResourceSearchResult { // The full resource name of this resource. Example: // `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1`. @@ -424,8 +423,8 @@ message ResourceSearchResult { // * Use a free text query. Example: `us-west*` string location = 6; - // Labels associated with this resource. See [Labelling and grouping Google - // Cloud + // User labels associated with this resource. See [Labelling and grouping + // Google Cloud // 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 // Protobuf contains it. diff --git a/google/cloud/asset/v1p1beta1/cloudasset_v1p1beta1.yaml b/google/cloud/asset/v1p1beta1/cloudasset_v1p1beta1.yaml index 519426634..5427459ae 100644 --- a/google/cloud/asset/v1p1beta1/cloudasset_v1p1beta1.yaml +++ b/google/cloud/asset/v1p1beta1/cloudasset_v1p1beta1.yaml @@ -32,7 +32,7 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform - - selector: google.longrunning.Operations.GetOperation + - selector: 'google.longrunning.Operations.*' oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/asset/v1p2beta1/cloudasset_v1p2beta1.yaml b/google/cloud/asset/v1p2beta1/cloudasset_v1p2beta1.yaml index fda05aa06..2026f603f 100644 --- a/google/cloud/asset/v1p2beta1/cloudasset_v1p2beta1.yaml +++ b/google/cloud/asset/v1p2beta1/cloudasset_v1p2beta1.yaml @@ -33,7 +33,7 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform - - selector: google.longrunning.Operations.GetOperation + - selector: 'google.longrunning.Operations.*' oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/asset/v1p5beta1/cloudasset_v1p5beta1.yaml b/google/cloud/asset/v1p5beta1/cloudasset_v1p5beta1.yaml index f43cb10d4..af8df5be7 100644 --- a/google/cloud/asset/v1p5beta1/cloudasset_v1p5beta1.yaml +++ b/google/cloud/asset/v1p5beta1/cloudasset_v1p5beta1.yaml @@ -28,7 +28,7 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform - - selector: google.longrunning.Operations.GetOperation + - selector: 'google.longrunning.Operations.*' oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/asset/v1p7beta1/cloudasset_v1p7beta1.yaml b/google/cloud/asset/v1p7beta1/cloudasset_v1p7beta1.yaml index 6787da243..c94cacc8c 100644 --- a/google/cloud/asset/v1p7beta1/cloudasset_v1p7beta1.yaml +++ b/google/cloud/asset/v1p7beta1/cloudasset_v1p7beta1.yaml @@ -36,7 +36,7 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform - - selector: google.longrunning.Operations.GetOperation + - selector: 'google.longrunning.Operations.*' 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 687fd2f8d..a2f4c192f 100644 --- a/google/cloud/automl/v1/BUILD.bazel +++ b/google/cloud/automl/v1/BUILD.bazel @@ -229,7 +229,7 @@ php_gapic_library( name = "automl_php_gapic", srcs = [":automl_proto_with_info"], grpc_service_config = "automl_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "automl_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/backupdr/logging/v1/BUILD.bazel b/google/cloud/backupdr/logging/v1/BUILD.bazel index 956e9c182..6f30bdedb 100644 --- a/google/cloud/backupdr/logging/v1/BUILD.bazel +++ b/google/cloud/backupdr/logging/v1/BUILD.bazel @@ -13,11 +13,12 @@ load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "logging_proto", srcs = [ + "bdr_log.proto", "eventlog.proto", "reportlog.proto", ], deps = [ - + "@com_google_protobuf//:timestamp_proto", ], ) @@ -27,8 +28,8 @@ proto_library( # buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", - "java_proto_library", "java_gapic_assembly_gradle_pkg", + "java_proto_library", ) java_proto_library( @@ -40,8 +41,8 @@ java_proto_library( java_gapic_assembly_gradle_pkg( name = "google-cloud-backupdr-logging-v1-java", deps = [ - ":logging_proto", ":logging_java_proto", + ":logging_proto", ], ) @@ -51,8 +52,8 @@ java_gapic_assembly_gradle_pkg( # buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", - "go_proto_library", "go_gapic_assembly_pkg", + "go_proto_library", ) go_proto_library( @@ -61,7 +62,6 @@ go_proto_library( importpath = "cloud.google.com/go/backupdr/logging/apiv1/loggingpb", protos = [":logging_proto"], deps = [ - ], ) @@ -79,17 +79,17 @@ go_gapic_assembly_pkg( load( "@com_google_googleapis_imports//:imports.bzl", "moved_proto_library", + "py_gapic_assembly_pkg", + "py_gapic_library", "py_grpc_library", "py_proto_library", - "py_gapic_library", - "py_gapic_assembly_pkg", ) moved_proto_library( name = "logging_moved_proto", srcs = [":logging_proto"], deps = [ - + "@com_google_protobuf//:timestamp_proto", ], ) @@ -168,8 +168,8 @@ ruby_grpc_library( # buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", - "csharp_proto_library", "csharp_gapic_assembly_pkg", + "csharp_proto_library", ) csharp_proto_library( diff --git a/google/cloud/backupdr/logging/v1/bdr_log.proto b/google/cloud/backupdr/logging/v1/bdr_log.proto new file mode 100644 index 000000000..934c5c914 --- /dev/null +++ b/google/cloud/backupdr/logging/v1/bdr_log.proto @@ -0,0 +1,83 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.backupdr.logging.v1; + +import "google/protobuf/timestamp.proto"; + +option go_package = + "cloud.google.com/go/backupdr/logging/apiv1/loggingpb;loggingpb"; +option java_multiple_files = true; + +// Log entry for Backup and Restore Job for resources using BackupPlan based +// protection. +message BDRBackupRestoreJobLog { + // The job_id field displays the identifier of the job being logged. + optional string job_id = 1; + + // The category field displays the category of the job. + optional string job_category = 2; + + // The status field displays the status of the job. + optional string job_status = 3; + + // Full resource name of the protected resource. + optional string source_resource_name = 4; + + // The source resource ID. + optional string source_resource_id = 5; + + // Full resource name of the restore resource. Only populated in + // restore jobs. + optional string restore_resource_name = 6; + + // Full resource name of the backup created in backup jobs and used in restore + // jobs. + optional string backup_name = 7; + + // The resource_type field displays the type of the protected resource. + optional string resource_type = 8; + + // Start time of the job. + optional google.protobuf.Timestamp start_time = 9; + + // End time of the job. + optional google.protobuf.Timestamp end_time = 10; + + // Full resource name for Backup Plan of the job. Only populated for Scheduled + // Backup and Adhoc Backup. + optional string backup_plan_name = 11; + + // Name of the backup rule. Only populated for Scheduled Backup and Adhoc + // Backup. + optional string backup_rule = 12; + + // Full resource name backup vault name + optional string backup_vault_name = 13; + + // The amount of incremental backup data copied. + optional double incremental_backup_size_gib = 14; + + // The error code. Only populated in error scenarios. + optional int32 error_code = 15; + + // The name of the error type eg. PERMISSION_DENIED. Only populated in error + // scenarios. + optional string error_type = 16; + + // The user readable error message. Only populated in error scenarios. + optional string error_message = 17; +} diff --git a/google/cloud/backupdr/logging/v1/reportlog.proto b/google/cloud/backupdr/logging/v1/reportlog.proto index 4ab04e473..0554139dc 100644 --- a/google/cloud/backupdr/logging/v1/reportlog.proto +++ b/google/cloud/backupdr/logging/v1/reportlog.proto @@ -331,8 +331,8 @@ message MountedImage { string mounted_image_name = 5; // Required. Source Image Name. string source_image_name = 6; - // Required.Job Type. - string job_type = 7; + // Required.Source Image Type. + string source_image_type = 7; // Required. Recovery point Date. string recovery_point_date = 8; // Required. Last Mount Date @@ -349,22 +349,61 @@ message MountedImage { string mounted_host_id = 14; // Required. Mounted Resource Name. string mounted_resource_name = 15; - // Required. Resource Virtual size(in GB) - string resource_virtual_size = 16; - // Required. Storage Consumed. - string storage_consumed = 17; + // Required. Resource Virtual size(in GiB) + double resource_virtual_size_in_gib = 16; + // Required. Storage Consumed(in GiB). + double storage_consumed_in_gib = 17; // Optional. label. string mounted_resource_label = 18; // Optional. Restorable Objects. string restorable_object = 19; - // Required. Mount Duration. - string mount_duration = 20; + // Required. Mounted Image Age(in days). + int32 mounted_image_age_in_days = 20; // Required. User Name. string user_name = 21; // Optional. Read Mode. string read_mode = 22; - // Required. Resource size(in GB) - string resource_size = 23; + // Required. Resource size(in GiB) + double resource_size_in_gib = 23; // Optional. Image Expiration Date string image_expiration_date = 24; } + +// Holds information for the Connector Versions log +message ConnectorVersionReportLog { + // Required. Appliance Name. + string appliance_name = 1; + + // Required. Appliance Id. + string appliance_id = 2; + + // Required. Host Name. + string host_name = 3; + + // Required. Host Id. + string host_id = 4; + + // Optional. Os Type. + string host_os_type = 5; + + // Required. Host Ip Address. + string host_ip_address = 6; + + // Optional. Db Authentication. + string db_authentication = 7; + + // Required. Installed version. + string installed_version = 8; + + // Optional. Available version. + string available_version = 9; + + // Required. Version Check. + string version_check = 10; + + // Required. Disk Preference. + string disk_preference = 11; + + // Required. Transport + string transport = 12; +} diff --git a/google/cloud/backupdr/v1/BUILD.bazel b/google/cloud/backupdr/v1/BUILD.bazel index d8e15e172..92e26712b 100644 --- a/google/cloud/backupdr/v1/BUILD.bazel +++ b/google/cloud/backupdr/v1/BUILD.bazel @@ -25,14 +25,25 @@ proto_library( name = "backupdr_proto", srcs = [ "backupdr.proto", + "backupplan.proto", + "backupplanassociation.proto", + "backupvault.proto", + "backupvault_ba.proto", + "backupvault_gce.proto", ], deps = [ "//google/api:annotations_proto", "//google/api:client_proto", "//google/api:field_behavior_proto", + "//google/api:field_info_proto", "//google/api:resource_proto", "//google/longrunning:operations_proto", + "//google/rpc:status_proto", + "//google/type:dayofweek_proto", + "//google/type:month_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", ], @@ -134,6 +145,9 @@ go_proto_library( deps = [ "//google/api:annotations_go_proto", "//google/longrunning:longrunning_go_proto", + "//google/rpc:status_go_proto", + "//google/type:dayofweek_go_proto", + "//google/type:month_go_proto", ], ) @@ -154,6 +168,7 @@ go_gapic_library( "//google/longrunning:longrunning_go_proto", "@com_google_cloud_go_longrunning//:go_default_library", "@com_google_cloud_go_longrunning//autogen:go_default_library", + "@io_bazel_rules_go//proto/wkt:duration_go_proto", ], ) diff --git a/google/cloud/backupdr/v1/backupdr.proto b/google/cloud/backupdr/v1/backupdr.proto index 42b798458..d5ae643d6 100644 --- a/google/cloud/backupdr/v1/backupdr.proto +++ b/google/cloud/backupdr/v1/backupdr.proto @@ -19,7 +19,11 @@ package google.cloud.backupdr.v1; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; import "google/api/resource.proto"; +import "google/cloud/backupdr/v1/backupplan.proto"; +import "google/cloud/backupdr/v1/backupplanassociation.proto"; +import "google/cloud/backupdr/v1/backupvault.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; @@ -84,6 +88,266 @@ service BackupDR { metadata_type: "OperationMetadata" }; } + + // Creates a new BackupVault in a given project and location. + rpc CreateBackupVault(CreateBackupVaultRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/backupVaults" + body: "backup_vault" + }; + option (google.api.method_signature) = + "parent,backup_vault,backup_vault_id"; + option (google.longrunning.operation_info) = { + response_type: "BackupVault" + metadata_type: "OperationMetadata" + }; + } + + // Lists BackupVaults in a given project and location. + rpc ListBackupVaults(ListBackupVaultsRequest) + returns (ListBackupVaultsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/backupVaults" + }; + option (google.api.method_signature) = "parent"; + } + + // FetchUsableBackupVaults lists usable BackupVaults in a given project and + // location. Usable BackupVault are the ones that user has + // backupdr.backupVaults.get permission. + rpc FetchUsableBackupVaults(FetchUsableBackupVaultsRequest) + returns (FetchUsableBackupVaultsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/backupVaults:fetchUsable" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a BackupVault. + rpc GetBackupVault(GetBackupVaultRequest) returns (BackupVault) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/backupVaults/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the settings of a BackupVault. + rpc UpdateBackupVault(UpdateBackupVaultRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{backup_vault.name=projects/*/locations/*/backupVaults/*}" + body: "backup_vault" + }; + option (google.api.method_signature) = "backup_vault,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "BackupVault" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a BackupVault. + rpc DeleteBackupVault(DeleteBackupVaultRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/backupVaults/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists DataSources in a given project and location. + rpc ListDataSources(ListDataSourcesRequest) + returns (ListDataSourcesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/backupVaults/*}/dataSources" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a DataSource. + rpc GetDataSource(GetDataSourceRequest) returns (DataSource) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/backupVaults/*/dataSources/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the settings of a DataSource. + rpc UpdateDataSource(UpdateDataSourceRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{data_source.name=projects/*/locations/*/backupVaults/*/dataSources/*}" + body: "data_source" + }; + option (google.api.method_signature) = "data_source,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "DataSource" + metadata_type: "OperationMetadata" + }; + } + + // Lists Backups in a given project and location. + rpc ListBackups(ListBackupsRequest) returns (ListBackupsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/backupVaults/*/dataSources/*}/backups" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a Backup. + rpc GetBackup(GetBackupRequest) returns (Backup) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/backupVaults/*/dataSources/*/backups/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the settings of a Backup. + rpc UpdateBackup(UpdateBackupRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{backup.name=projects/*/locations/*/backupVaults/*/dataSources/*/backups/*}" + body: "backup" + }; + option (google.api.method_signature) = "backup,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Backup" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a Backup. + rpc DeleteBackup(DeleteBackupRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/backupVaults/*/dataSources/*/backups/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "Backup" + metadata_type: "OperationMetadata" + }; + } + + // Restore from a Backup + rpc RestoreBackup(RestoreBackupRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/backupVaults/*/dataSources/*/backups/*}:restore" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "RestoreBackupResponse" + metadata_type: "OperationMetadata" + }; + } + + // Create a BackupPlan + 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" + }; + } + + // Gets 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"; + } + + // Lists BackupPlans in a given project and location. + rpc ListBackupPlans(ListBackupPlansRequest) + returns (ListBackupPlansResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/backupPlans" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a single 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" + }; + } + + // Create a BackupPlanAssociation + rpc CreateBackupPlanAssociation(CreateBackupPlanAssociationRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/backupPlanAssociations" + body: "backup_plan_association" + }; + option (google.api.method_signature) = + "parent,backup_plan_association,backup_plan_association_id"; + option (google.longrunning.operation_info) = { + response_type: "BackupPlanAssociation" + metadata_type: "OperationMetadata" + }; + } + + // Gets details of a single BackupPlanAssociation. + rpc GetBackupPlanAssociation(GetBackupPlanAssociationRequest) + returns (BackupPlanAssociation) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/backupPlanAssociations/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists BackupPlanAssociations in a given project and location. + rpc ListBackupPlanAssociations(ListBackupPlanAssociationsRequest) + returns (ListBackupPlanAssociationsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/backupPlanAssociations" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a single BackupPlanAssociation. + rpc DeleteBackupPlanAssociation(DeleteBackupPlanAssociationRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/backupPlanAssociations/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Triggers a new Backup. + rpc TriggerBackup(TriggerBackupRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/backupPlanAssociations/*}:triggerBackup" + body: "*" + }; + option (google.api.method_signature) = "name,rule_id"; + option (google.longrunning.operation_info) = { + response_type: "BackupPlanAssociation" + metadata_type: "OperationMetadata" + }; + } } // Network configuration for ManagementServer instance. @@ -236,7 +500,7 @@ message ManagementServer { // Output only. The OAuth 2.0 client id is required to make API calls to the // BackupDR instance API of this ManagementServer. This is the value that - // should be provided in the ‘aud’ field of the OIDC ID Token (see openid + // should be provided in the 'aud' field of the OIDC ID Token (see openid // specification // https://openid.net/specs/openid-connect-core-1_0.html#IDToken). string oauth2_client_id = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -261,10 +525,11 @@ message ManagementServer { // Request message for listing management servers. message ListManagementServersRequest { // Required. The project and location for which to retrieve management servers - // information, in the format `projects/{project_id}/locations/{location}`. In - // Cloud BackupDR, locations map to GCP regions, for example **us-central1**. - // To retrieve management servers for all locations, use "-" for the - // `{location}` value. + // information, in the format 'projects/{project_id}/locations/{location}'. In + // Cloud BackupDR, locations map to Google Cloud regions, for example + // **us-central1**. To retrieve management servers for all locations, use "-" + // for the + // '{location}' value. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -291,7 +556,7 @@ message ListManagementServersResponse { // The list of ManagementServer instances in the project for the specified // location. // - // If the `{location}` value in the request is "-", the response contains a + // If the '{location}' value in the request is "-", the response contains a // list of instances from all locations. In case any location is unreachable, // the response will only return management servers in reachable locations and // the 'unreachable' field will be populated with a list of unreachable @@ -308,7 +573,7 @@ message ListManagementServersResponse { // Request message for getting a management server instance. message GetManagementServerRequest { // Required. Name of the management server resource name, in the format - // `projects/{project_id}/locations/{location}/managementServers/{resource_name}` + // 'projects/{project_id}/locations/{location}/managementServers/{resource_name}' string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -320,8 +585,8 @@ message GetManagementServerRequest { // Request message for creating a management server instance. message CreateManagementServerRequest { // Required. The management server project and location in the format - // `projects/{project_id}/locations/{location}`. In Cloud Backup and DR - // locations map to GCP regions, for example **us-central1**. + // 'projects/{project_id}/locations/{location}'. In Cloud Backup and DR + // locations map to Google Cloud regions, for example **us-central1**. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -403,7 +668,7 @@ message OperationMetadata { // 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`. + // '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/backupdr/v1/backupdr_grpc_service_config.json b/google/cloud/backupdr/v1/backupdr_grpc_service_config.json index 02d15d3e0..52e82cdf8 100644 --- a/google/cloud/backupdr/v1/backupdr_grpc_service_config.json +++ b/google/cloud/backupdr/v1/backupdr_grpc_service_config.json @@ -9,6 +9,42 @@ { "service": "google.cloud.backupdr.v1.BackupDR", "method": "GetManagementServer" + }, + { + "service": "google.cloud.backupdr.v1.BackupDR", + "method": "ListBackupVaults" + }, + { + "service": "google.cloud.backupdr.v1.BackupDR", + "method": "FetchUsableBackupVaults" + }, + { + "service": "google.cloud.backupdr.v1.BackupDR", + "method": "CreateBackupVault" + }, + { + "service": "google.cloud.backupdr.v1.BackupDR", + "method": "DeleteBackupVault" + }, + { + "service": "google.cloud.backupdr.v1.BackupDR", + "method": "GetBackupVault" + }, + { + "service": "google.cloud.backupdr.v1.BackupDR", + "method": "GetDataSource" + }, + { + "service": "google.cloud.backupdr.v1.BackupDR", + "method": "ListDataSources" + }, + { + "service": "google.cloud.backupdr.v1.BackupDR", + "method": "ListBackups" + }, + { + "service": "google.cloud.backupdr.v1.BackupDR", + "method": "GetBackup" } ], "timeout": "60s", @@ -33,6 +69,22 @@ { "service": "google.cloud.backupdr.v1.BackupDR", "method": "UpdateManagementServer" + }, + { + "service": "google.cloud.backupdr.v1.BackupDR", + "method": "UpdateBackupVault" + }, + { + "service": "google.cloud.backupdr.v1.BackupDR", + "method": "UpdateDataSource" + }, + { + "service": "google.cloud.backupdr.v1.BackupDR", + "method": "UpdateBackup" + }, + { + "service": "google.cloud.backupdr.v1.BackupDR", + "method": "RestoreBackup" } ], "timeout": "60s" diff --git a/google/cloud/backupdr/v1/backupdr_v1.yaml b/google/cloud/backupdr/v1/backupdr_v1.yaml index fb538f6a3..594cc2aba 100644 --- a/google/cloud/backupdr/v1/backupdr_v1.yaml +++ b/google/cloud/backupdr/v1/backupdr_v1.yaml @@ -11,6 +11,7 @@ apis: types: - name: google.cloud.backupdr.v1.OperationMetadata +- name: google.cloud.backupdr.v1.RestoreBackupResponse documentation: rules: diff --git a/google/cloud/backupdr/v1/backupplan.proto b/google/cloud/backupdr/v1/backupplan.proto new file mode 100644 index 000000000..c64986bf3 --- /dev/null +++ b/google/cloud/backupdr/v1/backupplan.proto @@ -0,0 +1,438 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.backupdr.v1; + +import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; +import "google/type/dayofweek.proto"; +import "google/type/month.proto"; + +option csharp_namespace = "Google.Cloud.BackupDR.V1"; +option go_package = "cloud.google.com/go/backupdr/apiv1/backupdrpb;backupdrpb"; +option java_multiple_files = true; +option java_outer_classname = "BackupPlanProto"; +option java_package = "com.google.cloud.backupdr.v1"; +option php_namespace = "Google\\Cloud\\BackupDR\\V1"; +option ruby_package = "Google::Cloud::BackupDR::V1"; + +// A `BackupPlan` specifies some common fields, such as `description` as well +// as one or more `BackupRule` messages. Each `BackupRule` has a retention +// policy and defines a schedule by which the system is to perform backup +// workloads. +message BackupPlan { + option (google.api.resource) = { + type: "backupdr.googleapis.com/BackupPlan" + pattern: "projects/{project}/locations/{location}/backupPlans/{backup_plan}" + plural: "backupPlans" + singular: "backupPlan" + }; + + // `State` enumerates the possible states for a `BackupPlan`. + enum State { + // State not set. + STATE_UNSPECIFIED = 0; + + // The resource is being created. + CREATING = 1; + + // The resource has been created and is fully usable. + ACTIVE = 2; + + // The resource is being deleted. + DELETING = 3; + + // The resource has been created but is not usable. + INACTIVE = 4; + } + + // Output only. Identifier. The resource name of the `BackupPlan`. + // + // Format: `projects/{project}/locations/{location}/backupPlans/{backup_plan}` + string name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = IDENTIFIER + ]; + + // Optional. The description of the `BackupPlan` resource. + // + // The description allows for additional details about `BackupPlan` and its + // use cases to be provided. An example description is the following: "This + // is a backup plan that performs a daily backup at 6pm and retains data for 3 + // months". The description must be at most 2048 characters. + string description = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This collection of key/value pairs allows for custom labels to be + // supplied by the user. Example, {"tag": "Weekly"}. + map<string, string> labels = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. When the `BackupPlan` was created. + google.protobuf.Timestamp create_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. When the `BackupPlan` was last updated. + google.protobuf.Timestamp update_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The backup rules for this `BackupPlan`. There must be at least + // one `BackupRule` message. + repeated BackupRule backup_rules = 6 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The `State` for the `BackupPlan`. + State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The resource type to which the `BackupPlan` will be applied. + // Examples include, "compute.googleapis.com/Instance" and + // "storage.googleapis.com/Bucket". + string resource_type = 8 [(google.api.field_behavior) = REQUIRED]; + + // Optional. `etag` is returned from the service in the response. As a user of + // the service, you may provide an etag value in this field to prevent stale + // resources. + string etag = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Resource name of backup vault which will be used as storage + // location for backups. Format: + // projects/{project}/locations/{location}/backupVaults/{backupvault} + string backup_vault = 10 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "backupdr.googleapis.com/BackupVault" + } + ]; + + // Output only. The Google Cloud Platform Service Account to be used by the + // BackupVault for taking backups. Specify the email address of the Backup + // Vault Service Account. + string backup_vault_service_account = 11 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// `BackupRule` binds the backup schedule to a retention policy. +message BackupRule { + // Required. Immutable. The unique id of this `BackupRule`. The `rule_id` is + // unique per `BackupPlan`.The `rule_id` must start with a lowercase letter + // followed by up to 62 lowercase letters, numbers, or hyphens. Pattern, + // /[a-z][a-z0-9-]{,62}/. + string rule_id = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Required. Configures the duration for which backup data will be kept. It is + // defined in “days”. The value should be greater than or equal to minimum + // enforced retention of the backup vault. + int32 backup_retention_days = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. + // + // The schedule that defines the automated backup workloads for this + // `BackupRule`. + oneof backup_schedule_oneof { + // Required. Defines a schedule that runs within the confines of a defined + // window of time. + StandardSchedule standard_schedule = 5 + [(google.api.field_behavior) = REQUIRED]; + } +} + +// `StandardSchedule` defines a schedule that run within the confines of a +// defined window of days. We can define recurrence type for schedule as +// HOURLY, DAILY, WEEKLY, MONTHLY or YEARLY. +message StandardSchedule { + // `RecurrenceTypes` enumerates the applicable periodicity for the schedule. + enum RecurrenceType { + // recurrence type not set + RECURRENCE_TYPE_UNSPECIFIED = 0; + + // The `BackupRule` is to be applied hourly. + HOURLY = 1; + + // The `BackupRule` is to be applied daily. + DAILY = 2; + + // The `BackupRule` is to be applied weekly. + WEEKLY = 3; + + // The `BackupRule` is to be applied monthly. + MONTHLY = 4; + + // The `BackupRule` is to be applied yearly. + YEARLY = 5; + } + + // Required. Specifies the `RecurrenceType` for the schedule. + RecurrenceType recurrence_type = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Specifies frequency for hourly backups. A hourly frequency of 2 + // means jobs will run every 2 hours from start time till end time defined. + // + // This is required for `recurrence_type`, `HOURLY` and is not applicable + // otherwise. A validation error will occur if a value is supplied and + // `recurrence_type` is not `HOURLY`. + // + // Value of hourly frequency should be between 6 and 23. + // + // Reason for limit : We found that there is bandwidth limitation of 3GB/S for + // GMI while taking a backup and 5GB/S while doing a restore. Given the amount + // of parallel backups and restore we are targeting, this will potentially + // take the backup time to mins and hours (in worst case scenario). + int32 hourly_frequency = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies days of week like, MONDAY or TUESDAY, on which jobs + // will run. + // + // This is required for `recurrence_type`, `WEEKLY` and is not applicable + // otherwise. A validation error will occur if a value is supplied and + // `recurrence_type` is not `WEEKLY`. + repeated google.type.DayOfWeek days_of_week = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies days of months like 1, 5, or 14 on which jobs will run. + // + // Values for `days_of_month` are only applicable for `recurrence_type`, + // `MONTHLY` and `YEARLY`. A validation error will occur if other values are + // supplied. + repeated int32 days_of_month = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies a week day of the month like, FIRST SUNDAY or LAST + // MONDAY, on which jobs will run. This will be specified by two fields in + // `WeekDayOfMonth`, one for the day, e.g. `MONDAY`, and one for the week, + // e.g. `LAST`. + // + // This field is only applicable for `recurrence_type`, `MONTHLY` and + // `YEARLY`. A validation error will occur if other values are supplied. + WeekDayOfMonth week_day_of_month = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the months of year, like `FEBRUARY` and/or `MAY`, on + // which jobs will run. + // + // This field is only applicable when `recurrence_type` is `YEARLY`. A + // validation error will occur if other values are supplied. + repeated google.type.Month months = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Required. A BackupWindow defines the window of day during which backup jobs + // will run. Jobs are queued at the beginning of the window and will be marked + // as `NOT_RUN` if they do not start by the end of the window. + // + // Note: running jobs will not be cancelled at the end of the window. + BackupWindow backup_window = 7 [(google.api.field_behavior) = REQUIRED]; + + // Required. The time zone to be used when interpreting the schedule. + // The value of this field must be a time zone name from the IANA tz database. + // See https://en.wikipedia.org/wiki/List_of_tz_database_time_zones for the + // list of valid timezone names. For e.g., Europe/Paris. + string time_zone = 8 [(google.api.field_behavior) = REQUIRED]; +} + +// `BackupWindow` defines a window of the day during which backup jobs will run. +message BackupWindow { + // Required. The hour of day (0-23) when the window starts for e.g. if value + // of start hour of day is 6 that mean backup window start at 6:00. + int32 start_hour_of_day = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The hour of day (1-24) when the window end for e.g. if value of + // end hour of day is 10 that mean backup window end time is 10:00. + // + // End hour of day should be greater than start hour of day. + // 0 <= start_hour_of_day < end_hour_of_day <= 24 + // + // End hour of day is not include in backup window that mean if + // end_hour_of_day= 10 jobs should start before 10:00. + int32 end_hour_of_day = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// `WeekDayOfMonth` defines the week day of the month on which the backups will +// run. The message combines a `WeekOfMonth` and `DayOfWeek` to produce values +// like `FIRST`/`MONDAY` or `LAST`/`FRIDAY`. +message WeekDayOfMonth { + // `WeekOfMonth` enumerates possible weeks in the month, e.g. the first, + // third, or last week of the month. + enum WeekOfMonth { + // The zero value. Do not use. + WEEK_OF_MONTH_UNSPECIFIED = 0; + + // The first week of the month. + FIRST = 1; + + // The second week of the month. + SECOND = 2; + + // The third week of the month. + THIRD = 3; + + // The fourth week of the month. + FOURTH = 4; + + // The last week of the month. + LAST = 5; + } + + // Required. Specifies the week of the month. + WeekOfMonth week_of_month = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Specifies the day of the week. + google.type.DayOfWeek day_of_week = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// The request message for creating a `BackupPlan`. +message CreateBackupPlanRequest { + // Required. The `BackupPlan` project and location in the format + // `projects/{project}/locations/{location}`. In Cloud BackupDR locations + // map to GCP regions, for example **us-central1**. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "backupdr.googleapis.com/BackupPlan" + } + ]; + + // Required. The name of the `BackupPlan` to create. The name must be unique + // for the specified project and location.The name must start with a lowercase + // letter followed by up to 62 lowercase letters, numbers, or hyphens. + // Pattern, /[a-z][a-z0-9-]{,62}/. + string backup_plan_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The `BackupPlan` resource object to create. + BackupPlan backup_plan = 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_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// The request message for getting a list `BackupPlan`. +message ListBackupPlansRequest { + // Required. The project and location for which to retrieve `BackupPlans` + // information. Format: `projects/{project}/locations/{location}`. In Cloud + // BackupDR, locations map to GCP regions, for e.g. **us-central1**. To + // retrieve backup plans for all locations, use "-" for the + // `{location}` value. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "backupdr.googleapis.com/BackupPlan" + } + ]; + + // Optional. The maximum number of `BackupPlans` to return in a single + // response. If not specified, a default value will be chosen by the service. + // Note that the response may include a partial list and a caller should + // only rely on the response's + // [next_page_token][google.cloud.backupdr.v1.ListBackupPlansResponse.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 value of + // [next_page_token][google.cloud.backupdr.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 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Field match expression used to filter the results. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Field by which to sort the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response message for getting a list of `BackupPlan`. +message ListBackupPlansResponse { + // The list of `BackupPlans` in the project for the specified + // location. + // + // If the `{location}` value in the request is "-", the response contains a + // list of resources from all locations. In case any location is unreachable, + // the response will only return backup plans in reachable locations and + // the 'unreachable' field will be populated with a list of unreachable + // locations. + // BackupPlan + repeated BackupPlan backup_plans = 1; + + // A token which may be sent as + // [page_token][google.cloud.backupdr.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; +} + +// The request message for getting a `BackupPlan`. +message GetBackupPlanRequest { + // Required. The resource name of the `BackupPlan` to retrieve. + // + // Format: `projects/{project}/locations/{location}/backupPlans/{backup_plan}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "backupdr.googleapis.com/BackupPlan" + } + ]; +} + +// The request message for deleting a `BackupPlan`. +message DeleteBackupPlanRequest { + // Required. The resource name of the `BackupPlan` to delete. + // + // Format: `projects/{project}/locations/{location}/backupPlans/{backup_plan}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "backupdr.googleapis.com/BackupPlan" + } + ]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 2 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} diff --git a/google/cloud/backupdr/v1/backupplanassociation.proto b/google/cloud/backupdr/v1/backupplanassociation.proto new file mode 100644 index 000000000..b807a2b91 --- /dev/null +++ b/google/cloud/backupdr/v1/backupplanassociation.proto @@ -0,0 +1,313 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.backupdr.v1; + +import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Cloud.BackupDR.V1"; +option go_package = "cloud.google.com/go/backupdr/apiv1/backupdrpb;backupdrpb"; +option java_multiple_files = true; +option java_outer_classname = "BackupPlanAssociationProto"; +option java_package = "com.google.cloud.backupdr.v1"; +option php_namespace = "Google\\Cloud\\BackupDR\\V1"; +option ruby_package = "Google::Cloud::BackupDR::V1"; + +// A BackupPlanAssociation represents a single BackupPlanAssociation which +// contains details like workload, backup plan etc +message BackupPlanAssociation { + option (google.api.resource) = { + type: "backupdr.googleapis.com/BackupPlanAssociation" + pattern: "projects/{project}/locations/{location}/backupPlanAssociations/{backup_plan_association}" + plural: "backupPlanAssociations" + singular: "backupPlanAssociation" + }; + + // Enum for State of BackupPlan Association + enum State { + // State not set. + STATE_UNSPECIFIED = 0; + + // The resource is being created. + CREATING = 1; + + // The resource has been created and is fully usable. + ACTIVE = 2; + + // The resource is being deleted. + DELETING = 3; + + // The resource has been created but is not usable. + INACTIVE = 4; + } + + // Output only. Identifier. The resource name of BackupPlanAssociation in + // below format Format : + // projects/{project}/locations/{location}/backupPlanAssociations/{backupPlanAssociationId} + string name = 1 [ + (google.api.field_behavior) = IDENTIFIER, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Optional. Resource type of workload on which backupplan is applied + string resource_type = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Immutable. Resource name of workload on which backupplan is + // applied + string resource = 3 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = REQUIRED + ]; + + // Required. Resource name of backup plan which needs to be applied on + // workload. Format: + // projects/{project}/locations/{location}/backupPlans/{backupPlanId} + string backup_plan = 4 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "backupdr.googleapis.com/BackupPlan" + } + ]; + + // Output only. The time when the instance was created. + google.protobuf.Timestamp create_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the instance was updated. + google.protobuf.Timestamp update_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The BackupPlanAssociation resource state. + State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The config info related to backup rules. + repeated RuleConfigInfo rules_config_info = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Output Only. + // + // Resource name of data source which will be used as storage location for + // backups taken. + // Format : + // projects/{project}/locations/{location}/backupVaults/{backupvault}/dataSources/{datasource} + string data_source = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Message for rules config info. +message RuleConfigInfo { + // Enum for LastBackupState + enum LastBackupState { + // State not set. + LAST_BACKUP_STATE_UNSPECIFIED = 0; + + // The first backup is pending. + FIRST_BACKUP_PENDING = 1; + + // The most recent backup could not be run/failed because of the lack of + // permissions. + PERMISSION_DENIED = 2; + + // The last backup operation succeeded. + SUCCEEDED = 3; + + // The last backup operation failed. + FAILED = 4; + } + + // Output only. Output Only. + // + // Backup Rule id fetched from backup plan. + string rule_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The last backup state for rule. + LastBackupState last_backup_state = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Output Only. + // + // google.rpc.Status object to store the last backup error. + google.rpc.Status last_backup_error = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The point in time when the last successful backup was captured + // from the source. + google.protobuf.Timestamp last_successful_backup_consistency_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request message for creating a backup plan. +message CreateBackupPlanAssociationRequest { + // Required. The backup plan association project and location in the format + // `projects/{project_id}/locations/{location}`. In Cloud BackupDR locations + // map to GCP regions, for example **us-central1**. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "backupdr.googleapis.com/BackupPlanAssociation" + } + ]; + + // Required. The name of the backup plan association to create. The name must + // be unique for the specified project and location. + string backup_plan_association_id = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource being created + BackupPlanAssociation backup_plan_association = 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_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// Request message for List BackupPlanAssociation +message ListBackupPlanAssociationsRequest { + // Required. The project and location for which to retrieve backup Plan + // Associations information, in the format + // `projects/{project_id}/locations/{location}`. In Cloud BackupDR, locations + // map to GCP regions, for example **us-central1**. To retrieve backup plan + // associations for all locations, use "-" for the + // `{location}` value. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "backupdr.googleapis.com/BackupPlanAssociation" + } + ]; + + // 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]; +} + +// Response message for List BackupPlanAssociation +message ListBackupPlanAssociationsResponse { + // The list of Backup Plan Associations in the project for the specified + // location. + // + // If the `{location}` value in the request is "-", the response contains a + // list of instances from all locations. In case any location is unreachable, + // the response will only return backup plan associations in reachable + // locations and the 'unreachable' field will be populated with a list of + // unreachable locations. + repeated BackupPlanAssociation backup_plan_associations = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request message for getting a BackupPlanAssociation resource. +message GetBackupPlanAssociationRequest { + // Required. Name of the backup plan association resource, in the format + // `projects/{project}/locations/{location}/backupPlanAssociations/{backupPlanAssociationId}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "backupdr.googleapis.com/BackupPlanAssociation" + } + ]; +} + +// Request message for deleting a backup plan association. +message DeleteBackupPlanAssociationRequest { + // Required. Name of the backup plan association resource, in the format + // `projects/{project}/locations/{location}/backupPlanAssociations/{backupPlanAssociationId}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "backupdr.googleapis.com/BackupPlanAssociation" + } + ]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 2 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// Request message for triggering a backup. +message TriggerBackupRequest { + // Required. Name of the backup plan association resource, in the format + // `projects/{project}/locations/{location}/backupPlanAssociations/{backupPlanAssociationId}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "backupdr.googleapis.com/BackupPlanAssociation" + } + ]; + + // Required. backup rule_id for which a backup needs to be triggered. + string rule_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 3 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} diff --git a/google/cloud/backupdr/v1/backupvault.proto b/google/cloud/backupdr/v1/backupvault.proto new file mode 100644 index 000000000..f9b46b5bf --- /dev/null +++ b/google/cloud/backupdr/v1/backupvault.proto @@ -0,0 +1,1146 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.backupdr.v1; + +import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; +import "google/api/resource.proto"; +import "google/cloud/backupdr/v1/backupvault_ba.proto"; +import "google/cloud/backupdr/v1/backupvault_gce.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Cloud.BackupDR.V1"; +option go_package = "cloud.google.com/go/backupdr/apiv1/backupdrpb;backupdrpb"; +option java_multiple_files = true; +option java_outer_classname = "BackupVaultProto"; +option java_package = "com.google.cloud.backupdr.v1"; +option php_namespace = "Google\\Cloud\\BackupDR\\V1"; +option ruby_package = "Google::Cloud::BackupDR::V1"; + +// Message describing a BackupVault object. +message BackupVault { + option (google.api.resource) = { + type: "backupdr.googleapis.com/BackupVault" + pattern: "projects/{project}/locations/{location}/backupVaults/{backupvault}" + plural: "backupVaults" + singular: "backupVault" + }; + + // Holds the state of the backup vault resource. + enum State { + // State not set. + STATE_UNSPECIFIED = 0; + + // The backup vault is being created. + CREATING = 1; + + // The backup vault has been created and is fully usable. + ACTIVE = 2; + + // The backup vault is being deleted. + DELETING = 3; + + // The backup vault is experiencing an issue and might be unusable. + ERROR = 4; + } + + // Holds the access restriction for the backup vault. + enum AccessRestriction { + // Access restriction not set. + ACCESS_RESTRICTION_UNSPECIFIED = 0; + + // Access to or from resources outside your current project will be denied. + WITHIN_PROJECT = 1; + + // Access to or from resources outside your current organization will be + // denied. + WITHIN_ORGANIZATION = 2; + + // No access restriction. + UNRESTRICTED = 3; + } + + // Output only. Identifier. Name of the backup vault to create. It must have + // the + // format`"projects/{project}/locations/{location}/backupVaults/{backupvault}"`. + // `{backupvault}` cannot be changed after creation. It must be between 3-63 + // characters long and must be unique within the project and location. + string name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = IDENTIFIER + ]; + + // Optional. The description of the BackupVault instance (2048 characters or + // less). + optional string description = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Resource labels to represent user provided metadata. + // No labels currently defined: + map<string, string> labels = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The time when the instance was created. + optional google.protobuf.Timestamp create_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the instance was updated. + optional google.protobuf.Timestamp update_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The default and minimum enforced retention for each backup within + // the backup vault. The enforced retention for each backup can be extended. + optional google.protobuf.Duration backup_minimum_enforced_retention_duration = + 20 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Set to true when there are no backups nested under this + // resource. + optional bool deletable = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Server specified ETag for the backup vault resource to + // prevent simultaneous updates from overwiting each other. + optional string etag = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The BackupVault resource instance state. + State state = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Time after which the BackupVault resource is locked. + optional google.protobuf.Timestamp effective_time = 12 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The number of backups in this backup vault. + int64 backup_count = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Service account used by the BackupVault Service for this + // BackupVault. The user should grant this account permissions in their + // workload project to enable the service to run backups and restores there. + string service_account = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Total size of the storage used by all backup resources. + int64 total_stored_bytes = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Output only + // Immutable after resource creation until resource deletion. + string uid = 21 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Optional. User annotations. See https://google.aip.dev/128#annotations + // Stores small amounts of arbitrary data. + map<string, string> annotations = 22 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Note: This field is added for future use case and will not be + // supported in the current release. + // + // Optional. + // + // Access restriction for the backup vault. + // Default value is WITHIN_ORGANIZATION if not provided during creation. + AccessRestriction access_restriction = 24 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Message describing a DataSource object. +// Datasource object used to represent Datasource details for both admin and +// basic view. +message DataSource { + option (google.api.resource) = { + type: "backupdr.googleapis.com/DataSource" + pattern: "projects/{project}/locations/{location}/backupVaults/{backupvault}/dataSources/{datasource}" + plural: "dataSources" + singular: "dataSource" + }; + + // Holds the state of the data source resource. + enum State { + // State not set. + STATE_UNSPECIFIED = 0; + + // The data source is being created. + CREATING = 1; + + // The data source has been created and is fully usable. + ACTIVE = 2; + + // The data source is being deleted. + DELETING = 3; + + // The data source is experiencing an issue and might be unusable. + ERROR = 4; + } + + // Output only. Identifier. Name of the datasource to create. + // It must have the + // format`"projects/{project}/locations/{location}/backupVaults/{backupvault}/dataSources/{datasource}"`. + // `{datasource}` cannot be changed after creation. It must be between 3-63 + // characters long and must be unique within the backup vault. + string name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = IDENTIFIER + ]; + + // Output only. The DataSource resource instance state. + State state = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Resource labels to represent user provided metadata. + // No labels currently defined: + map<string, string> labels = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The time when the instance was created. + optional google.protobuf.Timestamp create_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the instance was updated. + optional google.protobuf.Timestamp update_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Number of backups in the data source. + optional int64 backup_count = 7; + + // Server specified ETag for the ManagementServer resource to prevent + // simultaneous updates from overwiting each other. + optional string etag = 14; + + // The number of bytes (metadata and data) stored in this datasource. + optional int64 total_stored_bytes = 23; + + // Output only. The backup configuration state. + BackupConfigState config_state = 24 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Details of how the resource is configured for backup. + BackupConfigInfo backup_config_info = 25 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The source resource that is represented by this DataSource. It can be a + // Google Cloud resource, or one backed up by a Backup Appliance. + oneof source_resource { + // The backed up resource is a Google Cloud resource. + // The word 'DataSource' was included in the names to indicate that this is + // the representation of the Google Cloud resource used within the + // DataSource object. + DataSourceGcpResource data_source_gcp_resource = 26; + + // The backed up resource is a backup appliance application. + DataSourceBackupApplianceApplication + data_source_backup_appliance_application = 27; + } +} + +// BackupConfigInfo has information about how the resource is configured +// for Backup and about the most recent backup to this vault. +message BackupConfigInfo { + // LastBackupstate tracks whether the last backup was not yet started, + // successful, failed, or could not be run because of the lack of permissions. + enum LastBackupState { + // Status not set. + LAST_BACKUP_STATE_UNSPECIFIED = 0; + + // The first backup has not yet completed + FIRST_BACKUP_PENDING = 1; + + // The most recent backup was successful + SUCCEEDED = 2; + + // The most recent backup failed + FAILED = 3; + + // The most recent backup could not be run/failed because of the lack of + // permissions + PERMISSION_DENIED = 4; + } + + // Output only. The status of the last backup to this BackupVault + LastBackupState last_backup_state = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If the last backup were successful, this field has the + // consistency date. + google.protobuf.Timestamp last_successful_backup_consistency_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If the last backup failed, this field has the error message. + google.rpc.Status last_backup_error = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Configuration Info has the resource format-specific configuration. + oneof backup_config { + // Configuration for a Google Cloud resource. + GcpBackupConfig gcp_backup_config = 4; + + // Configuration for an application backed up by a Backup Appliance. + BackupApplianceBackupConfig backup_appliance_backup_config = 5; + } +} + +// GcpBackupConfig captures the Backup configuration details for Google Cloud +// resources. All Google Cloud resources regardless of type are protected with +// backup plan associations. +message GcpBackupConfig { + // The name of the backup plan. + string backup_plan = 1 [(google.api.resource_reference) = { + type: "backupdr.googleapis.com/BackupPlan" + }]; + + // The description of the backup plan. + string backup_plan_description = 2; + + // The name of the backup plan association. + string backup_plan_association = 3 [(google.api.resource_reference) = { + type: "backupdr.googleapis.com/BackupPlanAssociation" + }]; + + // The names of the backup plan rules which point to this backupvault + repeated string backup_plan_rules = 4; +} + +// BackupApplianceBackupConfig captures the backup configuration for +// applications that are protected by Backup Appliances. +message BackupApplianceBackupConfig { + // The name of the backup appliance. + string backup_appliance_name = 1; + + // The ID of the backup appliance. + int64 backup_appliance_id = 2; + + // The ID of the SLA of this application. + int64 sla_id = 3; + + // The name of the application. + string application_name = 4; + + // The name of the host where the application is running. + string host_name = 5; + + // The name of the SLT associated with the application. + string slt_name = 6; + + // The name of the SLP associated with the application. + string slp_name = 7; +} + +// DataSourceGcpResource is used for protected resources that are Google Cloud +// Resources. This name is easeier to understand than GcpResourceDataSource or +// GcpDataSourceResource +message DataSourceGcpResource { + // Output only. Full resource pathname URL of the source Google Cloud + // resource. + string gcp_resourcename = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Location of the resource: <region>/<zone>/"global"/"unspecified". + string location = 2; + + // The type of the Google Cloud resource. Use the Unified Resource Type, + // eg. compute.googleapis.com/Instance. + string type = 3; + + // gcp_Properties has properties of the Google Cloud Resource. + oneof gcp_resource_properties { + // ComputeInstanceDataSourceProperties has a subset of Compute Instance + // properties that are useful at the Datasource level. + ComputeInstanceDataSourceProperties compute_instance_datasource_properties = + 4; + } +} + +// BackupApplianceApplication describes a Source Resource when it is an +// application backed up by a BackupAppliance. +message DataSourceBackupApplianceApplication { + // The name of the Application as known to the Backup Appliance. + string application_name = 1; + + // Appliance name. + string backup_appliance = 2; + + // Appliance Id of the Backup Appliance. + int64 appliance_id = 3; + + // The type of the application. e.g. VMBackup + string type = 4; + + // The appid field of the application within the Backup Appliance. + int64 application_id = 8; + + // Hostname of the host where the application is running. + string hostname = 6; + + // Hostid of the application host. + int64 host_id = 7; +} + +// ServiceLockInfo represents the details of a lock taken by the service on a +// Backup resource. +message ServiceLockInfo { + // Output only. The name of the operation that created this lock. + // The lock will automatically be released when the operation completes. + string operation = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// BackupApplianceLockInfo contains metadata about the backupappliance that +// created the lock. +message BackupApplianceLockInfo { + // Required. The ID of the backup/recovery appliance that created this lock. + int64 backup_appliance_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The name of the backup/recovery appliance that created this lock. + string backup_appliance_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The reason for the lock: e.g. MOUNT/RESTORE/BACKUP/etc. The + // value of this string is only meaningful to the client and it is not + // interpreted by the BackupVault service. + string lock_reason = 5 [(google.api.field_behavior) = REQUIRED]; + + // The information about this lock. + oneof lock_source { + // The job name on the backup/recovery appliance that created this lock. + string job_name = 6; + + // The image name that depends on this Backup. + string backup_image = 7; + + // The SLA on the backup/recovery appliance that owns the lock. + int64 sla_id = 8; + } +} + +// BackupLock represents a single lock on a Backup resource. An unexpired +// lock on a Backup prevents the Backup from being deleted. +message BackupLock { + // Required. The time after which this lock is not considered valid and will + // no longer protect the Backup from deletion. + google.protobuf.Timestamp lock_until_time = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Metadata about the owner and reason for the lock. + oneof ClientLockInfo { + // If the client is a backup and recovery appliance, this + // contains metadata about why the lock exists. + BackupApplianceLockInfo backup_appliance_lock_info = 3; + + // Output only. Contains metadata about the lock exist for Google Cloud + // native backups. + ServiceLockInfo service_lock_info = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } +} + +// Message describing a Backup object. +message Backup { + option (google.api.resource) = { + type: "backupdr.googleapis.com/Backup" + pattern: "projects/{project}/locations/{location}/backupVaults/{backupvault}/dataSources/{datasource}/backups/{backup}" + plural: "backups" + singular: "backup" + }; + + // Holds the state of the backup resource. + enum State { + // State not set. + STATE_UNSPECIFIED = 0; + + // The backup is being created. + CREATING = 1; + + // The backup has been created and is fully usable. + ACTIVE = 2; + + // The backup is being deleted. + DELETING = 3; + + // The backup is experiencing an issue and might be unusable. + ERROR = 4; + } + + // Type of the backup, scheduled or ondemand. + enum BackupType { + // Backup type is unspecified. + BACKUP_TYPE_UNSPECIFIED = 0; + + // Scheduled backup. + SCHEDULED = 1; + + // On demand backup. + ON_DEMAND = 2; + } + + // GCPBackupPlanInfo captures the plan configuration details of Google Cloud + // resources at the time of backup. + message GCPBackupPlanInfo { + // Resource name of backup plan by which workload is protected at the time + // of the backup. + // Format: + // projects/{project}/locations/{location}/backupPlans/{backupPlanId} + string backup_plan = 1 [(google.api.resource_reference) = { + type: "backupdr.googleapis.com/BackupPlan" + }]; + + // The rule id of the backup plan which triggered this backup in case of + // scheduled backup or used for + string backup_plan_rule_id = 2; + } + + // Output only. Identifier. Name of the backup to create. It must have the + // format`"projects/<project>/locations/<location>/backupVaults/<backupvault>/dataSources/{datasource}/backups/{backup}"`. + // `{backup}` cannot be changed after creation. It must be between 3-63 + // characters long and must be unique within the datasource. + string name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = IDENTIFIER + ]; + + // Output only. The description of the Backup instance (2048 characters or + // less). + optional string description = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the instance was created. + optional google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the instance was updated. + optional google.protobuf.Timestamp update_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Resource labels to represent user provided metadata. + // No labels currently defined. + map<string, string> labels = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The backup can not be deleted before this time. + optional google.protobuf.Timestamp enforced_retention_end_time = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. When this backup is automatically expired. + optional google.protobuf.Timestamp expire_time = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The point in time when this backup was captured from the + // source. + optional google.protobuf.Timestamp consistency_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Server specified ETag to prevent updates from overwriting each + // other. + optional string etag = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The Backup resource instance state. + State state = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The list of BackupLocks taken by the service to prevent the + // deletion of the backup. + repeated BackupLock service_locks = 17 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The list of BackupLocks taken by the accessor Backup Appliance. + repeated BackupLock backup_appliance_locks = 18 + [(google.api.field_behavior) = OPTIONAL]; + + // Workload specific backup properties. + oneof backup_properties { + // Output only. Compute Engine specific backup properties. + ComputeInstanceBackupProperties compute_instance_backup_properties = 19 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Backup Appliance specific backup properties. + BackupApplianceBackupProperties backup_appliance_backup_properties = 21 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. Type of the backup, unspecified, scheduled or ondemand. + BackupType backup_type = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Configuration Info has the resource format-specific configuration. + oneof plan_info { + // Output only. Configuration for a Google Cloud resource. + GCPBackupPlanInfo gcp_backup_plan_info = 22 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. source resource size in bytes at the time of the backup. + int64 resource_size_bytes = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Message for creating a BackupVault. +message CreateBackupVaultRequest { + // Required. Value for parent. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "backupdr.googleapis.com/BackupVault" + } + ]; + + // Required. ID of the requesting object + // If auto-generating ID server-side, remove this field and + // backup_vault_id from the method_signature of Create RPC + string backup_vault_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource being created + BackupVault backup_vault = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 4 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; + + // Optional. Only validate the request, but do not perform mutations. + // The default is 'false'. + bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for listing backupvault stores. +message ListBackupVaultsRequest { + // Required. The project and location for which to retrieve backupvault stores + // information, in the format 'projects/{project_id}/locations/{location}'. In + // Cloud Backup and DR, locations map to Google Cloud regions, for example + // **us-central1**. + // To retrieve backupvault stores for all locations, use "-" for the + // '{location}' value. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "backupdr.googleapis.com/BackupVault" + } + ]; + + // 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]; + + // Optional. Reserved for future use to provide a BASIC & FULL view of Backup + // Vault. + BackupVaultView view = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for listing BackupVaults. +message ListBackupVaultsResponse { + // The list of BackupVault instances in the project for the specified + // location. + // + // If the '{location}' value in the request is "-", the response contains a + // list of instances from all locations. In case any location is unreachable, + // the response will only return backup vaults in reachable locations and + // the 'unreachable' field will be populated with a list of unreachable + // locations. + repeated BackupVault backup_vaults = 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 fetching usable BackupVaults. +message FetchUsableBackupVaultsRequest { + // Required. The project and location for which to retrieve backupvault stores + // information, in the format 'projects/{project_id}/locations/{location}'. In + // Cloud Backup and DR, locations map to Google Cloud regions, for example + // **us-central1**. + // To retrieve backupvault stores for all locations, use "-" for the + // '{location}' value. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "backupdr.googleapis.com/BackupVault" + } + ]; + + // Optional. Requested page size. Server may return fewer items than + // requested. If unspecified, server will pick an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering results. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for fetching usable BackupVaults. +message FetchUsableBackupVaultsResponse { + // The list of BackupVault instances in the project for the specified + // location. + // + // If the '{location}' value in the request is "-", the response contains a + // list of instances from all locations. In case any location is unreachable, + // the response will only return backup vaults in reachable locations and + // the 'unreachable' field will be populated with a list of unreachable + // locations. + repeated BackupVault backup_vaults = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request message for getting a BackupVault. +message GetBackupVaultRequest { + // Required. Name of the backupvault store resource name, in the format + // 'projects/{project_id}/locations/{location}/backupVaults/{resource_name}' + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "backupdr.googleapis.com/BackupVault" + } + ]; + + // Optional. Reserved for future use to provide a BASIC & FULL view of Backup + // Vault + BackupVaultView view = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for updating a BackupVault. +message UpdateBackupVaultRequest { + // Required. Field mask is used to specify the fields to be overwritten in the + // BackupVault 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 the request will fail. + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource being updated + BackupVault backup_vault = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 3 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; + + // Optional. Only validate the request, but do not perform mutations. + // The default is 'false'. + bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set to true, will not check plan duration against backup vault + // enforcement duration. + bool force = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message for deleting a BackupVault. +message DeleteBackupVaultRequest { + // Required. Name of the resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "backupdr.googleapis.com/BackupVault" + } + ]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 2 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; + + // Optional. If set to true, any data source from this backup vault will also + // be deleted. + bool force = 3 [(google.api.field_behavior) = OPTIONAL]; + + // The current etag of the backup vault. + // If an etag is provided and does not match the current etag of the + // connection, deletion will be blocked. + string etag = 4; + + // Optional. Only validate the request, but do not perform mutations. + // The default is 'false'. + bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If true and the BackupVault is not found, the request will + // succeed but no action will be taken. + bool allow_missing = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for listing DataSources. +message ListDataSourcesRequest { + // Required. The project and location for which to retrieve data + // sources information, in the format + // 'projects/{project_id}/locations/{location}'. In Cloud Backup and DR, + // locations map to Google Cloud regions, for example **us-central1**. + // To retrieve data sources for all locations, use "-" for the + // '{location}' value. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "backupdr.googleapis.com/DataSource" + } + ]; + + // Optional. Requested page size. Server may return fewer items than + // requested. If unspecified, server will pick an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering results. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for listing DataSources. +message ListDataSourcesResponse { + // The list of DataSource instances in the project for the specified + // location. + // + // If the '{location}' value in the request is "-", the response contains a + // list of instances from all locations. In case any location is unreachable, + // the response will only return data sources in reachable locations + // and the 'unreachable' field will be populated with a list of unreachable + // locations. + repeated DataSource data_sources = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request message for getting a DataSource instance. +message GetDataSourceRequest { + // Required. Name of the data source resource name, in the format + // 'projects/{project_id}/locations/{location}/backupVaults/{resource_name}/dataSource/{resource_name}' + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "backupdr.googleapis.com/DataSource" + } + ]; +} + +// Request message for updating a data source instance. +message UpdateDataSourceRequest { + // Required. Field mask is used to specify the fields to be overwritten in the + // DataSource 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 the request will fail. + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource being updated + DataSource data_source = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 3 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; + + // Optional. Enable upsert. + bool allow_missing = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for listing Backups. +message ListBackupsRequest { + // Required. The project and location for which to retrieve backup + // information, in the format + // 'projects/{project_id}/locations/{location}'. In Cloud Backup and DR, + // locations map to Google Cloud regions, for example **us-central1**. + // To retrieve data sources for all locations, use "-" for the + // '{location}' value. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "backupdr.googleapis.com/Backup" + } + ]; + + // 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]; + + // Optional. Reserved for future use to provide a BASIC & FULL view of Backup + // resource. + BackupView view = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for listing Backups. +message ListBackupsResponse { + // The list of Backup instances in the project for the specified + // location. + // + // If the '{location}' value in the request is "-", the response contains a + // list of instances from all locations. In case any location is unreachable, + // the response will only return data sources in reachable locations + // and the 'unreachable' field will be populated with a list of unreachable + // locations. + repeated Backup backups = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; + + // Locations that could not be reached. + repeated string unreachable = 3; +} + +// Request message for getting a Backup. +message GetBackupRequest { + // Required. Name of the data source resource name, in the format + // 'projects/{project_id}/locations/{location}/backupVaults/{backupVault}/dataSources/{datasource}/backups/{backup}' + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "backupdr.googleapis.com/Backup" } + ]; + + // Optional. Reserved for future use to provide a BASIC & FULL view of Backup + // resource. + BackupView view = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for updating a Backup. +message UpdateBackupRequest { + // Required. Field mask is used to specify the fields to be overwritten in the + // Backup 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 the request will fail. + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource being updated + Backup backup = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 3 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// Message for deleting a Backup. +message DeleteBackupRequest { + // Required. Name of the resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "backupdr.googleapis.com/Backup" } + ]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 2 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// Request message for restoring from a Backup. +message RestoreBackupRequest { + // Required. The resource name of the Backup instance, in the format + // 'projects/*/locations/*/backupVaults/*/dataSources/*/backups/'. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "backupdr.googleapis.com/Backup" } + ]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 2 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; + + // The target environment for the restore operation. + oneof target_environment { + // Compute Engine target environment to be used during restore. + ComputeInstanceTargetEnvironment compute_instance_target_environment = 3; + } + + // The property overrides for the instance being restored. + oneof instance_properties { + // Compute Engine instance properties to be overridden during restore. + ComputeInstanceRestoreProperties compute_instance_restore_properties = 4; + } +} + +// Response message for restoring from a Backup. +message RestoreBackupResponse { + // Details of the target resource created/modified as part of restore. + TargetResource target_resource = 1; +} + +// Details of the target resource created/modified as part of restore. +message TargetResource { + // Minimum details to identify the restored resource. + oneof target_resource_info { + // Details of the native Google Cloud resource created as part of restore. + GcpResource gcp_resource = 1; + } +} + +// Minimum details to identify a Google Cloud resource +message GcpResource { + // Name of the Google Cloud resource. + string gcp_resourcename = 1; + + // Location of the resource: <region>/<zone>/"global"/"unspecified". + string location = 2; + + // Type of the resource. Use the Unified Resource Type, + // eg. compute.googleapis.com/Instance. + string type = 3; +} + +// Backup configuration state. Is the resource configured for backup? +enum BackupConfigState { + // The possible states of backup configuration. + // Status not set. + BACKUP_CONFIG_STATE_UNSPECIFIED = 0; + + // The data source is actively protected (i.e. there is a + // BackupPlanAssociation or Appliance SLA pointing to it) + ACTIVE = 1; + + // The data source is no longer protected (but may have backups under it) + PASSIVE = 2; +} + +// BackupView contains enum options for Partial and Full view. +enum BackupView { + // If the value is not set, the default 'FULL' view is used. + BACKUP_VIEW_UNSPECIFIED = 0; + + // Includes basic data about the Backup, but not the full contents. + BACKUP_VIEW_BASIC = 1; + + // Includes all data about the Backup. + // This is the default value (for both ListBackups and GetBackup). + BACKUP_VIEW_FULL = 2; +} + +// BackupVaultView contains enum options for Partial and Full view. +enum BackupVaultView { + // If the value is not set, the default 'FULL' view is used. + BACKUP_VAULT_VIEW_UNSPECIFIED = 0; + + // Includes basic data about the Backup Vault, but not the full contents. + BACKUP_VAULT_VIEW_BASIC = 1; + + // Includes all data about the Backup Vault. + // This is the default value (for both ListBackupVaults and GetBackupVault). + BACKUP_VAULT_VIEW_FULL = 2; +} diff --git a/google/cloud/backupdr/v1/backupvault_ba.proto b/google/cloud/backupdr/v1/backupvault_ba.proto new file mode 100644 index 000000000..619b7a342 --- /dev/null +++ b/google/cloud/backupdr/v1/backupvault_ba.proto @@ -0,0 +1,49 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.backupdr.v1; + +import "google/api/field_behavior.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.BackupDR.V1"; +option go_package = "cloud.google.com/go/backupdr/apiv1/backupdrpb;backupdrpb"; +option java_multiple_files = true; +option java_outer_classname = "BackupvaultBaProto"; +option java_package = "com.google.cloud.backupdr.v1"; +option php_namespace = "Google\\Cloud\\BackupDR\\V1"; +option ruby_package = "Google::Cloud::BackupDR::V1"; + +// BackupApplianceBackupProperties represents BackupDR backup appliance's +// properties. +message BackupApplianceBackupProperties { + // Output only. The numeric generation ID of the backup (monotonically + // increasing). + optional int32 generation_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when this backup object was finalized (if none, + // backup is not finalized). + optional google.protobuf.Timestamp finalize_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The earliest timestamp of data available in this Backup. + optional google.protobuf.Timestamp recovery_range_start_time = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The latest timestamp of data available in this Backup. + optional google.protobuf.Timestamp recovery_range_end_time = 4 + [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/backupdr/v1/backupvault_gce.proto b/google/cloud/backupdr/v1/backupvault_gce.proto new file mode 100644 index 000000000..cab0c0a7d --- /dev/null +++ b/google/cloud/backupdr/v1/backupvault_gce.proto @@ -0,0 +1,949 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.backupdr.v1; + +import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; + +option csharp_namespace = "Google.Cloud.BackupDR.V1"; +option go_package = "cloud.google.com/go/backupdr/apiv1/backupdrpb;backupdrpb"; +option java_multiple_files = true; +option java_outer_classname = "BackupvaultGceProto"; +option java_package = "com.google.cloud.backupdr.v1"; +option php_namespace = "Google\\Cloud\\BackupDR\\V1"; +option ruby_package = "Google::Cloud::BackupDR::V1"; + +// ComputeInstanceBackupProperties represents Compute Engine instance backup +// properties. +message ComputeInstanceBackupProperties { + // An optional text description for the instances that are created from these + // properties. + optional string description = 1; + + // 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 (https://www.ietf.org/rfc/rfc1035.txt). + optional Tags tags = 2; + + // The machine type to use for instances that are created from these + // properties. + optional string machine_type = 3; + + // 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 + // https://cloud.google.com/vpc/docs/using-routes#canipforward + // documentation for more information. + optional bool can_ip_forward = 4; + + // An array of network access configurations for this interface. + repeated NetworkInterface network_interface = 5; + + // An array of disks that are associated with the instances that are created + // from these properties. + repeated AttachedDisk disk = 6; + + // 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 https://cloud.google.com/compute/docs/metadata/overview for more + // information. + optional Metadata metadata = 7; + + // 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_account = 8; + + // Specifies the scheduling options for the instances that are created from + // these properties. + optional Scheduling scheduling = 9; + + // A list of guest accelerator cards' type and count to use for instances + // created from these properties. + repeated AcceleratorConfig guest_accelerator = 10; + + // 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 + // https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform. + optional string min_cpu_platform = 11; + + // KeyRevocationActionType of the instance. Supported options are "STOP" and + // "NONE". The default value is "NONE" if it is not specified. + optional KeyRevocationActionType key_revocation_action_type = 12; + + // The source instance used to create this backup. This can be 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 = 13; + + // Labels to apply to instances that are created from these properties. + map<string, string> labels = 14; +} + +// ComputeInstanceRestoreProperties represents Compute Engine instance +// properties to be overridden during restore. +message ComputeInstanceRestoreProperties { + // The private IPv6 google access type for the VMs. + enum InstancePrivateIpv6GoogleAccess { + // Default value. This value is unused. + INSTANCE_PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED = 0; + + // Each network interface inherits PrivateIpv6GoogleAccess from its + // subnetwork. + INHERIT_FROM_SUBNETWORK = 1; + + // 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. + ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE = 2; + + // 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. + ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE = 3; + } + + // Required. Name of the compute instance. + optional string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Controls for advanced machine-related behavior features. + optional AdvancedMachineFeatures advanced_machine_features = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Allows this instance to send and receive packets with + // non-matching destination or source IPs. + optional bool can_ip_forward = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Controls Confidential compute options on the instance + optional ConfidentialInstanceConfig confidential_instance_config = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Whether the resource should be protected against deletion. + optional bool deletion_protection = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. An optional description of this resource. Provide this property + // when you create the resource. + optional string description = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Array of disks associated with this instance. Persistent disks + // must be created before you can assign them. + repeated AttachedDisk disks = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Enables display device for the instance. + optional DisplayDevice display_device = 8 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A list of the type and count of accelerator cards attached to the + // instance. + repeated AcceleratorConfig guest_accelerators = 9 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. 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. + optional string hostname = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Encrypts suspended data for an instance with a + // customer-managed encryption key. + optional CustomerEncryptionKey instance_encryption_key = 11 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. KeyRevocationActionType of the instance. + optional KeyRevocationActionType key_revocation_action_type = 12 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Labels to apply to this instance. + map<string, string> labels = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Full or partial URL of the machine type resource to use for this + // instance. + optional string machine_type = 14 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This includes custom metadata and predefined keys. + optional Metadata metadata = 15 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Minimum CPU platform to use for this instance. + optional string min_cpu_platform = 16 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. 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 = 17 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Configure network performance such as egress bandwidth tier. + optional NetworkPerformanceConfig network_performance_config = 18 + [(google.api.field_behavior) = OPTIONAL]; + + // Input only. Additional params passed with the request, but not persisted + // as part of resource payload. + optional InstanceParams params = 19 + [(google.api.field_behavior) = INPUT_ONLY]; + + // Optional. The private IPv6 google access type for the VM. + // If not specified, use INHERIT_FROM_SUBNETWORK as default. + optional InstancePrivateIpv6GoogleAccess private_ipv6_google_access = 20 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the reservations that this instance can consume from. + optional AllocationAffinity allocation_affinity = 21 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Resource policies applied to this instance. + repeated string resource_policies = 22 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Sets the scheduling options for this instance. + optional Scheduling scheduling = 23 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A list of service accounts, with their specified scopes, + // authorized for this instance. Only one service account per VM instance is + // supported. + repeated ServiceAccount service_accounts = 24 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. 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. + optional Tags tags = 26 [(google.api.field_behavior) = OPTIONAL]; +} + +// ComputeInstanceTargetEnvironment represents Compute Engine target +// environment to be used during restore. +message ComputeInstanceTargetEnvironment { + // Required. Target project for the Compute Engine instance. + string project = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The zone of the Compute Engine instance. + string zone = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// ComputeInstanceDataSourceProperties represents the properties of a +// ComputeEngine resource that are stored in the DataSource. +message ComputeInstanceDataSourceProperties { + // Name of the compute instance backed up by the datasource. + string name = 1; + + // The description of the Compute Engine instance. + string description = 2; + + // The machine type of the instance. + string machine_type = 3; + + // The total number of disks attached to the Instance. + int64 total_disk_count = 4; + + // The sum of all the disk sizes. + int64 total_disk_size_gb = 5; +} + +// Specifies options for controlling advanced machine features. +message AdvancedMachineFeatures { + // Optional. Whether to enable nested virtualization or not (default is + // false). + optional bool enable_nested_virtualization = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. 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 = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. 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 = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Whether to enable UEFI networking for instance creation. + optional bool enable_uefi_networking = 4 + [(google.api.field_behavior) = OPTIONAL]; +} + +// A set of Confidential Instance options. +message ConfidentialInstanceConfig { + // Optional. Defines whether the instance should have confidential compute + // enabled. + optional bool enable_confidential_compute = 1 + [(google.api.field_behavior) = OPTIONAL]; +} + +// A set of Display Device options +message DisplayDevice { + // Optional. Enables display for the Compute Engine VM + optional bool enable_display = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// A specification of the type and number of accelerator cards attached to the +// instance. +message AcceleratorConfig { + // Optional. Full or partial URL of the accelerator type resource to attach to + // this instance. + optional string accelerator_type = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The number of the guest accelerator cards exposed to this + // instance. + optional int32 accelerator_count = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// A customer-supplied encryption key. +message CustomerEncryptionKey { + // The key to use for encryption. + oneof key { + // Optional. Specifies a 256-bit customer-supplied + // encryption key. + string raw_key = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. RSA-wrapped 2048-bit + // customer-supplied encryption key to either encrypt or decrypt this + // resource. + string rsa_encrypted_key = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The name of the encryption key that is stored in Google Cloud + // KMS. + string kms_key_name = 3 [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. The service account being used for the encryption request for the + // given KMS key. If absent, the Compute Engine default service account is + // used. + optional string kms_key_service_account = 4 + [(google.api.field_behavior) = OPTIONAL]; +} + +// A key/value pair to be used for storing metadata. +message Entry { + // Optional. Key for the metadata entry. + optional string key = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. 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). + optional string value = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// A metadata key/value entry. +message Metadata { + // Optional. Array of key/value pairs. The total size of all keys and values + // must be less than 512 KB. + repeated Entry items = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// A network interface resource attached to an instance. +// s +message NetworkInterface { + // Stack type for this network interface. + enum StackType { + // Default should be STACK_TYPE_UNSPECIFIED. + STACK_TYPE_UNSPECIFIED = 0; + + // The network interface will be assigned IPv4 address. + IPV4_ONLY = 1; + + // The network interface can have both IPv4 and IPv6 addresses. + IPV4_IPV6 = 2; + } + + // IPv6 access type for this network interface. + enum Ipv6AccessType { + // IPv6 access type not set. Means this network interface hasn't been + // turned on IPv6 yet. + UNSPECIFIED_IPV6_ACCESS_TYPE = 0; + + // This network interface can have internal IPv6. + INTERNAL = 1; + + // This network interface can have external IPv6. + EXTERNAL = 2; + } + + // Nic type for this network interface. + enum NicType { + // Default should be NIC_TYPE_UNSPECIFIED. + NIC_TYPE_UNSPECIFIED = 0; + + // VIRTIO + VIRTIO_NET = 1; + + // GVNIC + GVNIC = 2; + } + + // Optional. URL of the VPC network resource for this instance. + optional string network = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The URL of the Subnetwork resource for this instance. + optional string subnetwork = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. 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. + optional string ip_address = 3 [ + (google.api.field_info).format = IPV4, + (google.api.field_behavior) = OPTIONAL + ]; + + // Optional. An IPv6 internal network address for this network interface. To + // use a static internal IP address, it must be unused and in the same region + // as the instance's zone. If not specified, Google Cloud will automatically + // assign an internal IPv6 address from the instance's subnetwork. + optional string ipv6_address = 4 [ + (google.api.field_info).format = IPV6, + (google.api.field_behavior) = OPTIONAL + ]; + + // Optional. The prefix length of the primary internal IPv6 range. + optional int32 internal_ipv6_prefix_length = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. [Output Only] The name of the network interface, which is + // generated by the server. + optional string name = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. 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. + repeated AccessConfig access_configs = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. 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 = 8 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. An array of alias IP ranges for this network interface. + // You can only specify this field for network interfaces in VPC networks. + repeated AliasIpRange alias_ip_ranges = 9 + [(google.api.field_behavior) = OPTIONAL]; + + // The stack type for this network interface. + optional StackType stack_type = 10; + + // Optional. [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. + optional Ipv6AccessType ipv6_access_type = 11 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. 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. + optional int32 queue_count = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The type of vNIC to be used on this interface. This may be gVNIC + // or VirtioNet. + optional NicType nic_type = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The URL of the network attachment that this interface should + // connect to in the following format: + // projects/{project_number}/regions/{region_name}/networkAttachments/{network_attachment_name}. + optional string network_attachment = 14 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Network performance configuration. +message NetworkPerformanceConfig { + // Network performance tier. + enum Tier { + // This value is unused. + TIER_UNSPECIFIED = 0; + + // Default network performance config. + DEFAULT = 1; + + // Tier 1 network performance config. + TIER_1 = 2; + } + + // Optional. The tier of the total egress bandwidth. + optional Tier total_egress_bandwidth_tier = 1 + [(google.api.field_behavior) = OPTIONAL]; +} + +// An access configuration attached to an instance's network interface. +// Only one access config per instance is supported. +message AccessConfig { + // The type of configuration. + enum AccessType { + // Default value. This value is unused. + ACCESS_TYPE_UNSPECIFIED = 0; + + // ONE_TO_ONE_NAT + ONE_TO_ONE_NAT = 1; + + // Direct IPv6 access. + DIRECT_IPV6 = 2; + } + + // Network tier property used by addresses, instances and forwarding rules. + enum NetworkTier { + // Default value. This value is unused. + NETWORK_TIER_UNSPECIFIED = 0; + + // High quality, Google-grade network tier, support for all networking + // products. + PREMIUM = 1; + + // Public internet quality, only limited support for other networking + // products. + STANDARD = 2; + } + + // Optional. In accessConfigs (IPv4), the + // default and only option is ONE_TO_ONE_NAT. In + // ipv6AccessConfigs, the default and only option is + // DIRECT_IPV6. + optional AccessType type = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The name of this access configuration. + optional string name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The external IP address of this access configuration. + optional string external_ip = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The external IPv6 address of this access configuration. + optional string external_ipv6 = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The prefix length of the external IPv6 range. + optional int32 external_ipv6_prefix_length = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies whether a public DNS 'PTR' record should be created to + // map the external IP address of the instance to a DNS domain name. + optional bool set_public_ptr = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The DNS domain name for the public PTR record. + optional string public_ptr_domain_name = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This signifies the networking tier used for configuring this + // access + optional NetworkTier network_tier = 8 + [(google.api.field_behavior) = OPTIONAL]; +} + +// An alias IP range attached to an instance's network interface. +message AliasIpRange { + // Optional. The IP alias ranges to allocate for this interface. + optional string ip_cidr_range = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. 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. + optional string subnetwork_range_name = 2 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Additional instance params. +message InstanceParams { + // Optional. Resource manager tags to be bound to the instance. + map<string, string> resource_manager_tags = 1 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Specifies the reservations that this instance can consume from. +message AllocationAffinity { + // Indicates whether to consume from a reservation or not. + enum Type { + // Default value. This value is unused. + TYPE_UNSPECIFIED = 0; + + // Do not consume from any allocated capacity. + NO_RESERVATION = 1; + + // Consume any allocation available. + ANY_RESERVATION = 2; + + // Must consume from a specific reservation. Must specify key value fields + // for specifying the reservations. + SPECIFIC_RESERVATION = 3; + } + + // Optional. Specifies the type of reservation from which this instance can + // consume + optional Type consume_allocation_type = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Corresponds to the label key of a reservation resource. + optional string key = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Corresponds to the label values of a reservation resource. + repeated string values = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Sets the scheduling options for an Instance. +message Scheduling { + // Defines the maintenance behavior for this instance= + enum OnHostMaintenance { + // Default value. This value is unused. + ON_HOST_MAINTENANCE_UNSPECIFIED = 0; + + // Tells Compute Engine to terminate and (optionally) restart the instance + // away from the maintenance activity. + TERMINATE = 1; + + // Default, Allows Compute Engine to automatically migrate instances + // out of the way of maintenance events. + MIGRATE = 1000; + } + + // Node Affinity: the configuration of desired nodes onto which this Instance + // could be scheduled. + message NodeAffinity { + // Defines the type of node selections. + enum Operator { + // Default value. This value is unused. + OPERATOR_UNSPECIFIED = 0; + + // Requires Compute Engine to seek for matched nodes. + IN = 1; + + // Requires Compute Engine to avoid certain nodes. + NOT_IN = 2; + } + + // Optional. Corresponds to the label key of Node resource. + optional string key = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Defines the operation of node selection. + optional Operator operator = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Corresponds to the label values of Node resource. + repeated string values = 3 [(google.api.field_behavior) = OPTIONAL]; + } + + // Defines the provisioning model for an instance. + enum ProvisioningModel { + // Default value. This value is not used. + PROVISIONING_MODEL_UNSPECIFIED = 0; + + // Standard provisioning with user controlled runtime, no discounts. + STANDARD = 1; + + // Heavily discounted, no guaranteed runtime. + SPOT = 2; + } + + // Defines the supported termination actions for an instance. + enum InstanceTerminationAction { + // Default value. This value is unused. + INSTANCE_TERMINATION_ACTION_UNSPECIFIED = 0; + + // Delete the VM. + DELETE = 1; + + // Stop the VM without storing in-memory content. default action. + STOP = 2; + } + + // Optional. Defines the maintenance behavior for this instance. + optional OnHostMaintenance on_host_maintenance = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies whether the instance should be automatically restarted + // if it is terminated by Compute Engine (not terminated by a user). + optional bool automatic_restart = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Defines whether the instance is preemptible. + optional bool preemptible = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A set of node affinity and anti-affinity configurations. + // Overrides reservationAffinity. + repeated NodeAffinity node_affinities = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The minimum number of virtual CPUs this instance will consume + // when running on a sole-tenant node. + optional int32 min_node_cpus = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the provisioning model of the instance. + optional ProvisioningModel provisioning_model = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the termination action for the instance. + optional InstanceTerminationAction instance_termination_action = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the maximum amount of time a Local Ssd Vm should wait + // while recovery of the Local Ssd state is attempted. Its value should be in + // between 0 and 168 hours with hour granularity and the default value being 1 + // hour. + optional SchedulingDuration local_ssd_recovery_timeout = 10 + [(google.api.field_behavior) = OPTIONAL]; +} + +// A SchedulingDuration 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. +message SchedulingDuration { + // Optional. Span of time at a resolution of a second. + optional int64 seconds = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Span of time that's a fraction of a second at nanosecond + // resolution. + optional int32 nanos = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// A service account. +message ServiceAccount { + // Optional. Email address of the service account. + optional string email = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The list of scopes to be made available for this service account. + repeated string scopes = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// A set of instance tags. +message Tags { + // Optional. An array of tags. Each tag must be 1-63 characters long, and + // comply with RFC1035. + repeated string items = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// An instance-attached disk resource. +message AttachedDisk { + // Specifies the parameters to initialize this disk. + message InitializeParams { + // Optional. Specifies the disk name. If not specified, the default is to + // use the name of the instance. + optional string disk_name = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. URL of the zone where the disk should be created. + // Required for each regional disk associated with the instance. + repeated string replica_zones = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // List of the Disk Types. + enum DiskType { + // Default value, which is unused. + DISK_TYPE_UNSPECIFIED = 0; + + // A scratch disk type. + SCRATCH = 1; + + // A persistent disk type. + PERSISTENT = 2; + } + + // List of the Disk Modes. + enum DiskMode { + // Default value, which is unused. + DISK_MODE_UNSPECIFIED = 0; + + // 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 = 1; + + // Attaches this disk in read-only mode. Multiple virtual machines can use + // a disk in read-only mode at a time. + READ_ONLY = 2; + + // The disk is locked for administrative reasons. Nobody else + // can use the disk. This mode is used (for example) when taking + // a snapshot of a disk to prevent mounting the disk while it is + // being snapshotted. + LOCKED = 3; + } + + // List of the Disk Interfaces. + enum DiskInterface { + // Default value, which is unused. + DISK_INTERFACE_UNSPECIFIED = 0; + + // SCSI Disk Interface. + SCSI = 1; + + // NVME Disk Interface. + NVME = 2; + + // NVDIMM Disk Interface. + NVDIMM = 3; + + // ISCSI Disk Interface. + ISCSI = 4; + } + + // List of the states of the Disk. + enum DiskSavedState { + // Default Disk state has not been preserved. + DISK_SAVED_STATE_UNSPECIFIED = 0; + + // Disk state has been preserved. + PRESERVED = 1; + } + + // Optional. Specifies the parameters to initialize this disk. + optional InitializeParams initialize_params = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This is used as an identifier for the disks. This is the unique + // name has to provided to modify disk parameters like disk_name and + // replica_zones (in case of RePDs) + optional string device_name = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Type of the resource. + optional string kind = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Specifies the type of the disk. + optional DiskType disk_type_deprecated = 6 [deprecated = true]; + + // Optional. The mode in which to attach this disk. + optional DiskMode mode = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies a valid partial or full URL to an existing Persistent + // Disk resource. + optional string source = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A zero-based index to this disk, where 0 is reserved for the + // boot disk. + optional int64 index = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. 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 = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. 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 = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Any valid publicly visible licenses. + repeated string license = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the disk interface to use for attaching this disk. + optional DiskInterface disk_interface = 13 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A list of features to enable on the guest operating system. + // Applicable only for bootable images. + repeated GuestOsFeature guest_os_feature = 14 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Encrypts or decrypts a disk using a customer-supplied + // encryption key. + optional CustomerEncryptionKey disk_encryption_key = 15 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The size of the disk in GB. + optional int64 disk_size_gb = 16 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Output only. The state of the disk. + optional DiskSavedState saved_state = 17 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Optional. Output only. The URI of the disk type resource. For example: + // projects/project/zones/zone/diskTypes/pd-standard or pd-ssd + optional string disk_type = 18 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Optional. Specifies the type of the disk. + optional DiskType type = 19 [(google.api.field_behavior) = OPTIONAL]; +} + +// Feature type of the Guest OS. +message GuestOsFeature { + // List of the Feature Types. + enum FeatureType { + // Default value, which is unused. + FEATURE_TYPE_UNSPECIFIED = 0; + + // VIRTIO_SCSI_MULTIQUEUE feature type. + VIRTIO_SCSI_MULTIQUEUE = 1; + + // WINDOWS feature type. + WINDOWS = 2; + + // MULTI_IP_SUBNET feature type. + MULTI_IP_SUBNET = 3; + + // UEFI_COMPATIBLE feature type. + UEFI_COMPATIBLE = 4; + + // SECURE_BOOT feature type. + SECURE_BOOT = 5; + + // GVNIC feature type. + GVNIC = 6; + + // SEV_CAPABLE feature type. + SEV_CAPABLE = 7; + + // BARE_METAL_LINUX_COMPATIBLE feature type. + BARE_METAL_LINUX_COMPATIBLE = 8; + + // SUSPEND_RESUME_COMPATIBLE feature type. + SUSPEND_RESUME_COMPATIBLE = 9; + + // SEV_LIVE_MIGRATABLE feature type. + SEV_LIVE_MIGRATABLE = 10; + + // SEV_SNP_CAPABLE feature type. + SEV_SNP_CAPABLE = 11; + + // TDX_CAPABLE feature type. + TDX_CAPABLE = 12; + + // IDPF feature type. + IDPF = 13; + + // SEV_LIVE_MIGRATABLE_V2 feature type. + SEV_LIVE_MIGRATABLE_V2 = 14; + } + + // The ID of a supported feature. + optional FeatureType type = 1; +} + +// Specifies whether the virtual machine instance will be shut down on key +// revocation. It is currently used in instance, instance properties and GMI +// protos +enum KeyRevocationActionType { + // Default value. This value is unused. + KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED = 0; + + // Indicates user chose no operation. + NONE = 1; + + // Indicates user chose to opt for VM shutdown on key revocation. + STOP = 2; +} diff --git a/google/cloud/batch/v1/BUILD.bazel b/google/cloud/batch/v1/BUILD.bazel index 0d9c9eb89..cf07b1980 100644 --- a/google/cloud/batch/v1/BUILD.bazel +++ b/google/cloud/batch/v1/BUILD.bazel @@ -228,7 +228,7 @@ php_gapic_library( name = "batch_php_gapic", srcs = [":batch_proto_with_info"], grpc_service_config = "batch_v1_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "batch_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/batch/v1/batch_v1_grpc_service_config.json b/google/cloud/batch/v1/batch_v1_grpc_service_config.json index 751fb4f4f..d2067dc1c 100644 --- a/google/cloud/batch/v1/batch_v1_grpc_service_config.json +++ b/google/cloud/batch/v1/batch_v1_grpc_service_config.json @@ -4,9 +4,11 @@ { "service": "google.cloud.batch.v1.BatchService", "method": "ListJobs" }, { "service": "google.cloud.batch.v1.BatchService", "method": "ListTasks" }, { "service": "google.cloud.batch.v1.BatchService", "method": "ListResourceAllowances" }, + { "service": "google.cloud.batch.v1.BatchService", "method": "ListNodePools" }, { "service": "google.cloud.batch.v1.BatchService", "method": "GetJob" }, { "service": "google.cloud.batch.v1.BatchService", "method": "GetTask" }, - { "service": "google.cloud.batch.v1.BatchService", "method": "GetResourceAllowance" } + { "service": "google.cloud.batch.v1.BatchService", "method": "GetResourceAllowance" }, + { "service": "google.cloud.batch.v1.BatchService", "method": "GetNodePool" } ], "timeout": "60s", "retryPolicy": { @@ -26,7 +28,9 @@ { "service": "google.cloud.batch.v1.BatchService", "method": "CreateResourceAllowance" }, { "service": "google.cloud.batch.v1.BatchService", "method": "DeleteResourceAllowance" }, { "service": "google.cloud.batch.v1.BatchService", "method": "UpdateResourceAllowance"}, - { "service": "google.cloud.batch.v1.BatchService", "method": "CancelTasks"} + { "service": "google.cloud.batch.v1.BatchService", "method": "CancelTasks"}, + { "service": "google.cloud.batch.v1.BatchService", "method": "CreateNodePool" }, + { "service": "google.cloud.batch.v1.BatchService", "method": "DeleteNodePool" } ], "timeout": "60s" }] diff --git a/google/cloud/batch/v1/job.proto b/google/cloud/batch/v1/job.proto index 194fb0560..98c3b5b6f 100644 --- a/google/cloud/batch/v1/job.proto +++ b/google/cloud/batch/v1/job.proto @@ -293,9 +293,7 @@ message AllocationPolicy { // The following image values are supported for a boot disk: // // * `batch-debian`: use Batch Debian images. - // * `batch-centos`: use Batch CentOS images. // * `batch-cos`: use Batch Container-Optimized images. - // * `batch-hpc-centos`: use Batch HPC CentOS images. // * `batch-hpc-rocky`: use Batch HPC Rocky Linux images. string image = 4; @@ -425,7 +423,10 @@ message AllocationPolicy { // Name of an instance template used to create VMs. // Named the field as 'instance_template' instead of 'template' to avoid - // c++ keyword conflict. + // C++ keyword conflict. + // + // Batch only supports global instance templates. + // You can specify the global instance template as a full or partial URL. string instance_template = 2; } @@ -444,6 +445,25 @@ message AllocationPolicy { // Optional. Set this field true if you want Batch to install Ops Agent on // your behalf. Default is false. bool install_ops_agent = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Set this field to `true` if you want Batch to block + // project-level SSH keys from accessing this job's VMs. Alternatively, you + // can configure the job to specify a VM instance template that blocks + // project-level SSH keys. In either case, Batch blocks project-level SSH + // keys while creating the VMs for this job. + // + // Batch allows project-level SSH keys for a job's VMs only if all + // the following are true: + // + // + This field is undefined or set to `false`. + // + The job's VM instance template (if any) doesn't block project-level + // SSH keys. + // + // Notably, you can override this behavior by manually updating a VM to + // block or allow project-level SSH keys. For more information about + // blocking project-level SSH keys, see the Compute Engine documentation: + // https://cloud.google.com/compute/docs/connect/restrict-ssh-keys#block-keys + bool block_project_ssh_keys = 5 [(google.api.field_behavior) = OPTIONAL]; } // A network interface. diff --git a/google/cloud/batch/v1/task.proto b/google/cloud/batch/v1/task.proto index f38d7c0c2..f9edabb2b 100644 --- a/google/cloud/batch/v1/task.proto +++ b/google/cloud/batch/v1/task.proto @@ -81,7 +81,7 @@ message ComputeResource { int64 boot_disk_mib = 4; } -// Status event +// Status event. message StatusEvent { // Type of the event. string type = 3; @@ -92,10 +92,13 @@ message StatusEvent { // The time this event occurred. google.protobuf.Timestamp event_time = 2; - // Task Execution + // Task Execution. + // This field is only defined for task-level status events where the task + // fails. TaskExecution task_execution = 4; - // Task State + // Task State. + // This field is only defined for task-level status events. TaskStatus.State task_state = 5; } @@ -116,7 +119,7 @@ message TaskExecution { int32 exit_code = 1; } -// Status of a task +// Status of a task. message TaskStatus { // Task states. enum State { @@ -142,7 +145,7 @@ message TaskStatus { UNEXECUTED = 6; } - // Task state + // Task state. State state = 1; // Detailed info about why the state is reached. @@ -154,32 +157,36 @@ message TaskStatus { message Runnable { // Container runnable. message Container { - // The URI to pull the container image from. + // Required. 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. + // Required for some container images. Overrides the `CMD` specified in the + // container. If there is an `ENTRYPOINT` (either in the container image or + // with the `entrypoint` field below) then these commands are appended as + // arguments to the `ENTRYPOINT`. repeated string commands = 2; - // Overrides the `ENTRYPOINT` specified in the container. + // Required for some container images. 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 + // into the container, formatted to match `--volume` option for the + // `docker run` command—for example, `/foo:/bar` or `/foo:/bar:ro`. // // If the `TaskSpec.Volumes` field is specified but this field is not, Batch // will mount each volume from the host machine to the container with the // same mount path by default. In this case, the default mount option for - // containers will be read-only (ro) for existing persistent disks and - // read-write (rw) for other volume types, regardless of the original mount - // options specified in `TaskSpec.Volumes`. If you need different mount - // settings, you can explicitly configure them in this field. + // containers will be read-only (`ro`) for existing persistent disks and + // read-write (`rw`) for other volume types, regardless of the original + // mount options specified in `TaskSpec.Volumes`. If you need different + // mount settings, you can explicitly configure them in this field. repeated string volumes = 7; - // Arbitrary additional options to include in the "docker run" command when - // running this container, e.g. "--network host". + // Required for some container images. Arbitrary additional options to + // include in the `docker run` command when running this container—for + // example, `--network host`. For the `--volume` option, use the `volumes` + // field for the container. string options = 8; // If set to true, external network access to and from container will be @@ -245,37 +252,41 @@ message Runnable { // Script runnable. message Script { + // Required. The source code for this script runnable. oneof command { - // Script file path on the host VM. + // The path to a script file that is accessible from the host VM(s). // - // To specify an interpreter, please add a `#!<interpreter>`(also known as - // [shebang line](https://en.wikipedia.org/wiki/Shebang_(Unix))) as the - // first line of the file.(For example, to execute the script using bash, - // `#!/bin/bash` should be the first line of the file. To execute the - // script using`Python3`, `#!/usr/bin/env python3` should be the first - // line of the file.) Otherwise, the file will by default be executed by - // `/bin/sh`. + // Unless the script file supports the default `#!/bin/sh` shell + // interpreter, you must specify an interpreter by including a + // [shebang line](https://en.wikipedia.org/wiki/Shebang_(Unix) as the + // first line of the file. For example, to execute the script using bash, + // include `#!/bin/bash` as the first line of the file. Alternatively, + // to execute the script using Python3, include `#!/usr/bin/env python3` + // as the first line of the file. string path = 1; - // Shell script text. + // The text for a script. // - // To specify an interpreter, please add a `#!<interpreter>\n` at the - // beginning of the text.(For example, to execute the script using bash, - // `#!/bin/bash\n` should be added. To execute the script using`Python3`, - // `#!/usr/bin/env python3\n` should be added.) Otherwise, the script will - // by default be executed by `/bin/sh`. + // Unless the script text supports the default `#!/bin/sh` shell + // interpreter, you must specify an interpreter by including a + // [shebang line](https://en.wikipedia.org/wiki/Shebang_(Unix) at the + // beginning of the text. For example, to execute the script using bash, + // include `#!/bin/bash\n` at the beginning of the text. Alternatively, + // to execute the script using Python3, include `#!/usr/bin/env python3\n` + // at the beginning of the text. string text = 2; } } - // Barrier runnable blocks until all tasks in a taskgroup reach it. + // A barrier runnable automatically blocks the execution of subsequent + // runnables until all the tasks in the task group reach the barrier. 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. + // Required. The script, container, or barrier for this runnable to execute. oneof executable { // Container runnable. Container container = 1; @@ -293,13 +304,24 @@ message Runnable { // provided the index of the runnable will be used for outputs. string display_name = 10 [(google.api.field_behavior) = OPTIONAL]; - // Normally, a non-zero exit status causes the Task to fail. This flag allows - // execution of other Runnables to continue instead. + // Normally, a runnable that returns a non-zero exit status fails and causes + // the task to fail. However, you can set this field to `true` to allow the + // task to continue executing its other runnables even if this runnable + // fails. 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). + // Normally, a runnable that doesn't exit causes its task to fail. However, + // you can set this field to `true` to configure a background runnable. + // Background runnables are allowed continue running in the background while + // the task executes subsequent runnables. For example, background runnables + // are useful for providing services to other runnables or providing + // debugging-support tools like SSH servers. + // + // Specifically, 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. bool background = 4; // By default, after a Runnable fails, no further Runnable are executed. This @@ -325,16 +347,16 @@ message Runnable { // 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. + // Required. The sequence of one or more runnables (executable scripts, + // executable containers, and/or barriers) for each task in this task group to + // run. Each task runs this list of runnables in order. For a task to succeed, + // all of its script and container runnables each must meet at least one of + // the following conditions: // - // 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. + // + The runnable exited with a zero status. + // + The runnable didn't finish, but you enabled its `background` subfield. + // + The runnable exited with a non-zero status, but you enabled its + // `ignore_exit_status` subfield. repeated Runnable runnables = 8; // ComputeResource requirements. diff --git a/google/cloud/batch/v1alpha/batch.proto b/google/cloud/batch/v1alpha/batch.proto index 8568d7caa..054046d85 100644 --- a/google/cloud/batch/v1alpha/batch.proto +++ b/google/cloud/batch/v1alpha/batch.proto @@ -75,6 +75,19 @@ service BatchService { }; } + // Cancel a Job. + rpc CancelJob(CancelJobRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1alpha/{name=projects/*/locations/*/jobs/*}:cancel" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "CancelJobResponse" + metadata_type: "google.cloud.batch.v1alpha.OperationMetadata" + }; + } + // Update a Job. rpc UpdateJob(UpdateJobRequest) returns (Job) { option (google.api.http) = { @@ -233,6 +246,36 @@ message DeleteJobRequest { string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; } +// CancelJob Request. +message CancelJobRequest { + // Required. Job name. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "batch.googleapis.com/Job" } + ]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 4 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// Response to the CancelJob request. +message CancelJobResponse {} + // UpdateJob Request. message UpdateJobRequest { // Required. The Job to update. diff --git a/google/cloud/batch/v1alpha/batch_v1alpha_grpc_service_config.json b/google/cloud/batch/v1alpha/batch_v1alpha_grpc_service_config.json index 5b8b71d9d..a24fa38fc 100644 --- a/google/cloud/batch/v1alpha/batch_v1alpha_grpc_service_config.json +++ b/google/cloud/batch/v1alpha/batch_v1alpha_grpc_service_config.json @@ -4,9 +4,11 @@ { "service": "google.cloud.batch.v1alpha.BatchService", "method": "ListJobs" }, { "service": "google.cloud.batch.v1alpha.BatchService", "method": "ListTasks" }, { "service": "google.cloud.batch.v1alpha.BatchService", "method": "ListResourceAllowances" }, + { "service": "google.cloud.batch.v1alpha.BatchService", "method": "ListNodePools" }, { "service": "google.cloud.batch.v1alpha.BatchService", "method": "GetJob" }, { "service": "google.cloud.batch.v1alpha.BatchService", "method": "GetTask" }, - { "service": "google.cloud.batch.v1alpha.BatchService", "method": "GetResourceAllowance" } + { "service": "google.cloud.batch.v1alpha.BatchService", "method": "GetResourceAllowance" }, + { "service": "google.cloud.batch.v1alpha.BatchService", "method": "GetNodePool" } ], "timeout": "60s", "retryPolicy": { @@ -26,7 +28,9 @@ { "service": "google.cloud.batch.v1alpha.BatchService", "method": "CreateResourceAllowance" }, { "service": "google.cloud.batch.v1alpha.BatchService", "method": "DeleteResourceAllowance" }, { "service": "google.cloud.batch.v1alpha.BatchService", "method": "UpdateResourceAllowance"}, - { "service": "google.cloud.batch.v1alpha.BatchService", "method": "CancelTasks"} + { "service": "google.cloud.batch.v1alpha.BatchService", "method": "CancelTasks"}, + { "service": "google.cloud.batch.v1alpha.BatchService", "method": "CreateNodePool" }, + { "service": "google.cloud.batch.v1alpha.BatchService", "method": "DeleteNodePool" } ], "timeout": "60s" }] diff --git a/google/cloud/batch/v1alpha/job.proto b/google/cloud/batch/v1alpha/job.proto index 7d9ea0396..e6890e431 100644 --- a/google/cloud/batch/v1alpha/job.proto +++ b/google/cloud/batch/v1alpha/job.proto @@ -235,6 +235,14 @@ message JobStatus { // 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; + + // The Job cancellation is in progress, this is because the resources used + // by the Job are still being cleaned up. + CANCELLATION_IN_PROGRESS = 7; + + // The Job has been cancelled, the task executions were stopped and the + // resources were cleaned up. + CANCELLED = 8; } // Job state @@ -357,9 +365,7 @@ message AllocationPolicy { // The following image values are supported for a boot disk: // // * `batch-debian`: use Batch Debian images. - // * `batch-centos`: use Batch CentOS images. // * `batch-cos`: use Batch Container-Optimized images. - // * `batch-hpc-centos`: use Batch HPC CentOS images. // * `batch-hpc-rocky`: use Batch HPC Rocky Linux images. string image = 4; @@ -511,6 +517,25 @@ message AllocationPolicy { // Optional. Set this field true if you want Batch to install Ops Agent on // your behalf. Default is false. bool install_ops_agent = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Set this field to `true` if you want Batch to block + // project-level SSH keys from accessing this job's VMs. Alternatively, you + // can configure the job to specify a VM instance template that blocks + // project-level SSH keys. In either case, Batch blocks project-level SSH + // keys while creating the VMs for this job. + // + // Batch allows project-level SSH keys for a job's VMs only if all + // the following are true: + // + // + This field is undefined or set to `false`. + // + The job's VM instance template (if any) doesn't block project-level + // SSH keys. + // + // Notably, you can override this behavior by manually updating a VM to + // block or allow project-level SSH keys. For more information about + // blocking project-level SSH keys, see the Compute Engine documentation: + // https://cloud.google.com/compute/docs/connect/restrict-ssh-keys#block-keys + bool block_project_ssh_keys = 5 [(google.api.field_behavior) = OPTIONAL]; } // A network interface. diff --git a/google/cloud/batch/v1alpha/task.proto b/google/cloud/batch/v1alpha/task.proto index aee528551..08a20f499 100644 --- a/google/cloud/batch/v1alpha/task.proto +++ b/google/cloud/batch/v1alpha/task.proto @@ -86,7 +86,7 @@ message ComputeResource { int64 boot_disk_mib = 4; } -// Status event +// Status event. message StatusEvent { // Type of the event. string type = 3; @@ -97,10 +97,13 @@ message StatusEvent { // The time this event occurred. google.protobuf.Timestamp event_time = 2; - // Task Execution + // Task Execution. + // This field is only defined for task-level status events where the task + // fails. TaskExecution task_execution = 4; - // Task State + // Task State. + // This field is only defined for task-level status events. TaskStatus.State task_state = 5; } @@ -125,7 +128,7 @@ message TaskExecution { string stderr_snippet = 2 [(google.api.field_behavior) = OPTIONAL]; } -// Status of a task +// Status of a task. message TaskStatus { // Task states. enum State { @@ -151,7 +154,7 @@ message TaskStatus { UNEXECUTED = 6; } - // Task state + // Task state. State state = 1; // Detailed info about why the state is reached. @@ -173,32 +176,36 @@ message TaskResourceUsage { message Runnable { // Container runnable. message Container { - // The URI to pull the container image from. + // Required. 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. + // Required for some container images. Overrides the `CMD` specified in the + // container. If there is an `ENTRYPOINT` (either in the container image or + // with the `entrypoint` field below) then these commands are appended as + // arguments to the `ENTRYPOINT`. repeated string commands = 2; - // Overrides the `ENTRYPOINT` specified in the container. + // Required for some container images. 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 + // into the container, formatted to match `--volume` option for the + // `docker run` command—for example, `/foo:/bar` or `/foo:/bar:ro`. // // If the `TaskSpec.Volumes` field is specified but this field is not, Batch // will mount each volume from the host machine to the container with the // same mount path by default. In this case, the default mount option for - // containers will be read-only (ro) for existing persistent disks and - // read-write (rw) for other volume types, regardless of the original mount - // options specified in `TaskSpec.Volumes`. If you need different mount - // settings, you can explicitly configure them in this field. + // containers will be read-only (`ro`) for existing persistent disks and + // read-write (`rw`) for other volume types, regardless of the original + // mount options specified in `TaskSpec.Volumes`. If you need different + // mount settings, you can explicitly configure them in this field. repeated string volumes = 7; - // Arbitrary additional options to include in the "docker run" command when - // running this container, e.g. "--network host". + // Required for some container images. Arbitrary additional options to + // include in the `docker run` command when running this container—for + // example, `--network host`. For the `--volume` option, use the `volumes` + // field for the container. string options = 8; // If set to true, external network access to and from container will be @@ -264,37 +271,41 @@ message Runnable { // Script runnable. message Script { + // Required. The source code for this script runnable. oneof command { - // Script file path on the host VM. + // The path to a script file that is accessible from the host VM(s). // - // To specify an interpreter, please add a `#!<interpreter>`(also known as - // [shebang line](https://en.wikipedia.org/wiki/Shebang_(Unix))) as the - // first line of the file.(For example, to execute the script using bash, - // `#!/bin/bash` should be the first line of the file. To execute the - // script using`Python3`, `#!/usr/bin/env python3` should be the first - // line of the file.) Otherwise, the file will by default be executed by - // `/bin/sh`. + // Unless the script file supports the default `#!/bin/sh` shell + // interpreter, you must specify an interpreter by including a + // [shebang line](https://en.wikipedia.org/wiki/Shebang_(Unix) as the + // first line of the file. For example, to execute the script using bash, + // include `#!/bin/bash` as the first line of the file. Alternatively, + // to execute the script using Python3, include `#!/usr/bin/env python3` + // as the first line of the file. string path = 1; - // Shell script text. + // The text for a script. // - // To specify an interpreter, please add a `#!<interpreter>\n` at the - // beginning of the text.(For example, to execute the script using bash, - // `#!/bin/bash\n` should be added. To execute the script using`Python3`, - // `#!/usr/bin/env python3\n` should be added.) Otherwise, the script will - // by default be executed by `/bin/sh`. + // Unless the script text supports the default `#!/bin/sh` shell + // interpreter, you must specify an interpreter by including a + // [shebang line](https://en.wikipedia.org/wiki/Shebang_(Unix) at the + // beginning of the text. For example, to execute the script using bash, + // include `#!/bin/bash\n` at the beginning of the text. Alternatively, + // to execute the script using Python3, include `#!/usr/bin/env python3\n` + // at the beginning of the text. string text = 2; } } - // Barrier runnable blocks until all tasks in a taskgroup reach it. + // A barrier runnable automatically blocks the execution of subsequent + // runnables until all the tasks in the task group reach the barrier. 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. + // Required. The script, container, or barrier for this runnable to execute. oneof executable { // Container runnable. Container container = 1; @@ -312,13 +323,24 @@ message Runnable { // provided the index of the runnable will be used for outputs. string display_name = 10 [(google.api.field_behavior) = OPTIONAL]; - // Normally, a non-zero exit status causes the Task to fail. This flag allows - // execution of other Runnables to continue instead. + // Normally, a runnable that returns a non-zero exit status fails and causes + // the task to fail. However, you can set this field to `true` to allow the + // task to continue executing its other runnables even if this runnable + // fails. 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). + // Normally, a runnable that doesn't exit causes its task to fail. However, + // you can set this field to `true` to configure a background runnable. + // Background runnables are allowed continue running in the background while + // the task executes subsequent runnables. For example, background runnables + // are useful for providing services to other runnables or providing + // debugging-support tools like SSH servers. + // + // Specifically, 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. bool background = 4; // By default, after a Runnable fails, no further Runnable are executed. This @@ -344,16 +366,16 @@ message Runnable { // 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. + // Required. The sequence of one or more runnables (executable scripts, + // executable containers, and/or barriers) for each task in this task group to + // run. Each task runs this list of runnables in order. For a task to succeed, + // all of its script and container runnables each must meet at least one of + // the following conditions: // - // 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. + // + The runnable exited with a zero status. + // + The runnable didn't finish, but you enabled its `background` subfield. + // + The runnable exited with a non-zero status, but you enabled its + // `ignore_exit_status` subfield. repeated Runnable runnables = 8; // ComputeResource requirements. diff --git a/google/cloud/bigquery/connection/v1/BUILD.bazel b/google/cloud/bigquery/connection/v1/BUILD.bazel index 4d675a883..cbdf659d8 100644 --- a/google/cloud/bigquery/connection/v1/BUILD.bazel +++ b/google/cloud/bigquery/connection/v1/BUILD.bazel @@ -209,7 +209,7 @@ php_gapic_library( name = "connection_php_gapic", srcs = [":connection_proto_with_info"], grpc_service_config = "bigqueryconnection_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "bigqueryconnection_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/bigquery/datatransfer/v1/BUILD.bazel b/google/cloud/bigquery/datatransfer/v1/BUILD.bazel index cb4ca955c..28ad0c2f8 100644 --- a/google/cloud/bigquery/datatransfer/v1/BUILD.bazel +++ b/google/cloud/bigquery/datatransfer/v1/BUILD.bazel @@ -224,7 +224,7 @@ php_gapic_library( name = "datatransfer_php_gapic", srcs = [":datatransfer_proto_with_info"], grpc_service_config = "bigquerydatatransfer_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "bigquerydatatransfer_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/bigquery/datatransfer/v1/datatransfer.proto b/google/cloud/bigquery/datatransfer/v1/datatransfer.proto index 217f7a711..4ba74af0a 100644 --- a/google/cloud/bigquery/datatransfer/v1/datatransfer.proto +++ b/google/cloud/bigquery/datatransfer/v1/datatransfer.proto @@ -496,6 +496,11 @@ message ListDataSourcesResponse { // associated with the user id corresponding to the authorization info. // Otherwise, the transfer configuration will be associated with the calling // user. +// +// When using a cross project service account for creating a transfer config, +// you must enable cross project service account usage. For more information, +// see [Disable attachment of service accounts to resources in other +// projects](https://cloud.google.com/resource-manager/docs/organization-policy/restricting-service-accounts#disable_cross_project_service_accounts). message CreateTransferConfigRequest { // Required. The BigQuery project id where the transfer configuration should // be created. Must be in the format @@ -512,6 +517,10 @@ message CreateTransferConfigRequest { // Required. Data transfer configuration to create. TransferConfig transfer_config = 2 [(google.api.field_behavior) = REQUIRED]; + // Deprecated: Authorization code was required when + // `transferConfig.dataSourceId` is 'youtube_channel' but it is no longer used + // in any data sources. Use `version_info` instead. + // // Optional OAuth2 authorization code to use with this transfer configuration. // This is required only if `transferConfig.dataSourceId` is 'youtube_channel' // and new credentials are needed, as indicated by `CheckValidCreds`. In order @@ -519,23 +528,24 @@ message CreateTransferConfigRequest { // <pre class="prettyprint" suppresswarning="true"> // https://bigquery.cloud.google.com/datatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=authorization_code&client_id=<var>client_id</var>&scope=<var>data_source_scopes</var> // </pre> - // * The <var>client_id</var> is the OAuth client_id of the a data source as + // * The <var>client_id</var> is the OAuth client_id of the data source as // returned by ListDataSources method. // * <var>data_source_scopes</var> are the scopes returned by ListDataSources // method. // // Note that this should not be set when `service_account_name` is used to // create the transfer config. - string authorization_code = 3; + string authorization_code = 3 [deprecated = true]; - // Optional version info. This is required only if - // `transferConfig.dataSourceId` is not 'youtube_channel' and new credentials + // Optional version info. This parameter replaces `authorization_code` which + // is no longer used in any data sources. This is required only if + // `transferConfig.dataSourceId` is 'youtube_channel' *or* new credentials // are needed, as indicated by `CheckValidCreds`. In order to obtain version // info, make a request to the following URL: // <pre class="prettyprint" suppresswarning="true"> // https://bigquery.cloud.google.com/datatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=version_info&client_id=<var>client_id</var>&scope=<var>data_source_scopes</var> // </pre> - // * The <var>client_id</var> is the OAuth client_id of the a data source as + // * The <var>client_id</var> is the OAuth client_id of the data source as // returned by ListDataSources method. // * <var>data_source_scopes</var> are the scopes returned by ListDataSources // method. @@ -558,10 +568,19 @@ message CreateTransferConfigRequest { // A request to update a transfer configuration. To update the user id of the // transfer configuration, authorization info needs to be provided. +// +// When using a cross project service account for updating a transfer config, +// you must enable cross project service account usage. For more information, +// see [Disable attachment of service accounts to resources in other +// projects](https://cloud.google.com/resource-manager/docs/organization-policy/restricting-service-accounts#disable_cross_project_service_accounts). message UpdateTransferConfigRequest { // Required. Data transfer configuration to create. TransferConfig transfer_config = 1 [(google.api.field_behavior) = REQUIRED]; + // Deprecated: Authorization code was required when + // `transferConfig.dataSourceId` is 'youtube_channel' but it is no longer used + // in any data sources. Use `version_info` instead. + // // Optional OAuth2 authorization code to use with this transfer configuration. // This is required only if `transferConfig.dataSourceId` is 'youtube_channel' // and new credentials are needed, as indicated by `CheckValidCreds`. In order @@ -569,27 +588,28 @@ message UpdateTransferConfigRequest { // <pre class="prettyprint" suppresswarning="true"> // https://bigquery.cloud.google.com/datatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=authorization_code&client_id=<var>client_id</var>&scope=<var>data_source_scopes</var> // </pre> - // * The <var>client_id</var> is the OAuth client_id of the a data source as + // * The <var>client_id</var> is the OAuth client_id of the data source as // returned by ListDataSources method. // * <var>data_source_scopes</var> are the scopes returned by ListDataSources // method. // // Note that this should not be set when `service_account_name` is used to // update the transfer config. - string authorization_code = 3; + string authorization_code = 3 [deprecated = true]; // Required. Required list of fields to be updated in this request. google.protobuf.FieldMask update_mask = 4 [(google.api.field_behavior) = REQUIRED]; - // Optional version info. This is required only if - // `transferConfig.dataSourceId` is not 'youtube_channel' and new credentials + // Optional version info. This parameter replaces `authorization_code` which + // is no longer used in any data sources. This is required only if + // `transferConfig.dataSourceId` is 'youtube_channel' *or* new credentials // are needed, as indicated by `CheckValidCreds`. In order to obtain version // info, make a request to the following URL: // <pre class="prettyprint" suppresswarning="true"> // https://bigquery.cloud.google.com/datatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=version_info&client_id=<var>client_id</var>&scope=<var>data_source_scopes</var> // </pre> - // * The <var>client_id</var> is the OAuth client_id of the a data source as + // * The <var>client_id</var> is the OAuth client_id of the data source as // returned by ListDataSources method. // * <var>data_source_scopes</var> are the scopes returned by ListDataSources // method. diff --git a/google/cloud/bigquery/datatransfer/v1/transfer.proto b/google/cloud/bigquery/datatransfer/v1/transfer.proto index 2c31515d7..519ac8e67 100644 --- a/google/cloud/bigquery/datatransfer/v1/transfer.proto +++ b/google/cloud/bigquery/datatransfer/v1/transfer.proto @@ -98,6 +98,70 @@ message ScheduleOptions { google.protobuf.Timestamp end_time = 2; } +// V2 options customizing different types of data transfer schedule. +// This field supports existing time-based and manual transfer schedule. Also +// supports Event-Driven transfer schedule. ScheduleOptionsV2 cannot be used +// together with ScheduleOptions/Schedule. +message ScheduleOptionsV2 { + // Data transfer schedules. + oneof schedule { + // Time based transfer schedule options. This is the default schedule + // option. + TimeBasedSchedule time_based_schedule = 1; + + // Manual transfer schedule. If set, the transfer run will not be + // auto-scheduled by the system, unless the client invokes + // StartManualTransferRuns. This is equivalent to + // disable_auto_scheduling = true. + ManualSchedule manual_schedule = 2; + + // Event driven transfer schedule options. If set, the transfer will be + // scheduled upon events arrial. + EventDrivenSchedule event_driven_schedule = 3; + } +} + +// Options customizing the time based transfer schedule. +// Options are migrated from the original ScheduleOptions message. +message TimeBasedSchedule { + // Data transfer schedule. + // If the data source does not support a custom schedule, this should be + // empty. If it is empty, the default value for the data source will be used. + // The specified times are in UTC. + // Examples of valid format: + // `1st,3rd monday of month 15:30`, + // `every wed,fri of jan,jun 13:15`, and + // `first sunday of quarter 00:00`. + // See more explanation about the format here: + // https://cloud.google.com/appengine/docs/flexible/python/scheduling-jobs-with-cron-yaml#the_schedule_format + // + // NOTE: The minimum interval time between recurring transfers depends on the + // data source; refer to the documentation for your data source. + string schedule = 1; + + // Specifies time to start scheduling transfer runs. The first run will be + // scheduled at or after the start time according to a recurrence pattern + // defined in the schedule string. The start time can be changed at any + // moment. + google.protobuf.Timestamp start_time = 2; + + // Defines time to stop scheduling transfer runs. A transfer run cannot be + // scheduled at or after the end time. The end time can be changed at any + // moment. + google.protobuf.Timestamp end_time = 3; +} + +// Options customizing manual transfers schedule. +message ManualSchedule {} + +// Options customizing EventDriven transfers schedule. +message EventDrivenSchedule { + // Pub/Sub subscription name used to receive events. + // Only Google Cloud Storage data source support this option. + // Format: projects/{project}/subscriptions/{subscription} + string pubsub_subscription = 1; +} + // Information about a user. message UserInfo { // E-mail address of the user. @@ -164,6 +228,11 @@ message TransferConfig { // Options customizing the data transfer schedule. ScheduleOptions schedule_options = 24; + // Options customizing different types of data transfer schedule. + // This field replaces "schedule" and "schedule_options" fields. + // ScheduleOptionsV2 cannot be used together with ScheduleOptions/Schedule. + ScheduleOptionsV2 schedule_options_v2 = 31; + // The number of days to look back to automatically refresh the data. // For example, if `data_refresh_window_days = 10`, then every day // BigQuery reingests data for [today-10, today-1], rather than ingesting data @@ -215,6 +284,10 @@ message TransferConfig { // applied in effect. Write methods will apply the key if it is present, or // otherwise try to apply project default keys if it is absent. EncryptionConfiguration encryption_configuration = 28; + + // Output only. Error code with detailed information about reason of the + // latest config failure. + google.rpc.Status error = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Represents the encryption configuration for a transfer. diff --git a/google/cloud/bigquery/reservation/v1/BUILD.bazel b/google/cloud/bigquery/reservation/v1/BUILD.bazel index 4aba03f3d..47d388316 100644 --- a/google/cloud/bigquery/reservation/v1/BUILD.bazel +++ b/google/cloud/bigquery/reservation/v1/BUILD.bazel @@ -213,7 +213,7 @@ php_gapic_library( name = "reservation_php_gapic", srcs = [":reservation_proto_with_info"], grpc_service_config = "bigqueryreservation_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "bigqueryreservation_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/bigquery/storage/v1/BUILD.bazel b/google/cloud/bigquery/storage/v1/BUILD.bazel index 2447e938d..d0988c99f 100644 --- a/google/cloud/bigquery/storage/v1/BUILD.bazel +++ b/google/cloud/bigquery/storage/v1/BUILD.bazel @@ -195,7 +195,7 @@ php_gapic_library( name = "storage_php_gapic", srcs = [":storage_proto_with_info"], grpc_service_config = "bigquerystorage_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = False, service_yaml = "bigquerystorage_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/bigquery/storage/v1/storage.proto b/google/cloud/bigquery/storage/v1/storage.proto index d83dacc46..b60efbdce 100644 --- a/google/cloud/bigquery/storage/v1/storage.proto +++ b/google/cloud/bigquery/storage/v1/storage.proto @@ -422,6 +422,17 @@ message CreateWriteStreamRequest { // 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 { + // Arrow schema and data. + // Arrow format is an experimental feature only selected for allowlisted + // customers. + message ArrowData { + // Optional. Arrow Schema used to serialize the data. + ArrowSchema writer_schema = 1; + + // Required. Serialized row data in Arrow format. + ArrowRecordBatch rows = 2; + } + // ProtoData contains the data rows and schema when constructing append // requests. message ProtoData { @@ -510,6 +521,10 @@ message AppendRowsRequest { oneof rows { // Rows in proto format. ProtoData proto_rows = 4; + + // Rows in arrow format. This is an experimental feature only selected for + // allowlisted customers. + ArrowData arrow_rows = 5; } // Id set by client to annotate its identity. Only initial request setting is diff --git a/google/cloud/bigquery/storage/v1alpha/BUILD.bazel b/google/cloud/bigquery/storage/v1alpha/BUILD.bazel new file mode 100644 index 000000000..25760d0e0 --- /dev/null +++ b/google/cloud/bigquery/storage/v1alpha/BUILD.bazel @@ -0,0 +1,394 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "storage_proto", + srcs = [ + "metastore_partition.proto", + "partition.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 = "storage_proto_with_info", + deps = [ + ":storage_proto", + "//google/cloud:common_resources_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "storage_java_proto", + deps = [":storage_proto"], +) + +java_grpc_library( + name = "storage_java_grpc", + srcs = [":storage_proto"], + deps = [":storage_java_proto"], +) + +java_gapic_library( + name = "storage_java_gapic", + srcs = [":storage_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "bigquerystorage_v1alpha_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "bigquerystorage_v1alpha.yaml", + test_deps = [ + ":storage_java_grpc", + ], + # TODO(b/361784870): Do not enable `rest` until this bug is fixed. + transport = "grpc", + deps = [ + ":storage_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "storage_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.bigquery.storage.v1alpha.MetastorePartitionServiceClientTest", + ], + runtime_deps = [":storage_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-bigquery-storage-v1alpha-java", + include_samples = True, + # TODO(b/361784870): Do not enable `rest` until this bug is fixed. + transport = "grpc", + deps = [ + ":storage_java_gapic", + ":storage_java_grpc", + ":storage_java_proto", + ":storage_proto", + ], +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "storage_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/bigquery/storage/apiv1alpha/storagepb", + protos = [":storage_proto"], + deps = [ + "//google/api:annotations_go_proto", + ], +) + +go_gapic_library( + name = "storage_go_gapic", + srcs = [":storage_proto_with_info"], + grpc_service_config = "bigquerystorage_v1alpha_grpc_service_config.json", + importpath = "cloud.google.com/go/bigquery/storage/apiv1alpha;storage", + metadata = True, + release_level = "beta", + rest_numeric_enums = True, + service_yaml = "bigquerystorage_v1alpha.yaml", + # TODO(b/361784870): Do not enable `rest` until this bug is fixed. + transport = "grpc", + deps = [ + ":storage_go_proto", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-bigquery-storage-v1alpha-go", + deps = [ + ":storage_go_gapic", + ":storage_go_gapic_srcjar-metadata.srcjar", + ":storage_go_gapic_srcjar-snippets.srcjar", + ":storage_go_gapic_srcjar-test.srcjar", + ":storage_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "storage_py_gapic", + srcs = [":storage_proto"], + grpc_service_config = "bigquerystorage_v1alpha_grpc_service_config.json", + opt_args = [ + "python-gapic-namespace=google.cloud", + "python-gapic-name=bigquery_storage", + ], + rest_numeric_enums = True, + service_yaml = "bigquerystorage_v1alpha.yaml", + # TODO(b/361784870): Do not enable `rest` until this bug is fixed. + transport = "grpc", + deps = [ + ], +) + +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 = "bigquery-storage-v1alpha-py", + deps = [ + ":storage_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + +php_proto_library( + name = "storage_php_proto", + deps = [":storage_proto"], +) + +php_gapic_library( + name = "storage_php_gapic", + srcs = [":storage_proto_with_info"], + grpc_service_config = "bigquerystorage_v1alpha_grpc_service_config.json", + migration_mode = "NEW_SURFACE_ONLY", + rest_numeric_enums = True, + service_yaml = "bigquerystorage_v1alpha.yaml", + # TODO(b/361784870): Do not enable `rest` until this bug is fixed. + transport = "grpc", + deps = [ + ":storage_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-bigquery-storage-v1alpha-php", + deps = [ + ":storage_php_gapic", + ":storage_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "storage_nodejs_gapic", + package_name = "@google-cloud/storage", + src = ":storage_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "bigquerystorage_v1alpha_grpc_service_config.json", + package = "google.cloud.bigquery.storage.v1alpha", + rest_numeric_enums = True, + service_yaml = "bigquerystorage_v1alpha.yaml", + # TODO(b/361784870): Do not enable `rest` until this bug is fixed. + transport = "grpc", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "bigquery-storage-v1alpha-nodejs", + deps = [ + ":storage_nodejs_gapic", + ":storage_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "storage_ruby_proto", + deps = [":storage_proto"], +) + +ruby_grpc_library( + name = "storage_ruby_grpc", + srcs = [":storage_proto"], + 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-bigquery-storage-v1alpha"], + grpc_service_config = "bigquerystorage_v1alpha_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "bigquerystorage_v1alpha.yaml", + # TODO(b/361784870): Do not enable `rest` until this bug is fixed. + transport = "grpc", + deps = [ + ":storage_ruby_grpc", + ":storage_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-bigquery-storage-v1alpha-ruby", + deps = [ + ":storage_ruby_gapic", + ":storage_ruby_grpc", + ":storage_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "storage_csharp_proto", + deps = [":storage_proto"], +) + +csharp_grpc_library( + name = "storage_csharp_grpc", + srcs = [":storage_proto"], + deps = [":storage_csharp_proto"], +) + +csharp_gapic_library( + name = "storage_csharp_gapic", + srcs = [":storage_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "bigquerystorage_v1alpha_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "bigquerystorage_v1alpha.yaml", + # TODO(b/361784870): Do not enable `rest` until this bug is fixed. + transport = "grpc", + deps = [ + ":storage_csharp_grpc", + ":storage_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-bigquery-storage-v1alpha-csharp", + deps = [ + ":storage_csharp_gapic", + ":storage_csharp_grpc", + ":storage_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "storage_cc_proto", + deps = [":storage_proto"], +) + +cc_grpc_library( + name = "storage_cc_grpc", + srcs = [":storage_proto"], + grpc_only = True, + deps = [":storage_cc_proto"], +) diff --git a/google/cloud/bigquery/storage/v1alpha/bigquerystorage_v1alpha.yaml b/google/cloud/bigquery/storage/v1alpha/bigquerystorage_v1alpha.yaml new file mode 100644 index 000000000..4457a52e0 --- /dev/null +++ b/google/cloud/bigquery/storage/v1alpha/bigquerystorage_v1alpha.yaml @@ -0,0 +1,42 @@ +type: google.api.Service +config_version: 3 +name: bigquerystorage.googleapis.com +title: BigQuery Storage API + +apis: +- name: google.cloud.bigquery.storage.v1alpha.MetastorePartitionService + +authentication: + rules: + - selector: 'google.cloud.bigquery.storage.v1alpha.MetastorePartitionService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/bigquery, + https://www.googleapis.com/auth/cloud-platform + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=187149&template=1162659 + documentation_uri: https://cloud.google.com/bigquery/docs/reference/storage/ + api_short_name: bigquerystorage + github_label: 'api: bigquerystorage' + doc_tag_prefix: bigquerystorage + organization: CLOUD + library_settings: + - version: google.cloud.bigquery.storage.v1alpha + launch_stage: ALPHA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + cpp_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER diff --git a/google/cloud/bigquery/storage/v1alpha/bigquerystorage_v1alpha_grpc_service_config.json b/google/cloud/bigquery/storage/v1alpha/bigquerystorage_v1alpha_grpc_service_config.json new file mode 100644 index 000000000..af0bd5410 --- /dev/null +++ b/google/cloud/bigquery/storage/v1alpha/bigquerystorage_v1alpha_grpc_service_config.json @@ -0,0 +1,42 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.cloud.bigquery.storage.v1alpha.MetastorePartitionService", + "method": "BatchCreateMetastorePartitions" + }, + { + "service": "google.cloud.bigquery.storage.v1alpha.MetastorePartitionService", + "method": "BatchUpdateMetastorePartitions" + }, + { + "service": "google.cloud.bigquery.storage.v1alpha.MetastorePartitionService", + "method": "BatchDeleteMetastorePartitions" + }, + { + "service": "google.cloud.bigquery.storage.v1alpha.MetastorePartitionService", + "method": "ListMetastorePartitions" + } + ], + "timeout": "240s", + "retryPolicy": { + "initialBackoff": "0.100s", + "maxBackoff": "60s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": [ + "UNAVAILABLE" + ] + } + }, + { + "name": [ + { + "service": "google.cloud.bigquery.storage.v1alpha.MetastorePartitionService", + "method": "StreamMetastorePartitions" + } + ], + "timeout": "240s" + } + ] +} diff --git a/google/cloud/bigquery/storage/v1alpha/metastore_partition.proto b/google/cloud/bigquery/storage/v1alpha/metastore_partition.proto new file mode 100644 index 000000000..d34ceed42 --- /dev/null +++ b/google/cloud/bigquery/storage/v1alpha/metastore_partition.proto @@ -0,0 +1,282 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY 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.storage.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/bigquery/storage/v1alpha/partition.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.BigQuery.Storage.V1Alpha"; +option go_package = "cloud.google.com/go/bigquery/storage/apiv1alpha/storagepb;storagepb"; +option java_multiple_files = true; +option java_outer_classname = "MetastorePartitionServiceProto"; +option java_package = "com.google.cloud.bigquery.storage.v1alpha"; +option php_namespace = "Google\\Cloud\\BigQuery\\Storage\\V1alpha"; +option (google.api.resource_definition) = { + type: "bigquery.googleapis.com/Table" + pattern: "projects/{project}/datasets/{dataset}/tables/{table}" +}; + +// BigQuery Metastore Partition Service API. +// This service is used for managing metastore partitions in BigQuery metastore. +// The service supports only batch operations for write. +service MetastorePartitionService { + option (google.api.default_host) = "bigquerystorage.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/bigquery," + "https://www.googleapis.com/auth/cloud-platform"; + + // Adds metastore partitions to a table. + rpc BatchCreateMetastorePartitions(BatchCreateMetastorePartitionsRequest) + returns (BatchCreateMetastorePartitionsResponse) { + option (google.api.http) = { + post: "/v1alpha/{parent=projects/*/locations/*/datasets/*/tables/*}/partitions:batchCreate" + body: "*" + }; + } + + // Deletes metastore partitions from a table. + rpc BatchDeleteMetastorePartitions(BatchDeleteMetastorePartitionsRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1alpha/{parent=projects/*/locations/*/datasets/*/tables/*}/partitions:batchDelete" + body: "*" + }; + } + + // Updates metastore partitions in a table. + rpc BatchUpdateMetastorePartitions(BatchUpdateMetastorePartitionsRequest) + returns (BatchUpdateMetastorePartitionsResponse) { + option (google.api.http) = { + post: "/v1alpha/{parent=projects/*/locations/*/datasets/*/tables/*}/partitions:batchUpdate" + body: "*" + }; + } + + // Gets metastore partitions from a table. + rpc ListMetastorePartitions(ListMetastorePartitionsRequest) + returns (ListMetastorePartitionsResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=projects/*/locations/*/datasets/*/tables/*}/partitions:list" + }; + option (google.api.method_signature) = "parent"; + } + + // This is a bi-di streaming rpc method that allows the client to send + // a stream of partitions and commit all of them atomically at the end. + // If the commit is successful, the server will return a + // response and close the stream. If the commit fails (due to duplicate + // partitions or other reason), the server will close the stream with an + // error. This method is only available via the gRPC API (not REST). + rpc StreamMetastorePartitions(stream StreamMetastorePartitionsRequest) + returns (stream StreamMetastorePartitionsResponse) {} +} + +// Request message for CreateMetastorePartition. The MetastorePartition is +// uniquely identified by values, which is an ordered list. Hence, there is no +// separate name or partition id field. +message CreateMetastorePartitionRequest { + // Required. Reference to the table to where the metastore partition to be + // added, in the format of + // projects/{project}/databases/{databases}/tables/{table}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "bigquery.googleapis.com/Table" } + ]; + + // Required. The metastore partition to be added. + MetastorePartition metastore_partition = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for BatchCreateMetastorePartitions. +message BatchCreateMetastorePartitionsRequest { + // Required. Reference to the table to where the metastore partitions to be + // added, in the format of + // projects/{project}/locations/{location}/datasets/{dataset}/tables/{table}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "bigquery.googleapis.com/Table" } + ]; + + // Required. Requests to add metastore partitions to the table. + repeated CreateMetastorePartitionRequest requests = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Mimics the ifNotExists flag in IMetaStoreClient + // add_partitions(..). If the flag is set to false, the server will return + // ALREADY_EXISTS if any partition already exists. If the flag is set to true, + // the server will skip existing partitions and insert only the non-existing + // partitions. + bool skip_existing_partitions = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for BatchCreateMetastorePartitions. +message BatchCreateMetastorePartitionsResponse { + // The list of metastore partitions that have been created. + repeated MetastorePartition partitions = 1; +} + +// Request message for BatchDeleteMetastorePartitions. The MetastorePartition is +// uniquely identified by values, which is an ordered list. Hence, there is no +// separate name or partition id field. +message BatchDeleteMetastorePartitionsRequest { + // Required. Reference to the table to which these metastore partitions + // belong, in the format of + // projects/{project}/locations/{location}/datasets/{dataset}/tables/{table}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "bigquery.googleapis.com/Table" } + ]; + + // Required. The list of metastore partitions (identified by its values) to be + // deleted. A maximum of 100 partitions can be deleted in a batch. + repeated MetastorePartitionValues partition_values = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for UpdateMetastorePartition. +message UpdateMetastorePartitionRequest { + // Required. The metastore partition to be updated. + MetastorePartition metastore_partition = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. The list of fields to update. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for BatchUpdateMetastorePartitions. +message BatchUpdateMetastorePartitionsRequest { + // Required. Reference to the table to which these metastore partitions + // belong, in the format of + // projects/{project}/locations/{location}/datasets/{dataset}/tables/{table}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "bigquery.googleapis.com/Table" } + ]; + + // Required. Requests to update metastore partitions in the table. + repeated UpdateMetastorePartitionRequest requests = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for BatchUpdateMetastorePartitions. +message BatchUpdateMetastorePartitionsResponse { + // The list of metastore partitions that have been updated. + repeated MetastorePartition partitions = 1; +} + +// Request message for ListMetastorePartitions. +message ListMetastorePartitionsRequest { + // Required. Reference to the table to which these metastore partitions + // belong, in the format of + // projects/{project}/locations/{location}/datasets/{dataset}/tables/{table}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "bigquery.googleapis.com/Table" } + ]; + + // Optional. SQL text filtering statement, similar to a WHERE clause in a + // query. Only supports single-row expressions. Aggregate functions are not + // supported. + // + // Examples: "int_field > 5" + // "date_field = CAST('2014-9-27' as DATE)" + // "nullable_field is not NULL" + // "st_equals(geo_field, st_geofromtext("POINT(2, 2)"))" + // "numeric_field BETWEEN 1.0 AND 5.0" + // Restricted to a maximum length for 1 MB. + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for ListMetastorePartitions. +message ListMetastorePartitionsResponse { + // The response depends on the number of metastore partitions to be returned; + // it can be a list of partitions or a list of + // [ReadStream]((https://cloud.google.com/bigquery/docs/reference/storage/rpc/google.cloud.bigquery.storage.v1#readstream)) + // objects. For the second situation, the BigQuery [Read API + // ReadRows](https://cloud.google.com/bigquery/docs/reference/storage#read_from_a_session_stream) + // method must be used to stream the data and convert it into a list of + // partitions. + oneof response { + // The list of partitions. + MetastorePartitionList partitions = 1; + + // The list of streams. + StreamList streams = 2; + } +} + +// The top-level message sent by the client to the +// [Partitions.StreamMetastorePartitions][] method. +// Follows the default gRPC streaming maximum size of 4 MB. +message StreamMetastorePartitionsRequest { + // Required. Reference to the table to where the partition to be added, in the + // format of + // projects/{project}/locations/{location}/datasets/{dataset}/tables/{table}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "bigquery.googleapis.com/Table" } + ]; + + // Optional. A list of metastore partitions to be added to the table. + repeated MetastorePartition metastore_partitions = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Mimics the ifNotExists flag in IMetaStoreClient + // add_partitions(..). If the flag is set to false, the server will return + // ALREADY_EXISTS on commit if any partition already exists. If the flag is + // set to true: + // 1) the server will skip existing partitions + // insert only the non-existing partitions as part of the commit. + // 2) The client must set the `skip_existing_partitions` field to true for + // all requests in the stream. + bool skip_existing_partitions = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// This is the response message sent by the server +// to the client for the [Partitions.StreamMetastorePartitions][] method when +// the commit is successful. Server will close the stream after sending this +// message. +message StreamMetastorePartitionsResponse { + // Total count of partitions streamed by the client during the lifetime of the + // stream. This is only set in the final response message before closing the + // stream. + int64 total_partitions_streamed_count = 2; + + // Total count of partitions inserted by the server during the lifetime of the + // stream. This is only set in the final response message before closing the + // stream. + int64 total_partitions_inserted_count = 3; +} + +// Structured custom error message for batch size too large error. +// The error can be attached as error details in the returned rpc Status for +// more structured error handling in the client. +message BatchSizeTooLargeError { + // The maximum number of items that are supported in a single batch. This is + // returned as a hint to the client to adjust the batch size. + int64 max_batch_size = 1; + + // Optional. The error message that is returned to the client. + string error_message = 2 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/bigquery/storage/v1alpha/partition.proto b/google/cloud/bigquery/storage/v1alpha/partition.proto new file mode 100644 index 000000000..d00b23d52 --- /dev/null +++ b/google/cloud/bigquery/storage/v1alpha/partition.proto @@ -0,0 +1,140 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.bigquery.storage.v1alpha; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.BigQuery.Storage.V1Alpha"; +option go_package = "cloud.google.com/go/bigquery/storage/apiv1alpha/storagepb;storagepb"; +option java_multiple_files = true; +option java_outer_classname = "MetastorePartitionProto"; +option java_package = "com.google.cloud.bigquery.storage.v1alpha"; +option php_namespace = "Google\\Cloud\\BigQuery\\Storage\\V1alpha"; + +// Schema description of a metastore partition column. +message FieldSchema { + // Required. The name of the column. + // The maximum length of the name is 1024 characters + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The type of the metastore partition column. Maximum allowed + // length is 1024 characters. + string type = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Contains information about the physical storage of the data in the metastore +// partition. +message StorageDescriptor { + // Optional. The physical location of the metastore partition + // (e.g. `gs://spark-dataproc-data/pangea-data/case_sensitive/` or + // `gs://spark-dataproc-data/pangea-data/*`). + string location_uri = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the fully qualified class name of the InputFormat + // (e.g. "org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"). + // The maximum length is 128 characters. + string input_format = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the fully qualified class name of the OutputFormat + // (e.g. "org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat"). + // The maximum length is 128 characters. + string output_format = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Serializer and deserializer information. + SerDeInfo serde_info = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Serializer and deserializer information. +message SerDeInfo { + // Optional. Name of the SerDe. + // The maximum length is 256 characters. + string name = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Specifies a fully-qualified class name of the serialization + // library that is responsible for the translation of data between table + // representation and the underlying low-level input and output format + // structures. The maximum length is 256 characters. + string serialization_library = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Key-value pairs that define the initialization parameters for the + // serialization library. + // Maximum size 10 Kib. + map<string, string> parameters = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Information about a Hive partition. +message MetastorePartition { + // Required. Represents the values of the partition keys, where each value + // corresponds to a specific partition key in the order in which the keys are + // defined. Each value is limited to 1024 characters. + repeated string values = 1 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The creation time of the partition. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Contains information about the physical storage of the data in + // the partition. + StorageDescriptor storage_descriptor = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Additional parameters or metadata associated with the partition. + // Maximum size 10 KiB. + map<string, string> parameters = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. List of columns. + repeated FieldSchema fields = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// List of metastore partitions. +message MetastorePartitionList { + // Required. List of partitions. + repeated MetastorePartition partitions = 1 + [(google.api.field_behavior) = REQUIRED]; +} + +// Information about a single stream that is used to read partitions. +message ReadStream { + option (google.api.resource) = { + type: "bigquerystorage.googleapis.com/ReadStream" + pattern: "projects/{project}/locations/{location}/sessions/{session}/streams/{stream}" + plural: "readStreams" + singular: "readStream" + }; + + // Output only. Identifier. Name of the stream, in the form + // `projects/{project_id}/locations/{location}/sessions/{session_id}/streams/{stream_id}`. + string name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = IDENTIFIER + ]; +} + +// List of streams. +message StreamList { + // Output only. List of streams. + repeated ReadStream streams = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Represents the values of a metastore partition. +message MetastorePartitionValues { + // Required. The values of the partition keys, where each value corresponds to + // a specific partition key in the order in which the keys are defined. + repeated string values = 1 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/cloud/bigquery/v2/BUILD.bazel b/google/cloud/bigquery/v2/BUILD.bazel index bed3c0cb6..5c8960b72 100644 --- a/google/cloud/bigquery/v2/BUILD.bazel +++ b/google/cloud/bigquery/v2/BUILD.bazel @@ -138,7 +138,7 @@ go_gapic_library( release_level = "alpha", rest_numeric_enums = False, service_yaml = "bigquery_v2.yaml", - transport = "rest", + transport = "grpc+rest", deps = [ ":bigquery_go_proto", ], diff --git a/google/cloud/bigquery/v2/dataset.proto b/google/cloud/bigquery/v2/dataset.proto index 9b460d9f8..62968e292 100644 --- a/google/cloud/bigquery/v2/dataset.proto +++ b/google/cloud/bigquery/v2/dataset.proto @@ -293,6 +293,9 @@ message Dataset { // READER; access.specialGroup: projectWriters; access.role: WRITER; // access.specialGroup: projectOwners; access.role: OWNER; // access.userByEmail: [dataset creator email]; access.role: OWNER; + // If you patch a dataset, then this field is overwritten by the patched + // dataset's access field. To add entities, you must supply the entire + // existing access array in addition to any new entities that you want to add. repeated Access access = 10 [(google.api.field_behavior) = OPTIONAL]; // Output only. The time when this dataset was created, in milliseconds since @@ -391,8 +394,10 @@ message Dataset { google.protobuf.Int64Value max_time_travel_hours = 23 [(google.api.field_behavior) = OPTIONAL]; - // Output only. Tags for the Dataset. - repeated GcpTag tags = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Tags for the dataset. To provide tags as inputs, use the + // `resourceTags` field. + repeated GcpTag tags = 24 + [deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY]; // Optional. Updates storage_billing_model for the dataset. StorageBillingModel storage_billing_model = 25 @@ -401,19 +406,21 @@ message Dataset { // Optional. Output only. Restriction config for all tables and dataset. If // set, restrict certain accesses on the dataset and all its tables based on // the config. See [Data - // egress](/bigquery/docs/analytics-hub-introduction#data_egress) for more - // details. + // egress](https://cloud.google.com/bigquery/docs/analytics-hub-introduction#data_egress) + // for more details. RestrictionConfig restrictions = 27 [ (google.api.field_behavior) = OPTIONAL, (google.api.field_behavior) = OUTPUT_ONLY ]; - // Optional. The [tags](/bigquery/docs/tags) attached to this dataset. Tag - // keys are globally unique. Tag key is expected to be in the namespaced - // format, for example "123456789012/environment" where 123456789012 is the ID - // of the parent organization or project resource for this tag key. Tag value - // is expected to be the short name, for example "Production". See [Tag - // definitions](/iam/docs/tags-access-control#definitions) for more details. + // Optional. The [tags](https://cloud.google.com/bigquery/docs/tags) attached + // to this dataset. Tag keys are globally unique. Tag key is expected to be in + // the namespaced format, for example "123456789012/environment" where + // 123456789012 is the ID of the parent organization or project resource for + // this tag key. Tag value is expected to be the short name, for example + // "Production". See [Tag + // definitions](https://cloud.google.com/iam/docs/tags-access-control#definitions) + // for more details. map<string, string> resource_tags = 30 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/google/cloud/bigquery/v2/external_catalog_table_options.proto b/google/cloud/bigquery/v2/external_catalog_table_options.proto index e566ee2d1..b0833d441 100644 --- a/google/cloud/bigquery/v2/external_catalog_table_options.proto +++ b/google/cloud/bigquery/v2/external_catalog_table_options.proto @@ -49,8 +49,8 @@ message ExternalCatalogTableOptions { // source query engines. message StorageDescriptor { // Optional. The physical location of the table - // (e.g. 'gs://spark-dataproc-data/pangea-data/case_sensitive/' or - // 'gs://spark-dataproc-data/pangea-data/*'). + // (e.g. `gs://spark-dataproc-data/pangea-data/case_sensitive/` or + // `gs://spark-dataproc-data/pangea-data/*`). // The maximum length is 2056 bytes. string location_uri = 1 [(google.api.field_behavior) = OPTIONAL]; diff --git a/google/cloud/bigquery/v2/job.proto b/google/cloud/bigquery/v2/job.proto index 29aa0df31..b15e1fb42 100644 --- a/google/cloud/bigquery/v2/job.proto +++ b/google/cloud/bigquery/v2/job.proto @@ -161,10 +161,8 @@ message Job { // Only present for APIs that support third-party identities. string principal_subject = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. If set, it provides the reason why a Job was created. - // If not set, it should be treated as the default: REQUESTED. - // - // This feature is not yet available. Jobs will always be created. + // Output only. The reason why a Job was created. + // [Preview](https://cloud.google.com/products/#product-launch-stages) JobCreationReason job_creation_reason = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -503,8 +501,6 @@ message PostQueryRequest { // Describes the format of the jobs.query request. message QueryRequest { // Job Creation Mode provides different options on job creation. - // - // This feature is not yet available. Jobs will always be created. enum JobCreationMode { // If unspecified JOB_CREATION_REQUIRED is the default. JOB_CREATION_MODE_UNSPECIFIED = 0; @@ -655,8 +651,7 @@ message QueryRequest { // // If set, the query request will follow the behavior described // JobCreationMode. - // - // This feature is not yet available. Jobs will always be created. + // [Preview](https://cloud.google.com/products/#product-launch-stages) JobCreationMode job_creation_mode = 22 [(google.api.field_behavior) = OPTIONAL]; } @@ -674,26 +669,21 @@ message QueryResponse { // GetQueryResults can be used to read the results once the query has // completed. Since this API only returns the first page of results, // subsequent pages can be fetched via the same mechanism (GetQueryResults). + // + // If job_creation_mode was set to `JOB_CREATION_OPTIONAL` and the query + // completes without creating a job, this field will be empty. JobReference job_reference = 3; - // Optional. Only relevant when a job_reference is present in the response. - // If job_reference is not present it will always be unset. When job_reference - // is present, this field should be interpreted as follows: + // Optional. The reason why a Job was created. // - // If set, it will provide the reason of why a Job was created. - // - // If not set, it should be treated as the default: REQUESTED. - // - // This feature is not yet available. Jobs will always be created. + // Only relevant when a job_reference is present in the response. + // If job_reference is not present it will always be unset. + // [Preview](https://cloud.google.com/products/#product-launch-stages) JobCreationReason job_creation_reason = 15 [(google.api.field_behavior) = OPTIONAL]; - // Query ID for the completed query. - // - // This ID will be auto-generated. - // - // This field is not yet available and it is currently not guaranteed to be - // populated. + // Auto-generated ID for the query. + // [Preview](https://cloud.google.com/products/#product-launch-stages) string query_id = 14; // The total number of rows in the complete query result set, which can be diff --git a/google/cloud/bigquery/v2/job_config.proto b/google/cloud/bigquery/v2/job_config.proto index 10fe74e46..9f42488c8 100644 --- a/google/cloud/bigquery/v2/job_config.proto +++ b/google/cloud/bigquery/v2/job_config.proto @@ -719,7 +719,7 @@ message JobConfigurationExtract { message ModelExtractOptions { // The 1-based ID of the trial to be exported from a hyperparameter tuning // model. If not specified, the trial with id = - // [Model](/bigquery/docs/reference/rest/v2/models#resource:-model).defaultTrialId + // [Model](https://cloud.google.com/bigquery/docs/reference/rest/v2/models#resource:-model).defaultTrialId // is exported. This field is ignored for models not trained with // hyperparameter tuning. google.protobuf.Int64Value trial_id = 1; diff --git a/google/cloud/bigquery/v2/job_creation_reason.proto b/google/cloud/bigquery/v2/job_creation_reason.proto index 5f1b3fcb5..0cede032b 100644 --- a/google/cloud/bigquery/v2/job_creation_reason.proto +++ b/google/cloud/bigquery/v2/job_creation_reason.proto @@ -31,7 +31,7 @@ option java_package = "com.google.cloud.bigquery.v2"; // [`jobs.insert`](https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/insert) // method calls it will always be `REQUESTED`. // -// This feature is not yet available. Jobs will always be created. +// [Preview](https://cloud.google.com/products/#product-launch-stages) message JobCreationReason { // Indicates the high level reason why a job was created. enum Code { diff --git a/google/cloud/bigquery/v2/job_stats.proto b/google/cloud/bigquery/v2/job_stats.proto index 9aba71538..877e00392 100644 --- a/google/cloud/bigquery/v2/job_stats.proto +++ b/google/cloud/bigquery/v2/job_stats.proto @@ -402,6 +402,9 @@ message IndexUnusedReason { // used. QUERY_CACHE_HIT = 19; + // The index cannot be used in the search query because it is stale. + STALE_INDEX = 20; + // Indicates an internal error that causes the search index to be unused. INTERNAL_ERROR = 10; @@ -616,126 +619,126 @@ message JobStatistics2 { // Possible values: // // * `SELECT`: - // [`SELECT`](/bigquery/docs/reference/standard-sql/query-syntax#select_list) + // [`SELECT`](https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#select_list) // statement. // * `ASSERT`: - // [`ASSERT`](/bigquery/docs/reference/standard-sql/debugging-statements#assert) + // [`ASSERT`](https://cloud.google.com/bigquery/docs/reference/standard-sql/debugging-statements#assert) // statement. // * `INSERT`: - // [`INSERT`](/bigquery/docs/reference/standard-sql/dml-syntax#insert_statement) + // [`INSERT`](https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax#insert_statement) // statement. // * `UPDATE`: - // [`UPDATE`](/bigquery/docs/reference/standard-sql/query-syntax#update_statement) + // [`UPDATE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#update_statement) // statement. // * `DELETE`: - // [`DELETE`](/bigquery/docs/reference/standard-sql/data-manipulation-language) + // [`DELETE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language) // statement. // * `MERGE`: - // [`MERGE`](/bigquery/docs/reference/standard-sql/data-manipulation-language) + // [`MERGE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language) // statement. // * `CREATE_TABLE`: [`CREATE - // TABLE`](/bigquery/docs/reference/standard-sql/data-definition-language#create_table_statement) + // TABLE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_table_statement) // statement, without `AS SELECT`. // * `CREATE_TABLE_AS_SELECT`: [`CREATE TABLE AS - // SELECT`](/bigquery/docs/reference/standard-sql/data-definition-language#query_statement) + // SELECT`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#query_statement) // statement. // * `CREATE_VIEW`: [`CREATE - // VIEW`](/bigquery/docs/reference/standard-sql/data-definition-language#create_view_statement) + // VIEW`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_view_statement) // statement. // * `CREATE_MODEL`: [`CREATE - // MODEL`](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-create#create_model_statement) + // MODEL`](https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-create#create_model_statement) // statement. // * `CREATE_MATERIALIZED_VIEW`: [`CREATE MATERIALIZED - // VIEW`](/bigquery/docs/reference/standard-sql/data-definition-language#create_materialized_view_statement) + // VIEW`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_materialized_view_statement) // statement. // * `CREATE_FUNCTION`: [`CREATE - // FUNCTION`](/bigquery/docs/reference/standard-sql/data-definition-language#create_function_statement) + // FUNCTION`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_function_statement) // statement. // * `CREATE_TABLE_FUNCTION`: [`CREATE TABLE - // FUNCTION`](/bigquery/docs/reference/standard-sql/data-definition-language#create_table_function_statement) + // FUNCTION`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_table_function_statement) // statement. // * `CREATE_PROCEDURE`: [`CREATE - // PROCEDURE`](/bigquery/docs/reference/standard-sql/data-definition-language#create_procedure) + // PROCEDURE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_procedure) // statement. // * `CREATE_ROW_ACCESS_POLICY`: [`CREATE ROW ACCESS - // POLICY`](/bigquery/docs/reference/standard-sql/data-definition-language#create_row_access_policy_statement) + // POLICY`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_row_access_policy_statement) // statement. // * `CREATE_SCHEMA`: [`CREATE - // SCHEMA`](/bigquery/docs/reference/standard-sql/data-definition-language#create_schema_statement) + // SCHEMA`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_schema_statement) // statement. // * `CREATE_SNAPSHOT_TABLE`: [`CREATE SNAPSHOT - // TABLE`](/bigquery/docs/reference/standard-sql/data-definition-language#create_snapshot_table_statement) + // TABLE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_snapshot_table_statement) // statement. // * `CREATE_SEARCH_INDEX`: [`CREATE SEARCH - // INDEX`](/bigquery/docs/reference/standard-sql/data-definition-language#create_search_index_statement) + // INDEX`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_search_index_statement) // statement. // * `DROP_TABLE`: [`DROP - // TABLE`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_table_statement) + // TABLE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#drop_table_statement) // statement. // * `DROP_EXTERNAL_TABLE`: [`DROP EXTERNAL - // TABLE`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_external_table_statement) + // TABLE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#drop_external_table_statement) // statement. // * `DROP_VIEW`: [`DROP - // VIEW`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_view_statement) + // VIEW`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#drop_view_statement) // statement. // * `DROP_MODEL`: [`DROP - // MODEL`](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-drop-model) + // MODEL`](https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-drop-model) // statement. // * `DROP_MATERIALIZED_VIEW`: [`DROP MATERIALIZED - // VIEW`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_materialized_view_statement) + // VIEW`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#drop_materialized_view_statement) // statement. // * `DROP_FUNCTION` : [`DROP - // FUNCTION`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_function_statement) + // FUNCTION`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#drop_function_statement) // statement. // * `DROP_TABLE_FUNCTION` : [`DROP TABLE - // FUNCTION`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_table_function) + // FUNCTION`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#drop_table_function) // statement. // * `DROP_PROCEDURE`: [`DROP - // PROCEDURE`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_procedure_statement) + // PROCEDURE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#drop_procedure_statement) // statement. // * `DROP_SEARCH_INDEX`: [`DROP SEARCH - // INDEX`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_search_index) + // INDEX`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#drop_search_index) // statement. // * `DROP_SCHEMA`: [`DROP - // SCHEMA`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_schema_statement) + // SCHEMA`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#drop_schema_statement) // statement. // * `DROP_SNAPSHOT_TABLE`: [`DROP SNAPSHOT - // TABLE`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_snapshot_table_statement) + // TABLE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#drop_snapshot_table_statement) // statement. // * `DROP_ROW_ACCESS_POLICY`: [`DROP [ALL] ROW ACCESS - // POLICY|POLICIES`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_row_access_policy_statement) + // POLICY|POLICIES`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#drop_row_access_policy_statement) // statement. // * `ALTER_TABLE`: [`ALTER - // TABLE`](/bigquery/docs/reference/standard-sql/data-definition-language#alter_table_set_options_statement) + // TABLE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#alter_table_set_options_statement) // statement. // * `ALTER_VIEW`: [`ALTER - // VIEW`](/bigquery/docs/reference/standard-sql/data-definition-language#alter_view_set_options_statement) + // VIEW`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#alter_view_set_options_statement) // statement. // * `ALTER_MATERIALIZED_VIEW`: [`ALTER MATERIALIZED - // VIEW`](/bigquery/docs/reference/standard-sql/data-definition-language#alter_materialized_view_set_options_statement) + // VIEW`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#alter_materialized_view_set_options_statement) // statement. // * `ALTER_SCHEMA`: [`ALTER - // SCHEMA`](/bigquery/docs/reference/standard-sql/data-definition-language#aalter_schema_set_options_statement) + // SCHEMA`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#aalter_schema_set_options_statement) // statement. // * `SCRIPT`: - // [`SCRIPT`](/bigquery/docs/reference/standard-sql/procedural-language). + // [`SCRIPT`](https://cloud.google.com/bigquery/docs/reference/standard-sql/procedural-language). // * `TRUNCATE_TABLE`: [`TRUNCATE - // TABLE`](/bigquery/docs/reference/standard-sql/dml-syntax#truncate_table_statement) + // TABLE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax#truncate_table_statement) // statement. // * `CREATE_EXTERNAL_TABLE`: [`CREATE EXTERNAL - // TABLE`](/bigquery/docs/reference/standard-sql/data-definition-language#create_external_table_statement) + // TABLE`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_external_table_statement) // statement. // * `EXPORT_DATA`: [`EXPORT - // DATA`](/bigquery/docs/reference/standard-sql/other-statements#export_data_statement) + // DATA`](https://cloud.google.com/bigquery/docs/reference/standard-sql/other-statements#export_data_statement) // statement. // * `EXPORT_MODEL`: [`EXPORT - // MODEL`](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-export-model) + // MODEL`](https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-export-model) // statement. // * `LOAD_DATA`: [`LOAD - // DATA`](/bigquery/docs/reference/standard-sql/other-statements#load_data_statement) + // DATA`](https://cloud.google.com/bigquery/docs/reference/standard-sql/other-statements#load_data_statement) // statement. // * `CALL`: - // [`CALL`](/bigquery/docs/reference/standard-sql/procedural-language#call) + // [`CALL`](https://cloud.google.com/bigquery/docs/reference/standard-sql/procedural-language#call) // statement. string statement_type = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -915,7 +918,7 @@ message MlStatistics { SINGLE_TRAINING = 1; // [Hyperparameter tuning - // training](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview). + // training](https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview). HPARAM_TUNING = 2; } @@ -926,7 +929,7 @@ message MlStatistics { // Results for all completed iterations. // Empty for [hyperparameter tuning - // jobs](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview). + // jobs](https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview). repeated Model.TrainingRun.IterationResult iteration_results = 2; // Output only. The type of the model that is being trained. @@ -936,7 +939,7 @@ message MlStatistics { TrainingType training_type = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Trials of a [hyperparameter tuning - // job](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) + // job](https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) // sorted by trial_id. repeated Model.HparamTuningTrial hparam_trials = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -1106,6 +1109,10 @@ message JobStatistics { // job. int64 final_execution_duration_ms = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of edition corresponding to the reservation for this job + // at the time of this update. + ReservationEdition edition = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Detailed statistics for DML statements @@ -1403,7 +1410,8 @@ message TableMetadataCacheUsage { // metadata cache staleness as seen by this job). google.protobuf.Duration staleness = 5; - // [Table type](/bigquery/docs/reference/rest/v2/tables#Table.FIELDS.type). + // [Table + // type](https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#Table.FIELDS.type). string table_type = 6; } @@ -1412,3 +1420,20 @@ message MetadataCacheStatistics { // Set for the Metadata caching eligible tables referenced in the query. repeated TableMetadataCacheUsage table_metadata_cache_usage = 1; } + +// The type of editions. +// Different features and behaviors are provided to different editions +// Capacity commitments and reservations are linked to editions. +enum ReservationEdition { + // Default value, which will be treated as ENTERPRISE. + RESERVATION_EDITION_UNSPECIFIED = 0; + + // Standard edition. + STANDARD = 1; + + // Enterprise edition. + ENTERPRISE = 2; + + // Enterprise plus edition. + ENTERPRISE_PLUS = 3; +} diff --git a/google/cloud/bigquery/v2/model.proto b/google/cloud/bigquery/v2/model.proto index f6b9ce532..dc3311876 100644 --- a/google/cloud/bigquery/v2/model.proto +++ b/google/cloud/bigquery/v2/model.proto @@ -1810,7 +1810,7 @@ message Model { } // Training info of a trial in [hyperparameter - // tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) + // tuning](https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) // models. message HparamTuningTrial { // Current status of the trial. @@ -1945,23 +1945,23 @@ message Model { // Output only. The default trial_id to use in TVFs when the trial_id is not // passed in. For single-objective [hyperparameter - // tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) + // tuning](https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) // models, this is the best trial ID. For multi-objective [hyperparameter - // tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) + // tuning](https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) // models, this is the smallest trial ID among all Pareto optimal trials. int64 default_trial_id = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Trials of a [hyperparameter - // tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) + // tuning](https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) // model sorted by trial_id. repeated HparamTuningTrial hparam_trials = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. For single-objective [hyperparameter - // tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) + // tuning](https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) // models, it only contains the best trial. For multi-objective // [hyperparameter - // tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) + // tuning](https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) // models, it contains all Pareto optimal trials sorted by trial_id. repeated int64 optimal_trial_ids = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/google/cloud/bigquery/v2/restriction_config.proto b/google/cloud/bigquery/v2/restriction_config.proto index e8c4e32bf..5d9422db3 100644 --- a/google/cloud/bigquery/v2/restriction_config.proto +++ b/google/cloud/bigquery/v2/restriction_config.proto @@ -30,8 +30,8 @@ message RestrictionConfig { RESTRICTION_TYPE_UNSPECIFIED = 0; // Restrict data egress. See [Data - // egress](/bigquery/docs/analytics-hub-introduction#data_egress) for more - // details. + // egress](https://cloud.google.com/bigquery/docs/analytics-hub-introduction#data_egress) + // for more details. RESTRICTED_DATA_EGRESS = 1; } diff --git a/google/cloud/bigquery/v2/routine.proto b/google/cloud/bigquery/v2/routine.proto index 0e45dacad..352b74524 100644 --- a/google/cloud/bigquery/v2/routine.proto +++ b/google/cloud/bigquery/v2/routine.proto @@ -443,10 +443,6 @@ message GetRoutineRequest { // Required. Routine ID of the requested routine string routine_id = 3 [(google.api.field_behavior) = REQUIRED]; - - // If set, only the Routine fields in the field mask are returned in the - // response. If unset, all Routine fields are returned. - google.protobuf.FieldMask read_mask = 4; } // Describes the format for inserting a routine. @@ -525,13 +521,6 @@ message ListRoutinesRequest { // results string page_token = 4; - // If set, then only the Routine fields in the field mask, as well as - // project_id, dataset_id and routine_id, are returned in the response. - // If unset, then the following Routine fields are returned: - // etag, project_id, dataset_id, routine_id, routine_type, creation_time, - // last_modified_time, and language. - google.protobuf.FieldMask read_mask = 5; - // If set, then only the Routines matching this filter are returned. // The supported format is `routineType:{RoutineType}`, where `{RoutineType}` // is a RoutineType enum. For example: `routineType:SCALAR_FUNCTION`. diff --git a/google/cloud/bigquery/v2/standard_sql.proto b/google/cloud/bigquery/v2/standard_sql.proto index 1b393ac5c..0f63b2d5f 100644 --- a/google/cloud/bigquery/v2/standard_sql.proto +++ b/google/cloud/bigquery/v2/standard_sql.proto @@ -57,6 +57,13 @@ option java_package = "com.google.cloud.bigquery.v2"; // ] // } // } +// +// * RANGE<DATE>: +// +// { +// "typeKind": "RANGE", +// "rangeElementType": {"typeKind": "DATE"} +// } message StandardSqlDataType { // The kind of the datatype. enum TypeKind { diff --git a/google/cloud/bigquery/v2/table.proto b/google/cloud/bigquery/v2/table.proto index 8611c608e..9f93ae5df 100644 --- a/google/cloud/bigquery/v2/table.proto +++ b/google/cloud/bigquery/v2/table.proto @@ -384,7 +384,8 @@ message Table { // * `MATERIALIZED_VIEW`: A precomputed view defined by a SQL query. // * `SNAPSHOT`: An immutable BigQuery table that preserves the contents of a // base table at a particular time. See additional information on - // [table snapshots](/bigquery/docs/table-snapshots-intro). + // [table + // snapshots](https://cloud.google.com/bigquery/docs/table-snapshots-intro). // // The default value is `TABLE`. string type = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -509,8 +510,8 @@ message Table { // Optional. Output only. Restriction config for table. If set, restrict // certain accesses on the table based on the config. See [Data - // egress](/bigquery/docs/analytics-hub-introduction#data_egress) for more - // details. + // egress](https://cloud.google.com/bigquery/docs/analytics-hub-introduction#data_egress) + // for more details. RestrictionConfig restrictions = 46 [ (google.api.field_behavior) = OPTIONAL, (google.api.field_behavior) = OUTPUT_ONLY @@ -520,12 +521,14 @@ message Table { TableConstraints table_constraints = 47 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The [tags](/bigquery/docs/tags) attached to this table. Tag keys - // are globally unique. Tag key is expected to be in the namespaced format, - // for example "123456789012/environment" where 123456789012 is the ID of the - // parent organization or project resource for this tag key. Tag value is - // expected to be the short name, for example "Production". See [Tag - // definitions](/iam/docs/tags-access-control#definitions) for more details. + // Optional. The [tags](https://cloud.google.com/bigquery/docs/tags) attached + // to this table. Tag keys are globally unique. Tag key is expected to be in + // the namespaced format, for example "123456789012/environment" where + // 123456789012 is the ID of the parent organization or project resource for + // this tag key. Tag value is expected to be the short name, for example + // "Production". See [Tag + // definitions](https://cloud.google.com/iam/docs/tags-access-control#definitions) + // for more details. map<string, string> resource_tags = 48 [(google.api.field_behavior) = OPTIONAL]; diff --git a/google/cloud/bigquery/v2/table_schema.proto b/google/cloud/bigquery/v2/table_schema.proto index 5f177d1e5..8a56f8e87 100644 --- a/google/cloud/bigquery/v2/table_schema.proto +++ b/google/cloud/bigquery/v2/table_schema.proto @@ -52,6 +52,14 @@ message ForeignTypeInfo { TypeSystem type_system = 1 [(google.api.field_behavior) = REQUIRED]; } +// Data policy option proto, it currently supports name only, will support +// precedence later. +message DataPolicyOption { + // Data policy resource name in the form of + // projects/project_id/locations/location_id/dataPolicies/data_policy_id. + optional string name = 1; +} + // A field in TableSchema message TableFieldSchema { message PolicyTagList { @@ -114,7 +122,7 @@ message TableFieldSchema { // * BIGNUMERIC // * JSON // * RECORD (or STRUCT) - // * RANGE ([Preview](/products/#product-launch-stages)) + // * RANGE // // Use of RECORD/STRUCT indicates that the field contains a nested schema. string type = 2 [(google.api.field_behavior) = REQUIRED]; @@ -135,6 +143,10 @@ message TableFieldSchema { // access control. If not set, defaults to empty policy_tags. PolicyTagList policy_tags = 9 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Data policy options, will replace the data_policies. + repeated DataPolicyOption data_policies = 21 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. Maximum length of values of this field for STRINGS or BYTES. // // If max_length is not specified, no maximum length constraint is imposed diff --git a/google/cloud/billing/budgets/v1/BUILD.bazel b/google/cloud/billing/budgets/v1/BUILD.bazel index 8112ad321..a4a018502 100644 --- a/google/cloud/billing/budgets/v1/BUILD.bazel +++ b/google/cloud/billing/budgets/v1/BUILD.bazel @@ -201,7 +201,7 @@ php_gapic_library( name = "budgets_php_gapic", srcs = [":budgets_proto_with_info"], grpc_service_config = "billingbudgets_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "billingbudgets.yaml", transport = "grpc+rest", diff --git a/google/cloud/billing/v1/BUILD.bazel b/google/cloud/billing/v1/BUILD.bazel index 73fe5cfa4..b71e8fecd 100644 --- a/google/cloud/billing/v1/BUILD.bazel +++ b/google/cloud/billing/v1/BUILD.bazel @@ -221,7 +221,7 @@ php_gapic_library( name = "billing_php_gapic", srcs = [":billing_proto_with_info"], grpc_service_config = "cloud_billing_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "cloudbilling_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/channel/v1/BUILD.bazel b/google/cloud/channel/v1/BUILD.bazel index 310e8e074..72542567f 100644 --- a/google/cloud/channel/v1/BUILD.bazel +++ b/google/cloud/channel/v1/BUILD.bazel @@ -236,7 +236,7 @@ php_gapic_library( name = "channel_php_gapic", srcs = [":channel_proto_with_info"], grpc_service_config = "cloudchannel_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "cloudchannel_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/channel/v1/service.proto b/google/cloud/channel/v1/service.proto index ae54142db..db7881a80 100644 --- a/google/cloud/channel/v1/service.proto +++ b/google/cloud/channel/v1/service.proto @@ -1472,8 +1472,14 @@ message CheckCloudIdentityAccountsExistRequest { // Parent uses the format: accounts/{account_id} string parent = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. Domain to fetch for Cloud Identity account customer. + // Required. Domain to fetch for Cloud Identity account customers, including + // domain and team customers. For team customers, please use the domain for + // their emails. string domain = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Primary admin email to fetch for Cloud Identity account team + // customer. + string primary_admin_email = 4 [(google.api.field_behavior) = OPTIONAL]; } // Entity representing a Cloud Identity account that may be @@ -1494,6 +1500,13 @@ message CloudIdentityCustomerAccount { // If existing = true, the Cloud Identity ID of the customer. string customer_cloud_identity_id = 4; + + // If existing = true, the type of the customer. + CloudIdentityInfo.CustomerType customer_type = 5; + + // If existing = true, and is 2-tier customer, the channel partner of the + // customer. + string channel_partner_cloud_identity_id = 6; } // Response message for @@ -1603,6 +1616,9 @@ message ImportCustomerRequest { // Required. Customer's Cloud Identity ID string cloud_identity_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Customer's primary admin email. + string primary_admin_email = 8 [(google.api.field_behavior) = REQUIRED]; } // Required. The resource name of the reseller's account. diff --git a/google/cloud/cloudcontrolspartner/v1/customers.proto b/google/cloud/cloudcontrolspartner/v1/customers.proto index 8cbc969be..8e7e1ac8e 100644 --- a/google/cloud/cloudcontrolspartner/v1/customers.proto +++ b/google/cloud/cloudcontrolspartner/v1/customers.proto @@ -42,14 +42,15 @@ message Customer { // `organizations/{organization}/locations/{location}/customers/{customer}` string name = 1 [(google.api.field_behavior) = IDENTIFIER]; - // The customer organization's display name. E.g. "google.com". - string display_name = 2; + // Required. Display name for the customer + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; - // Container for customer onboarding steps - CustomerOnboardingState customer_onboarding_state = 3; + // Output only. Container for customer onboarding steps + CustomerOnboardingState customer_onboarding_state = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // Indicates whether a customer is fully onboarded - bool is_onboarded = 4; + // Output only. Indicates whether a customer is fully onboarded + bool is_onboarded = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Request to list customers diff --git a/google/cloud/cloudcontrolspartner/v1/partner_permissions.proto b/google/cloud/cloudcontrolspartner/v1/partner_permissions.proto index 62cafcfc8..d7d4db432 100644 --- a/google/cloud/cloudcontrolspartner/v1/partner_permissions.proto +++ b/google/cloud/cloudcontrolspartner/v1/partner_permissions.proto @@ -49,6 +49,9 @@ message PartnerPermissions { // Permission for External Key Manager connection status ASSURED_WORKLOADS_EKM_CONNECTION_STATUS = 4; + + // Permission for support case details for Access Transparency log entries + ACCESS_TRANSPARENCY_LOGS_SUPPORT_CASE_VIEWER = 5; } // Identifier. Format: diff --git a/google/cloud/cloudcontrolspartner/v1beta/customers.proto b/google/cloud/cloudcontrolspartner/v1beta/customers.proto index 005f8116c..fc0c6fc66 100644 --- a/google/cloud/cloudcontrolspartner/v1beta/customers.proto +++ b/google/cloud/cloudcontrolspartner/v1beta/customers.proto @@ -42,14 +42,15 @@ message Customer { // `organizations/{organization}/locations/{location}/customers/{customer}` string name = 1 [(google.api.field_behavior) = IDENTIFIER]; - // The customer organization's display name. E.g. "google.com". - string display_name = 2; + // Required. Display name for the customer + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; - // Container for customer onboarding steps - CustomerOnboardingState customer_onboarding_state = 3; + // Output only. Container for customer onboarding steps + CustomerOnboardingState customer_onboarding_state = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // Indicates whether a customer is fully onboarded - bool is_onboarded = 4; + // Output only. Indicates whether a customer is fully onboarded + bool is_onboarded = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Request to list customers diff --git a/google/cloud/cloudcontrolspartner/v1beta/partner_permissions.proto b/google/cloud/cloudcontrolspartner/v1beta/partner_permissions.proto index cf8200b16..dc677d7b4 100644 --- a/google/cloud/cloudcontrolspartner/v1beta/partner_permissions.proto +++ b/google/cloud/cloudcontrolspartner/v1beta/partner_permissions.proto @@ -49,6 +49,9 @@ message PartnerPermissions { // Permission for External Key Manager connection status ASSURED_WORKLOADS_EKM_CONNECTION_STATUS = 4; + + // Permission for support case details for Access Transparency log entries + ACCESS_TRANSPARENCY_LOGS_SUPPORT_CASE_VIEWER = 5; } // Identifier. Format: diff --git a/google/cloud/clouddms/v1/BUILD.bazel b/google/cloud/clouddms/v1/BUILD.bazel index 3aaaf098b..84a2d3e96 100644 --- a/google/cloud/clouddms/v1/BUILD.bazel +++ b/google/cloud/clouddms/v1/BUILD.bazel @@ -225,7 +225,7 @@ php_gapic_library( name = "clouddms_php_gapic", srcs = [":clouddms_proto_with_info"], grpc_service_config = "library_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "datamigration_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/commerce/consumer/procurement/BUILD.bazel b/google/cloud/commerce/consumer/procurement/BUILD.bazel index 3b598ee33..3e8f9eb22 100644 --- a/google/cloud/commerce/consumer/procurement/BUILD.bazel +++ b/google/cloud/commerce/consumer/procurement/BUILD.bazel @@ -21,7 +21,7 @@ ruby_cloud_gapic_library( srcs = ["//google/cloud/commerce/consumer/procurement/v1:procurement_proto_with_info"], extra_protoc_parameters = [ "ruby-cloud-gem-name=google-cloud-commerce-consumer-procurement", - "ruby-cloud-wrapper-of=v1:0.3" + "ruby-cloud-wrapper-of=v1:1.1" ], service_yaml = "//google/cloud/commerce/consumer/procurement/v1:cloudcommerceconsumerprocurement_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/commerce/consumer/procurement/v1/BUILD.bazel b/google/cloud/commerce/consumer/procurement/v1/BUILD.bazel index 90dd68e55..6e6e75a62 100644 --- a/google/cloud/commerce/consumer/procurement/v1/BUILD.bazel +++ b/google/cloud/commerce/consumer/procurement/v1/BUILD.bazel @@ -9,18 +9,22 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "procurement_proto", srcs = [ + "license_management_service.proto", "order.proto", "procurement_service.proto", ], @@ -30,6 +34,8 @@ 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", ], ) @@ -45,6 +51,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -87,6 +94,8 @@ java_gapic_test( test_classes = [ "com.google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementServiceClientHttpJsonTest", "com.google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementServiceClientTest", + "com.google.cloud.commerce.consumer.procurement.v1.LicenseManagementServiceClientHttpJsonTest", + "com.google.cloud.commerce.consumer.procurement.v1.LicenseManagementServiceClientTest", ], runtime_deps = [":procurement_java_gapic_test"], ) @@ -107,6 +116,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -140,6 +150,7 @@ go_gapic_library( "//google/longrunning:longrunning_go_proto", "@com_google_cloud_go_longrunning//:go_default_library", "@com_google_cloud_go_longrunning//autogen:go_default_library", + "@io_bazel_rules_go//proto/wkt:duration_go_proto", ], ) @@ -158,6 +169,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -169,15 +181,15 @@ py_gapic_library( name = "procurement_py_gapic", srcs = [":procurement_proto"], grpc_service_config = "commerceconsumerprocurement_v1_grpc_service_config.json", + opt_args = [ + "python-gapic-name=commerce_consumer_procurement", + "python-gapic-namespace=google.cloud", + ], rest_numeric_enums = True, service_yaml = "cloudcommerceconsumerprocurement_v1.yaml", transport = "grpc+rest", deps = [ ], - opt_args = [ - "python-gapic-namespace=google.cloud", - "python-gapic-name=commerce_consumer_procurement", - ], ) py_test( @@ -201,6 +213,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -238,6 +251,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -268,6 +282,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -314,6 +329,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -324,7 +340,6 @@ load( csharp_proto_library( name = "procurement_csharp_proto", - extra_opts = [""], deps = [":procurement_proto"], ) @@ -341,6 +356,7 @@ csharp_gapic_library( grpc_service_config = "commerceconsumerprocurement_v1_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "cloudcommerceconsumerprocurement_v1.yaml", + transport = "grpc+rest", deps = [ ":procurement_csharp_grpc", ":procurement_csharp_proto", @@ -360,6 +376,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/google/cloud/commerce/consumer/procurement/v1/cloudcommerceconsumerprocurement_v1.yaml b/google/cloud/commerce/consumer/procurement/v1/cloudcommerceconsumerprocurement_v1.yaml index 866c14a3e..785c4eeb8 100644 --- a/google/cloud/commerce/consumer/procurement/v1/cloudcommerceconsumerprocurement_v1.yaml +++ b/google/cloud/commerce/consumer/procurement/v1/cloudcommerceconsumerprocurement_v1.yaml @@ -5,6 +5,7 @@ title: Cloud Commerce Consumer Procurement API apis: - name: google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService +- name: google.cloud.commerce.consumer.procurement.v1.LicenseManagementService - name: google.longrunning.Operations types: @@ -24,6 +25,10 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.commerce.consumer.procurement.v1.LicenseManagementService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: google.longrunning.Operations.GetOperation oauth: canonical_scopes: |- @@ -71,9 +76,3 @@ publishing: common: destinations: - PACKAGE_MANAGER - - version: google.cloud.commerce.consumer.procurement.v1alpha1 - launch_stage: ALPHA - java_settings: - common: - destinations: - - PACKAGE_MANAGER diff --git a/google/cloud/commerce/consumer/procurement/v1/license_management_service.proto b/google/cloud/commerce/consumer/procurement/v1/license_management_service.proto new file mode 100644 index 000000000..ae7174966 --- /dev/null +++ b/google/cloud/commerce/consumer/procurement/v1/license_management_service.proto @@ -0,0 +1,227 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.commerce.consumer.procurement.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/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.Commerce.Consumer.Procurement.V1"; +option go_package = "cloud.google.com/go/commerce/consumer/procurement/apiv1/procurementpb;procurementpb"; +option java_multiple_files = true; +option java_outer_classname = "LicenseManagementServiceProto"; +option java_package = "com.google.cloud.commerce.consumer.procurement.v1"; +option php_namespace = "Google\\Cloud\\Commerce\\Consumer\\Procurement\\V1"; +option ruby_package = "Google::Cloud::Commerce::Consumer::Procurement::V1"; + +// Service for managing licenses. +service LicenseManagementService { + option (google.api.default_host) = + "cloudcommerceconsumerprocurement.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Gets the license pool. + rpc GetLicensePool(GetLicensePoolRequest) returns (LicensePool) { + option (google.api.http) = { + get: "/v1/{name=billingAccounts/*/orders/*/licensePool}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the license pool if one exists for this Order. + rpc UpdateLicensePool(UpdateLicensePoolRequest) returns (LicensePool) { + option (google.api.http) = { + patch: "/v1/{license_pool.name=billingAccounts/*/orders/*/licensePool/*}" + body: "license_pool" + }; + option (google.api.method_signature) = "license_pool,update_mask"; + } + + // Assigns a license to a user. + rpc Assign(AssignRequest) returns (AssignResponse) { + option (google.api.http) = { + post: "/v1/{parent=billingAccounts/*/orders/*/licensePool}:assign" + body: "*" + }; + option (google.api.method_signature) = "parent,usernames"; + } + + // Unassigns a license from a user. + rpc Unassign(UnassignRequest) returns (UnassignResponse) { + option (google.api.http) = { + post: "/v1/{parent=billingAccounts/*/orders/*/licensePool}:unassign" + body: "*" + }; + option (google.api.method_signature) = "parent,usernames"; + } + + // Enumerates all users assigned a license. + rpc EnumerateLicensedUsers(EnumerateLicensedUsersRequest) + returns (EnumerateLicensedUsersResponse) { + option (google.api.http) = { + get: "/v1/{parent=billingAccounts/*/orders/*/licensePool}:enumerateLicensedUsers" + }; + option (google.api.method_signature) = "parent"; + } +} + +// Assignment protocol for a license pool. +message AssignmentProtocol { + // Allow manual assignments triggered by administrative operations only. + message ManualAssignmentType {} + + // Configuration for automatic assignments handled by data plane operations. + message AutoAssignmentType { + // Optional. The time to live for an inactive license. After this time has + // passed, the license will be automatically unassigned from the user. Must + // be at least 7 days, if set. If unset, the license will never expire. + google.protobuf.Duration inactive_license_ttl = 1 + [(google.api.field_behavior) = OPTIONAL]; + } + + // The type of assignment protocol. + oneof assignment_type { + // Allow manual assignments triggered by administrative operations only. + ManualAssignmentType manual_assignment_type = 2; + + // Allow automatic assignments triggered by data plane operations. + AutoAssignmentType auto_assignment_type = 3; + } +} + +// A license pool represents a pool of licenses that can be assigned to users. +message LicensePool { + option (google.api.resource) = { + type: "cloudcommerceconsumerprocurement.googleapis.com/LicensePool" + pattern: "billingAccounts/{billing_account}/orders/{order}/licensePool" + plural: "licensePools" + singular: "licensePool" + }; + + // Identifier. Format: + // `billingAccounts/{billing_account}/orders/{order}/licensePool` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. Assignment protocol for the license pool. + AssignmentProtocol license_assignment_protocol = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Output only. Licenses count that are available to be assigned. + int32 available_license_count = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Total number of licenses in the pool. + int32 total_license_count = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request message for getting a license pool. +message GetLicensePoolRequest { + // Required. The name of the license pool to get. + // Format: `billingAccounts/{billing_account}/orders/{order}/licensePool` + string name = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for updating a license pool. +message UpdateLicensePoolRequest { + // Required. The license pool to update. + // + // The license pool's name field is used to identify the license pool to + // update. Format: + // `billingAccounts/{billing_account}/orders/{order}/licensePool`. + LicensePool license_pool = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The list of fields to update. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for +// [LicenseManagementService.Assign][google.cloud.commerce.consumer.procurement.v1.LicenseManagementService.Assign]. +message AssignRequest { + // Required. License pool name. + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Username. + // Format: `name@domain.com`. + repeated string usernames = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for +// [LicenseManagementService.Assign][google.cloud.commerce.consumer.procurement.v1.LicenseManagementService.Assign]. +message AssignResponse {} + +// Request message for +// [LicenseManagementService.Unassign][google.cloud.commerce.consumer.procurement.v1.LicenseManagementService.Unassign]. +message UnassignRequest { + // Required. License pool name. + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Username. + // Format: `name@domain.com`. + repeated string usernames = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for +// [LicenseManagementService.Unassign][google.cloud.commerce.consumer.procurement.v1.LicenseManagementService.Unassign]. +message UnassignResponse {} + +// Request message for +// [LicenseManagementService.EnumerateLicensedUsers][google.cloud.commerce.consumer.procurement.v1.LicenseManagementService.EnumerateLicensedUsers]. +message EnumerateLicensedUsersRequest { + // Required. License pool name. + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The maximum number of users to return. The service may return + // fewer than this value. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `EnumerateLicensedUsers` + // call. Provide this to retrieve the subsequent page. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// A licensed user. +message LicensedUser { + // Username. + // Format: `name@domain.com`. + string username = 1; + + // Output only. Timestamp when the license was assigned. + google.protobuf.Timestamp assign_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when the license was recently used. This may not be + // the most recent usage time, and will be updated regularly (within 24 + // hours). + google.protobuf.Timestamp recent_usage_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Response message for +// [LicenseManagementService.EnumerateLicensedUsers][google.cloud.commerce.consumer.procurement.v1.LicenseManagementService.EnumerateLicensedUsers]. +message EnumerateLicensedUsersResponse { + // The list of licensed users. + repeated LicensedUser licensed_users = 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/cloud/commerce/consumer/procurement/v1/order.proto b/google/cloud/commerce/consumer/procurement/v1/order.proto index fb9523858..7f6d52818 100644 --- a/google/cloud/commerce/consumer/procurement/v1/order.proto +++ b/google/cloud/commerce/consumer/procurement/v1/order.proto @@ -55,28 +55,32 @@ 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. + // Change is in this state when a change is initiated and waiting for partner + // approval. This state is only applicable for pending change. 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). + // 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). + // This state is only applicable for pending change. LINE_ITEM_CHANGE_STATE_APPROVED = 2; - // Change is in this state after it's been activated. + // Change is in this state after it's been activated. This state is only + // applicable for change in history. LINE_ITEM_CHANGE_STATE_COMPLETED = 3; - // Change is in this state if it was rejected by the partner. + // Change is in this state if it was rejected by the partner. This state is + // only applicable for change in history. LINE_ITEM_CHANGE_STATE_REJECTED = 4; - // Change is in this state if it was abandoned by the user. + // Change is in this state if it was abandoned by the user. This state is only + // applicable for change in history. 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. + // change can't be overwritten or cancelled when it's in this state. This + // state is only applicable for pending change. LINE_ITEM_CHANGE_STATE_ACTIVATING = 6; } diff --git a/google/cloud/commerce/consumer/procurement/v1/procurement_service.proto b/google/cloud/commerce/consumer/procurement/v1/procurement_service.proto index 2d78eabf3..d43d27214 100644 --- a/google/cloud/commerce/consumer/procurement/v1/procurement_service.proto +++ b/google/cloud/commerce/consumer/procurement/v1/procurement_service.proto @@ -85,6 +85,45 @@ service ConsumerProcurementService { }; option (google.api.method_signature) = "parent"; } + + // Modifies an existing + // [Order][google.cloud.commerce.consumer.procurement.v1.Order] resource. + rpc ModifyOrder(ModifyOrderRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=billingAccounts/*/orders/*}:modify" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "Order" + metadata_type: "ModifyOrderMetadata" + }; + } + + // Cancels an existing + // [Order][google.cloud.commerce.consumer.procurement.v1.Order]. Every product + // procured in the Order will be cancelled. + rpc CancelOrder(CancelOrderRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=billingAccounts/*/orders/*}:cancel" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "Order" + metadata_type: "CancelOrderMetadata" + }; + } +} + +// Indicates the auto renewal behavior customer specifies on subscription. +enum AutoRenewalBehavior { + // If unspecified, the auto renewal behavior will follow the default config. + AUTO_RENEWAL_BEHAVIOR_UNSPECIFIED = 0; + + // Auto Renewal will be enabled on subscription. + AUTO_RENEWAL_BEHAVIOR_ENABLE = 1; + + // Auto Renewal will be disabled on subscription. + AUTO_RENEWAL_BEHAVIOR_DISABLE = 2; } // Request message for @@ -109,7 +148,7 @@ message PlaceOrderRequest { // 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. + // ID for at least 24 hours after the first request. // // The request ID must be a valid // [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format). @@ -149,6 +188,7 @@ message ListOrdersRequest { // // * `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 @@ -169,3 +209,93 @@ message ListOrdersResponse { // The token for fetching the next page. string next_page_token = 2; } + +// Request message for +// [ConsumerProcurementService.ModifyOrder][google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService.ModifyOrder]. +message ModifyOrderRequest { + // Modifications to make on the order. + message Modification { + // Required. ID of the existing line item to make change to. + // Required when change type is + // [LineItemChangeType.LINE_ITEM_CHANGE_TYPE_UPDATE] or + // [LineItemChangeType.LINE_ITEM_CHANGE_TYPE_CANCEL]. + string line_item_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Type of change to make. + LineItemChangeType change_type = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The line item to update to. + // Required when change_type is + // [LineItemChangeType.LINE_ITEM_CHANGE_TYPE_CREATE] or + // [LineItemChangeType.LINE_ITEM_CHANGE_TYPE_UPDATE]. + LineItemInfo new_line_item_info = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Auto renewal behavior of the subscription for the update. + // Applied when change_type is + // [LineItemChangeType.LINE_ITEM_CHANGE_TYPE_UPDATE]. Follows plan default + // config when this field is not specified. + AutoRenewalBehavior auto_renewal_behavior = 4 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. Name of the order to update. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Modifications for an existing Order created by an Offer. + // Required when Offer based Order is being modified, except for when going + // from an offer to a public plan. + repeated Modification modifications = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Updated display name of the order, leave as empty if you do not + // want to update current display name. + string display_name = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The weak etag, which can be optionally populated, of the order + // that this modify request is based on. Validation checking will only happen + // if the invoker supplies this field. + string etag = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Message stored in the metadata field of the Operation returned by +// [ConsumerProcurementService.ModifyOrder][google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService.ModifyOrder]. +message ModifyOrderMetadata {} + +// Request message for +// [ConsumerProcurementService.CancelOrder][google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService.CancelOrder]. +message CancelOrderRequest { + // Indicates the cancellation policy the customer uses to cancel the order. + enum CancellationPolicy { + // If unspecified, cancellation will try to cancel the order, if order + // cannot be immediately cancelled, auto renewal will be turned off. + // However, caller should avoid using the value as it will yield a + // non-deterministic result. This is still supported mainly to maintain + // existing integrated usages and ensure backwards compatibility. + CANCELLATION_POLICY_UNSPECIFIED = 0; + + // Request will cancel the whole order immediately, if order cannot be + // immediately cancelled, the request will fail. + CANCELLATION_POLICY_CANCEL_IMMEDIATELY = 1; + + // Request will cancel the auto renewal, if order is not subscription based, + // the request will fail. + CANCELLATION_POLICY_CANCEL_AT_TERM_END = 2; + } + + // Required. The resource name of the order. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The weak etag, which can be optionally populated, of the order + // that this cancel request is based on. Validation checking will only happen + // if the invoker supplies this field. + string etag = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Cancellation policy of this request. + CancellationPolicy cancellation_policy = 3 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Message stored in the metadata field of the Operation returned by +// [ConsumerProcurementService.CancelOrder][google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService.CancelOrder]. +message CancelOrderMetadata {} diff --git a/google/cloud/commerce/consumer/procurement/v1alpha1/BUILD.bazel b/google/cloud/commerce/consumer/procurement/v1alpha1/BUILD.bazel index e7d230dcf..67243b9a7 100644 --- a/google/cloud/commerce/consumer/procurement/v1alpha1/BUILD.bazel +++ b/google/cloud/commerce/consumer/procurement/v1alpha1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "procurement_proto", @@ -45,6 +48,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -107,6 +111,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -158,6 +163,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -169,12 +175,14 @@ py_gapic_library( name = "procurement_py_gapic", srcs = [":procurement_proto"], grpc_service_config = "commerceconsumerprocurement_grpc_service_config.json", + opt_args = [ + "python-gapic-name=commerce_consumer_procurement", + "python-gapic-namespace=google.cloud", + ], rest_numeric_enums = True, service_yaml = "cloudcommerceconsumerprocurement_v1alpha1.yaml", transport = "grpc+rest", - opt_args = [ - "python-gapic-namespace=google.cloud", - "python-gapic-name=commerce_consumer_procurement", + deps = [ ], ) @@ -199,6 +207,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -215,10 +224,13 @@ php_gapic_library( name = "procurement_php_gapic", srcs = [":procurement_proto_with_info"], grpc_service_config = "commerceconsumerprocurement_grpc_service_config.json", + migration_mode = "PRE_MIGRATION_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "cloudcommerceconsumerprocurement_v1alpha1.yaml", transport = "grpc+rest", - deps = [":procurement_php_proto"], + deps = [ + ":procurement_php_proto", + ], ) # Open Source Packages @@ -233,6 +245,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -263,6 +276,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -285,9 +299,7 @@ ruby_grpc_library( 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", - ], + extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-consumer-procurement-v1alpha1"], grpc_service_config = "commerceconsumerprocurement_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "cloudcommerceconsumerprocurement_v1alpha1.yaml", @@ -311,6 +323,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -321,6 +334,7 @@ load( csharp_proto_library( name = "procurement_csharp_proto", + extra_opts = [], deps = [":procurement_proto"], ) @@ -357,6 +371,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/google/cloud/compute/v1/BUILD.bazel b/google/cloud/compute/v1/BUILD.bazel index ce21863af..bf0d58637 100644 --- a/google/cloud/compute/v1/BUILD.bazel +++ b/google/cloud/compute/v1/BUILD.bazel @@ -425,7 +425,6 @@ load( go_proto_library( name = "compute_go_proto", - compilers = ["@io_bazel_rules_go//proto:go_grpc"], importpath = "cloud.google.com/go/compute/apiv1/computepb", protos = [":compute_proto"], deps = [ diff --git a/google/cloud/contactcenterinsights/v1/BUILD.bazel b/google/cloud/contactcenterinsights/v1/BUILD.bazel index 881ae3cdd..55c7b4f3d 100644 --- a/google/cloud/contactcenterinsights/v1/BUILD.bazel +++ b/google/cloud/contactcenterinsights/v1/BUILD.bazel @@ -221,7 +221,7 @@ php_gapic_library( name = "contactcenterinsights_php_gapic", srcs = [":contactcenterinsights_proto_with_info"], grpc_service_config = "contactcenterinsights_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "contactcenterinsights_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/contactcenterinsights/v1/contact_center_insights.proto b/google/cloud/contactcenterinsights/v1/contact_center_insights.proto index 59a3e9486..f5126da5c 100644 --- a/google/cloud/contactcenterinsights/v1/contact_center_insights.proto +++ b/google/cloud/contactcenterinsights/v1/contact_center_insights.proto @@ -43,6 +43,8 @@ service ContactCenterInsights { "https://www.googleapis.com/auth/cloud-platform"; // Creates a conversation. + // Note that this method does not support audio transcription or redaction. + // Use `conversations.upload` instead. rpc CreateConversation(CreateConversationRequest) returns (Conversation) { option (google.api.http) = { post: "/v1/{parent=projects/*/locations/*}/conversations" @@ -52,8 +54,8 @@ service ContactCenterInsights { "parent,conversation,conversation_id"; } - // Create a longrunning conversation upload operation. This method differs - // from CreateConversation by allowing audio transcription and optional DLP + // Create a long-running conversation upload operation. This method differs + // from `CreateConversation` by allowing audio transcription and optional DLP // redaction. rpc UploadConversation(UploadConversationRequest) returns (google.longrunning.Operation) { @@ -281,6 +283,34 @@ service ContactCenterInsights { }; } + // Exports an issue model to the provided destination. + rpc ExportIssueModel(ExportIssueModelRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/issueModels/*}:export" + body: "*" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "ExportIssueModelResponse" + metadata_type: "ExportIssueModelMetadata" + }; + } + + // Imports an issue model from a Cloud Storage bucket. + rpc ImportIssueModel(ImportIssueModelRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/issueModels:import" + body: "*" + }; + option (google.api.method_signature) = "parent"; + option (google.longrunning.operation_info) = { + response_type: "ImportIssueModelResponse" + metadata_type: "ImportIssueModelMetadata" + }; + } + // Gets an issue. rpc GetIssue(GetIssueRequest) returns (Issue) { option (google.api.http) = { @@ -392,6 +422,32 @@ service ContactCenterInsights { option (google.api.method_signature) = "settings,update_mask"; } + // Gets location-level encryption key specification. + rpc GetEncryptionSpec(GetEncryptionSpecRequest) returns (EncryptionSpec) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/encryptionSpec}" + }; + option (google.api.method_signature) = "name"; + } + + // Initializes a location-level encryption key specification. An error will + // be thrown if the location has resources already created before the + // initialization. Once the encryption specification is initialized at a + // location, it is immutable and all newly created resources under the + // location will be encrypted with the existing specification. + rpc InitializeEncryptionSpec(InitializeEncryptionSpecRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{encryption_spec.name=projects/*/locations/*/encryptionSpec}:initialize" + body: "*" + }; + option (google.api.method_signature) = "encryption_spec"; + option (google.longrunning.operation_info) = { + response_type: "InitializeEncryptionSpecResponse" + metadata_type: "InitializeEncryptionSpecMetadata" + }; + } + // Creates a view. rpc CreateView(CreateViewRequest) returns (View) { option (google.api.http) = { @@ -596,7 +652,7 @@ message UploadConversationRequest { SpeechConfig speech_config = 11 [(google.api.field_behavior) = OPTIONAL]; } -// The metadata for an UploadConversation operation. +// The metadata for an `UploadConversation` operation. message UploadConversationMetadata { // Output only. The time the operation was created. google.protobuf.Timestamp create_time = 1 @@ -630,7 +686,7 @@ message ListConversationsRequest { ]; // The maximum number of conversations to return in the response. A valid page - // size ranges from 0 to 1,000 inclusive. If the page size is zero or + // size ranges from 0 to 100,000 inclusive. If the page size is zero or // unspecified, a default page size of 100 will be chosen. Note that a call // might return fewer results than the requested page size. int32 page_size = 2; @@ -644,6 +700,23 @@ message ListConversationsRequest { // conversations with specific properties. string filter = 4; + // Optional. The attribute by which to order conversations in the response. + // If empty, conversations will be ordered by descending creation time. + // Supported values are one of the following: + // + // * create_time + // * customer_satisfaction_rating + // * duration + // * latest_analysis + // * start_time + // * turn_count + // + // The default sort order is ascending. To specify order, append `asc` or + // `desc` (`create_time desc`). + // For more details, see [Google AIPs + // Ordering](https://google.aip.dev/132#ordering). + string order_by = 7 [(google.api.field_behavior) = OPTIONAL]; + // The level of details of the conversation. Default is `BASIC`. ConversationView view = 5; } @@ -678,7 +751,20 @@ message UpdateConversationRequest { // Required. The new values for the conversation. Conversation conversation = 1 [(google.api.field_behavior) = REQUIRED]; - // The list of fields to be updated. + // The list of fields to be updated. All possible fields can be updated by + // passing `*`, or a subset of the following updateable fields can be + // provided: + // + // * `agent_id` + // * `language_code` + // * `labels` + // * `metadata` + // * `quality_metadata` + // * `call_metadata` + // * `start_time` + // * `expire_time` or `ttl` + // * `data_source.gcs_source.audio_uri` or + // `data_source.dialogflow_source.audio_uri` google.protobuf.FieldMask update_mask = 2; } @@ -719,6 +805,23 @@ message IngestConversationsRequest { // Optional. Specifies the type of the objects in `bucket_uri`. BucketObjectType bucket_object_type = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Cloud Storage path to the conversation metadata. Note that: + // [1] Metadata files are expected to be in JSON format. + // [2] Metadata and source files (transcripts or audio) must be in + // separate buckets. + // [3] A source file and its corresponding metadata file must share the same + // name to + // be properly ingested, E.g. `gs://bucket/audio/conversation1.mp3` and + // `gs://bucket/metadata/conversation1.json`. + optional string metadata_bucket_uri = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Custom keys to extract as conversation labels from metadata + // files in `metadata_bucket_uri`. Keys not included in this field will be + // ignored. Note that there is a limit of 20 labels per conversation. + repeated string custom_metadata_keys = 12 + [(google.api.field_behavior) = OPTIONAL]; } // Configuration for processing transcript objects. @@ -729,9 +832,11 @@ message IngestConversationsRequest { // Configuration that applies to all conversations. message ConversationConfig { - // An opaque, user-specified string representing the human agent who handled - // the conversations. - string agent_id = 1; + // Optional. An opaque, user-specified string representing a human agent who + // handled all conversations in the import. Note that this will be + // overridden if per-conversation metadata is provided through the + // `metadata_bucket_uri`. + string agent_id = 1 [(google.api.field_behavior) = OPTIONAL]; // Optional. Indicates which of the channels, 1 or 2, contains the agent. // Note that this must be set for conversations to be properly displayed and @@ -776,6 +881,12 @@ message IngestConversationsRequest { // Optional. Default Speech-to-Text configuration. Optional, will default to // the config specified in Settings. SpeechConfig speech_config = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set, this fields indicates the number of objects to ingest + // from the Cloud Storage bucket. If empty, the entire bucket will be + // ingested. Unless they are first deleted, conversations produced through + // sampling won't be ingested by subsequent ingest requests. + optional int32 sample_size = 7 [(google.api.field_behavior) = OPTIONAL]; } // The metadata for an IngestConversations operation. @@ -1226,6 +1337,85 @@ message UndeployIssueModelMetadata { UndeployIssueModelRequest request = 3; } +// Request to export an issue model. +message ExportIssueModelRequest { + // Google Cloud Storage Object URI to save the issue model to. + message GcsDestination { + // Required. Format: `gs://<bucket-name>/<object-name>` + string object_uri = 1 [(google.api.field_behavior) = REQUIRED]; + } + + oneof Destination { + // Google Cloud Storage URI to export the issue model to. + GcsDestination gcs_destination = 2; + } + + // Required. The issue model to export. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contactcenterinsights.googleapis.com/IssueModel" + } + ]; +} + +// Response from export issue model +message ExportIssueModelResponse {} + +// Metadata used for export issue model. +message ExportIssueModelMetadata { + // The time the operation was created. + google.protobuf.Timestamp create_time = 1; + + // The time the operation finished running. + google.protobuf.Timestamp end_time = 2; + + // The original export request. + ExportIssueModelRequest request = 3; +} + +// Request to import an issue model. +message ImportIssueModelRequest { + // Google Cloud Storage Object URI to get the issue model file from. + message GcsSource { + // Required. Format: `gs://<bucket-name>/<object-name>` + string object_uri = 1 [(google.api.field_behavior) = REQUIRED]; + } + + oneof Source { + // Google Cloud Storage source message. + GcsSource gcs_source = 2; + } + + // Required. The parent resource of the issue model. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. If set to true, will create an issue model from the imported file + // with randomly generated IDs for the issue model and corresponding issues. + // Otherwise, replaces an existing model with the same ID as the file. + bool create_new_model = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response from import issue model +message ImportIssueModelResponse {} + +// Metadata used for import issue model. +message ImportIssueModelMetadata { + // The time the operation was created. + google.protobuf.Timestamp create_time = 1; + + // The time the operation finished running. + google.protobuf.Timestamp end_time = 2; + + // The original import request. + ImportIssueModelRequest request = 3; +} + // The request to get an issue. message GetIssueRequest { // Required. The name of the issue to get. @@ -1397,6 +1587,48 @@ message UpdateSettingsRequest { [(google.api.field_behavior) = REQUIRED]; } +// The request to get location-level encryption specification. +message GetEncryptionSpecRequest { + // Required. The name of the encryption spec resource to get. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "contactcenterinsights.googleapis.com/EncryptionSpec" + } + ]; +} + +// The request to initialize a location-level encryption specification. +message InitializeEncryptionSpecRequest { + // Required. The encryption spec used for CMEK encryption. It is required that + // the kms key is in the same region as the endpoint. The same key will be + // used for all provisioned resources, if encryption is available. If the + // kms_key_name is left empty, no encryption will be enforced. + EncryptionSpec encryption_spec = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The response to initialize a location-level encryption specification. +message InitializeEncryptionSpecResponse {} + +// Metadata for initializing a location-level encryption specification. +message InitializeEncryptionSpecMetadata { + // 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. The original request for initialization. + InitializeEncryptionSpecRequest request = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Partial errors during initialising operation that might cause the operation + // output to be incomplete. + repeated google.rpc.Status partial_errors = 4; +} + // The request to create a view. message CreateViewRequest { // Required. The parent resource of the view. Required. The location to create diff --git a/google/cloud/contactcenterinsights/v1/contactcenterinsights_v1.yaml b/google/cloud/contactcenterinsights/v1/contactcenterinsights_v1.yaml index c83d6ba0a..208e99dd5 100644 --- a/google/cloud/contactcenterinsights/v1/contactcenterinsights_v1.yaml +++ b/google/cloud/contactcenterinsights/v1/contactcenterinsights_v1.yaml @@ -19,8 +19,14 @@ types: - name: google.cloud.contactcenterinsights.v1.DeployIssueModelResponse - name: google.cloud.contactcenterinsights.v1.ExportInsightsDataMetadata - name: google.cloud.contactcenterinsights.v1.ExportInsightsDataResponse +- name: google.cloud.contactcenterinsights.v1.ExportIssueModelMetadata +- name: google.cloud.contactcenterinsights.v1.ExportIssueModelResponse +- name: google.cloud.contactcenterinsights.v1.ImportIssueModelMetadata +- name: google.cloud.contactcenterinsights.v1.ImportIssueModelResponse - name: google.cloud.contactcenterinsights.v1.IngestConversationsMetadata - name: google.cloud.contactcenterinsights.v1.IngestConversationsResponse +- name: google.cloud.contactcenterinsights.v1.InitializeEncryptionSpecMetadata +- name: google.cloud.contactcenterinsights.v1.InitializeEncryptionSpecResponse - name: google.cloud.contactcenterinsights.v1.UndeployIssueModelMetadata - name: google.cloud.contactcenterinsights.v1.UndeployIssueModelResponse - name: google.cloud.contactcenterinsights.v1.UploadConversationMetadata diff --git a/google/cloud/contactcenterinsights/v1/resources.proto b/google/cloud/contactcenterinsights/v1/resources.proto index a8011eb3f..d93ee3f26 100644 --- a/google/cloud/contactcenterinsights/v1/resources.proto +++ b/google/cloud/contactcenterinsights/v1/resources.proto @@ -222,6 +222,11 @@ message Conversation { // Conversation metadata related to quality management. QualityMetadata quality_metadata = 24; + // Input only. JSON Metadata encoded as a string. + // This field is primarily used by Insights integrations with various telphony + // systems and must be in one of Insights' supported formats. + string metadata_json = 25 [(google.api.field_behavior) = INPUT_ONLY]; + // Output only. The conversation transcript. Transcript transcript = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -338,6 +343,9 @@ message AnalysisResult { // Overall conversation-level sentiment for each channel of the call. repeated ConversationLevelSentiment sentiments = 4; + // Overall conversation-level silence during the call. + ConversationLevelSilence silence = 11; + // All the matched intents in the call. map<string, Intent> intents = 6; @@ -379,6 +387,15 @@ message ConversationLevelSentiment { SentimentData sentiment_data = 2; } +// Conversation-level silence data. +message ConversationLevelSilence { + // Amount of time calculated to be in silence. + google.protobuf.Duration silence_duration = 1; + + // Percentage of the total conversation spent in silence. + float silence_percentage = 2; +} + // Information about the issue. message IssueAssignment { // Resource name of the assigned issue. @@ -766,6 +783,9 @@ message Issue { // match to this issue. repeated string sample_utterances = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Representative description of the issue. + string display_description = 14; } // Aggregated statistics about an issue model. @@ -916,7 +936,12 @@ message ExactMatchConfig { bool case_sensitive = 1; } -// The settings resource. +// The CCAI Insights project wide settings. +// Use these settings to configure the behavior of Insights. +// View these settings with +// [`getsettings`](https://cloud.google.com/contact-center/insights/docs/reference/rest/v1/projects.locations/getSettings) +// and change the settings with +// [`updateSettings`](https://cloud.google.com/contact-center/insights/docs/reference/rest/v1/projects.locations/updateSettings). message Settings { option (google.api.resource) = { type: "contactcenterinsights.googleapis.com/Settings" @@ -972,8 +997,11 @@ message Settings { // * "create-analysis": Notify each time an analysis is created. // * "create-conversation": Notify each time a conversation is created. // * "export-insights-data": Notify each time an export is complete. + // * "ingest-conversations": Notify each time an IngestConversations LRO is + // complete. // * "update-conversation": Notify each time a conversation is updated via // UpdateConversation. + // * "upload-conversation": Notify when an UploadConversation LRO is complete. // // Values are Pub/Sub topics. The format of each Pub/Sub topic is: // projects/{project}/topics/{topic} @@ -983,15 +1011,47 @@ message Settings { AnalysisConfig analysis_config = 7; // Default DLP redaction resources to be applied while ingesting - // conversations. + // conversations. This applies to conversations ingested from the + // `UploadConversation` and `IngestConversations` endpoints, including + // conversations coming from CCAI Platform. RedactionConfig redaction_config = 10; - // Optional. Default Speech-to-Text resources to be used while ingesting audio - // files. Optional, CCAI Insights will create a default if not provided. + // Optional. Default Speech-to-Text resources to use while ingesting audio + // files. Optional, CCAI Insights will create a default if not provided. This + // applies to conversations ingested from the `UploadConversation` and + // `IngestConversations` endpoints, including conversations coming from CCAI + // Platform. SpeechConfig speech_config = 11 [(google.api.field_behavior) = OPTIONAL]; } +// A customer-managed encryption key specification that can be applied to all +// created resources (e.g. Conversation). +message EncryptionSpec { + option (google.api.resource) = { + type: "contactcenterinsights.googleapis.com/EncryptionSpec" + pattern: "projects/{project}/locations/{location}/encryptionSpec" + }; + + // Immutable. The resource name of the encryption key specification resource. + // Format: + // projects/{project}/locations/{location}/encryptionSpec + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Required. The name of customer-managed encryption key that is used to + // secure a resource and its sub-resources. If empty, the resource is secured + // by the default Google encryption key. Only the key in the same location as + // this resource is allowed to be used for encryption. Format: + // `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{key}` + string kms_key = 2 [(google.api.field_behavior) = REQUIRED]; +} + // DLP resources used for redaction while ingesting conversations. +// DLP settings are applied to conversations ingested from the +// `UploadConversation` and `IngestConversations` endpoints, including +// conversation coming from CCAI Platform. They are not applied to conversations +// ingested from the `CreateConversation` endpoint or the Dialogflow / Agent +// Assist runtime integrations. When using Dialogflow / Agent Assist runtime +// integrations, redaction should be performed in Dialogflow / Agent Assist. message RedactionConfig { // The fully-qualified DLP deidentify template resource name. // Format: @@ -1005,6 +1065,10 @@ message RedactionConfig { } // Speech-to-Text configuration. +// Speech-to-Text settings are applied to conversations ingested from the +// `UploadConversation` and `IngestConversations` endpoints, including +// conversation coming from CCAI Platform. They are not applied to conversations +// ingested from the `CreateConversation` endpoint. message SpeechConfig { // The fully-qualified Speech Recognizer resource name. // Format: @@ -1016,6 +1080,33 @@ message SpeechConfig { // An annotation that was generated during the customer and agent interaction. message RuntimeAnnotation { + // Explicit input used for generating the answer + message UserInput { + // The source of the query. + enum QuerySource { + // Unknown query source. + QUERY_SOURCE_UNSPECIFIED = 0; + + // The query is from agents. + AGENT_QUERY = 1; + + // The query is a query from previous suggestions, e.g. from a preceding + // SuggestKnowledgeAssist response. + SUGGESTED_QUERY = 2; + } + + // Query text. Article Search uses this to store the input query used + // to generate the search results. + string query = 1; + + // The resource name of associated generator. Format: + // `projects/<Project ID>/locations/<Location ID>/generators/<Generator ID>` + string generator_name = 2; + + // Query source for the answer. + QuerySource query_source = 3; + } + // The data in the annotation. oneof data { // Agent Assist Article Suggestion data. @@ -1054,6 +1145,9 @@ message RuntimeAnnotation { // The feedback that the customer has about the answer in `data`. AnswerFeedback answer_feedback = 5; + + // Explicit input used for generating the answer + UserInput user_input = 16; } // The feedback that the customer has about a certain answer in the @@ -1301,6 +1395,9 @@ message AnnotatorSelector { // The CCAI baseline model. BASELINE_MODEL = 1; + + // The CCAI baseline model, V2.0. + BASELINE_MODEL_V2_0 = 2; } // Summarization must use either a preexisting conversation profile or one diff --git a/google/cloud/datacatalog/v1/BUILD.bazel b/google/cloud/datacatalog/v1/BUILD.bazel index 3c4fcca11..6961a3a86 100644 --- a/google/cloud/datacatalog/v1/BUILD.bazel +++ b/google/cloud/datacatalog/v1/BUILD.bazel @@ -243,7 +243,7 @@ php_gapic_library( name = "datacatalog_php_gapic", srcs = [":datacatalog_proto_with_info"], grpc_service_config = "datacatalog_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = False, service_yaml = "datacatalog_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/datacatalog/v1beta1/datacatalog.proto b/google/cloud/datacatalog/v1beta1/datacatalog.proto index 88c213198..17916f51e 100644 --- a/google/cloud/datacatalog/v1beta1/datacatalog.proto +++ b/google/cloud/datacatalog/v1beta1/datacatalog.proto @@ -835,8 +835,8 @@ message Entry { pattern: "projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}" }; - // Output only. The Data Catalog resource name of the entry in URL format. - // Example: + // Output only. Identifier. The Data Catalog resource name of the entry in URL + // format. Example: // // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id} // @@ -844,6 +844,7 @@ message Entry { // the location in this name. string name = 1 [ (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = IDENTIFIER, (google.api.resource_reference) = { type: "datacatalog.googleapis.com/EntryGroup" } @@ -945,13 +946,13 @@ message EntryGroup { pattern: "projects/{project}/locations/{location}/entryGroups/{entry_group}" }; - // The resource name of the entry group in URL format. Example: + // Identifier. The resource name of the entry group in URL format. Example: // // * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id} // // Note that this EntryGroup and its child resources may not actually be // stored in the location in this name. - string name = 1; + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // A short name to identify the entry group, for example, // "analytics data - jan 2011". Default value is an empty string. diff --git a/google/cloud/datacatalog/v1beta1/tags.proto b/google/cloud/datacatalog/v1beta1/tags.proto index 95a234ffe..37f20895e 100644 --- a/google/cloud/datacatalog/v1beta1/tags.proto +++ b/google/cloud/datacatalog/v1beta1/tags.proto @@ -40,13 +40,13 @@ message Tag { pattern: "projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}/tags/{tag}" }; - // The resource name of the tag in URL format. Example: + // Identifier. The resource name of the tag in URL format. Example: // // * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id} // // where `tag_id` is a system-generated identifier. // Note that this Tag may not actually be stored in the location in this name. - string name = 1; + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // Required. The resource name of the tag template that this tag uses. // Example: @@ -134,13 +134,26 @@ message TagTemplate { pattern: "projects/{project}/locations/{location}/tagTemplates/{tag_template}" }; - // The resource name of the tag template in URL format. Example: + // This enum describes TagTemplate transfer status to Dataplex service. + enum DataplexTransferStatus { + // Default value. TagTemplate and its tags are only visible and editable in + // DataCatalog. + DATAPLEX_TRANSFER_STATUS_UNSPECIFIED = 0; + + // TagTemplate and its tags are auto-copied to Dataplex service. + // Visible in both services. Editable in DataCatalog, read-only in Dataplex. + // Deprecated: Individual TagTemplate migration is deprecated in favor of + // organization or project wide TagTemplate migration opt-in. + MIGRATED = 1 [deprecated = true]; + } + + // Identifier. The resource name of the tag template in URL format. Example: // // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id} // // Note that this TagTemplate and its child resources may not actually be // stored in the location in this name. - string name = 1; + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // The display name for this template. Defaults to an empty string. string display_name = 2; @@ -155,6 +168,10 @@ message TagTemplate { // 64 characters long. Field IDs must start with a letter or underscore. map<string, TagTemplateField> fields = 3 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Transfer status of the TagTemplate + DataplexTransferStatus dataplex_transfer_status = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // The template for an individual field within a tag template. @@ -164,14 +181,17 @@ message TagTemplateField { pattern: "projects/{project}/locations/{location}/tagTemplates/{tag_template}/fields/{field}" }; - // Output only. The resource name of the tag template field in URL format. - // Example: + // Output only. Identifier. The resource name of the tag template field in URL + // format. Example: // // * projects/{project_id}/locations/{location}/tagTemplates/{tag_template}/fields/{field} // // Note that this TagTemplateField may not actually be stored in the location // in this name. - string name = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + string name = 6 [ + (google.api.field_behavior) = IDENTIFIER, + (google.api.field_behavior) = OUTPUT_ONLY + ]; // The display name for this field. Defaults to an empty string. string display_name = 1; diff --git a/google/cloud/dataproc/v1/BUILD.bazel b/google/cloud/dataproc/v1/BUILD.bazel index 759cdade2..5e6487708 100644 --- a/google/cloud/dataproc/v1/BUILD.bazel +++ b/google/cloud/dataproc/v1/BUILD.bazel @@ -243,7 +243,7 @@ php_gapic_library( name = "dataproc_php_gapic", srcs = [":dataproc_proto_with_info"], grpc_service_config = "dataproc_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "dataproc_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/dataproc/v1/batches.proto b/google/cloud/dataproc/v1/batches.proto index b7411d2ca..e44af90c0 100644 --- a/google/cloud/dataproc/v1/batches.proto +++ b/google/cloud/dataproc/v1/batches.proto @@ -170,6 +170,11 @@ message ListBatchesResponse { // 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; + + // Output only. List of Batches that could not be included in the response. + // Attempting to get one of these resources may indicate why it was not + // included in the list response. + repeated string unreachable = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } // A request to delete a batch workload. diff --git a/google/cloud/dataproc/v1/clusters.proto b/google/cloud/dataproc/v1/clusters.proto index 6d101219c..ff52b6145 100644 --- a/google/cloud/dataproc/v1/clusters.proto +++ b/google/cloud/dataproc/v1/clusters.proto @@ -379,9 +379,45 @@ message AutoscalingConfig { // Encryption settings for the cluster. message EncryptionConfig { - // Optional. The Cloud KMS key name to use for PD disk encryption for all - // instances in the cluster. + // Optional. The Cloud KMS key resource name to use for persistent disk + // encryption for all instances in the cluster. See [Use CMEK with cluster + // data] + // (https://cloud.google.com//dataproc/docs/concepts/configuring-clusters/customer-managed-encryption#use_cmek_with_cluster_data) + // for more information. string gce_pd_kms_key_name = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Cloud KMS key resource name to use for cluster persistent + // disk and job argument encryption. See [Use CMEK with cluster data] + // (https://cloud.google.com//dataproc/docs/concepts/configuring-clusters/customer-managed-encryption#use_cmek_with_cluster_data) + // for more information. + // + // When this key resource name is provided, the following job arguments of + // the following job types submitted to the cluster are encrypted using CMEK: + // + // * [FlinkJob + // args](https://cloud.google.com/dataproc/docs/reference/rest/v1/FlinkJob) + // * [HadoopJob + // args](https://cloud.google.com/dataproc/docs/reference/rest/v1/HadoopJob) + // * [SparkJob + // args](https://cloud.google.com/dataproc/docs/reference/rest/v1/SparkJob) + // * [SparkRJob + // args](https://cloud.google.com/dataproc/docs/reference/rest/v1/SparkRJob) + // * [PySparkJob + // args](https://cloud.google.com/dataproc/docs/reference/rest/v1/PySparkJob) + // * [SparkSqlJob](https://cloud.google.com/dataproc/docs/reference/rest/v1/SparkSqlJob) + // scriptVariables and queryList.queries + // * [HiveJob](https://cloud.google.com/dataproc/docs/reference/rest/v1/HiveJob) + // scriptVariables and queryList.queries + // * [PigJob](https://cloud.google.com/dataproc/docs/reference/rest/v1/PigJob) + // scriptVariables and queryList.queries + // * [PrestoJob](https://cloud.google.com/dataproc/docs/reference/rest/v1/PrestoJob) + // scriptVariables and queryList.queries + string kms_key = 2 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + } + ]; } // Common config settings for resources of Compute Engine cluster @@ -447,12 +483,22 @@ message GceClusterConfig { // * `sub0` string subnetwork_uri = 6 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If true, all instances in the cluster will only have internal IP - // addresses. By default, clusters are not restricted to internal IP - // addresses, and will have ephemeral external IP addresses assigned to each - // instance. This `internal_ip_only` restriction can only be enabled for - // subnetwork enabled networks, and all off-cluster dependencies must be - // configured to be accessible without external IP addresses. + // Optional. This setting applies to subnetwork-enabled networks. It is set to + // `true` by default in clusters created with image versions 2.2.x. + // + // When set to `true`: + // + // * All cluster VMs have internal IP addresses. + // * [Google Private Access] + // (https://cloud.google.com/vpc/docs/private-google-access) + // must be enabled to access Dataproc and other Google Cloud APIs. + // * Off-cluster dependencies must be configured to be accessible + // without external IP addresses. + // + // When set to `false`: + // + // * Cluster VMs are not restricted to internal IP addresses. + // * Ephemeral external IP addresses are assigned to each cluster VM. optional bool internal_ip_only = 7 [(google.api.field_behavior) = OPTIONAL]; // Optional. The type of IPv6 access for a cluster. @@ -489,8 +535,8 @@ message GceClusterConfig { repeated string service_account_scopes = 3 [(google.api.field_behavior) = OPTIONAL]; - // The Compute Engine tags to add to all instances (see [Tagging - // instances](https://cloud.google.com/compute/docs/label-or-tag-resources#tags)). + // The Compute Engine network tags to add to all instances (see [Tagging + // instances](https://cloud.google.com/vpc/docs/add-remove-network-tags)). repeated string tags = 4; // Optional. The Compute Engine metadata entries to add to all instances (see @@ -748,6 +794,30 @@ message ManagedGroupConfig { // Instance flexibility Policy allowing a mixture of VM shapes and provisioning // models. message InstanceFlexibilityPolicy { + // Defines how Dataproc should create VMs with a mixture of provisioning + // models. + message ProvisioningModelMix { + // Optional. The base capacity that will always use Standard VMs to avoid + // risk of more preemption than the minimum capacity you need. Dataproc will + // create only standard VMs until it reaches standard_capacity_base, then it + // will start using standard_capacity_percent_above_base to mix Spot with + // Standard VMs. eg. If 15 instances are requested and + // standard_capacity_base is 5, Dataproc will create 5 standard VMs and then + // start mixing spot and standard VMs for remaining 10 instances. + optional int32 standard_capacity_base = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The percentage of target capacity that should use Standard VM. + // The remaining percentage will use Spot VMs. The percentage applies only + // to the capacity above standard_capacity_base. eg. If 15 instances are + // requested and standard_capacity_base is 5 and + // standard_capacity_percent_above_base is 30, Dataproc will create 5 + // standard VMs and then start mixing spot and standard VMs for remaining 10 + // instances. The mix will be 30% standard and 70% spot. + optional int32 standard_capacity_percent_above_base = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + // Defines machines types and a rank to which the machines types belong. message InstanceSelection { // Optional. Full machine-type names, e.g. "n1-standard-16". @@ -772,6 +842,11 @@ message InstanceFlexibilityPolicy { optional int32 vm_count = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } + // Optional. Defines how the Group selects the provisioning model to ensure + // required reliability. + ProvisioningModelMix provisioning_model_mix = 1 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. List of instance selection options that the group will use when // creating new VMs. repeated InstanceSelection instance_selection_list = 2 @@ -793,15 +868,15 @@ message AcceleratorConfig { // // Examples: // - // * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]/acceleratorTypes/nvidia-tesla-k80` - // * `projects/[project_id]/zones/[zone]/acceleratorTypes/nvidia-tesla-k80` - // * `nvidia-tesla-k80` + // * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]/acceleratorTypes/nvidia-tesla-t4` + // * `projects/[project_id]/zones/[zone]/acceleratorTypes/nvidia-tesla-t4` + // * `nvidia-tesla-t4` // // **Auto Zone Exception**: If you are using the Dataproc // [Auto Zone // Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) // feature, you must use the short name of the accelerator type - // resource, for example, `nvidia-tesla-k80`. + // resource, for example, `nvidia-tesla-t4`. string accelerator_type_uri = 1; // The number of the accelerator cards of this type exposed to this instance. @@ -837,6 +912,19 @@ message DiskConfig { // See [local SSD // performance](https://cloud.google.com/compute/docs/disks/local-ssd#performance). string local_ssd_interface = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Indicates how many IOPS to provision for the disk. This sets the + // number of I/O operations per second that the disk can handle. Note: This + // field is only supported if boot_disk_type is hyperdisk-balanced. + optional int64 boot_disk_provisioned_iops = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Indicates how much throughput to provision for the disk. This + // sets the number of throughput mb per second that the disk can handle. + // Values must be greater than or equal to 1. Note: This field is only + // supported if boot_disk_type is hyperdisk-balanced. + optional int64 boot_disk_provisioned_throughput = 6 + [(google.api.field_behavior) = OPTIONAL]; } // Node group identification and configuration information. @@ -1011,7 +1099,7 @@ message KerberosConfig { string root_principal_password_uri = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The uri of the KMS key used to encrypt various sensitive + // Optional. The URI of the KMS key used to encrypt sensitive // files. string kms_key_uri = 3 [(google.api.field_behavior) = OPTIONAL]; @@ -1085,7 +1173,7 @@ message IdentityConfig { message SoftwareConfig { // Optional. The version of software inside the cluster. It must be one of the // supported [Dataproc - // Versions](https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#supported_dataproc_versions), + // Versions](https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#supported-dataproc-image-versions), // such as "1.2" (including a subminor version, such as "1.2.29"), or the // ["preview" // version](https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#other_versions). @@ -1211,6 +1299,9 @@ message DataprocMetricConfig { // hivemetastore metric source HIVEMETASTORE = 7; + + // flink metric source + FLINK = 8; } // A Dataproc custom metric. @@ -1508,12 +1599,12 @@ message ListClustersRequest { // where **field** is one of `status.state`, `clusterName`, or `labels.[KEY]`, // and `[KEY]` is a label key. **value** can be `*` to match all values. // `status.state` can be one of the following: `ACTIVE`, `INACTIVE`, - // `CREATING`, `RUNNING`, `ERROR`, `DELETING`, or `UPDATING`. `ACTIVE` - // contains the `CREATING`, `UPDATING`, and `RUNNING` states. `INACTIVE` - // contains the `DELETING` and `ERROR` states. - // `clusterName` is the name of the cluster provided at creation time. - // Only the logical `AND` operator is supported; space-separated items are - // treated as having an implicit `AND` operator. + // `CREATING`, `RUNNING`, `ERROR`, `DELETING`, `UPDATING`, `STOPPING`, or + // `STOPPED`. `ACTIVE` contains the `CREATING`, `UPDATING`, and `RUNNING` + // states. `INACTIVE` contains the `DELETING`, `ERROR`, `STOPPING`, and + // `STOPPED` states. `clusterName` is the name of the cluster provided at + // creation time. Only the logical `AND` operator is supported; + // space-separated items are treated as having an implicit `AND` operator. // // Example filter: // @@ -1541,6 +1632,20 @@ message ListClustersResponse { // A request to collect cluster diagnostic information. message DiagnoseClusterRequest { + // Defines who has access to the diagnostic tarball + enum TarballAccess { + // Tarball Access unspecified. Falls back to default access of the bucket + TARBALL_ACCESS_UNSPECIFIED = 0; + + // Google Cloud Support group has read access to the + // diagnostic tarball + GOOGLE_CLOUD_SUPPORT = 1; + + // Google Cloud Dataproc Diagnose service account has read access to the + // diagnostic tarball + GOOGLE_DATAPROC_DIAGNOSE = 2; + } + // Required. The ID of the Google Cloud Platform project that the cluster // belongs to. string project_id = 1 [(google.api.field_behavior) = REQUIRED]; @@ -1551,11 +1656,15 @@ message DiagnoseClusterRequest { // Required. The cluster name. string cluster_name = 2 [(google.api.field_behavior) = REQUIRED]; - // Optional. The output Cloud Storage directory for the diagnostic + // Optional. (Optional) The output Cloud Storage directory for the diagnostic // tarball. If not specified, a task-specific directory in the cluster's // staging bucket will be used. string tarball_gcs_dir = 4 [(google.api.field_behavior) = OPTIONAL]; + // Optional. (Optional) The access type to the diagnostic tarball. If not + // specified, falls back to default access of the bucket + TarballAccess tarball_access = 5 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Time interval in which diagnosis should be carried out on the // cluster. google.type.Interval diagnosis_interval = 6 diff --git a/google/cloud/dataproc/v1/jobs.proto b/google/cloud/dataproc/v1/jobs.proto index 656a42787..6b5b6dcc4 100644 --- a/google/cloud/dataproc/v1/jobs.proto +++ b/google/cloud/dataproc/v1/jobs.proto @@ -140,7 +140,7 @@ message LoggingConfig { OFF = 8; } - // The per-package log levels for the driver. This may include + // The per-package log levels for the driver. This can include // "root" package name to configure rootLogger. // Examples: // - 'com.google = FATAL' @@ -174,7 +174,7 @@ message HadoopJob { // Optional. The arguments to pass to the driver. Do not // include arguments, such as `-libjars` or `-Dfoo=bar`, that can be set as - // job properties, since a collision may occur that causes an incorrect job + // job properties, since a collision might occur that causes an incorrect job // submission. repeated string args = 3 [(google.api.field_behavior) = OPTIONAL]; @@ -193,7 +193,7 @@ message HadoopJob { repeated string archive_uris = 6 [(google.api.field_behavior) = OPTIONAL]; // Optional. A mapping of property names to values, used to configure Hadoop. - // Properties that conflict with values set by the Dataproc API may be + // Properties that conflict with values set by the Dataproc API might be // overwritten. Can include properties set in `/etc/hadoop/conf/*-site` and // classes in user code. map<string, string> properties = 7 [(google.api.field_behavior) = OPTIONAL]; @@ -208,14 +208,16 @@ message SparkJob { // Required. The specification of the main method to call to drive the job. // Specify either the jar file that contains the main class or the main class // name. To pass both a main jar and a main class in that jar, add the jar to - // `CommonJob.jar_file_uris`, and then specify the main class name in - // `main_class`. + // [jarFileUris][google.cloud.dataproc.v1.SparkJob.jar_file_uris], and then + // specify the main class name in + // [mainClass][google.cloud.dataproc.v1.SparkJob.main_class]. oneof driver { // The HCFS URI of the jar file that contains the main class. string main_jar_file_uri = 1; // The name of the driver's main class. The jar file that contains the class - // must be in the default CLASSPATH or specified in `jar_file_uris`. + // must be in the default CLASSPATH or specified in + // SparkJob.jar_file_uris. string main_class = 2; } @@ -238,7 +240,7 @@ message SparkJob { repeated string archive_uris = 6 [(google.api.field_behavior) = OPTIONAL]; // Optional. A mapping of property names to values, used to configure Spark. - // Properties that conflict with values set by the Dataproc API may be + // Properties that conflict with values set by the Dataproc API might be // overwritten. Can include properties set in // /etc/spark/conf/spark-defaults.conf and classes in user code. map<string, string> properties = 7 [(google.api.field_behavior) = OPTIONAL]; @@ -279,7 +281,7 @@ message PySparkJob { repeated string archive_uris = 6 [(google.api.field_behavior) = OPTIONAL]; // Optional. A mapping of property names to values, used to configure PySpark. - // Properties that conflict with values set by the Dataproc API may be + // Properties that conflict with values set by the Dataproc API might be // overwritten. Can include properties set in // /etc/spark/conf/spark-defaults.conf and classes in user code. map<string, string> properties = 7 [(google.api.field_behavior) = OPTIONAL]; @@ -331,7 +333,7 @@ message HiveJob { [(google.api.field_behavior) = OPTIONAL]; // Optional. A mapping of property names and values, used to configure Hive. - // Properties that conflict with values set by the Dataproc API may be + // Properties that conflict with values set by the Dataproc API might be // overwritten. Can include properties set in `/etc/hadoop/conf/*-site.xml`, // /etc/hive/conf/hive-site.xml, and classes in user code. map<string, string> properties = 5 [(google.api.field_behavior) = OPTIONAL]; @@ -362,7 +364,7 @@ message SparkSqlJob { // Optional. A mapping of property names to values, used to configure // Spark SQL's SparkConf. Properties that conflict with values set by the - // Dataproc API may be overwritten. + // Dataproc API might be overwritten. map<string, string> properties = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH. @@ -396,7 +398,7 @@ message PigJob { [(google.api.field_behavior) = OPTIONAL]; // Optional. A mapping of property names to values, used to configure Pig. - // Properties that conflict with values set by the Dataproc API may be + // Properties that conflict with values set by the Dataproc API might be // overwritten. Can include properties set in `/etc/hadoop/conf/*-site.xml`, // /etc/pig/conf/pig.properties, and classes in user code. map<string, string> properties = 5 [(google.api.field_behavior) = OPTIONAL]; @@ -432,7 +434,7 @@ message SparkRJob { repeated string archive_uris = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. A mapping of property names to values, used to configure SparkR. - // Properties that conflict with values set by the Dataproc API may be + // Properties that conflict with values set by the Dataproc API might be // overwritten. Can include properties set in // /etc/spark/conf/spark-defaults.conf and classes in user code. map<string, string> properties = 5 [(google.api.field_behavior) = OPTIONAL]; @@ -515,6 +517,47 @@ message TrinoJob { LoggingConfig logging_config = 7 [(google.api.field_behavior) = OPTIONAL]; } +// A Dataproc job for running Apache Flink applications on YARN. +message FlinkJob { + // Required. The specification of the main method to call to drive the job. + // Specify either the jar file that contains the main class or the main class + // name. To pass both a main jar and a main class in the jar, add the jar to + // [jarFileUris][google.cloud.dataproc.v1.FlinkJob.jar_file_uris], and then + // specify the main class name in + // [mainClass][google.cloud.dataproc.v1.FlinkJob.main_class]. + oneof driver { + // The HCFS URI of the jar file that contains the main class. + string main_jar_file_uri = 1; + + // The name of the driver's main class. The jar file that contains the class + // must be in the default CLASSPATH or specified in + // [jarFileUris][google.cloud.dataproc.v1.FlinkJob.jar_file_uris]. + string main_class = 2; + } + + // Optional. The arguments to pass to the driver. Do not include arguments, + // such as `--conf`, that can be set as job properties, since a collision + // might occur that causes an incorrect job submission. + repeated string args = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. HCFS URIs of jar files to add to the CLASSPATHs of the + // Flink driver and tasks. + repeated string jar_file_uris = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. HCFS URI of the savepoint, which contains the last saved progress + // for starting the current job. + string savepoint_uri = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A mapping of property names to values, used to configure Flink. + // Properties that conflict with values set by the Dataproc API might be + // overwritten. Can include properties set in + // `/etc/flink/conf/flink-defaults.conf` and classes in user code. + map<string, string> properties = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The runtime log config for job execution. + LoggingConfig logging_config = 8 [(google.api.field_behavior) = OPTIONAL]; +} + // Dataproc job config. message JobPlacement { // Required. The name of the cluster where the job will be submitted. @@ -580,14 +623,14 @@ message JobStatus { // Applies to RUNNING state. SUBMITTED = 1; - // The Job has been received and is awaiting execution (it may be waiting + // The Job has been received and is awaiting execution (it might be waiting // for a condition to be met). See the "details" field for the reason for // the delay. // // Applies to RUNNING state. QUEUED = 2; - // The agent-reported status is out of date, which may be caused by a + // The agent-reported status is out of date, which can be caused by a // loss of communication between the agent and Dataproc. If the // agent does not send a timely update, the job will fail. // @@ -599,7 +642,7 @@ message JobStatus { State state = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Optional. Output only. Job state details, such as an error - // description if the state is <code>ERROR</code>. + // description if the state is `ERROR`. string details = 2 [ (google.api.field_behavior) = OUTPUT_ONLY, (google.api.field_behavior) = OPTIONAL @@ -722,10 +765,13 @@ message Job { // Optional. Job is a Trino job. TrinoJob trino_job = 28 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Job is a Flink job. + FlinkJob flink_job = 29 [(google.api.field_behavior) = OPTIONAL]; } // Output only. The job status. Additional application-specific - // status information may be contained in the <code>type_job</code> + // status information might be contained in the <code>type_job</code> // and <code>yarn_applications</code> fields. JobStatus status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -736,7 +782,7 @@ message Job { // Output only. The collection of YARN applications spun up by this job. // // **Beta** Feature: This report is available for testing purposes only. It - // may be changed before final release. + // might be changed before final release. repeated YarnApplication yarn_applications = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -746,15 +792,15 @@ message Job { [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. If present, the location of miscellaneous control files - // which may be used as part of job setup and handling. If not present, - // control files may be placed in the same location as `driver_output_uri`. + // which can be used as part of job setup and handling. If not present, + // control files might be placed in the same location as `driver_output_uri`. string driver_control_files_uri = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; // Optional. The labels to associate with this job. // Label **keys** must contain 1 to 63 characters, and must conform to // [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). - // Label **values** may be empty, but, if present, must contain 1 to 63 + // Label **values** can be empty, but, if present, must contain 1 to 63 // characters, and must conform to [RFC // 1035](https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be // associated with a job. @@ -765,7 +811,7 @@ message Job { // Output only. A UUID that uniquely identifies a job within the project // over time. This is in contrast to a user-settable reference.job_id that - // may be reused over time. + // might be reused over time. string job_uuid = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Indicates whether the job is completed. If the value is @@ -790,12 +836,12 @@ message DriverSchedulingConfig { // Job scheduling options. message JobScheduling { - // Optional. Maximum number of times per hour a driver may be restarted as + // Optional. Maximum number of times per hour a driver can be restarted as // a result of driver exiting with non-zero code before job is // reported failed. // - // A job may be reported as thrashing if the driver exits with a non-zero code - // four times within a 10-minute window. + // A job might be reported as thrashing if the driver exits with a non-zero + // code four times within a 10-minute window. // // Maximum value is 10. // @@ -804,7 +850,7 @@ message JobScheduling { // (https://cloud.google.com/dataproc/docs/concepts/workflows/using-workflows#adding_jobs_to_a_template). int32 max_failures_per_hour = 1 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Maximum total number of times a driver may be restarted as a + // Optional. Maximum total number of times a driver can be restarted as a // result of the driver exiting with a non-zero code. After the maximum number // is reached, the job will be reported as failed. // @@ -964,6 +1010,12 @@ message ListJobsResponse { // to fetch. To fetch additional results, provide this value as the // `page_token` in a subsequent <code>ListJobsRequest</code>. string next_page_token = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. List of jobs with + // [kms_key][google.cloud.dataproc.v1.EncryptionConfig.kms_key]-encrypted + // parameters that could not be decrypted. A response to a `jobs.get` request + // may indicate the reason for the decryption failure for a specific job. + repeated string unreachable = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } // A request to cancel a job. diff --git a/google/cloud/dataproc/v1/session_templates.proto b/google/cloud/dataproc/v1/session_templates.proto index 2e0181354..9b5c1090a 100644 --- a/google/cloud/dataproc/v1/session_templates.proto +++ b/google/cloud/dataproc/v1/session_templates.proto @@ -182,6 +182,10 @@ message SessionTemplate { oneof session_config { // Optional. Jupyter session config. JupyterConfig jupyter_session = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Spark Connect session config. + SparkConnectConfig spark_connect_session = 11 + [(google.api.field_behavior) = OPTIONAL]; } // Output only. The email address of the user who created the template. diff --git a/google/cloud/dataproc/v1/sessions.proto b/google/cloud/dataproc/v1/sessions.proto index 59f9c4306..8e836d79e 100644 --- a/google/cloud/dataproc/v1/sessions.proto +++ b/google/cloud/dataproc/v1/sessions.proto @@ -163,12 +163,13 @@ message ListSessionsRequest { // A filter is a logical expression constraining the values of various fields // in each session resource. Filters are case sensitive, and may contain // multiple clauses combined with logical operators (AND, OR). - // Supported fields are `session_id`, `session_uuid`, `state`, and - // `create_time`. + // Supported fields are `session_id`, `session_uuid`, `state`, `create_time`, + // and `labels`. // // Example: `state = ACTIVE and create_time < "2023-01-01T00:00:00Z"` // is a filter for sessions in an ACTIVE state that were created before - // 2023-01-01. + // 2023-01-01. `state = ACTIVE and labels.environment=production` is a filter + // for sessions in an ACTIVE state that have a production environment label. // // See https://google.aip.dev/assets/misc/ebnf-filtering.txt for a detailed // description of the filter syntax and a list of supported comparators. @@ -289,6 +290,10 @@ message Session { oneof session_config { // Optional. Jupyter session config. JupyterConfig jupyter_session = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Spark Connect session config. + SparkConnectConfig spark_connect_session = 17 + [(google.api.field_behavior) = OPTIONAL]; } // Output only. Runtime information about session execution. @@ -369,3 +374,6 @@ message JupyterConfig { // Optional. Display name, shown in the Jupyter kernelspec card. string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; } + +// Spark Connect configuration for an interactive session. +message SparkConnectConfig {} diff --git a/google/cloud/dataproc/v1/shared.proto b/google/cloud/dataproc/v1/shared.proto index 01b9d6482..8f81e9deb 100644 --- a/google/cloud/dataproc/v1/shared.proto +++ b/google/cloud/dataproc/v1/shared.proto @@ -33,6 +33,10 @@ option (google.api.resource_definition) = { type: "metastore.googleapis.com/Service" pattern: "projects/{project}/locations/{location}/services/{service}" }; +option (google.api.resource_definition) = { + type: "cloudkms.googleapis.com/CryptoKey" + pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}" +}; // Runtime configuration for a workload. message RuntimeConfig { @@ -512,10 +516,11 @@ enum Component { // Unspecified component. Specifying this will cause Cluster creation to fail. COMPONENT_UNSPECIFIED = 0; - // The Anaconda python distribution. The Anaconda component is not supported - // in the Dataproc [2.0 image] - // (/https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-release-2.0). - // The 2.0 image is pre-installed with Miniconda. + // The Anaconda component is no longer supported or applicable to + // [supported Dataproc on Compute Engine image versions] + // (https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-version-clusters#supported-dataproc-image-versions). + // It cannot be activated on clusters created with supported Dataproc on + // Compute Engine image versions. ANACONDA = 5; // Docker diff --git a/google/cloud/dataproc/v1/workflow_templates.proto b/google/cloud/dataproc/v1/workflow_templates.proto index 8a3a15a0d..480360a02 100644 --- a/google/cloud/dataproc/v1/workflow_templates.proto +++ b/google/cloud/dataproc/v1/workflow_templates.proto @@ -198,6 +198,44 @@ message WorkflowTemplate { history: ORIGINALLY_SINGLE_PATTERN }; + // Encryption settings for encrypting workflow template job arguments. + message EncryptionConfig { + // Optional. The Cloud KMS key name to use for encrypting + // workflow template job arguments. + // + // When this this key is provided, the following workflow template + // [job arguments] + // (https://cloud.google.com/dataproc/docs/concepts/workflows/use-workflows#adding_jobs_to_a_template), + // if present, are + // [CMEK + // encrypted](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/customer-managed-encryption#use_cmek_with_workflow_template_data): + // + // * [FlinkJob + // args](https://cloud.google.com/dataproc/docs/reference/rest/v1/FlinkJob) + // * [HadoopJob + // args](https://cloud.google.com/dataproc/docs/reference/rest/v1/HadoopJob) + // * [SparkJob + // args](https://cloud.google.com/dataproc/docs/reference/rest/v1/SparkJob) + // * [SparkRJob + // args](https://cloud.google.com/dataproc/docs/reference/rest/v1/SparkRJob) + // * [PySparkJob + // args](https://cloud.google.com/dataproc/docs/reference/rest/v1/PySparkJob) + // * [SparkSqlJob](https://cloud.google.com/dataproc/docs/reference/rest/v1/SparkSqlJob) + // scriptVariables and queryList.queries + // * [HiveJob](https://cloud.google.com/dataproc/docs/reference/rest/v1/HiveJob) + // scriptVariables and queryList.queries + // * [PigJob](https://cloud.google.com/dataproc/docs/reference/rest/v1/PigJob) + // scriptVariables and queryList.queries + // * [PrestoJob](https://cloud.google.com/dataproc/docs/reference/rest/v1/PrestoJob) + // scriptVariables and queryList.queries + string kms_key = 1 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKey" + } + ]; + } + string id = 2 [(google.api.field_behavior) = REQUIRED]; // Output only. The resource name of the workflow template, as described @@ -270,6 +308,11 @@ message WorkflowTemplate { // the cluster is deleted. google.protobuf.Duration dag_timeout = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Encryption settings for encrypting workflow template job + // arguments. + EncryptionConfig encryption_config = 11 + [(google.api.field_behavior) = OPTIONAL]; } // Specifies workflow execution target. @@ -371,6 +414,12 @@ message OrderedJob { // Optional. Job is a Presto job. PrestoJob presto_job = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Job is a Trino job. + TrinoJob trino_job = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Job is a Flink job. + FlinkJob flink_job = 14 [(google.api.field_behavior) = OPTIONAL]; } // Optional. The labels to associate with this job. @@ -806,6 +855,11 @@ message ListWorkflowTemplatesResponse { // results to fetch. To fetch additional results, provide this value as the // page_token in a subsequent <code>ListWorkflowTemplatesRequest</code>. string next_page_token = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. List of workflow templates that could not be included in the + // response. Attempting to get one of these resources may indicate why it was + // not included in the list response. + repeated string unreachable = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } // A request to delete a workflow template. diff --git a/google/cloud/datastream/v1/BUILD.bazel b/google/cloud/datastream/v1/BUILD.bazel index f10de6047..730cf1aaf 100644 --- a/google/cloud/datastream/v1/BUILD.bazel +++ b/google/cloud/datastream/v1/BUILD.bazel @@ -226,7 +226,7 @@ php_gapic_library( name = "datastream_php_gapic", srcs = [":datastream_proto_with_info"], grpc_service_config = "datastream_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "datastream_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/deploy/v1/BUILD.bazel b/google/cloud/deploy/v1/BUILD.bazel index c762f0de8..1f4701500 100644 --- a/google/cloud/deploy/v1/BUILD.bazel +++ b/google/cloud/deploy/v1/BUILD.bazel @@ -27,7 +27,10 @@ proto_library( "automation_payload.proto", "automationrun_payload.proto", "cloud_deploy.proto", + "customtargettype_notification_payload.proto", "deliverypipeline_notification_payload.proto", + "deploypolicy_evaluation_payload.proto", + "deploypolicy_notification_payload.proto", "jobrun_notification_payload.proto", "log_enums.proto", "release_notification_payload.proto", @@ -43,6 +46,8 @@ proto_library( "//google/api:resource_proto", "//google/longrunning:operations_proto", "//google/type:date_proto", + "//google/type:dayofweek_proto", + "//google/type:timeofday_proto", "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", @@ -147,6 +152,8 @@ go_proto_library( "//google/api:annotations_go_proto", "//google/longrunning:longrunning_go_proto", "//google/type:date_go_proto", + "//google/type:dayofweek_go_proto", + "//google/type:timeofday_go_proto", ], ) @@ -362,6 +369,7 @@ load( csharp_proto_library( name = "deploy_csharp_proto", + extra_opts = [], deps = [":deploy_proto"], ) diff --git a/google/cloud/deploy/v1/cloud_deploy.proto b/google/cloud/deploy/v1/cloud_deploy.proto index d19f036cc..4ca425d7c 100644 --- a/google/cloud/deploy/v1/cloud_deploy.proto +++ b/google/cloud/deploy/v1/cloud_deploy.proto @@ -26,6 +26,8 @@ import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; import "google/type/date.proto"; +import "google/type/dayofweek.proto"; +import "google/type/timeofday.proto"; option go_package = "cloud.google.com/go/deploy/apiv1/deploypb;deploypb"; option java_multiple_files = true; @@ -293,6 +295,65 @@ service CloudDeploy { option (google.api.method_signature) = "name"; } + // Creates a new DeployPolicy in a given project and location. + rpc CreateDeployPolicy(CreateDeployPolicyRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/deployPolicies" + body: "deploy_policy" + }; + option (google.api.method_signature) = + "parent,deploy_policy,deploy_policy_id"; + option (google.longrunning.operation_info) = { + response_type: "DeployPolicy" + metadata_type: "OperationMetadata" + }; + } + + // Updates the parameters of a single DeployPolicy. + rpc UpdateDeployPolicy(UpdateDeployPolicyRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{deploy_policy.name=projects/*/locations/*/deployPolicies/*}" + body: "deploy_policy" + }; + option (google.api.method_signature) = "deploy_policy,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "DeployPolicy" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a single DeployPolicy. + rpc DeleteDeployPolicy(DeleteDeployPolicyRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/deployPolicies/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists DeployPolicies in a given project and location. + rpc ListDeployPolicies(ListDeployPoliciesRequest) + returns (ListDeployPoliciesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/deployPolicies" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single DeployPolicy. + rpc GetDeployPolicy(GetDeployPolicyRequest) returns (DeployPolicy) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/deployPolicies/*}" + }; + option (google.api.method_signature) = "name"; + } + // Approves a Rollout. rpc ApproveRollout(ApproveRolloutRequest) returns (ApproveRolloutResponse) { option (google.api.http) = { @@ -665,6 +726,8 @@ message CanaryDeployment { // Required. The percentage based deployments that will occur as a part of a // `Rollout`. List is expected in ascending order and each integer n is // 0 <= n < 100. + // If the GatewayServiceMesh is configured for Kubernetes, then the range for + // n is 0 <= n <= 100. repeated int32 percentages = 1 [(google.api.field_behavior) = REQUIRED]; // Whether to run verify tests after each percentage deployment. @@ -744,6 +807,10 @@ message KubernetesConfig { // cutback time. google.protobuf.Duration stable_cutback_duration = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The label to use when selecting Pods for the Deployment and + // Service resources. This label must already be present in both resources. + string pod_selector_label = 6 [(google.api.field_behavior) = OPTIONAL]; } // Information about the Kubernetes Service networking configuration. @@ -761,6 +828,10 @@ message KubernetesConfig { // Deployment has on the cluster. bool disable_pod_overprovisioning = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The label to use when selecting Pods for the Deployment + // resource. This label must already be present in the Deployment. + string pod_selector_label = 4 [(google.api.field_behavior) = OPTIONAL]; } // The service definition configuration. @@ -923,9 +994,8 @@ message GetDeliveryPipelineRequest { // The request object for `CreateDeliveryPipeline`. message CreateDeliveryPipelineRequest { - // Required. The parent collection in which the `DeliveryPipeline` should be - // created. Format should be - // `projects/{project_id}/locations/{location_name}`. + // Required. The parent collection in which the `DeliveryPipeline` must be + // created. The format is `projects/{project_id}/locations/{location_name}`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -962,11 +1032,11 @@ message CreateDeliveryPipelineRequest { // The request object for `UpdateDeliveryPipeline`. message UpdateDeliveryPipelineRequest { - // Required. Field mask is used to specify the fields to be overwritten in the - // `DeliveryPipeline` 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's in the mask. If the - // user doesn't provide a mask then all fields are overwritten. + // Required. Field mask is used to specify the fields to be overwritten by the + // update in the `DeliveryPipeline` resource. The fields specified in the + // update_mask are relative to the resource, not the full request. A field + // will be overwritten if it's in the mask. If the user doesn't provide a mask + // then all fields are overwritten. google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED]; @@ -1000,7 +1070,7 @@ message UpdateDeliveryPipelineRequest { // The request object for `DeleteDeliveryPipeline`. message DeleteDeliveryPipelineRequest { - // Required. The name of the `DeliveryPipeline` to delete. Format should be + // Required. The name of the `DeliveryPipeline` to delete. The format is // `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}`. string name = 1 [ (google.api.field_behavior) = REQUIRED, @@ -1055,8 +1125,8 @@ message RollbackTargetConfig { // The request object for `RollbackTarget`. message RollbackTargetRequest { - // Required. The `DeliveryPipeline` for which the rollback `Rollout` should be - // created. Format should be + // Required. The `DeliveryPipeline` for which the rollback `Rollout` must be + // created. The format is // `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}`. string name = 1 [ (google.api.field_behavior) = REQUIRED, @@ -1087,6 +1157,15 @@ message RollbackTargetRequest { // Optional. If set to true, the request is validated and the user is provided // with a `RollbackTargetResponse`. bool validate_only = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Deploy policies to override. Format is + // `projects/{project}/locations/{location}/deployPolicies/{deploy_policy}`. + repeated string override_deploy_policy = 9 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "clouddeploy.googleapis.com/DeployPolicy" + } + ]; } // The response object from `RollbackTarget`. @@ -1313,6 +1392,11 @@ message GkeCluster { // 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]; + + // Optional. If set, used to configure a + // [proxy](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#proxy) + // to the Kubernetes server. + string proxy_url = 3 [(google.api.field_behavior) = OPTIONAL]; } // Information specifying an Anthos Cluster. @@ -1418,8 +1502,8 @@ message GetTargetRequest { // The request object for `CreateTarget`. message CreateTargetRequest { - // Required. The parent collection in which the `Target` should be created. - // Format should be + // Required. The parent collection in which the `Target` must be created. + // The format is // `projects/{project_id}/locations/{location_name}`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, @@ -1456,11 +1540,11 @@ message CreateTargetRequest { // The request object for `UpdateTarget`. message UpdateTargetRequest { - // Required. Field mask is used to specify the fields to be overwritten in the - // Target 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's in the mask. If the - // user doesn't provide a mask then all fields are overwritten. + // Required. Field mask is used to specify the fields to be overwritten by the + // update in the `Target` resource. The fields specified in the update_mask + // are relative to the resource, not the full request. A field will be + // overwritten if it's in the mask. If the user doesn't provide a mask then + // all fields are overwritten. google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED]; @@ -1493,7 +1577,7 @@ message UpdateTargetRequest { // The request object for `DeleteTarget`. message DeleteTargetRequest { - // Required. The name of the `Target` to delete. Format should be + // Required. The name of the `Target` to delete. The format is // `projects/{project_id}/locations/{location_name}/targets/{target_name}`. string name = 1 [ (google.api.field_behavior) = REQUIRED, @@ -1736,9 +1820,8 @@ message GetCustomTargetTypeRequest { // The request object for `CreateCustomTargetType`. message CreateCustomTargetTypeRequest { - // Required. The parent collection in which the `CustomTargetType` should be - // created. Format should be - // `projects/{project_id}/locations/{location_name}`. + // Required. The parent collection in which the `CustomTargetType` must be + // created. The format is `projects/{project_id}/locations/{location_name}`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1775,11 +1858,11 @@ message CreateCustomTargetTypeRequest { // The request object for `UpdateCustomTargetType`. message UpdateCustomTargetTypeRequest { - // Required. Field mask is used to specify the fields to be overwritten in the - // `CustomTargetType` 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's in the mask. If the - // user doesn't provide a mask then all fields are overwritten. + // Required. Field mask is used to specify the fields to be overwritten by the + // update in the `CustomTargetType` resource. The fields specified in the + // update_mask are relative to the resource, not the full request. A field + // will be overwritten if it's in the mask. If the user doesn't provide a mask + // then all fields are overwritten. google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED]; @@ -1851,19 +1934,276 @@ message DeleteCustomTargetTypeRequest { string etag = 5 [(google.api.field_behavior) = OPTIONAL]; } -// Contains criteria for selecting Targets. +// A `DeployPolicy` resource in the Cloud Deploy API. +// +// A `DeployPolicy` inhibits manual or automation-driven actions within a +// Delivery Pipeline or Target. +message DeployPolicy { + option (google.api.resource) = { + type: "clouddeploy.googleapis.com/DeployPolicy" + pattern: "projects/{project}/locations/{location}/deployPolicies/{deploy_policy}" + style: DECLARATIVE_FRIENDLY + }; + + // What invoked the action. Filters enforcing the policy depending on what + // invoked the action. + enum Invoker { + // Unspecified. + INVOKER_UNSPECIFIED = 0; + + // The action is user-driven. For example, creating a rollout manually via a + // gcloud create command. + USER = 1; + + // Automated action by Cloud Deploy. + DEPLOY_AUTOMATION = 2; + } + + // Output only. Name of the `DeployPolicy`. Format is + // `projects/{project}/locations/{location}/deployPolicies/{deployPolicy}`. + // The `deployPolicy` component must match `[a-z]([a-z0-9-]{0,61}[a-z0-9])?` + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Unique identifier of the `DeployPolicy`. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Description of the `DeployPolicy`. Max length is 255 characters. + string description = 3; + + // User annotations. These attributes can only be set and used by the + // user, and not by Cloud Deploy. Annotations must meet the following + // constraints: + // + // * Annotations are key/value pairs. + // * Valid annotation keys have two segments: an optional prefix and name, + // separated by a slash (`/`). + // * The name segment is required and must be 63 characters or less, + // beginning and ending with an alphanumeric character (`[a-z0-9A-Z]`) with + // dashes (`-`), underscores (`_`), dots (`.`), and alphanumerics between. + // * The prefix is optional. If specified, the prefix must be a DNS subdomain: + // a series of DNS labels separated by dots(`.`), not longer than 253 + // characters in total, followed by a slash (`/`). + // + // See + // https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set + // for more details. + map<string, string> annotations = 4; + + // Labels are attributes that can be set and used by both the + // user and by Cloud Deploy. Labels must meet the following constraints: + // + // * Keys and values can contain only lowercase letters, numeric characters, + // underscores, and dashes. + // * All characters must use UTF-8 encoding, and international characters are + // allowed. + // * Keys must start with a lowercase letter or international character. + // * Each resource is limited to a maximum of 64 labels. + // + // Both keys and values are additionally constrained to be <= 128 bytes. + map<string, string> labels = 5; + + // Output only. Time at which the deploy policy was created. + google.protobuf.Timestamp create_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Most recent time at which the deploy policy was updated. + google.protobuf.Timestamp update_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // When suspended, the policy will not prevent actions from occurring, even + // if the action violates the policy. + bool suspended = 8; + + // Required. Selected resources to which the policy will be applied. At least + // one selector is required. If one selector matches the resource the policy + // applies. For example, if there are two selectors and the action being + // attempted matches one of them, the policy will apply to that action. + repeated DeployPolicyResourceSelector selectors = 12 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Rules to apply. At least one rule must be present. + repeated PolicyRule rules = 10 [(google.api.field_behavior) = REQUIRED]; + + // The weak etag of the `Automation` resource. + // 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; +} + +// Contains information on the resources to select for a deploy policy. +// Attributes provided must all match the resource in order for policy +// restrictions to apply. For example, if delivery pipelines attributes given +// are an id "prod" and labels "foo: bar", a delivery pipeline resource must +// match both that id and have that label in order to be subject to the policy. +message DeployPolicyResourceSelector { + // Optional. Contains attributes about a delivery pipeline. + DeliveryPipelineAttribute delivery_pipeline = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Contains attributes about a target. + TargetAttribute target = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Contains criteria for selecting DeliveryPipelines. +message DeliveryPipelineAttribute { + // ID of the `DeliveryPipeline`. The value of this field could be one of the + // following: + // + // * The last segment of a pipeline name + // * "*", all delivery pipelines in a location + string id = 1; + + // DeliveryPipeline labels. + map<string, string> labels = 2; +} + +// Contains criteria for selecting Targets. This could be used to select targets +// for a Deploy Policy or for an Automation. message TargetAttribute { // ID of the `Target`. The value of this field could be one of the // following: - // * The last segment of a target name. It only needs the ID to determine - // which target is being referred to - // * "*", all targets in a location. + // + // * The last segment of a target name + // * "*", all targets in a location string id = 1; // Target labels. map<string, string> labels = 2; } +// Deploy Policy rule. +message PolicyRule { + oneof rule { + // Rollout restrictions. + RolloutRestriction rollout_restriction = 2; + } +} + +// Rollout restrictions. +message RolloutRestriction { + // Rollout actions to be restricted as part of the policy. + enum RolloutActions { + // Unspecified. + ROLLOUT_ACTIONS_UNSPECIFIED = 0; + + // Advance the rollout to the next phase. + ADVANCE = 1; + + // Approve the rollout. + APPROVE = 2; + + // Cancel the rollout. + CANCEL = 3; + + // Create a rollout. + CREATE = 4; + + // Ignore a job result on the rollout. + IGNORE_JOB = 5; + + // Retry a job for a rollout. + RETRY_JOB = 6; + + // Rollback a rollout. + ROLLBACK = 7; + + // Terminate a jobrun. + TERMINATE_JOBRUN = 8; + } + + // Required. Restriction rule ID. Required and must be unique within a + // DeployPolicy. The format is `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`. + string id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. What invoked the action. If left empty, all invoker types will be + // restricted. + repeated DeployPolicy.Invoker invokers = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Rollout actions to be restricted as part of the policy. If left + // empty, all actions will be restricted. + repeated RolloutActions actions = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Time window within which actions are restricted. + TimeWindows time_windows = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Time windows within which actions are restricted. See the +// [documentation](https://cloud.google.com/deploy/docs/deploy-policy#dates_times) +// for more information on how to configure dates/times. +message TimeWindows { + // Required. The time zone in IANA format [IANA Time Zone + // Database](https://www.iana.org/time-zones) (e.g. America/New_York). + string time_zone = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. One-time windows within which actions are restricted. + repeated OneTimeWindow one_time_windows = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Recurring weekly windows within which actions are restricted. + repeated WeeklyWindow weekly_windows = 3 + [(google.api.field_behavior) = OPTIONAL]; +} + +// One-time window within which actions are restricted. For example, blocking +// actions over New Year's Eve from December 31st at 5pm to January 1st at 9am. +message OneTimeWindow { + // Required. Start date. + google.type.Date start_date = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Start time (inclusive). Use 00:00 for the beginning of the day. + google.type.TimeOfDay start_time = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. End date. + google.type.Date end_date = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. End time (exclusive). You may use 24:00 for the end of the day. + google.type.TimeOfDay end_time = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Weekly windows. For example, blocking actions every Saturday and Sunday. +// Another example would be blocking actions every weekday from 5pm to midnight. +message WeeklyWindow { + // Optional. Days of week. If left empty, all days of the week will be + // included. + repeated google.type.DayOfWeek days_of_week = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Start time (inclusive). Use 00:00 for the beginning of the day. + // If you specify start_time you must also specify end_time. If left empty, + // this will block for the entire day for the days specified in days_of_week. + google.type.TimeOfDay start_time = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. End time (exclusive). Use 24:00 to indicate midnight. If you + // specify end_time you must also specify start_time. If left empty, this will + // block for the entire day for the days specified in days_of_week. + google.type.TimeOfDay end_time = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Returned from an action if one or more policies were +// violated, and therefore the action was prevented. Contains information about +// what policies were violated and why. +message PolicyViolation { + // Policy violation details. + repeated PolicyViolationDetails policy_violation_details = 1; +} + +// Policy violation details. +message PolicyViolationDetails { + // Name of the policy that was violated. + // Policy resource will be in the format of + // `projects/{project}/locations/{location}/policies/{policy}`. + string policy = 1; + + // Id of the rule that triggered the policy violation. + string rule_id = 2; + + // User readable message about why the request violated a policy. This is not + // intended for machine parsing. + string failure_message = 3; +} + // A `Release` resource in the Cloud Deploy API. // // A `Release` defines a specific Skaffold configuration instance @@ -2107,6 +2447,177 @@ message Release { [(google.api.field_behavior) = OPTIONAL]; } +// The request object for `CreateDeployPolicy`. +message CreateDeployPolicyRequest { + // Required. The parent collection in which the `DeployPolicy` must be + // created. The format is `projects/{project_id}/locations/{location_name}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "clouddeploy.googleapis.com/DeployPolicy" + } + ]; + + // Required. ID of the `DeployPolicy`. + string deploy_policy_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The `DeployPolicy` to create. + DeployPolicy deploy_policy = 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 knows to ignore the + // request if it has already been completed. The server guarantees that for + // at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating 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 to true, the request is validated and the user is provided + // with an expected result, but no actual change is made. + bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// The request object for `UpdateDeployPolicy`. +message UpdateDeployPolicyRequest { + // Required. Field mask is used to specify the fields to be overwritten by the + // update in the `DeployPolicy` resource. The fields specified in the + // update_mask are relative to the resource, not the full request. A field + // will be overwritten if it's in the mask. If the user doesn't provide a mask + // then all fields are overwritten. + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The `DeployPolicy` to update. + DeployPolicy deploy_policy = 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 knows to ignore the + // request if it has already been completed. The server guarantees that for + // at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating 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 to true, updating a `DeployPolicy` that does not exist + // will result in the creation of a new `DeployPolicy`. + bool allow_missing = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set to true, the request is validated and the user is provided + // with an expected result, but no actual change is made. + bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// The request object for `DeleteDeployPolicy`. +message DeleteDeployPolicyRequest { + // Required. The name of the `DeployPolicy` to delete. The format is + // `projects/{project_id}/locations/{location_name}/deployPolicies/{deploy_policy_name}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "clouddeploy.googleapis.com/DeployPolicy" + } + ]; + + // Optional. A request ID to identify requests. Specify a unique request ID + // so that if you must retry your request, the server knows to ignore the + // request if it has already been completed. The server guarantees that 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, then deleting an already deleted or non-existing + // `DeployPolicy` will succeed. + bool allow_missing = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set, validate the request and preview the review, but do not + // actually post it. + bool validate_only = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This checksum is computed by the server based on the value of + // other fields, and may be sent on update and delete requests to ensure the + // client has an up-to-date value before proceeding. + string etag = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// The request object for `ListDeployPolicies`. +message ListDeployPoliciesRequest { + // Required. The parent, which owns this collection of deploy policies. Format + // must be `projects/{project_id}/locations/{location_name}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "clouddeploy.googleapis.com/DeployPolicy" + } + ]; + + // The maximum number of deploy policies to return. The service may return + // fewer than this value. If unspecified, at most 50 deploy policies will + // be returned. The maximum value is 1000; values above 1000 will be set + // to 1000. + int32 page_size = 2; + + // A page token, received from a previous `ListDeployPolicies` 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; + + // Filter deploy policies to be returned. See https://google.aip.dev/160 for + // more details. All fields can be used in the filter. + string filter = 4; + + // Field to sort by. See https://google.aip.dev/132#ordering for more details. + string order_by = 5; +} + +// The response object from `ListDeployPolicies`. +message ListDeployPoliciesResponse { + // The `DeployPolicy` objects. + repeated DeployPolicy deploy_policies = 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; +} + +// The request object for `GetDeployPolicy` +message GetDeployPolicyRequest { + // Required. Name of the `DeployPolicy`. Format must be + // `projects/{project_id}/locations/{location_name}/deployPolicies/{deploy_policy_name}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "clouddeploy.googleapis.com/DeployPolicy" + } + ]; +} + // Description of an a image to use during Skaffold rendering. message BuildArtifact { // Image name in Skaffold configuration. @@ -2246,8 +2757,8 @@ message GetReleaseRequest { // The request object for `CreateRelease`, message CreateReleaseRequest { - // Required. The parent collection in which the `Release` should be created. - // Format should be + // Required. The parent collection in which the `Release` is created. + // The format is // `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, @@ -2280,6 +2791,15 @@ message CreateReleaseRequest { // Optional. If set to true, the request is validated and the user is provided // with an expected result, but no actual change is made. bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Deploy policies to override. Format is + // `projects/{project}/locations/{location}/deployPolicies/{deployPolicy}`. + repeated string override_deploy_policy = 6 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "clouddeploy.googleapis.com/DeployPolicy" + } + ]; } // A `Rollout` resource in the Cloud Deploy API. @@ -2549,16 +3069,16 @@ message CustomTargetDeployMetadata { // AutomationRolloutMetadata contains Automation-related actions that // were performed on a rollout. message AutomationRolloutMetadata { - // Output only. The ID of the AutomationRun initiated by a promote release + // Output only. The name of the AutomationRun initiated by a promote release // rule. string promote_automation_run = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The IDs of the AutomationRuns initiated by an advance rollout - // rule. + // Output only. The names of the AutomationRuns initiated by an advance + // rollout rule. repeated string advance_automation_runs = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The IDs of the AutomationRuns initiated by a repair rollout + // Output only. The names of the AutomationRuns initiated by a repair rollout // rule. repeated string repair_automation_runs = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -2804,8 +3324,8 @@ message GetRolloutRequest { // CreateRolloutRequest is the request object used by `CreateRollout`. message CreateRolloutRequest { - // Required. The parent collection in which the `Rollout` should be created. - // Format should be + // Required. The parent collection in which the `Rollout` must be created. + // The format is // `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, @@ -2839,6 +3359,15 @@ message CreateRolloutRequest { // with an expected result, but no actual change is made. bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Deploy policies to override. Format is + // `projects/{project}/locations/{location}/deployPolicies/{deployPolicy}`. + repeated string override_deploy_policy = 6 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "clouddeploy.googleapis.com/DeployPolicy" + } + ]; + // Optional. The starting phase ID for the `Rollout`. If empty the `Rollout` // will start at the first phase. string starting_phase_id = 7 [(google.api.field_behavior) = OPTIONAL]; @@ -2887,6 +3416,15 @@ message ApproveRolloutRequest { // Required. True = approve; false = reject bool approved = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Deploy policies to override. Format is + // `projects/{project}/locations/{location}/deployPolicies/{deployPolicy}`. + repeated string override_deploy_policy = 3 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "clouddeploy.googleapis.com/DeployPolicy" + } + ]; } // The response object from `ApproveRollout`. @@ -2905,6 +3443,15 @@ message AdvanceRolloutRequest { // Required. The phase ID to advance the `Rollout` to. string phase_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Deploy policies to override. Format is + // `projects/{project}/locations/{location}/deployPolicies/{deployPolicy}`. + repeated string override_deploy_policy = 3 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "clouddeploy.googleapis.com/DeployPolicy" + } + ]; } // The response object from `AdvanceRollout`. @@ -2920,6 +3467,15 @@ message CancelRolloutRequest { type: "clouddeploy.googleapis.com/Rollout" } ]; + + // Optional. Deploy policies to override. Format is + // `projects/{project}/locations/{location}/deployPolicies/{deployPolicy}`. + repeated string override_deploy_policy = 2 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "clouddeploy.googleapis.com/DeployPolicy" + } + ]; } // The response object from `CancelRollout`. @@ -2941,6 +3497,15 @@ message IgnoreJobRequest { // Required. The job ID for the Job to ignore. string job_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Deploy policies to override. Format is + // `projects/{project}/locations/{location}/deployPolicies/{deployPolicy}`. + repeated string override_deploy_policy = 4 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "clouddeploy.googleapis.com/DeployPolicy" + } + ]; } // The response object from `IgnoreJob`. @@ -2962,6 +3527,15 @@ message RetryJobRequest { // Required. The job ID for the Job to retry. string job_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Deploy policies to override. Format is + // `projects/{project}/locations/{location}/deployPolicies/{deployPolicy}`. + repeated string override_deploy_policy = 4 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "clouddeploy.googleapis.com/DeployPolicy" + } + ]; } // The response object from 'RetryJob'. @@ -3355,6 +3929,15 @@ message TerminateJobRunRequest { type: "clouddeploy.googleapis.com/JobRun" } ]; + + // Optional. Deploy policies to override. Format is + // `projects/{project}/locations/{location}/deployPolicies/{deployPolicy}`. + repeated string override_deploy_policy = 2 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "clouddeploy.googleapis.com/DeployPolicy" + } + ]; } // The response object from `TerminateJobRun`. @@ -3520,8 +4103,8 @@ message AutomationRule { } } -// `PromoteRelease` rule will automatically promote a release from the current -// target to a specified target. +// The `PromoteRelease` rule will automatically promote a release from the +// current target to a specified target. message PromoteReleaseRule { // Required. ID of the rule. This id must be unique in the `Automation` // resource to which this rule belongs. The format is @@ -3536,10 +4119,8 @@ message PromoteReleaseRule { // deploying. If unspecified, default it to the next stage in the promotion // flow. The value of this field could be one of the following: // - // * The last segment of a target name. It only needs the ID to determine - // if the target is one of the stages in the promotion sequence defined - // in the pipeline. - // * "@next", the next target in the promotion sequence. + // * The last segment of a target name + // * "@next", the next target in the promotion sequence string destination_target_id = 7 [(google.api.field_behavior) = OPTIONAL]; // Output only. Information around the state of the Automation rule. @@ -3582,14 +4163,6 @@ message RepairRolloutRule { // `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`. string id = 1 [(google.api.field_behavior) = REQUIRED]; - // Optional. Phases within which jobs are subject to automatic repair actions - // on failure. Proceeds only after phase name matched any one in the list, or - // for all phases if unspecified. This value must consist of lower-case - // letters, numbers, and hyphens, start with a letter and end with a letter or - // a number, and have a max length of 63 characters. In other words, it must - // match the following regex: `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`. - repeated string source_phases = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Jobs to repair. Proceeds only after job name matched any one in // the list, or for all jobs if unspecified or empty. The phase that includes // the job must match the phase ID specified in `source_phase`. This value @@ -3599,48 +4172,11 @@ message RepairRolloutRule { // `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`. repeated string jobs = 3 [(google.api.field_behavior) = OPTIONAL]; - // Required. Defines the types of automatic repair actions for failed jobs. - repeated RepairMode repair_modes = 4 [(google.api.field_behavior) = REQUIRED]; - // Output only. Information around the state of the 'Automation' rule. AutomationRuleCondition condition = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; } -// Configuration of the repair action. -message RepairMode { - // The repair action to perform. - oneof mode { - // Optional. Retries a failed job. - Retry retry = 1 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Rolls back a `Rollout`. - Rollback rollback = 2 [(google.api.field_behavior) = OPTIONAL]; - } -} - -// Retries the failed job. -message Retry { - // Required. Total number of retries. Retry is skipped if set to 0; The - // minimum value is 1, and the maximum value is 10. - int64 attempts = 1 [(google.api.field_behavior) = REQUIRED]; - - // Optional. How long to wait for the first retry. Default is 0, and the - // maximum value is 14d. - google.protobuf.Duration wait = 2 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The pattern of how wait time will be increased. Default is - // linear. Backoff mode will be ignored if `wait` is 0. - BackoffMode backoff_mode = 3 [(google.api.field_behavior) = OPTIONAL]; -} - -// Rolls back a `Rollout`. -message Rollback { - // Optional. The starting phase ID for the `Rollout`. If unspecified, the - // `Rollout` will start in the stable phase. - string destination_phase = 1 [(google.api.field_behavior) = OPTIONAL]; -} - // `AutomationRuleCondition` contains conditions relevant to an // `Automation` rule. message AutomationRuleCondition { @@ -3651,8 +4187,8 @@ message AutomationRuleCondition { // The request object for `CreateAutomation`. message CreateAutomationRequest { - // Required. The parent collection in which the `Automation` should be - // created. Format should be + // Required. The parent collection in which the `Automation` must be created. + // The format is // `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, @@ -3689,11 +4225,11 @@ message CreateAutomationRequest { // The request object for `UpdateAutomation`. message UpdateAutomationRequest { - // Required. Field mask is used to specify the fields to be overwritten in the - // `Automation` 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's in the mask. If the - // user doesn't provide a mask then all fields are overwritten. + // Required. Field mask is used to specify the fields to be overwritten by the + // update in the `Automation` resource. The fields specified in the + // update_mask are relative to the resource, not the full request. A field + // will be overwritten if it's in the mask. If the user doesn't provide a mask + // then all fields are overwritten. google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED]; @@ -3726,7 +4262,7 @@ message UpdateAutomationRequest { // The request object for `DeleteAutomation`. message DeleteAutomationRequest { - // Required. The name of the `Automation` to delete. Format should be + // Required. The name of the `Automation` to delete. The format is // `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/automations/{automation_name}`. string name = 1 [ (google.api.field_behavior) = REQUIRED, @@ -3852,6 +4388,9 @@ message AutomationRun { // The `AutomationRun` is pending. PENDING = 5; + + // The `AutomationRun` was aborted. + ABORTED = 6; } // Output only. Name of the `AutomationRun`. Format is @@ -3893,6 +4432,11 @@ message AutomationRun { // only when an explanation is needed. string state_description = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Contains information about what policies prevented the + // `AutomationRun` from proceeding. + PolicyViolation policy_violation = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Time the `AutomationRun` expires. An `AutomationRun` expires // after 14 days from its creation date. google.protobuf.Timestamp expire_time = 11 @@ -3962,19 +4506,23 @@ message RepairRolloutOperation { // Output only. The name of the rollout that initiates the `AutomationRun`. string rollout = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The index of the current repair action in the repair sequence. - int64 current_repair_mode_index = 2 - [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. Records of the repair attempts. Each repair phase may have // multiple retry attempts or single rollback attempt. repeated RepairPhase repair_phases = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The phase ID of the phase that includes the job being + // repaired. + string phase_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The job ID for the Job to repair. + string job_id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; } // RepairPhase tracks the repair attempts that have been made for -// each `RepairMode` specified in the `Automation` resource. +// each `RepairPhaseConfig` specified in the `Automation` resource. message RepairPhase { + // The `RepairPhase` type and the information for that type. oneof repair_phase { // Output only. Records of the retry attempts for retry repair mode. RetryPhase retry = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -3994,12 +4542,6 @@ message RetryPhase { // calculated. BackoffMode backoff_mode = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The phase ID of the phase that includes the job being retried. - string phase_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The job ID for the Job to retry. - string job_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. Detail of a retry action. repeated RetryAttempt attempts = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -4155,6 +4697,6 @@ enum RepairState { // The `repair` action is pending. REPAIR_STATE_PENDING = 5; - // The `repair` action was skipped. - REPAIR_STATE_SKIPPED = 6; + // The `repair` action was aborted. + REPAIR_STATE_ABORTED = 7; } diff --git a/google/cloud/deploy/v1/clouddeploy_grpc_service_config.json b/google/cloud/deploy/v1/clouddeploy_grpc_service_config.json index d0f28ae8a..f0a47da72 100644 --- a/google/cloud/deploy/v1/clouddeploy_grpc_service_config.json +++ b/google/cloud/deploy/v1/clouddeploy_grpc_service_config.json @@ -69,6 +69,14 @@ { "service": "google.cloud.deploy.v1.CloudDeploy", "method": "GetCustomTargetType" + }, + { + "service": "google.cloud.deploy.v1.CloudDeploy", + "method": "ListDeployPolicies" + }, + { + "service": "google.cloud.deploy.v1.CloudDeploy", + "method": "GetDeployPolicy" } ], "timeout": "60s", @@ -170,6 +178,18 @@ { "service": "google.cloud.deploy.v1.CloudDeploy", "method": "CreateCustomTargetType" + }, + { + "service": "google.cloud.deploy.v1.CloudDeploy", + "method": "DeleteDeployPolicy" + }, + { + "service": "google.cloud.deploy.v1.CloudDeploy", + "method": "UpdateDeployPolicy" + }, + { + "service": "google.cloud.deploy.v1.CloudDeploy", + "method": "CreateDeployPolicy" } ], "timeout": "60s" diff --git a/google/cloud/deploy/v1/clouddeploy_v1.yaml b/google/cloud/deploy/v1/clouddeploy_v1.yaml index 7819fc929..6dbc88c5e 100644 --- a/google/cloud/deploy/v1/clouddeploy_v1.yaml +++ b/google/cloud/deploy/v1/clouddeploy_v1.yaml @@ -12,7 +12,10 @@ apis: types: - name: google.cloud.deploy.v1.AutomationEvent - name: google.cloud.deploy.v1.AutomationRunEvent +- name: google.cloud.deploy.v1.CustomTargetTypeNotificationEvent - name: google.cloud.deploy.v1.DeliveryPipelineNotificationEvent +- name: google.cloud.deploy.v1.DeployPolicyEvaluationEvent +- name: google.cloud.deploy.v1.DeployPolicyNotificationEvent - name: google.cloud.deploy.v1.JobRunNotificationEvent - name: google.cloud.deploy.v1.OperationMetadata - name: google.cloud.deploy.v1.ReleaseNotificationEvent diff --git a/google/cloud/deploy/v1/customtargettype_notification_payload.proto b/google/cloud/deploy/v1/customtargettype_notification_payload.proto new file mode 100644 index 000000000..9403a625d --- /dev/null +++ b/google/cloud/deploy/v1/customtargettype_notification_payload.proto @@ -0,0 +1,41 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.deploy.v1; + +import "google/cloud/deploy/v1/log_enums.proto"; + +option go_package = "cloud.google.com/go/deploy/apiv1/deploypb;deploypb"; +option java_multiple_files = true; +option java_outer_classname = "CustomTargetTypeNotificationPayloadProto"; +option java_package = "com.google.cloud.deploy.v1"; + +// Payload proto for "clouddeploy.googleapis.com/customtargettype_notification" +// Platform Log event that describes the failure to send a custom target type +// status change Pub/Sub notification. +message CustomTargetTypeNotificationEvent { + // Debug message for when a notification fails to send. + string message = 1; + + // Unique identifier of the `CustomTargetType`. + string custom_target_type_uid = 4; + + // The name of the `CustomTargetType`. + string custom_target_type = 2; + + // Type of this notification, e.g. for a Pub/Sub failure. + Type type = 3; +} diff --git a/google/cloud/deploy/v1/deploypolicy_evaluation_payload.proto b/google/cloud/deploy/v1/deploypolicy_evaluation_payload.proto new file mode 100644 index 000000000..eabffe9c0 --- /dev/null +++ b/google/cloud/deploy/v1/deploypolicy_evaluation_payload.proto @@ -0,0 +1,101 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.deploy.v1; + +import "google/cloud/deploy/v1/cloud_deploy.proto"; + +option go_package = "cloud.google.com/go/deploy/apiv1/deploypb;deploypb"; +option java_multiple_files = true; +option java_outer_classname = "DeployPolicyEvaluationPayloadProto"; +option java_package = "com.google.cloud.deploy.v1"; + +// Payload proto for "clouddeploy.googleapis.com/deploypolicy_evaluation" +// Platform Log event that describes the deploy policy evaluation event. +message DeployPolicyEvaluationEvent { + // The policy verdict of the request. + enum PolicyVerdict { + // This should never happen. + POLICY_VERDICT_UNSPECIFIED = 0; + + // Allowed by policy. This enum value is not currently used but may be used + // in the future. Currently logs are only generated when a request is denied + // by policy. + ALLOWED_BY_POLICY = 1; + + // Denied by policy. + DENIED_BY_POLICY = 2; + } + + // Things that could have overridden the policy verdict. When overrides are + // used, the request will be allowed even if it is DENIED_BY_POLICY. + enum PolicyVerdictOverride { + // This should never happen. + POLICY_VERDICT_OVERRIDE_UNSPECIFIED = 0; + + // The policy was overridden. + POLICY_OVERRIDDEN = 1; + + // The policy was suspended. + POLICY_SUSPENDED = 2; + } + + // Debug message for when a deploy policy event occurs. + string message = 1; + + // Rule type (e.g. Restrict Rollouts). + string rule_type = 2; + + // Rule id. + string rule = 3; + + // Unique identifier of the `Delivery Pipeline`. + string pipeline_uid = 4; + + // The name of the `Delivery Pipeline`. + string delivery_pipeline = 5; + + // Unique identifier of the `Target`. This is an optional field, as a `Target` + // may not always be applicable to a policy. + string target_uid = 6; + + // The name of the `Target`. This is an optional field, as a `Target` may not + // always be applicable to a policy. + string target = 7; + + // What invoked the action (e.g. a user or automation). + DeployPolicy.Invoker invoker = 8; + + // The name of the `DeployPolicy`. + string deploy_policy = 9; + + // Unique identifier of the `DeployPolicy`. + string deploy_policy_uid = 10; + + // Whether the request is allowed. Allowed is set as true if: + // (1) the request complies with the policy; or + // (2) the request doesn't comply with the policy but the policy was + // overridden; or + // (3) the request doesn't comply with the policy but the policy was suspended + bool allowed = 11; + + // The policy verdict of the request. + PolicyVerdict verdict = 12; + + // Things that could have overridden the policy verdict. Overrides together + // with verdict decide whether the request is allowed. + repeated PolicyVerdictOverride overrides = 13; +} diff --git a/google/cloud/deploy/v1/deploypolicy_notification_payload.proto b/google/cloud/deploy/v1/deploypolicy_notification_payload.proto new file mode 100644 index 000000000..a8572936b --- /dev/null +++ b/google/cloud/deploy/v1/deploypolicy_notification_payload.proto @@ -0,0 +1,42 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.deploy.v1; + +import "google/cloud/deploy/v1/log_enums.proto"; + +option go_package = "cloud.google.com/go/deploy/apiv1/deploypb;deploypb"; +option java_multiple_files = true; +option java_outer_classname = "DeployPolicyNotificationPayloadProto"; +option java_package = "com.google.cloud.deploy.v1"; + +// Payload proto for "clouddeploy.googleapis.com/deploypolicy_notification". +// Platform Log event that describes the failure to send a pub/sub notification +// when there is a DeployPolicy status change. +message DeployPolicyNotificationEvent { + // Debug message for when a deploy policy fails to send a pub/sub + // notification. + string message = 1; + + // The name of the `DeployPolicy`. + string deploy_policy = 2; + + // Unique identifier of the deploy policy. + string deploy_policy_uid = 3; + + // Type of this notification, e.g. for a Pub/Sub failure. + Type type = 4; +} diff --git a/google/cloud/deploy/v1/log_enums.proto b/google/cloud/deploy/v1/log_enums.proto index b62c9d2e2..ec209b063 100644 --- a/google/cloud/deploy/v1/log_enums.proto +++ b/google/cloud/deploy/v1/log_enums.proto @@ -44,6 +44,9 @@ enum Type { // Rollout updated. TYPE_ROLLOUT_UPDATE = 7; + // Deploy Policy evaluation. + TYPE_DEPLOY_POLICY_EVALUATION = 8; + // Deprecated: This field is never used. Use release_render log type instead. TYPE_RENDER_STATUES_CHANGE = 2 [deprecated = true]; } diff --git a/google/cloud/dialogflow/cx/v3/advanced_settings.proto b/google/cloud/dialogflow/cx/v3/advanced_settings.proto index 93e643c89..c28ca4c33 100644 --- a/google/cloud/dialogflow/cx/v3/advanced_settings.proto +++ b/google/cloud/dialogflow/cx/v3/advanced_settings.proto @@ -18,6 +18,7 @@ package google.cloud.dialogflow.cx.v3; import "google/api/field_behavior.proto"; import "google/cloud/dialogflow/cx/v3/gcs.proto"; +import "google/protobuf/duration.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3"; @@ -40,6 +41,27 @@ option ruby_package = "Google::Cloud::Dialogflow::CX::V3"; // // Hierarchy: Agent->Flow->Page->Fulfillment/Parameter. message AdvancedSettings { + // Define behaviors of speech to text detection. + message SpeechSettings { + // Sensitivity of the speech model that detects the end of speech. + // Scale from 0 to 100. + int32 endpointer_sensitivity = 1; + + // Timeout before detecting no speech. + google.protobuf.Duration no_speech_timeout = 2; + + // Use timeout based endpointing, interpreting endpointer sensitivy as + // seconds of timeout value. + bool use_timeout_based_endpointing = 3; + + // Mapping from language to Speech-to-Text model. The mapped Speech-to-Text + // model will be selected for requests from its corresponding language. + // For more information, see + // [Speech + // models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-models). + map<string, string> models = 5; + } + // Define behaviors for DTMF (dual tone multi frequency). message DtmfSettings { // If true, incoming audio is processed for DTMF (dual tone multi frequency) @@ -55,15 +77,26 @@ message AdvancedSettings { // The digit that terminates a DTMF digit sequence. string finish_digit = 3; + + // Interdigit timeout setting for matching dtmf input to regex. + google.protobuf.Duration interdigit_timeout_duration = 6; + + // Endpoint timeout setting for matching dtmf input to regex. + google.protobuf.Duration endpointing_timeout_duration = 7; } // Define behaviors on logging. message LoggingSettings { - // If true, StackDriver logging is currently enabled. + // Enables StackDriver logging. bool enable_stackdriver_logging = 2; - // If true, DF Interaction logging is currently enabled. + // Enables DF Interaction logging. bool enable_interaction_logging = 3; + + // Enables consent-based end-user input redaction, if true, a pre-defined + // session parameter `$session.params.conversation-redaction` will be + // used to determine if the utterance should be redacted. + bool enable_consent_based_redaction = 4; } // If present, incoming audio is exported by Dialogflow to the configured @@ -73,6 +106,14 @@ message AdvancedSettings { // - Flow level GcsDestination audio_export_gcs_destination = 2; + // Settings for speech to text detection. + // Exposed at the following levels: + // - Agent level + // - Flow level + // - Page level + // - Parameter level + SpeechSettings speech_settings = 3; + // Settings for DTMF. // Exposed at the following levels: // - Agent level diff --git a/google/cloud/dialogflow/cx/v3/agent.proto b/google/cloud/dialogflow/cx/v3/agent.proto index 33b24376d..703fe4237 100644 --- a/google/cloud/dialogflow/cx/v3/agent.proto +++ b/google/cloud/dialogflow/cx/v3/agent.proto @@ -254,6 +254,20 @@ message Agent { bool enable_answer_feedback = 1 [(google.api.field_behavior) = OPTIONAL]; } + // Settings for end user personalization. + message PersonalizationSettings { + // Optional. Default end user metadata, used when processing DetectIntent + // requests. Recommended to be filled as a template instead of hard-coded + // value, for example { "age": "$session.params.age" }. The data will be + // merged with the + // [QueryParameters.end_user_metadata][google.cloud.dialogflow.cx.v3.QueryParameters.end_user_metadata] + // in + // [DetectIntentRequest.query_params][google.cloud.dialogflow.cx.v3.DetectIntentRequest.query_params] + // during query processing. + google.protobuf.Struct default_end_user_metadata = 1 + [(google.api.field_behavior) = OPTIONAL]; + } + // The unique identifier of the agent. // Required for the // [Agents.UpdateAgent][google.cloud.dialogflow.cx.v3.Agents.UpdateAgent] @@ -303,8 +317,7 @@ message Agent { // Immutable. Name of the start flow in this agent. A start flow will be // automatically created when the agent is created, and can only be deleted by // deleting the agent. Format: `projects/<Project ID>/locations/<Location - // ID>/agents/<Agent ID>/flows/<Flow ID>`. Currently only the default start - // flow with id "00000000-0000-0000-0000-000000000000" is allowed. + // ID>/agents/<Agent ID>/flows/<Flow ID>`. string start_flow = 16 [ (google.api.field_behavior) = IMMUTABLE, (google.api.resource_reference) = { type: "dialogflow.googleapis.com/Flow" } @@ -328,6 +341,11 @@ message Agent { // requests. bool enable_spell_correction = 20; + // Optional. Enable training multi-lingual models for this agent. These models + // will be trained on all the languages supported by the agent. + bool enable_multi_language_training = 40 + [(google.api.field_behavior) = OPTIONAL]; + // Indicates whether the agent is locked for changes. If the agent is locked, // modifications to the agent will be rejected except for [RestoreAgent][]. bool locked = 27; @@ -349,6 +367,10 @@ message Agent { // Optional. Answer feedback collection settings. AnswerFeedbackSettings answer_feedback_settings = 38 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Settings for end user personalization. + PersonalizationSettings personalization_settings = 42 + [(google.api.field_behavior) = OPTIONAL]; } // The request message for diff --git a/google/cloud/dialogflow/cx/v3/data_store_connection.proto b/google/cloud/dialogflow/cx/v3/data_store_connection.proto index 884ae7a65..9cdeb58fb 100644 --- a/google/cloud/dialogflow/cx/v3/data_store_connection.proto +++ b/google/cloud/dialogflow/cx/v3/data_store_connection.proto @@ -16,6 +16,8 @@ syntax = "proto3"; package google.cloud.dialogflow.cx.v3; +import "google/api/field_behavior.proto"; + option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Dialogflow.Cx.V3"; option go_package = "cloud.google.com/go/dialogflow/cx/apiv3/cxpb;cxpb"; @@ -54,3 +56,183 @@ enum DataStoreType { // A data store that contains structured data (for example FAQ). STRUCTURED = 3; } + +// Data store connection feature output signals. +// Might be only partially field if processing stop before the final answer. +// Reasons for this can be, but are not limited to: empty UCS search results, +// positive RAI check outcome, grounding failure, ... +message DataStoreConnectionSignals { + // Diagnostic info related to the rewriter model call. + message RewriterModelCallSignals { + // Prompt as sent to the model. + string rendered_prompt = 1; + + // Output of the generative model. + string model_output = 2; + + // Name of the generative model. For example, "gemini-ultra", "gemini-pro", + // "gemini-1.5-flash" etc. Defaults to "Other" if the model is unknown. + string model = 3; + } + + // Search snippet details. + message SearchSnippet { + // Title of the enclosing document. + string document_title = 1; + + // Uri for the document. Present if specified for the document. + string document_uri = 2; + + // Text included in the prompt. + string text = 3; + } + + // Diagnostic info related to the answer generation model call. + message AnswerGenerationModelCallSignals { + // Prompt as sent to the model. + string rendered_prompt = 1; + + // Output of the generative model. + string model_output = 2; + + // Name of the generative model. For example, "gemini-ultra", "gemini-pro", + // "gemini-1.5-flash" etc. Defaults to "Other" if the model is unknown. + string model = 3; + } + + // Answer part with citation. + message AnswerPart { + // Substring of the answer. + string text = 1; + + // Citations for this answer part. Indices of `search_snippets`. + repeated int32 supporting_indices = 2; + } + + // Snippet cited by the answer generation model. + message CitedSnippet { + // Details of the snippet. + SearchSnippet search_snippet = 1; + + // Index of the snippet in `search_snippets` field. + int32 snippet_index = 2; + } + + // Grounding signals. + message GroundingSignals { + // Represents the decision of the grounding check. + enum GroundingDecision { + // Decision not specified. + GROUNDING_DECISION_UNSPECIFIED = 0; + + // Grounding have accepted the answer. + ACCEPTED_BY_GROUNDING = 1; + + // Grounding have rejected the answer. + REJECTED_BY_GROUNDING = 2; + } + + // Grounding score buckets. + enum GroundingScoreBucket { + // Score not specified. + GROUNDING_SCORE_BUCKET_UNSPECIFIED = 0; + + // We have very low confidence that the answer is grounded. + VERY_LOW = 1; + + // We have low confidence that the answer is grounded. + LOW = 3; + + // We have medium confidence that the answer is grounded. + MEDIUM = 4; + + // We have high confidence that the answer is grounded. + HIGH = 5; + + // We have very high confidence that the answer is grounded. + VERY_HIGH = 6; + } + + // Represents the decision of the grounding check. + GroundingDecision decision = 1; + + // Grounding score bucket setting. + GroundingScoreBucket score = 2; + } + + // Safety check results. + message SafetySignals { + // Safety decision. + // All kinds of check are incorporated into this final decision, including + // banned phrases check. + enum SafetyDecision { + // Decision not specified. + SAFETY_DECISION_UNSPECIFIED = 0; + + // No manual or automatic safety check fired. + ACCEPTED_BY_SAFETY_CHECK = 1; + + // One ore more safety checks fired. + REJECTED_BY_SAFETY_CHECK = 2; + } + + // Specifies banned phrase match subject. + enum BannedPhraseMatch { + // No banned phrase check was executed. + BANNED_PHRASE_MATCH_UNSPECIFIED = 0; + + // All banned phrase checks led to no match. + BANNED_PHRASE_MATCH_NONE = 1; + + // A banned phrase matched the query. + BANNED_PHRASE_MATCH_QUERY = 2; + + // A banned phrase matched the response. + BANNED_PHRASE_MATCH_RESPONSE = 3; + } + + // Safety decision. + SafetyDecision decision = 1; + + // Specifies banned phrase match subject. + BannedPhraseMatch banned_phrase_match = 2; + + // The matched banned phrase if there was a match. + string matched_banned_phrase = 3; + } + + // Optional. Diagnostic info related to the rewriter model call. + RewriterModelCallSignals rewriter_model_call_signals = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Rewritten string query used for search. + string rewritten_query = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Search snippets included in the answer generation prompt. + repeated SearchSnippet search_snippets = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Diagnostic info related to the answer generation model call. + AnswerGenerationModelCallSignals answer_generation_model_call_signals = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The final compiled answer. + string answer = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Answer parts with relevant citations. + // Concatenation of texts should add up the `answer` (not counting + // whitespaces). + repeated AnswerPart answer_parts = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Snippets cited by the answer generation model from the most to + // least relevant. + repeated CitedSnippet cited_snippets = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Grounding signals. + GroundingSignals grounding_signals = 8 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Safety check result. + SafetySignals safety_signals = 9 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/dialogflow/cx/v3/flow.proto b/google/cloud/dialogflow/cx/v3/flow.proto index e5b68bb6b..8905a53ac 100644 --- a/google/cloud/dialogflow/cx/v3/flow.proto +++ b/google/cloud/dialogflow/cx/v3/flow.proto @@ -256,6 +256,26 @@ message Flow { pattern: "projects/{project}/locations/{location}/agents/{agent}/flows/{flow}" }; + // Settings for multi-lingual agents. + message MultiLanguageSettings { + // Optional. Enable multi-language detection for this flow. This can be set + // only if [agent level multi language + // setting][Agent.enable_multi_language_training] is enabled. + bool enable_multi_language_detection = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Agent will respond in the detected language if the detected + // language code is in the supported resolved languages for this flow. This + // will be used only if multi-language training is enabled in the + // [agent][google.cloud.dialogflow.cx.v3.Agent.enable_multi_language_training] + // and multi-language detection is enabled in the + // [flow][google.cloud.dialogflow.cx.v3.Flow.MultiLanguageSettings.enable_multi_language_detection]. + // The supported languages must be a subset of the languages supported by + // the agent. + repeated string supported_response_language_codes = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + // The unique identifier of the flow. // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent // ID>/flows/<Flow ID>`. @@ -329,6 +349,14 @@ message Flow { // Optional. Knowledge connector configuration. KnowledgeConnectorSettings knowledge_connector_settings = 18 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Multi-lingual agent settings for this flow. + MultiLanguageSettings multi_language_settings = 28 + [(google.api.field_behavior) = OPTIONAL]; + + // Indicates whether the flow is locked for changes. If the flow is locked, + // modifications to the flow will be rejected. + bool locked = 30; } // The request message for diff --git a/google/cloud/dialogflow/cx/v3/security_settings.proto b/google/cloud/dialogflow/cx/v3/security_settings.proto index 3a165baab..1453c2a77 100644 --- a/google/cloud/dialogflow/cx/v3/security_settings.proto +++ b/google/cloud/dialogflow/cx/v3/security_settings.proto @@ -268,11 +268,17 @@ message SecuritySettings { string audio_export_pattern = 2; // Enable audio redaction if it is true. + // Note that this only redacts end-user audio data; + // Synthesised audio from the virtual agent is not redacted. bool enable_audio_redaction = 3; // File format for exported audio file. Currently only in telephony // recordings. AudioFormat audio_format = 4; + + // Whether to store TTS audio. By default, TTS audio from the virtual agent + // is not exported. + bool store_tts_audio = 6; } // Settings for exporting conversations to @@ -355,6 +361,9 @@ message SecuritySettings { // for Agent Assist traffic), higher value will be ignored and use default. // Setting a value higher than that has no effect. A missing value or // setting to 0 also means we use default TTL. + // When data retention configuration is changed, it only applies to the data + // created after the change; the TTL of existing data created before the + // change stays intact. int32 retention_window_days = 6; // Specifies the retention behavior defined by diff --git a/google/cloud/dialogflow/cx/v3/session.proto b/google/cloud/dialogflow/cx/v3/session.proto index 9f6f15b6f..9e0ca50fb 100644 --- a/google/cloud/dialogflow/cx/v3/session.proto +++ b/google/cloud/dialogflow/cx/v3/session.proto @@ -22,6 +22,7 @@ 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/data_store_connection.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"; @@ -726,6 +727,13 @@ message QueryParameters { // Optional. Search configuration for UCS search queries. SearchConfig search_config = 20 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set to true and data stores are involved in serving the + // request then + // DetectIntentResponse.query_result.data_store_connection_signals + // will be filled with data that can help evaluations. + bool populate_data_store_connection_signals = 25 + [(google.api.field_behavior) = OPTIONAL]; } // Search configuration for UCS search queries. @@ -1005,6 +1013,13 @@ message QueryResult { // Indicates whether the Thumbs up/Thumbs down rating controls are need to be // shown for the response in the Dialogflow Messenger widget. bool allow_answer_feedback = 32; + + // Optional. Data store connection feature output signals. + // Filled only when data stores are involved in serving the query and + // DetectIntentRequest.populate data_store_connection_quality_signals is set + // to true in the request. + DataStoreConnectionSignals data_store_connection_signals = 35 + [(google.api.field_behavior) = OPTIONAL]; } // Represents the natural language text to be processed. @@ -1084,6 +1099,12 @@ message Match { // The query directly triggered an event. EVENT = 6; + + // The query was matched to a Knowledge Connector answer. + KNOWLEDGE_CONNECTOR = 8; + + // The query was handled by a [`Playbook`][Playbook]. + PLAYBOOK = 9; } // The [Intent][google.cloud.dialogflow.cx.v3.Intent] that matched the query. diff --git a/google/cloud/dialogflow/cx/v3/test_case.proto b/google/cloud/dialogflow/cx/v3/test_case.proto index c624c8816..f082a667c 100644 --- a/google/cloud/dialogflow/cx/v3/test_case.proto +++ b/google/cloud/dialogflow/cx/v3/test_case.proto @@ -292,9 +292,8 @@ message TestConfig { // ID>/flows/<Flow ID>`. // // 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. + // of the test case. 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" } ]; @@ -304,9 +303,8 @@ message TestConfig { // ID>/flows/<Flow ID>/pages/<Page ID>`. // // 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. + // of the test case. 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" } ]; diff --git a/google/cloud/dialogflow/cx/v3/webhook.proto b/google/cloud/dialogflow/cx/v3/webhook.proto index 3c1737547..fe9a2b6af 100644 --- a/google/cloud/dialogflow/cx/v3/webhook.proto +++ b/google/cloud/dialogflow/cx/v3/webhook.proto @@ -101,6 +101,47 @@ message Webhook { // Represents configuration for a generic web service. message GenericWebService { + // Represents configuration of OAuth client credential flow for 3rd party + // API authentication. + message OAuthConfig { + // Required. The client ID provided by the 3rd party platform. + string client_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The client secret provided by the 3rd party platform. + string client_secret = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The token endpoint provided by the 3rd party platform to + // exchange an access token. + string token_endpoint = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The OAuth scopes to grant. + repeated string scopes = 4 [(google.api.field_behavior) = OPTIONAL]; + } + + // Indicate the auth token type generated from the [Diglogflow service + // agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent). + enum ServiceAgentAuth { + // Service agent auth type unspecified. Default to ID_TOKEN. + SERVICE_AGENT_AUTH_UNSPECIFIED = 0; + + // No token used. + NONE = 1; + + // Use [ID + // token](https://cloud.google.com/docs/authentication/token-types#id) + // generated from service agent. This can be used to access Cloud Function + // and Cloud Run after you grant Invoker role to + // `service-<PROJECT-NUMBER>@gcp-sa-dialogflow.iam.gserviceaccount.com`. + ID_TOKEN = 2; + + // Use [access + // token](https://cloud.google.com/docs/authentication/token-types#access) + // generated from service agent. This can be used to access other Google + // Cloud APIs after you grant required roles to + // `service-<PROJECT-NUMBER>@gcp-sa-dialogflow.iam.gserviceaccount.com`. + ACCESS_TOKEN = 3; + } + // Represents the type of webhook configuration. enum WebhookType { // Default value. This value is unused. @@ -169,6 +210,18 @@ message Webhook { repeated bytes allowed_ca_certs = 5 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The OAuth configuration of the webhook. If specified, + // Dialogflow will initiate the OAuth client credential flow to exchange an + // access token from the 3rd party platform and put it in the auth header. + OAuthConfig oauth_config = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Indicate the auth token type generated from the [Diglogflow + // service + // agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent). + // The generated token is sent in the Authorization header. + ServiceAgentAuth service_agent_auth = 12 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. Type of the webhook. WebhookType webhook_type = 6 [(google.api.field_behavior) = OPTIONAL]; @@ -465,6 +518,9 @@ message WebhookRequest { // The sentiment analysis result of the current user request. The field is // filled when sentiment analysis is configured to be enabled for the request. SentimentAnalysisResult sentiment_analysis_result = 9; + + // Information about the language of the request. + LanguageInfo language_info = 18; } // The response message for a webhook call. @@ -649,3 +705,17 @@ message SessionInfo { // The map is keyed by parameters' display names. map<string, google.protobuf.Value> parameters = 2; } + +// Represents the language information of the request. +message LanguageInfo { + // The language code specified in the original + // [request][google.cloud.dialogflow.cx.v3.QueryInput.language_code]. + string input_language_code = 1; + + // The language code detected for this request based on the user + // conversation. + string resolved_language_code = 2; + + // The confidence score of the detected language between 0 and 1. + float confidence_score = 3; +} diff --git a/google/cloud/dialogflow/cx/v3beta1/advanced_settings.proto b/google/cloud/dialogflow/cx/v3beta1/advanced_settings.proto index 18806c410..d9e344dde 100644 --- a/google/cloud/dialogflow/cx/v3beta1/advanced_settings.proto +++ b/google/cloud/dialogflow/cx/v3beta1/advanced_settings.proto @@ -87,11 +87,16 @@ message AdvancedSettings { // Define behaviors on logging. message LoggingSettings { - // If true, StackDriver logging is currently enabled. + // Enables Google Cloud Logging. bool enable_stackdriver_logging = 2; - // If true, DF Interaction logging is currently enabled. + // Enables DF Interaction logging. bool enable_interaction_logging = 3; + + // Enables consent-based end-user input redaction, if true, a pre-defined + // session parameter `$session.params.conversation-redaction` will be + // used to determine if the utterance should be redacted. + bool enable_consent_based_redaction = 4; } // If present, incoming audio is exported by Dialogflow to the configured diff --git a/google/cloud/dialogflow/cx/v3beta1/data_store_connection.proto b/google/cloud/dialogflow/cx/v3beta1/data_store_connection.proto index 1c6d663d4..be05789b2 100644 --- a/google/cloud/dialogflow/cx/v3beta1/data_store_connection.proto +++ b/google/cloud/dialogflow/cx/v3beta1/data_store_connection.proto @@ -69,6 +69,10 @@ message DataStoreConnectionSignals { // Output of the generative model. string model_output = 2; + + // Name of the generative model. For example, "gemini-ultra", "gemini-pro", + // "gemini-1.5-flash" etc. Defaults to "Other" if the model is unknown. + string model = 3; } // Search snippet details. @@ -90,6 +94,10 @@ message DataStoreConnectionSignals { // Output of the generative model. string model_output = 2; + + // Name of the generative model. For example, "gemini-ultra", "gemini-pro", + // "gemini-1.5-flash" etc. Defaults to "Other" if the model is unknown. + string model = 3; } // Answer part with citation. diff --git a/google/cloud/dialogflow/cx/v3beta1/flow.proto b/google/cloud/dialogflow/cx/v3beta1/flow.proto index 04ac95cfd..846f4c5e7 100644 --- a/google/cloud/dialogflow/cx/v3beta1/flow.proto +++ b/google/cloud/dialogflow/cx/v3beta1/flow.proto @@ -353,6 +353,10 @@ message Flow { // Optional. Multi-lingual agent settings for this flow. MultiLanguageSettings multi_language_settings = 28 [(google.api.field_behavior) = OPTIONAL]; + + // Indicates whether the flow is locked for changes. If the flow is locked, + // modifications to the flow will be rejected. + bool locked = 30; } // The request message for diff --git a/google/cloud/dialogflow/cx/v3beta1/page.proto b/google/cloud/dialogflow/cx/v3beta1/page.proto index ecb95932e..69aa49a59 100644 --- a/google/cloud/dialogflow/cx/v3beta1/page.proto +++ b/google/cloud/dialogflow/cx/v3beta1/page.proto @@ -340,6 +340,13 @@ message EventHandler { string target_flow = 3 [(google.api.resource_reference) = { type: "dialogflow.googleapis.com/Flow" }]; + + // The target playbook to transition to. + // Format: + // `projects/<ProjectID>/locations/<LocationID>/agents/<AgentID>/playbooks/<PlaybookID>`. + string target_playbook = 7 [(google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Playbook" + }]; } } diff --git a/google/cloud/dialogflow/cx/v3beta1/session.proto b/google/cloud/dialogflow/cx/v3beta1/session.proto index ec2f13709..21693b1e8 100644 --- a/google/cloud/dialogflow/cx/v3beta1/session.proto +++ b/google/cloud/dialogflow/cx/v3beta1/session.proto @@ -1142,6 +1142,9 @@ message Match { // The query directly triggered an event. EVENT = 6; + // The query was matched to a Knowledge Connector answer. + KNOWLEDGE_CONNECTOR = 8; + // The query was handled by a // [`Playbook`][google.cloud.dialogflow.cx.v3beta1.Playbook]. PLAYBOOK = 9; diff --git a/google/cloud/dialogflow/cx/v3beta1/test_case.proto b/google/cloud/dialogflow/cx/v3beta1/test_case.proto index 6e966a919..8a7de1de3 100644 --- a/google/cloud/dialogflow/cx/v3beta1/test_case.proto +++ b/google/cloud/dialogflow/cx/v3beta1/test_case.proto @@ -293,9 +293,8 @@ message TestConfig { // ID>/flows/<Flow ID>`. // // 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. + // of the test case. 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" } ]; @@ -305,9 +304,8 @@ message TestConfig { // ID>/flows/<Flow ID>/pages/<Page ID>`. // // 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. + // of the test case. 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" } ]; diff --git a/google/cloud/dialogflow/cx/v3beta1/tool.proto b/google/cloud/dialogflow/cx/v3beta1/tool.proto index 0f16ab483..59ab69b3c 100644 --- a/google/cloud/dialogflow/cx/v3beta1/tool.proto +++ b/google/cloud/dialogflow/cx/v3beta1/tool.proto @@ -287,6 +287,10 @@ message Tool { // Optional. TLS configuration for the HTTPS verification. TLSConfig tls_config = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Service Directory configuration. + ServiceDirectoryConfig service_directory_config = 4 + [(google.api.field_behavior) = OPTIONAL]; } // A DataStoreTool is a way to provide specifications needed to search a @@ -432,6 +436,22 @@ message Tool { repeated CACert ca_certs = 1 [(google.api.field_behavior) = REQUIRED]; } + // Configuration for tools using Service Directory. + message ServiceDirectoryConfig { + // Required. The name of [Service + // Directory](https://cloud.google.com/service-directory) service. + // Format: + // `projects/<ProjectID>/locations/<LocationID>/namespaces/<NamespaceID>/services/<ServiceID>`. + // `LocationID` of the service directory must be the same as the location + // of the agent. + string service = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "servicedirectory.googleapis.com/Service" + } + ]; + } + // Represents the type of the tool. enum ToolType { // Default value. This value is unused. diff --git a/google/cloud/dialogflow/v2/BUILD.bazel b/google/cloud/dialogflow/v2/BUILD.bazel index cc1d76d32..6d3ec1d2b 100644 --- a/google/cloud/dialogflow/v2/BUILD.bazel +++ b/google/cloud/dialogflow/v2/BUILD.bazel @@ -34,10 +34,12 @@ proto_library( "conversation_model.proto", "conversation_profile.proto", "document.proto", + "encryption_spec.proto", "entity_type.proto", "environment.proto", "fulfillment.proto", "gcs.proto", + "generator.proto", "human_agent_assistant_event.proto", "intent.proto", "knowledge_base.proto", @@ -135,12 +137,16 @@ java_gapic_test( "com.google.cloud.dialogflow.v2.ConversationsClientTest", "com.google.cloud.dialogflow.v2.DocumentsClientHttpJsonTest", "com.google.cloud.dialogflow.v2.DocumentsClientTest", + "com.google.cloud.dialogflow.v2.EncryptionSpecServiceClientHttpJsonTest", + "com.google.cloud.dialogflow.v2.EncryptionSpecServiceClientTest", "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.GeneratorsClientHttpJsonTest", + "com.google.cloud.dialogflow.v2.GeneratorsClientTest", "com.google.cloud.dialogflow.v2.IntentsClientHttpJsonTest", "com.google.cloud.dialogflow.v2.IntentsClientTest", "com.google.cloud.dialogflow.v2.KnowledgeBasesClientHttpJsonTest", @@ -406,6 +412,7 @@ load( csharp_proto_library( name = "dialogflow_csharp_proto", + extra_opts = [], deps = [":dialogflow_proto"], ) diff --git a/google/cloud/dialogflow/v2/answer_record.proto b/google/cloud/dialogflow/v2/answer_record.proto index 42a095bc2..73da14906 100644 --- a/google/cloud/dialogflow/v2/answer_record.proto +++ b/google/cloud/dialogflow/v2/answer_record.proto @@ -293,6 +293,22 @@ message AgentAssistantFeedback { repeated string clicked_uris = 2; } + // Feedback for knowledge assist. + message KnowledgeAssistFeedback { + // Whether the suggested answer was copied by the human agent. + // If the value is set to be true, + // [AnswerFeedback.clicked][google.cloud.dialogflow.v2.AnswerFeedback.clicked] + // will be updated to be true. + bool answer_copied = 1; + + // The URIs clicked by the human agent. The value is appended for each + // UpdateAnswerRecordRequest. + // If the value is not empty, + // [AnswerFeedback.clicked][google.cloud.dialogflow.v2.AnswerFeedback.clicked] + // will be updated to be true. + repeated string clicked_uris = 2; + } + // Optional. Whether or not the suggested answer is relevant. // // For example: @@ -331,6 +347,10 @@ message AgentAssistantFeedback { // Optional. Feedback for knowledge search. KnowledgeSearchFeedback knowledge_search_feedback = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Feedback for knowledge assist. + KnowledgeAssistFeedback knowledge_assist_feedback = 6 + [(google.api.field_behavior) = OPTIONAL]; } // Represents a record of a human agent assist answer. diff --git a/google/cloud/dialogflow/v2/audio_config.proto b/google/cloud/dialogflow/v2/audio_config.proto index 8d15943a9..93978cce1 100644 --- a/google/cloud/dialogflow/v2/audio_config.proto +++ b/google/cloud/dialogflow/v2/audio_config.proto @@ -287,6 +287,30 @@ message SpeechToTextConfig { // for model selection. string model = 2; + // Audio encoding of the audio content to process. + AudioEncoding audio_encoding = 6; + + // Sample rate (in Hertz) of the audio content sent in the query. + // Refer to [Cloud Speech API + // documentation](https://cloud.google.com/speech-to-text/docs/basics) for + // more details. + int32 sample_rate_hertz = 7; + + // The language of the supplied audio. Dialogflow does not do + // translations. See [Language + // 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. + string language_code = 8; + + // If `true`, Dialogflow returns + // [SpeechWordInfo][google.cloud.dialogflow.v2.SpeechWordInfo] in + // [StreamingRecognitionResult][google.cloud.dialogflow.v2.StreamingRecognitionResult] + // with information about the recognized speech words, e.g. start and end time + // offsets. If false or unspecified, Speech doesn't return any word-level + // information. + bool enable_word_info = 9; + // Use timeout based endpointing, interpreting endpointer sensitivy as // seconds of timeout value. bool use_timeout_based_endpointing = 11; @@ -394,6 +418,9 @@ enum AudioEncoding { // is replaced with a single byte containing the block length. Only Speex // wideband is supported. `sample_rate_hertz` must be 16000. AUDIO_ENCODING_SPEEX_WITH_HEADER_BYTE = 7; + + // 8-bit samples that compand 13-bit audio samples using G.711 PCMU/a-law. + AUDIO_ENCODING_ALAW = 8; } // Variant of the specified [Speech @@ -480,4 +507,7 @@ enum OutputAudioEncoding { // 8-bit samples that compand 14-bit audio samples using G.711 PCMU/mu-law. OUTPUT_AUDIO_ENCODING_MULAW = 5; + + // 8-bit samples that compand 13-bit audio samples using G.711 PCMU/a-law. + OUTPUT_AUDIO_ENCODING_ALAW = 6; } diff --git a/google/cloud/dialogflow/v2/conversation.proto b/google/cloud/dialogflow/v2/conversation.proto index 5f681057a..a1165a2dd 100644 --- a/google/cloud/dialogflow/v2/conversation.proto +++ b/google/cloud/dialogflow/v2/conversation.proto @@ -21,6 +21,7 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/dialogflow/v2/conversation_profile.proto"; +import "google/cloud/dialogflow/v2/generator.proto"; import "google/cloud/dialogflow/v2/participant.proto"; import "google/cloud/dialogflow/v2/session.proto"; import "google/protobuf/timestamp.proto"; @@ -156,6 +157,16 @@ service Conversations { }; } + // Generates and returns a suggestion for a conversation that does not have a + // resource created for it. + rpc GenerateStatelessSuggestion(GenerateStatelessSuggestionRequest) + returns (GenerateStatelessSuggestionResponse) { + option (google.api.http) = { + post: "/v2/{parent=projects/*/locations/*}/statelessSuggestion:generate" + body: "*" + }; + } + // Get answers for the given query based on knowledge documents. rpc SearchKnowledge(SearchKnowledgeRequest) returns (SearchKnowledgeResponse) { @@ -187,6 +198,8 @@ message Conversation { type: "dialogflow.googleapis.com/Conversation" pattern: "projects/{project}/conversations/{conversation}" pattern: "projects/{project}/locations/{location}/conversations/{conversation}" + plural: "conversations" + singular: "conversation" }; // Enumeration of the completion status of the conversation. @@ -218,10 +231,13 @@ message Conversation { HUMAN_ASSIST_STAGE = 2; } - // Output only. The unique identifier of this conversation. + // Output only. Identifier. The unique identifier of this conversation. // Format: `projects/<Project ID>/locations/<Location // ID>/conversations/<Conversation ID>`. - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + string name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = IDENTIFIER + ]; // Output only. The current state of the Conversation. LifecycleState lifecycle_state = 2 @@ -251,8 +267,8 @@ message Conversation { google.protobuf.Timestamp end_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - // The stage of a conversation. It indicates whether the virtual agent or a - // human agent is handling the conversation. + // Optional. The stage of a conversation. It indicates whether the virtual + // agent or a human agent is handling the conversation. // // If the conversation is created with the conversation profile that has // Dialogflow config set, defaults to @@ -267,7 +283,8 @@ message Conversation { // [ConversationStage.VIRTUAL_AGENT_STAGE][google.cloud.dialogflow.v2.Conversation.ConversationStage.VIRTUAL_AGENT_STAGE] // stage and directly goes to // [ConversationStage.HUMAN_ASSIST_STAGE][google.cloud.dialogflow.v2.Conversation.ConversationStage.HUMAN_ASSIST_STAGE]. - ConversationStage conversation_stage = 7; + ConversationStage conversation_stage = 7 + [(google.api.field_behavior) = OPTIONAL]; } // The request message for @@ -317,24 +334,15 @@ message ListConversationsRequest { // Optional. The next_page_token value returned from a previous list request. string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; - // A filter expression that filters conversations listed in the response. In - // general, the expression must specify the field name, a comparison operator, - // and the value to use for filtering: - // <ul> - // <li>The value must be a string, a number, or a boolean.</li> - // <li>The comparison operator must be either `=`,`!=`, `>`, or `<`.</li> - // <li>To filter on multiple expressions, separate the - // expressions with `AND` or `OR` (omitting both implies `AND`).</li> - // <li>For clarity, expressions can be enclosed in parentheses.</li> - // </ul> - // Only `lifecycle_state` can be filtered on in this way. For example, - // the following expression only returns `COMPLETED` conversations: + // Optional. A filter expression that filters conversations listed in the + // response. Only `lifecycle_state` can be filtered on in this way. For + // example, the following expression only returns `COMPLETED` conversations: // // `lifecycle_state = "COMPLETED"` // // For more information about filtering, see // [API Filtering](https://aip.dev/160). - string filter = 4; + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; } // The response message for @@ -441,23 +449,28 @@ message SuggestConversationSummaryRequest { } ]; - // The name of the latest conversation message used as context for + // Optional. The name of the latest conversation message used as context for // compiling suggestion. If empty, the latest message of the conversation will // be used. // // Format: `projects/<Project ID>/locations/<Location // ID>/conversations/<Conversation ID>/messages/<Message ID>`. - string latest_message = 3 [(google.api.resource_reference) = { - type: "dialogflow.googleapis.com/Message" - }]; + string latest_message = 3 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Message" + } + ]; - // Max number of messages prior to and including + // Optional. Max number of messages prior to and including // [latest_message] to use as context when compiling the // suggestion. By default 500 and at most 1000. - int32 context_size = 4; + int32 context_size = 4 [(google.api.field_behavior) = OPTIONAL]; - // Parameters for a human assist query. Only used for POC/demo purpose. - AssistQueryParameters assist_query_params = 5; + // Optional. Parameters for a human assist query. Only used for POC/demo + // purpose. + AssistQueryParameters assist_query_params = 5 + [(google.api.field_behavior) = OPTIONAL]; } // The response message for @@ -537,18 +550,21 @@ message GenerateStatelessSummaryRequest { ConversationProfile conversation_profile = 2 [(google.api.field_behavior) = REQUIRED]; - // The name of the latest conversation message used as context for + // Optional. The name of the latest conversation message used as context for // generating a Summary. If empty, the latest message of the conversation will // be used. The format is specific to the user and the names of the messages // provided. - string latest_message = 3 [(google.api.resource_reference) = { - type: "dialogflow.googleapis.com/Message" - }]; + string latest_message = 3 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Message" + } + ]; - // Max number of messages prior to and including + // Optional. Max number of messages prior to and including // [latest_message] to use as context when compiling the // suggestion. By default 500 and at most 1000. - int32 max_context_size = 4; + int32 max_context_size = 4 [(google.api.field_behavior) = OPTIONAL]; } // The response message for @@ -586,13 +602,54 @@ message GenerateStatelessSummaryResponse { int32 context_size = 3; } +// The request message for +// [Conversations.GenerateStatelessSuggestion][google.cloud.dialogflow.v2.Conversations.GenerateStatelessSuggestion]. +message GenerateStatelessSuggestionRequest { + // Required. The parent resource to charge for the Suggestion's generation. + // Format: `projects/<Project ID>/locations/<Location ID>`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Generator. + oneof generator_resource { + // Uncreated generator. It should be a complete generator that includes all + // information about the generator. + Generator generator = 2; + + // The resource name of the existing created generator. Format: + // `projects/<Project ID>/locations/<Location ID>/generators/<Generator ID>` + string generator_name = 3; + } + + // Optional. Context of the conversation, including transcripts. + ConversationContext conversation_context = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A list of trigger events. Generator will be triggered only if + // it's trigger event is included here. + repeated TriggerEvent trigger_events = 6 + [(google.api.field_behavior) = OPTIONAL]; +} + +// The response message for +// [Conversations.GenerateStatelessSuggestion][google.cloud.dialogflow.v2.Conversations.GenerateStatelessSuggestion]. +message GenerateStatelessSuggestionResponse { + // Required. Generated suggestion for a conversation. + GeneratorSuggestion generator_suggestion = 1 + [(google.api.field_behavior) = REQUIRED]; +} + // The request message for // [Conversations.SearchKnowledge][google.cloud.dialogflow.v2.Conversations.SearchKnowledge]. message SearchKnowledgeRequest { - // The parent resource contains the conversation profile + // Required. The parent resource contains the conversation profile // Format: 'projects/<Project ID>' or `projects/<Project // ID>/locations/<Location ID>`. - string parent = 6; + string parent = 6 [(google.api.field_behavior) = REQUIRED]; // Required. The natural language text query for knowledge search. TextInput query = 1 [(google.api.field_behavior) = REQUIRED]; @@ -607,29 +664,35 @@ message SearchKnowledgeRequest { } ]; - // The ID of the search session. + // Required. The ID of the search session. // The session_id can be combined with Dialogflow V3 Agent ID retrieved from // conversation profile or on its own to identify a search session. The search // history of the same session will impact the search result. It's up to the // API caller to choose an appropriate `Session ID`. It can be a random number // or some type of session identifiers (preferably hashed). The length must // not exceed 36 characters. - string session_id = 3; + string session_id = 3 [(google.api.field_behavior) = REQUIRED]; - // The conversation (between human agent and end user) where the search - // request is triggered. Format: `projects/<Project ID>/locations/<Location - // ID>/conversations/<Conversation ID>`. - string conversation = 4 [(google.api.resource_reference) = { - type: "dialogflow.googleapis.com/Conversation" - }]; + // Optional. The conversation (between human agent and end user) where the + // search request is triggered. Format: `projects/<Project + // ID>/locations/<Location ID>/conversations/<Conversation ID>`. + string conversation = 4 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Conversation" + } + ]; - // The name of the latest conversation message when the request is + // Optional. The name of the latest conversation message when the request is // triggered. // Format: `projects/<Project ID>/locations/<Location // ID>/conversations/<Conversation ID>/messages/<Message ID>`. - string latest_message = 5 [(google.api.resource_reference) = { - type: "dialogflow.googleapis.com/Message" - }]; + string latest_message = 5 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Message" + } + ]; } // The response message for diff --git a/google/cloud/dialogflow/v2/conversation_dataset.proto b/google/cloud/dialogflow/v2/conversation_dataset.proto index 0009330b5..179e8a30b 100644 --- a/google/cloud/dialogflow/v2/conversation_dataset.proto +++ b/google/cloud/dialogflow/v2/conversation_dataset.proto @@ -198,6 +198,14 @@ message ConversationDataset { // Output only. The number of conversations this conversation dataset // contains. int64 conversation_count = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A read only boolean field reflecting Zone Isolation status of + // the dataset. + optional bool satisfies_pzi = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A read only boolean field reflecting Zone Separation status of + // the dataset. + optional bool satisfies_pzs = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; } // The request message for diff --git a/google/cloud/dialogflow/v2/conversation_model.proto b/google/cloud/dialogflow/v2/conversation_model.proto index c192d5bfc..b8176199d 100644 --- a/google/cloud/dialogflow/v2/conversation_model.proto +++ b/google/cloud/dialogflow/v2/conversation_model.proto @@ -301,6 +301,14 @@ message ConversationModel { // Metadata for smart reply models. SmartReplyModelMetadata smart_reply_model_metadata = 9; } + + // Output only. A read only boolean field reflecting Zone Separation + // status of the model. + optional bool satisfies_pzs = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A read only boolean field reflecting Zone Isolation status + // of the model. + optional bool satisfies_pzi = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Represents evaluation result of a conversation model. diff --git a/google/cloud/dialogflow/v2/conversation_profile.proto b/google/cloud/dialogflow/v2/conversation_profile.proto index d4e989546..949ba8011 100644 --- a/google/cloud/dialogflow/v2/conversation_profile.proto +++ b/google/cloud/dialogflow/v2/conversation_profile.proto @@ -422,11 +422,22 @@ message HumanAgentAssistantConfig { bool disable_agent_query_logging = 14 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Enable query suggestion even if we can't find its answer. + // By default, queries are suggested only if we find its answer. + // Supported features: KNOWLEDGE_ASSIST + bool enable_query_suggestion_when_no_answer = 15 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. Enable including conversation context during query answer // generation. Supported features: KNOWLEDGE_SEARCH. bool enable_conversation_augmented_query = 16 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Enable query suggestion only. + // Supported features: KNOWLEDGE_ASSIST + bool enable_query_suggestion_only = 17 + [(google.api.field_behavior) = OPTIONAL]; + // Settings of suggestion trigger. // // Currently, only ARTICLE_SUGGESTION and FAQ will use this field. @@ -459,6 +470,25 @@ message HumanAgentAssistantConfig { // same participant based on the same context will be grouped into a single // Pub/Sub event or StreamingAnalyzeContentResponse. bool group_suggestion_responses = 3; + + // Optional. List of various generator resource names used in the + // conversation profile. + repeated string generators = 4 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Generator" + } + ]; + + // Optional. When disable_high_latency_features_sync_delivery is true and + // using the AnalyzeContent API, we will not deliver the responses from high + // latency features in the API response. The + // human_agent_assistant_config.notification_config must be configured and + // enable_event_based_suggestion must be set to true to receive the + // responses from high latency features in Pub/Sub. High latency feature(s): + // KNOWLEDGE_ASSIST + bool disable_high_latency_features_sync_delivery = 5 + [(google.api.field_behavior) = OPTIONAL]; } // Config for suggestion query. @@ -724,7 +754,7 @@ message HumanAgentAssistantConfig { // Currently, this feature is not general available, please contact Google // to get access. message HumanAgentHandoffConfig { - // Configuration specific to LivePerson (https://www.liveperson.com). + // Configuration specific to [LivePerson](https://www.liveperson.com). message LivePersonConfig { // Required. Account number of the LivePerson account to connect. This is // the account number you input at the login page. @@ -751,7 +781,7 @@ message HumanAgentHandoffConfig { // Required. Specifies which agent service to connect for human agent handoff. oneof agent_service { - // Uses LivePerson (https://www.liveperson.com). + // Uses [LivePerson](https://www.liveperson.com). LivePersonConfig live_person_config = 1; // Uses Salesforce Live Agent. @@ -824,6 +854,9 @@ message SuggestionFeature { // Run knowledge search with text input from agent or text generated query. KNOWLEDGE_SEARCH = 14; + + // Run knowledge assist with automatic query generation. + KNOWLEDGE_ASSIST = 15; } // Type of Human Agent Assistant API feature to request. diff --git a/google/cloud/dialogflow/v2/dialogflow_v2.yaml b/google/cloud/dialogflow/v2/dialogflow_v2.yaml index 2d23d1338..d02bc89c1 100644 --- a/google/cloud/dialogflow/v2/dialogflow_v2.yaml +++ b/google/cloud/dialogflow/v2/dialogflow_v2.yaml @@ -12,9 +12,11 @@ apis: - name: google.cloud.dialogflow.v2.ConversationProfiles - name: google.cloud.dialogflow.v2.Conversations - name: google.cloud.dialogflow.v2.Documents +- name: google.cloud.dialogflow.v2.EncryptionSpecService - name: google.cloud.dialogflow.v2.EntityTypes - name: google.cloud.dialogflow.v2.Environments - name: google.cloud.dialogflow.v2.Fulfillments +- name: google.cloud.dialogflow.v2.Generators - name: google.cloud.dialogflow.v2.Intents - name: google.cloud.dialogflow.v2.KnowledgeBases - name: google.cloud.dialogflow.v2.Participants @@ -41,6 +43,7 @@ types: - name: google.cloud.dialogflow.v2.ImportConversationDataOperationMetadata - name: google.cloud.dialogflow.v2.ImportConversationDataOperationResponse - name: google.cloud.dialogflow.v2.ImportDocumentsResponse +- name: google.cloud.dialogflow.v2.InitializeEncryptionSpecMetadata - name: google.cloud.dialogflow.v2.KnowledgeOperationMetadata - name: google.cloud.dialogflow.v2.OriginalDetectIntentRequest - name: google.cloud.dialogflow.v2.SetSuggestionFeatureConfigOperationMetadata @@ -140,6 +143,16 @@ authentication: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform, https://www.googleapis.com/auth/dialogflow + - selector: google.cloud.dialogflow.v2.EncryptionSpecService.GetEncryptionSpec + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/dialogflow + - selector: google.cloud.dialogflow.v2.EncryptionSpecService.InitializeEncryptionSpec + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/dialogflow - selector: 'google.cloud.dialogflow.v2.EntityTypes.*' oauth: canonical_scopes: |- @@ -160,6 +173,11 @@ authentication: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform, https://www.googleapis.com/auth/dialogflow + - selector: 'google.cloud.dialogflow.v2.Generators.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/dialogflow - selector: 'google.cloud.dialogflow.v2.Intents.*' oauth: canonical_scopes: |- diff --git a/google/cloud/dialogflow/v2/encryption_spec.proto b/google/cloud/dialogflow/v2/encryption_spec.proto new file mode 100644 index 000000000..e64f1c058 --- /dev/null +++ b/google/cloud/dialogflow/v2/encryption_spec.proto @@ -0,0 +1,118 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.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"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Cloud.Dialogflow.V2"; +option go_package = "cloud.google.com/go/dialogflow/apiv2/dialogflowpb;dialogflowpb"; +option java_multiple_files = true; +option java_outer_classname = "EncryptionSpecProto"; +option java_package = "com.google.cloud.dialogflow.v2"; +option objc_class_prefix = "DF"; + +// Manages encryption spec settings for Dialogflow and Agent Assist. +service EncryptionSpecService { + 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"; + + // Gets location-level encryption key specification. + rpc GetEncryptionSpec(GetEncryptionSpecRequest) returns (EncryptionSpec) { + option (google.api.http) = { + get: "/v2/{name=projects/*/locations/*/encryptionSpec}" + }; + option (google.api.method_signature) = "name"; + } + + // Initializes a location-level encryption key specification. An error will + // be thrown if the location has resources already created before the + // initialization. Once the encryption specification is initialized at a + // location, it is immutable and all newly created resources under the + // location will be encrypted with the existing specification. + rpc InitializeEncryptionSpec(InitializeEncryptionSpecRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2/{encryption_spec.name=projects/*/locations/*/encryptionSpec}:initialize" + body: "*" + }; + option (google.api.method_signature) = "encryption_spec"; + option (google.longrunning.operation_info) = { + response_type: "InitializeEncryptionSpecResponse" + metadata_type: "InitializeEncryptionSpecMetadata" + }; + } +} + +// The request to get location-level encryption specification. +message GetEncryptionSpecRequest { + // Required. The name of the encryption spec resource to get. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/EncryptionSpec" + } + ]; +} + +// A customer-managed encryption key specification that can be applied to all +// created resources (e.g. Conversation). +message EncryptionSpec { + option (google.api.resource) = { + type: "dialogflow.googleapis.com/EncryptionSpec" + pattern: "projects/{project}/locations/{location}/encryptionSpec" + plural: "encryptionSpecs" + singular: "encryptionSpec" + }; + + // Immutable. The resource name of the encryption key specification resource. + // Format: + // projects/{project}/locations/{location}/encryptionSpec + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Required. The name of customer-managed encryption key that is used to + // secure a resource and its sub-resources. If empty, the resource is secured + // by the default Google encryption key. Only the key in the same location as + // this resource is allowed to be used for encryption. Format: + // `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{key}` + string kms_key = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// The request to initialize a location-level encryption specification. +message InitializeEncryptionSpecRequest { + // Required. The encryption spec used for CMEK encryption. It is required that + // the kms key is in the same region as the endpoint. The same key will be + // used for all provisioned resources, if encryption is available. If the + // kms_key_name is left empty, no encryption will be enforced. + EncryptionSpec encryption_spec = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The response to initialize a location-level encryption specification. +message InitializeEncryptionSpecResponse {} + +// Metadata for initializing a location-level encryption specification. +message InitializeEncryptionSpecMetadata { + // Output only. The original request for initialization. + InitializeEncryptionSpecRequest request = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/dialogflow/v2/generator.proto b/google/cloud/dialogflow/v2/generator.proto new file mode 100644 index 000000000..6a6249779 --- /dev/null +++ b/google/cloud/dialogflow/v2/generator.proto @@ -0,0 +1,439 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY 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/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.V2"; +option go_package = "cloud.google.com/go/dialogflow/apiv2/dialogflowpb;dialogflowpb"; +option java_multiple_files = true; +option java_outer_classname = "GeneratorProto"; +option java_package = "com.google.cloud.dialogflow.v2"; +option objc_class_prefix = "DF"; + +// Generator Service for LLM powered Agent Assist. This service manages the +// configurations of user owned Generators, such as description, context and +// instruction, input/output format, etc. The generator resources will be used +// inside a conversation and will be triggered by TriggerEvent to query LLM for +// answers. +service Generators { + 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 generator. + rpc CreateGenerator(CreateGeneratorRequest) returns (Generator) { + option (google.api.http) = { + post: "/v2/{parent=projects/*/locations/*}/generators" + body: "generator" + additional_bindings { + post: "/v2/{parent=projects/*}/generators" + body: "generator" + } + }; + option (google.api.method_signature) = "parent,generator,generator_id"; + } + + // Retrieves a generator. + rpc GetGenerator(GetGeneratorRequest) returns (Generator) { + option (google.api.http) = { + get: "/v2/{name=projects/*/locations/*/generators/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists generators. + rpc ListGenerators(ListGeneratorsRequest) returns (ListGeneratorsResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/locations/*}/generators" + additional_bindings { get: "/v2/{parent=projects/*}/generators" } + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a generator. + rpc DeleteGenerator(DeleteGeneratorRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v2/{name=projects/*/locations/*/generators/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a generator. + rpc UpdateGenerator(UpdateGeneratorRequest) returns (Generator) { + option (google.api.http) = { + patch: "/v2/{generator.name=projects/*/locations/*/generators/*}" + body: "generator" + }; + option (google.api.method_signature) = "generator,update_mask"; + } +} + +// Request message of CreateGenerator. +message CreateGeneratorRequest { + // Required. The project/location to create generator for. Format: + // `projects/<Project ID>/locations/<Location ID>` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; + + // Required. The generator to create. + Generator generator = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The ID to use for the generator, which will become the final + // component of the generator's resource name. + // + // The generator ID must be compliant with the regression fomula + // `[a-zA-Z][a-zA-Z0-9_-]*` with the characters length in range of [3,64]. + // If the field is not provided, an Id will be auto-generated. + // If the field is provided, the caller is resposible for + // 1. the uniqueness of the ID, otherwise the request will be rejected. + // 2. the consistency for whether to use custom ID or not under a project to + // better ensure uniqueness. + string generator_id = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message of GetGenerator. +message GetGeneratorRequest { + // Required. The generator resource name to retrieve. Format: + // `projects/<Project ID>/locations/<Location ID>`/generators/<Generator ID>` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Generator" + } + ]; +} + +// Request message of ListGenerators. +message ListGeneratorsRequest { + // Required. The project/location to list generators for. Format: + // `projects/<Project ID>/locations/<Location ID>` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; + + // Optional. Maximum number of conversation models to return in a single page. + // Default to 10. + 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]; +} + +// Response of ListGenerators. +message ListGeneratorsResponse { + // List of generators retrieved. + repeated Generator generators = 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 of DeleteGenerator. +message DeleteGeneratorRequest { + // Required. The generator resource name to delete. Format: + // `projects/<Project ID>/locations/<Location ID>/generators/<Generator ID>` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Generator" + } + ]; +} + +// Request of UpdateGenerator. +message UpdateGeneratorRequest { + // Required. The generator to update. + // The name field of generator is to identify the generator to update. + Generator generator = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The list of fields to update. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents a message entry of a conversation. +message MessageEntry { + // Enumeration of the roles a participant can play in a conversation. + enum Role { + // Participant role not set. + ROLE_UNSPECIFIED = 0; + + // Participant is a human agent. + HUMAN_AGENT = 1; + + // Participant is an automated agent, such as a Dialogflow agent. + AUTOMATED_AGENT = 2; + + // Participant is an end user that has called or chatted with + // Dialogflow services. + END_USER = 3; + } + + // Optional. Participant role of the message. + Role role = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Transcript content of the message. + string text = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The language of the text. See [Language + // Support](https://cloud.google.com/dialogflow/docs/reference/language) for a + // list of the currently supported language codes. + string language_code = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Create time of the message entry. + google.protobuf.Timestamp create_time = 4 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Context of the conversation, including transcripts. +message ConversationContext { + // Optional. List of message transcripts in the conversation. + repeated MessageEntry message_entries = 1 + [(google.api.field_behavior) = OPTIONAL]; +} + +// List of summarization sections. +message SummarizationSectionList { + // Optional. Summarization sections. + repeated SummarizationSection summarization_sections = 1 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Providing examples in the generator (i.e. building a few-shot generator) +// helps convey the desired format of the LLM response. +// NEXT_ID: 10 +message FewShotExample { + // Optional. Conversation transcripts. + ConversationContext conversation_context = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Key is the placeholder field name in input, value is the value of + // the placeholder. E.g. instruction contains "@price", and ingested data has + // <"price", "10"> + map<string, string> extra_info = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Instruction list of this few_shot example. + oneof instruction_list { + // Summarization sections. + SummarizationSectionList summarization_section_list = 6; + } + + // Required. Example output of the model. + GeneratorSuggestion output = 7 [(google.api.field_behavior) = REQUIRED]; +} + +// The parameters of inference. +message InferenceParameter { + // Optional. Maximum number of the output tokens for the generator. + optional int32 max_output_tokens = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Controls the randomness of LLM predictions. + // Low temperature = less random. High temperature = more random. + // If unset (or 0), uses a default value of 0. + optional double temperature = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Top-k changes how the model selects tokens for output. A top-k of + // 1 means the selected token is the most probable among all tokens in the + // model's vocabulary (also called greedy decoding), while a top-k of 3 means + // that the next token is selected from among the 3 most probable tokens + // (using temperature). For each token selection step, the top K tokens with + // the highest probabilities are sampled. Then tokens are further filtered + // based on topP with the final token selected using temperature sampling. + // Specify a lower value for less random responses and a higher value for more + // random responses. Acceptable value is [1, 40], default to 40. + optional int32 top_k = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Top-p changes how the model selects tokens for output. Tokens are + // selected from most K (see topK parameter) probable to least until the sum + // of their probabilities equals the top-p value. For example, if tokens A, B, + // and C have a probability of 0.3, 0.2, and 0.1 and the top-p value is 0.5, + // then the model will select either A or B as the next token (using + // temperature) and doesn't consider C. The default top-p value is 0.95. + // Specify a lower value for less random responses and a higher value for more + // random responses. Acceptable value is [0.0, 1.0], default to 0.95. + optional double top_p = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents the section of summarization. +message SummarizationSection { + // Type enum of the summarization sections. + enum Type { + // Undefined section type, does not return anything. + TYPE_UNSPECIFIED = 0; + + // What the customer needs help with or has question about. + // Section name: "situation". + SITUATION = 1; + + // What the agent does to help the customer. + // Section name: "action". + ACTION = 2; + + // Result of the customer service. A single word describing the result + // of the conversation. + // Section name: "resolution". + RESOLUTION = 3; + + // Reason for cancellation if the customer requests for a cancellation. + // "N/A" otherwise. + // Section name: "reason_for_cancellation". + REASON_FOR_CANCELLATION = 4; + + // "Unsatisfied" or "Satisfied" depending on the customer's feelings at + // the end of the conversation. + // Section name: "customer_satisfaction". + CUSTOMER_SATISFACTION = 5; + + // Key entities extracted from the conversation, such as ticket number, + // order number, dollar amount, etc. + // Section names are prefixed by "entities/". + ENTITIES = 6; + + // Customer defined sections. + CUSTOMER_DEFINED = 7; + } + + // Optional. Name of the section, for example, "situation". + string key = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Definition of the section, for example, "what the customer needs + // help with or has question about." + string definition = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Type of the summarization section. + Type type = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Summarization context that customer can configure. +message SummarizationContext { + // Optional. List of sections. Note it contains both predefined section sand + // customer defined sections. + repeated SummarizationSection summarization_sections = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. List of few shot examples. + repeated FewShotExample few_shot_examples = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Version of the feature. If not set, default to latest version. + // Current candidates are ["1.0"]. + string version = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The target language of the generated summary. The language code + // for conversation will be used if this field is empty. Supported 2.0 and + // later versions. + string output_language_code = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// LLM generator. +message Generator { + option (google.api.resource) = { + type: "dialogflow.googleapis.com/Generator" + pattern: "projects/{project}/locations/{location}/generators/{generator}" + plural: "generators" + singular: "generator" + }; + + // Output only. Identifier. The resource name of the generator. Format: + // `projects/<Project ID>/locations/<Location ID>/generators/<Generator ID>` + string name = 1 [ + (google.api.field_behavior) = IDENTIFIER, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Optional. Human readable description of the generator. + string description = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Input context of the generator. + oneof context { + // Input of prebuilt Summarization feature. + SummarizationContext summarization_context = 13; + } + + // Optional. Inference parameters for this generator. + InferenceParameter inference_parameter = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The trigger event of the generator. It defines when the generator + // is triggered in a conversation. + TriggerEvent trigger_event = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Creation time of this generator. + google.protobuf.Timestamp create_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Update time of this generator. + google.protobuf.Timestamp update_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Suggested summary of the conversation. +message SummarySuggestion { + // A component of the generated summary. + message SummarySection { + // Required. Name of the section. + string section = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Summary text for the section. + string summary = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Required. All the parts of generated summary. + repeated SummarySection summary_sections = 1 + [(google.api.field_behavior) = REQUIRED]; +} + +// Suggestion generated using a Generator. +message GeneratorSuggestion { + // The suggestion could be one of the many types + oneof suggestion { + // Optional. Suggested summary. + SummarySuggestion summary_suggestion = 2 + [(google.api.field_behavior) = OPTIONAL]; + } +} + +// The event that triggers the generator and LLM execution. +enum TriggerEvent { + // Default value for TriggerEvent. + TRIGGER_EVENT_UNSPECIFIED = 0; + + // Triggers when each chat message or voice utterance ends. + END_OF_UTTERANCE = 1; + + // Triggers on the conversation manually by API calls, such as + // Conversations.GenerateStatelessSuggestion and + // Conversations.GenerateSuggestions. + MANUAL_CALL = 2; +} diff --git a/google/cloud/dialogflow/v2/participant.proto b/google/cloud/dialogflow/v2/participant.proto index b897cf625..df1bf6904 100644 --- a/google/cloud/dialogflow/v2/participant.proto +++ b/google/cloud/dialogflow/v2/participant.proto @@ -172,6 +172,19 @@ service Participants { }; option (google.api.method_signature) = "parent"; } + + // Gets knowledge assist suggestions based on historical messages. + rpc SuggestKnowledgeAssist(SuggestKnowledgeAssistRequest) + returns (SuggestKnowledgeAssistResponse) { + option (google.api.http) = { + post: "/v2/{parent=projects/*/conversations/*/participants/*}/suggestions:suggestKnowledgeAssist" + body: "*" + additional_bindings { + post: "/v2/{parent=projects/*/locations/*/conversations/*/participants/*}/suggestions:suggestKnowledgeAssist" + body: "*" + } + }; + } } // Represents a conversation participant (human agent, virtual agent, end-user). @@ -1055,6 +1068,9 @@ message SuggestionResult { // SuggestArticlesResponse if request is for ARTICLE_SUGGESTION. SuggestArticlesResponse suggest_articles_response = 2; + // SuggestKnowledgeAssistResponse if request is for KNOWLEDGE_ASSIST. + SuggestKnowledgeAssistResponse suggest_knowledge_assist_response = 8; + // SuggestFaqAnswersResponse if request is for FAQ_ANSWER. SuggestFaqAnswersResponse suggest_faq_answers_response = 3; @@ -1140,3 +1156,123 @@ message AssistQueryParameters { // ``` map<string, string> documents_metadata_filters = 1; } + +// The request message for +// [Participants.SuggestKnowledgeAssist][google.cloud.dialogflow.v2.Participants.SuggestKnowledgeAssist]. +message SuggestKnowledgeAssistRequest { + // Required. The name of the participant to fetch suggestions for. + // Format: `projects/<Project ID>/locations/<Location + // ID>/conversations/<Conversation ID>/participants/<Participant ID>`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Participant" + } + ]; + + // Optional. The name of the latest conversation message to compile + // suggestions for. If empty, it will be the latest message of the + // conversation. Format: `projects/<Project ID>/locations/<Location + // ID>/conversations/<Conversation ID>/messages/<Message ID>`. + string latest_message = 2 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Message" + } + ]; + + // Optional. Max number of messages prior to and including + // [latest_message][google.cloud.dialogflow.v2.SuggestKnowledgeAssistRequest.latest_message] + // to use as context when compiling the suggestion. The context size is by + // default 100 and at most 100. + int32 context_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The previously suggested query for the given conversation. This + // helps identify whether the next suggestion we generate is resonably + // different from the previous one. This is useful to avoid similar + // suggestions within the conversation. + string previous_suggested_query = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response message for +// [Participants.SuggestKnowledgeAssist][google.cloud.dialogflow.v2.Participants.SuggestKnowledgeAssist]. +message SuggestKnowledgeAssistResponse { + // Output only. Knowledge Assist suggestion. + KnowledgeAssistAnswer knowledge_assist_answer = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The name of the latest conversation message used to compile suggestion for. + // Format: `projects/<Project ID>/locations/<Location + // ID>/conversations/<Conversation ID>/messages/<Message ID>`. + string latest_message = 2; + + // Number of messages prior to and including + // [latest_message][google.cloud.dialogflow.v2.SuggestKnowledgeAssistResponse.latest_message] + // to compile the suggestion. It may be smaller than the + // [SuggestKnowledgeAssistRequest.context_size][google.cloud.dialogflow.v2.SuggestKnowledgeAssistRequest.context_size] + // field in the request if there are fewer messages in the conversation. + int32 context_size = 3; +} + +// Represents a Knowledge Assist answer. +message KnowledgeAssistAnswer { + // Represents a suggested query. + message SuggestedQuery { + // Suggested query text. + string query_text = 1; + } + + // Represents an answer from Knowledge. Currently supports FAQ and Generative + // answers. + message KnowledgeAnswer { + // Details about source of FAQ answer. + message FaqSource { + // The corresponding FAQ question. + string question = 2; + } + + // Details about source of Generative answer. + message GenerativeSource { + // Snippet Source for a Generative Prediction. + message Snippet { + // URI the data is sourced from. + string uri = 2; + + // Text taken from that URI. + string text = 3; + + // Title of the document. + string title = 4; + } + + // All snippets used for this Generative Prediction, with their source URI + // and data. + repeated Snippet snippets = 1; + } + + // The piece of text from the `source` that answers this suggested query. + string answer_text = 1; + + // Source of result. + oneof source { + // Populated if the prediction came from FAQ. + FaqSource faq_source = 3; + + // Populated if the prediction was Generative. + GenerativeSource generative_source = 4; + } + } + + // The query suggested based on the context. Suggestion is made only if it + // is different from the previous suggestion. + SuggestedQuery suggested_query = 1; + + // The answer generated for the suggested query. Whether or not an answer is + // generated depends on how confident we are about the generated query. + KnowledgeAnswer suggested_query_answer = 2; + + // The name of the answer record. + // Format: `projects/<Project ID>/locations/<location ID>/answer + // Records/<Answer Record ID>`. + string answer_record = 3; +} diff --git a/google/cloud/dialogflow/v2beta1/BUILD.bazel b/google/cloud/dialogflow/v2beta1/BUILD.bazel index da9011d1d..f47d22993 100644 --- a/google/cloud/dialogflow/v2beta1/BUILD.bazel +++ b/google/cloud/dialogflow/v2beta1/BUILD.bazel @@ -32,10 +32,12 @@ proto_library( "conversation_event.proto", "conversation_profile.proto", "document.proto", + "encryption_spec.proto", "entity_type.proto", "environment.proto", "fulfillment.proto", "gcs.proto", + "generator.proto", "human_agent_assistant_event.proto", "intent.proto", "knowledge_base.proto", @@ -129,12 +131,16 @@ java_gapic_test( "com.google.cloud.dialogflow.v2beta1.ConversationsClientTest", "com.google.cloud.dialogflow.v2beta1.DocumentsClientHttpJsonTest", "com.google.cloud.dialogflow.v2beta1.DocumentsClientTest", + "com.google.cloud.dialogflow.v2beta1.EncryptionSpecServiceClientHttpJsonTest", + "com.google.cloud.dialogflow.v2beta1.EncryptionSpecServiceClientTest", "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.GeneratorsClientHttpJsonTest", + "com.google.cloud.dialogflow.v2beta1.GeneratorsClientTest", "com.google.cloud.dialogflow.v2beta1.IntentsClientHttpJsonTest", "com.google.cloud.dialogflow.v2beta1.IntentsClientTest", "com.google.cloud.dialogflow.v2beta1.KnowledgeBasesClientHttpJsonTest", @@ -400,6 +406,7 @@ load( csharp_proto_library( name = "dialogflow_csharp_proto", + extra_opts = [], deps = [":dialogflow_proto"], ) diff --git a/google/cloud/dialogflow/v2beta1/answer_record.proto b/google/cloud/dialogflow/v2beta1/answer_record.proto index dc20cd9d1..df6d0477d 100644 --- a/google/cloud/dialogflow/v2beta1/answer_record.proto +++ b/google/cloud/dialogflow/v2beta1/answer_record.proto @@ -265,6 +265,22 @@ message AgentAssistantFeedback { repeated string clicked_uris = 2; } + // Feedback for knowledge assist. + message KnowledgeAssistFeedback { + // Whether the suggested answer was copied by the human agent. + // If the value is set to be true, + // [AnswerFeedback.clicked][google.cloud.dialogflow.v2beta1.AnswerFeedback.clicked] + // will be updated to be true. + bool answer_copied = 1; + + // The URIs clicked by the human agent. The value is appended for each + // [UpdateAnswerRecordRequest][google.cloud.dialogflow.v2beta1.UpdateAnswerRecordRequest]. + // If the value is not empty, + // [AnswerFeedback.clicked][google.cloud.dialogflow.v2beta1.AnswerFeedback.clicked] + // will be updated to be true. + repeated string clicked_uris = 2; + } + // Optional. Whether or not the suggested answer is relevant. // // For example: @@ -300,6 +316,10 @@ message AgentAssistantFeedback { // Optional. Feedback for knowledge search. KnowledgeSearchFeedback knowledge_search_feedback = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Feedback for knowledge assist. + KnowledgeAssistFeedback knowledge_assist_feedback = 6 + [(google.api.field_behavior) = OPTIONAL]; } // Request message for diff --git a/google/cloud/dialogflow/v2beta1/audio_config.proto b/google/cloud/dialogflow/v2beta1/audio_config.proto index 1974640ca..ca7b4ed5f 100644 --- a/google/cloud/dialogflow/v2beta1/audio_config.proto +++ b/google/cloud/dialogflow/v2beta1/audio_config.proto @@ -216,6 +216,10 @@ message InputAudioConfig { // Enable automatic punctuation option at the speech backend. bool enable_automatic_punctuation = 17; + // If set, use this no-speech timeout when the agent does not provide a + // no-speech timeout itself. + google.protobuf.Duration default_no_speech_timeout = 18; + // If `true`, the request will opt out for STT conformer model migration. // This field will be deprecated once force migration takes place in June // 2024. Please refer to [Dialogflow ES Speech model @@ -338,6 +342,31 @@ message SpeechToTextConfig { // for model selection. string model = 2; + // Audio encoding of the audio content to process. + AudioEncoding audio_encoding = 6; + + // Sample rate (in Hertz) of the audio content sent in the query. + // Refer to + // [Cloud Speech API + // documentation](https://cloud.google.com/speech-to-text/docs/basics) for + // more details. + int32 sample_rate_hertz = 7; + + // The language of the supplied audio. Dialogflow does not do translations. + // See [Language + // 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. + string language_code = 8; + + // If `true`, Dialogflow returns + // [SpeechWordInfo][google.cloud.dialogflow.v2beta1.SpeechWordInfo] in + // [StreamingRecognitionResult][google.cloud.dialogflow.v2beta1.StreamingRecognitionResult] + // with information about the recognized speech words, e.g. start and end time + // offsets. If false or unspecified, Speech doesn't return any word-level + // information. + bool enable_word_info = 9; + // Use timeout based endpointing, interpreting endpointer sensitivy as // seconds of timeout value. bool use_timeout_based_endpointing = 11; diff --git a/google/cloud/dialogflow/v2beta1/conversation.proto b/google/cloud/dialogflow/v2beta1/conversation.proto index df9b4f677..26c7bd7c7 100644 --- a/google/cloud/dialogflow/v2beta1/conversation.proto +++ b/google/cloud/dialogflow/v2beta1/conversation.proto @@ -21,6 +21,7 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/dialogflow/v2beta1/conversation_profile.proto"; +import "google/cloud/dialogflow/v2beta1/generator.proto"; import "google/cloud/dialogflow/v2beta1/participant.proto"; import "google/cloud/dialogflow/v2beta1/session.proto"; import "google/protobuf/timestamp.proto"; @@ -123,7 +124,7 @@ service Conversations { body: "*" } }; - option (google.api.method_signature) = "parent"; + option (google.api.method_signature) = "parent,requests"; } // Lists messages that belong to a given conversation. @@ -171,6 +172,16 @@ service Conversations { }; } + // Generates and returns a suggestion for a conversation that does not have a + // resource created for it. + rpc GenerateStatelessSuggestion(GenerateStatelessSuggestionRequest) + returns (GenerateStatelessSuggestionResponse) { + option (google.api.http) = { + post: "/v2beta1/{parent=projects/*/locations/*}/statelessSuggestion:generate" + body: "*" + }; + } + // Get answers for the given query based on knowledge documents. rpc SearchKnowledge(SearchKnowledgeRequest) returns (SearchKnowledgeResponse) { @@ -202,6 +213,8 @@ message Conversation { type: "dialogflow.googleapis.com/Conversation" pattern: "projects/{project}/conversations/{conversation}" pattern: "projects/{project}/locations/{location}/conversations/{conversation}" + plural: "conversations" + singular: "conversation" }; // Enumeration of the completion status of the conversation. @@ -233,10 +246,13 @@ message Conversation { HUMAN_ASSIST_STAGE = 2; } - // Output only. The unique identifier of this conversation. + // Output only. Identifier. The unique identifier of this conversation. // Format: `projects/<Project ID>/locations/<Location // ID>/conversations/<Conversation ID>`. - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + string name = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.field_behavior) = IDENTIFIER + ]; // Output only. The current state of the Conversation. LifecycleState lifecycle_state = 2 @@ -258,8 +274,8 @@ message Conversation { ConversationPhoneNumber phone_number = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - // The stage of a conversation. It indicates whether the virtual agent or a - // human agent is handling the conversation. + // Optional. The stage of a conversation. It indicates whether the virtual + // agent or a human agent is handling the conversation. // // If the conversation is created with the conversation profile that has // Dialogflow config set, defaults to @@ -274,7 +290,8 @@ message Conversation { // [ConversationStage.VIRTUAL_AGENT_STAGE][google.cloud.dialogflow.v2beta1.Conversation.ConversationStage.VIRTUAL_AGENT_STAGE] // stage and directly goes to // [ConversationStage.HUMAN_ASSIST_STAGE][google.cloud.dialogflow.v2beta1.Conversation.ConversationStage.HUMAN_ASSIST_STAGE]. - ConversationStage conversation_stage = 7; + ConversationStage conversation_stage = 7 + [(google.api.field_behavior) = OPTIONAL]; // Output only. The time the conversation was started. google.protobuf.Timestamp start_time = 5 @@ -334,29 +351,20 @@ message ListConversationsRequest { // Optional. The maximum number of items to return in a single page. By // default 100 and at most 1000. - int32 page_size = 2; + 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; - - // A filter expression that filters conversations listed in the response. In - // general, the expression must specify the field name, a comparison operator, - // and the value to use for filtering: - // <ul> - // <li>The value must be a string, a number, or a boolean.</li> - // <li>The comparison operator must be either `=`,`!=`, `>`, or `<`.</li> - // <li>To filter on multiple expressions, separate the - // expressions with `AND` or `OR` (omitting both implies `AND`).</li> - // <li>For clarity, expressions can be enclosed in parentheses.</li> - // </ul> - // Only `lifecycle_state` can be filtered on in this way. For example, - // the following expression only returns `COMPLETED` conversations: + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A filter expression that filters conversations listed in the + // response. Only `lifecycle_state` can be filtered on in this way. For + // example, the following expression only returns `COMPLETED` conversations: // // `lifecycle_state = "COMPLETED"` // // For more information about filtering, see // [API Filtering](https://aip.dev/160). - string filter = 4; + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; } // The response message for @@ -465,14 +473,14 @@ message ListMessagesRequest { // // For more information about filtering, see // [API Filtering](https://aip.dev/160). - string filter = 4; + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; // Optional. The maximum number of items to return in a single page. By // default 100 and at most 1000. - int32 page_size = 2; + 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; + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; } // The response message for @@ -501,23 +509,28 @@ message SuggestConversationSummaryRequest { } ]; - // The name of the latest conversation message used as context for + // Optional. The name of the latest conversation message used as context for // compiling suggestion. If empty, the latest message of the conversation will // be used. // // Format: `projects/<Project ID>/locations/<Location // ID>/conversations/<Conversation ID>/messages/<Message ID>`. - string latest_message = 3 [(google.api.resource_reference) = { - type: "dialogflow.googleapis.com/Message" - }]; + string latest_message = 3 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Message" + } + ]; - // Max number of messages prior to and including + // Optional. Max number of messages prior to and including // [latest_message] to use as context when compiling the // suggestion. By default 500 and at most 1000. - int32 context_size = 4; + int32 context_size = 4 [(google.api.field_behavior) = OPTIONAL]; - // Parameters for a human assist query. Only used for POC/demo purpose. - AssistQueryParameters assist_query_params = 5; + // Optional. Parameters for a human assist query. Only used for POC/demo + // purpose. + AssistQueryParameters assist_query_params = 5 + [(google.api.field_behavior) = OPTIONAL]; } // The response message for @@ -597,18 +610,21 @@ message GenerateStatelessSummaryRequest { ConversationProfile conversation_profile = 2 [(google.api.field_behavior) = REQUIRED]; - // The name of the latest conversation message used as context for + // Optional. The name of the latest conversation message used as context for // generating a Summary. If empty, the latest message of the conversation will // be used. The format is specific to the user and the names of the messages // provided. - string latest_message = 3 [(google.api.resource_reference) = { - type: "dialogflow.googleapis.com/Message" - }]; + string latest_message = 3 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Message" + } + ]; - // Max number of messages prior to and including + // Optional. Max number of messages prior to and including // [latest_message] to use as context when compiling the // suggestion. By default 500 and at most 1000. - int32 max_context_size = 4; + int32 max_context_size = 4 [(google.api.field_behavior) = OPTIONAL]; } // The response message for @@ -646,13 +662,54 @@ message GenerateStatelessSummaryResponse { int32 context_size = 3; } +// The request message for +// [Conversations.GenerateStatelessSuggestion][google.cloud.dialogflow.v2beta1.Conversations.GenerateStatelessSuggestion]. +message GenerateStatelessSuggestionRequest { + // Required. The parent resource to charge for the Suggestion's generation. + // Format: `projects/<Project ID>/locations/<Location ID>`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Generator. + oneof generator_resource { + // Uncreated generator. It should be a complete generator that includes all + // information about the generator. + Generator generator = 2; + + // The resource name of the existing created generator. Format: + // `projects/<Project ID>/locations/<Location ID>/generators/<Generator ID>` + string generator_name = 3; + } + + // Optional. Context of the conversation, including transcripts. + ConversationContext conversation_context = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A list of trigger events. Generator will be triggered only if + // it's trigger event is included here. + repeated TriggerEvent trigger_events = 6 + [(google.api.field_behavior) = OPTIONAL]; +} + +// The response message for +// [Conversations.GenerateStatelessSuggestion][google.cloud.dialogflow.v2beta1.Conversations.GenerateStatelessSuggestion]. +message GenerateStatelessSuggestionResponse { + // Required. Generated suggestion for a conversation. + GeneratorSuggestion generator_suggestion = 1 + [(google.api.field_behavior) = REQUIRED]; +} + // The request message for // [Conversations.SearchKnowledge][google.cloud.dialogflow.v2beta1.Conversations.SearchKnowledge]. message SearchKnowledgeRequest { - // The parent resource contains the conversation profile + // Required. The parent resource contains the conversation profile // Format: 'projects/<Project ID>' or `projects/<Project // ID>/locations/<Location ID>`. - string parent = 6; + string parent = 6 [(google.api.field_behavior) = REQUIRED]; // Required. The natural language text query for knowledge search. TextInput query = 1 [(google.api.field_behavior) = REQUIRED]; @@ -667,29 +724,35 @@ message SearchKnowledgeRequest { } ]; - // The ID of the search session. + // Required. The ID of the search session. // The session_id can be combined with Dialogflow V3 Agent ID retrieved from // conversation profile or on its own to identify a search session. The search // history of the same session will impact the search result. It's up to the // API caller to choose an appropriate `Session ID`. It can be a random number // or some type of session identifiers (preferably hashed). The length must // not exceed 36 characters. - string session_id = 3; + string session_id = 3 [(google.api.field_behavior) = REQUIRED]; - // The conversation (between human agent and end user) where the search - // request is triggered. Format: `projects/<Project ID>/locations/<Location - // ID>/conversations/<Conversation ID>`. - string conversation = 4 [(google.api.resource_reference) = { - type: "dialogflow.googleapis.com/Conversation" - }]; + // Optional. The conversation (between human agent and end user) where the + // search request is triggered. Format: `projects/<Project + // ID>/locations/<Location ID>/conversations/<Conversation ID>`. + string conversation = 4 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Conversation" + } + ]; - // The name of the latest conversation message when the request is + // Optional. The name of the latest conversation message when the request is // triggered. // Format: `projects/<Project ID>/locations/<Location // ID>/conversations/<Conversation ID>/messages/<Message ID>`. - string latest_message = 5 [(google.api.resource_reference) = { - type: "dialogflow.googleapis.com/Message" - }]; + string latest_message = 5 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Message" + } + ]; } // The response message for diff --git a/google/cloud/dialogflow/v2beta1/conversation_profile.proto b/google/cloud/dialogflow/v2beta1/conversation_profile.proto index 2ffbff7a2..88d4e8abe 100644 --- a/google/cloud/dialogflow/v2beta1/conversation_profile.proto +++ b/google/cloud/dialogflow/v2beta1/conversation_profile.proto @@ -335,11 +335,22 @@ message HumanAgentAssistantConfig { bool disable_agent_query_logging = 14 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Enable query suggestion even if we can't find its answer. + // By default, queries are suggested only if we find its answer. + // Supported features: KNOWLEDGE_ASSIST + bool enable_query_suggestion_when_no_answer = 15 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. Enable including conversation context during query answer // generation. Supported features: KNOWLEDGE_SEARCH. bool enable_conversation_augmented_query = 16 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Enable query suggestion only. + // Supported features: KNOWLEDGE_ASSIST + bool enable_query_suggestion_only = 17 + [(google.api.field_behavior) = OPTIONAL]; + // Settings of suggestion trigger. // // Currently, only ARTICLE_SUGGESTION, FAQ, and DIALOGFLOW_ASSIST will use @@ -373,6 +384,25 @@ message HumanAgentAssistantConfig { // same participant based on the same context will be grouped into a single // Pub/Sub event or StreamingAnalyzeContentResponse. bool group_suggestion_responses = 3; + + // Optional. List of various generator resource names used in the + // conversation profile. + repeated string generators = 4 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Generator" + } + ]; + + // Optional. When disable_high_latency_features_sync_delivery is true and + // using the AnalyzeContent API, we will not deliver the responses from high + // latency features in the API response. The + // human_agent_assistant_config.notification_config must be configured and + // enable_event_based_suggestion must be set to true to receive the + // responses from high latency features in Pub/Sub. High latency feature(s): + // KNOWLEDGE_ASSIST + bool disable_high_latency_features_sync_delivery = 5 + [(google.api.field_behavior) = OPTIONAL]; } // Config for suggestion query. @@ -638,7 +668,7 @@ message HumanAgentAssistantConfig { // Currently, this feature is not general available, please contact Google // to get access. message HumanAgentHandoffConfig { - // Configuration specific to LivePerson (https://www.liveperson.com). + // Configuration specific to [LivePerson](https://www.liveperson.com). message LivePersonConfig { // Required. Account number of the LivePerson account to connect. This is // the account number you input at the login page. @@ -665,7 +695,7 @@ message HumanAgentHandoffConfig { // Required. Specifies which agent service to connect for human agent handoff. oneof agent_service { - // Uses LivePerson (https://www.liveperson.com). + // Uses [LivePerson](https://www.liveperson.com). LivePersonConfig live_person_config = 1; // Uses Salesforce Live Agent. diff --git a/google/cloud/dialogflow/v2beta1/dialogflow_grpc_service_config.json b/google/cloud/dialogflow/v2beta1/dialogflow_grpc_service_config.json index 825b42f19..a4ccf38e3 100755 --- a/google/cloud/dialogflow/v2beta1/dialogflow_grpc_service_config.json +++ b/google/cloud/dialogflow/v2beta1/dialogflow_grpc_service_config.json @@ -2,42 +2,6 @@ "methodConfig": [ { "name": [ - { - "service": "google.cloud.dialogflow.aam.v2beta1.AamAdminTool" - }, - { - "service": "google.cloud.dialogflow.aam.v2beta1.AamDatasets" - }, - { - "service": "google.cloud.dialogflow.aam.v2beta1.AamDiscriminants" - }, - { - "service": "google.cloud.dialogflow.aam.v2beta1.AamDiscriminantChanges" - }, - { - "service": "google.cloud.dialogflow.aam.v2beta1.AamLabels" - }, - { - "service": "google.cloud.dialogflow.aam.v2beta1.AamNotices" - }, - { - "service": "google.cloud.dialogflow.aam.v2beta1.AamProjects" - }, - { - "service": "google.cloud.dialogflow.aam.v2beta1.AamTasks" - }, - { - "service": "google.cloud.dialogflow.aam.v2beta1.AamTopicClusters" - }, - { - "service": "google.cloud.dialogflow.aam.v2beta1.AamTrainingRuns" - }, - { - "service": "google.cloud.dialogflow.aam.v2beta1.AamTranscripts" - }, - { - "service": "google.cloud.dialogflow.aam.v2beta1.AamUtterances" - }, { "service": "google.cloud.dialogflow.v2beta1.Agents" }, @@ -125,6 +89,9 @@ { "service": "google.cloud.dialogflow.v2beta1.SessionEntityTypes" }, + { + "service": "google.cloud.dialogflow.v2beta1.SipTrunks" + }, { "service": "google.cloud.dialogflow.v2beta1.Tools" }, diff --git a/google/cloud/dialogflow/v2beta1/dialogflow_v2beta1.yaml b/google/cloud/dialogflow/v2beta1/dialogflow_v2beta1.yaml index 71b4cdc7a..a598233b0 100644 --- a/google/cloud/dialogflow/v2beta1/dialogflow_v2beta1.yaml +++ b/google/cloud/dialogflow/v2beta1/dialogflow_v2beta1.yaml @@ -10,9 +10,11 @@ apis: - name: google.cloud.dialogflow.v2beta1.ConversationProfiles - name: google.cloud.dialogflow.v2beta1.Conversations - name: google.cloud.dialogflow.v2beta1.Documents +- name: google.cloud.dialogflow.v2beta1.EncryptionSpecService - name: google.cloud.dialogflow.v2beta1.EntityTypes - name: google.cloud.dialogflow.v2beta1.Environments - name: google.cloud.dialogflow.v2beta1.Fulfillments +- name: google.cloud.dialogflow.v2beta1.Generators - name: google.cloud.dialogflow.v2beta1.Intents - name: google.cloud.dialogflow.v2beta1.KnowledgeBases - name: google.cloud.dialogflow.v2beta1.Participants @@ -30,6 +32,7 @@ types: - name: google.cloud.dialogflow.v2beta1.ExportAgentResponse - name: google.cloud.dialogflow.v2beta1.HumanAgentAssistantEvent - name: google.cloud.dialogflow.v2beta1.ImportDocumentsResponse +- name: google.cloud.dialogflow.v2beta1.InitializeEncryptionSpecMetadata - name: google.cloud.dialogflow.v2beta1.KnowledgeOperationMetadata - name: google.cloud.dialogflow.v2beta1.OriginalDetectIntentRequest - name: google.cloud.dialogflow.v2beta1.SetSuggestionFeatureConfigOperationMetadata @@ -113,6 +116,16 @@ authentication: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform, https://www.googleapis.com/auth/dialogflow + - selector: google.cloud.dialogflow.v2beta1.EncryptionSpecService.GetEncryptionSpec + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/dialogflow + - selector: google.cloud.dialogflow.v2beta1.EncryptionSpecService.InitializeEncryptionSpec + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/dialogflow - selector: 'google.cloud.dialogflow.v2beta1.EntityTypes.*' oauth: canonical_scopes: |- @@ -133,6 +146,11 @@ authentication: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform, https://www.googleapis.com/auth/dialogflow + - selector: 'google.cloud.dialogflow.v2beta1.Generators.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform, + https://www.googleapis.com/auth/dialogflow - selector: 'google.cloud.dialogflow.v2beta1.Intents.*' oauth: canonical_scopes: |- diff --git a/google/cloud/dialogflow/v2beta1/encryption_spec.proto b/google/cloud/dialogflow/v2beta1/encryption_spec.proto new file mode 100644 index 000000000..119bf38f8 --- /dev/null +++ b/google/cloud/dialogflow/v2beta1/encryption_spec.proto @@ -0,0 +1,118 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.dialogflow.v2beta1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/longrunning/operations.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Cloud.Dialogflow.V2Beta1"; +option go_package = "cloud.google.com/go/dialogflow/apiv2beta1/dialogflowpb;dialogflowpb"; +option java_multiple_files = true; +option java_outer_classname = "EncryptionSpecProto"; +option java_package = "com.google.cloud.dialogflow.v2beta1"; +option objc_class_prefix = "DF"; + +// Manages encryption spec settings for Dialogflow and Agent Assist. +service EncryptionSpecService { + 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"; + + // Gets location-level encryption key specification. + rpc GetEncryptionSpec(GetEncryptionSpecRequest) returns (EncryptionSpec) { + option (google.api.http) = { + get: "/v2beta1/{name=projects/*/locations/*/encryptionSpec}" + }; + option (google.api.method_signature) = "name"; + } + + // Initializes a location-level encryption key specification. An error will + // be thrown if the location has resources already created before the + // initialization. Once the encryption specification is initialized at a + // location, it is immutable and all newly created resources under the + // location will be encrypted with the existing specification. + rpc InitializeEncryptionSpec(InitializeEncryptionSpecRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2beta1/{encryption_spec.name=projects/*/locations/*/encryptionSpec}:initialize" + body: "*" + }; + option (google.api.method_signature) = "encryption_spec"; + option (google.longrunning.operation_info) = { + response_type: "InitializeEncryptionSpecResponse" + metadata_type: "InitializeEncryptionSpecMetadata" + }; + } +} + +// The request to get location-level encryption specification. +message GetEncryptionSpecRequest { + // Required. The name of the encryption spec resource to get. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/EncryptionSpec" + } + ]; +} + +// A customer-managed encryption key specification that can be applied to all +// created resources (e.g. Conversation). +message EncryptionSpec { + option (google.api.resource) = { + type: "dialogflow.googleapis.com/EncryptionSpec" + pattern: "projects/{project}/locations/{location}/encryptionSpec" + plural: "encryptionSpecs" + singular: "encryptionSpec" + }; + + // Immutable. The resource name of the encryption key specification resource. + // Format: + // projects/{project}/locations/{location}/encryptionSpec + string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Required. The name of customer-managed encryption key that is used to + // secure a resource and its sub-resources. If empty, the resource is secured + // by the default Google encryption key. Only the key in the same location as + // this resource is allowed to be used for encryption. Format: + // `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{key}` + string kms_key = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// The request to initialize a location-level encryption specification. +message InitializeEncryptionSpecRequest { + // Required. The encryption spec used for CMEK encryption. It is required that + // the kms key is in the same region as the endpoint. The same key will be + // used for all provisioned resources, if encryption is available. If the + // kms_key_name is left empty, no encryption will be enforced. + EncryptionSpec encryption_spec = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The response to initialize a location-level encryption specification. +message InitializeEncryptionSpecResponse {} + +// Metadata for initializing a location-level encryption specification. +message InitializeEncryptionSpecMetadata { + // Output only. The original request for initialization. + InitializeEncryptionSpecRequest request = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/dialogflow/v2beta1/generator.proto b/google/cloud/dialogflow/v2beta1/generator.proto new file mode 100644 index 000000000..3e59a12fc --- /dev/null +++ b/google/cloud/dialogflow/v2beta1/generator.proto @@ -0,0 +1,439 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY 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.v2beta1; + +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; +option csharp_namespace = "Google.Cloud.Dialogflow.V2Beta1"; +option go_package = "cloud.google.com/go/dialogflow/apiv2beta1/dialogflowpb;dialogflowpb"; +option java_multiple_files = true; +option java_outer_classname = "GeneratorProto"; +option java_package = "com.google.cloud.dialogflow.v2beta1"; +option objc_class_prefix = "DF"; + +// Generator Service for LLM powered Agent Assist. This service manages the +// configurations of user owned Generators, such as description, context and +// instruction, input/output format, etc. The generator resources will be used +// inside a conversation and will be triggered by TriggerEvent to query LLM for +// answers. +service Generators { + 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 generator. + rpc CreateGenerator(CreateGeneratorRequest) returns (Generator) { + option (google.api.http) = { + post: "/v2beta1/{parent=projects/*/locations/*}/generators" + body: "generator" + additional_bindings { + post: "/v2beta1/{parent=projects/*}/generators" + body: "generator" + } + }; + option (google.api.method_signature) = "parent,generator,generator_id"; + } + + // Retrieves a generator. + rpc GetGenerator(GetGeneratorRequest) returns (Generator) { + option (google.api.http) = { + get: "/v2beta1/{name=projects/*/locations/*/generators/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists generators. + rpc ListGenerators(ListGeneratorsRequest) returns (ListGeneratorsResponse) { + option (google.api.http) = { + get: "/v2beta1/{parent=projects/*/locations/*}/generators" + additional_bindings { get: "/v2beta1/{parent=projects/*}/generators" } + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a generator. + rpc DeleteGenerator(DeleteGeneratorRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v2beta1/{name=projects/*/locations/*/generators/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a generator. + rpc UpdateGenerator(UpdateGeneratorRequest) returns (Generator) { + option (google.api.http) = { + patch: "/v2beta1/{generator.name=projects/*/locations/*/generators/*}" + body: "generator" + }; + option (google.api.method_signature) = "generator,update_mask"; + } +} + +// Request message of CreateGenerator. +message CreateGeneratorRequest { + // Required. The project/location to create generator for. Format: + // `projects/<Project ID>/locations/<Location ID>` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; + + // Required. The generator to create. + Generator generator = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The ID to use for the generator, which will become the final + // component of the generator's resource name. + // + // The generator ID must be compliant with the regression fomula + // `[a-zA-Z][a-zA-Z0-9_-]*` with the characters length in range of [3,64]. + // If the field is not provided, an Id will be auto-generated. + // If the field is provided, the caller is resposible for + // 1. the uniqueness of the ID, otherwise the request will be rejected. + // 2. the consistency for whether to use custom ID or not under a project to + // better ensure uniqueness. + string generator_id = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message of GetGenerator. +message GetGeneratorRequest { + // Required. The generator resource name to retrieve. Format: + // `projects/<Project ID>/locations/<Location ID>`/generators/<Generator ID>` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Generator" + } + ]; +} + +// Request message of ListGenerators. +message ListGeneratorsRequest { + // Required. The project/location to list generators for. Format: + // `projects/<Project ID>/locations/<Location ID>` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; + + // Optional. Maximum number of conversation models to return in a single page. + // Default to 10. + 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]; +} + +// Response of ListGenerators. +message ListGeneratorsResponse { + // List of generators retrieved. + repeated Generator generators = 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 of DeleteGenerator. +message DeleteGeneratorRequest { + // Required. The generator resource name to delete. Format: + // `projects/<Project ID>/locations/<Location ID>/generators/<Generator ID>` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Generator" + } + ]; +} + +// Request of UpdateGenerator. +message UpdateGeneratorRequest { + // Required. The generator to update. + // The name field of generator is to identify the generator to update. + Generator generator = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The list of fields to update. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents a message entry of a conversation. +message MessageEntry { + // Enumeration of the roles a participant can play in a conversation. + enum Role { + // Participant role not set. + ROLE_UNSPECIFIED = 0; + + // Participant is a human agent. + HUMAN_AGENT = 1; + + // Participant is an automated agent, such as a Dialogflow agent. + AUTOMATED_AGENT = 2; + + // Participant is an end user that has called or chatted with + // Dialogflow services. + END_USER = 3; + } + + // Optional. Participant role of the message. + Role role = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Transcript content of the message. + string text = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The language of the text. See [Language + // Support](https://cloud.google.com/dialogflow/docs/reference/language) for a + // list of the currently supported language codes. + string language_code = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Create time of the message entry. + google.protobuf.Timestamp create_time = 4 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Context of the conversation, including transcripts. +message ConversationContext { + // Optional. List of message transcripts in the conversation. + repeated MessageEntry message_entries = 1 + [(google.api.field_behavior) = OPTIONAL]; +} + +// List of summarization sections. +message SummarizationSectionList { + // Optional. Summarization sections. + repeated SummarizationSection summarization_sections = 1 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Providing examples in the generator (i.e. building a few-shot generator) +// helps convey the desired format of the LLM response. +// NEXT_ID: 10 +message FewShotExample { + // Optional. Conversation transcripts. + ConversationContext conversation_context = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Key is the placeholder field name in input, value is the value of + // the placeholder. E.g. instruction contains "@price", and ingested data has + // <"price", "10"> + map<string, string> extra_info = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Instruction list of this few_shot example. + oneof instruction_list { + // Summarization sections. + SummarizationSectionList summarization_section_list = 6; + } + + // Required. Example output of the model. + GeneratorSuggestion output = 7 [(google.api.field_behavior) = REQUIRED]; +} + +// The parameters of inference. +message InferenceParameter { + // Optional. Maximum number of the output tokens for the generator. + optional int32 max_output_tokens = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Controls the randomness of LLM predictions. + // Low temperature = less random. High temperature = more random. + // If unset (or 0), uses a default value of 0. + optional double temperature = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Top-k changes how the model selects tokens for output. A top-k of + // 1 means the selected token is the most probable among all tokens in the + // model's vocabulary (also called greedy decoding), while a top-k of 3 means + // that the next token is selected from among the 3 most probable tokens + // (using temperature). For each token selection step, the top K tokens with + // the highest probabilities are sampled. Then tokens are further filtered + // based on topP with the final token selected using temperature sampling. + // Specify a lower value for less random responses and a higher value for more + // random responses. Acceptable value is [1, 40], default to 40. + optional int32 top_k = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Top-p changes how the model selects tokens for output. Tokens are + // selected from most K (see topK parameter) probable to least until the sum + // of their probabilities equals the top-p value. For example, if tokens A, B, + // and C have a probability of 0.3, 0.2, and 0.1 and the top-p value is 0.5, + // then the model will select either A or B as the next token (using + // temperature) and doesn't consider C. The default top-p value is 0.95. + // Specify a lower value for less random responses and a higher value for more + // random responses. Acceptable value is [0.0, 1.0], default to 0.95. + optional double top_p = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Represents the section of summarization. +message SummarizationSection { + // Type enum of the summarization sections. + enum Type { + // Undefined section type, does not return anything. + TYPE_UNSPECIFIED = 0; + + // What the customer needs help with or has question about. + // Section name: "situation". + SITUATION = 1; + + // What the agent does to help the customer. + // Section name: "action". + ACTION = 2; + + // Result of the customer service. A single word describing the result + // of the conversation. + // Section name: "resolution". + RESOLUTION = 3; + + // Reason for cancellation if the customer requests for a cancellation. + // "N/A" otherwise. + // Section name: "reason_for_cancellation". + REASON_FOR_CANCELLATION = 4; + + // "Unsatisfied" or "Satisfied" depending on the customer's feelings at + // the end of the conversation. + // Section name: "customer_satisfaction". + CUSTOMER_SATISFACTION = 5; + + // Key entities extracted from the conversation, such as ticket number, + // order number, dollar amount, etc. + // Section names are prefixed by "entities/". + ENTITIES = 6; + + // Customer defined sections. + CUSTOMER_DEFINED = 7; + } + + // Optional. Name of the section, for example, "situation". + string key = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Definition of the section, for example, "what the customer needs + // help with or has question about." + string definition = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Type of the summarization section. + Type type = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Summarization context that customer can configure. +message SummarizationContext { + // Optional. List of sections. Note it contains both predefined section sand + // customer defined sections. + repeated SummarizationSection summarization_sections = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. List of few shot examples. + repeated FewShotExample few_shot_examples = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Version of the feature. If not set, default to latest version. + // Current candidates are ["1.0"]. + string version = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The target language of the generated summary. The language code + // for conversation will be used if this field is empty. Supported 2.0 and + // later versions. + string output_language_code = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// LLM generator. +message Generator { + option (google.api.resource) = { + type: "dialogflow.googleapis.com/Generator" + pattern: "projects/{project}/locations/{location}/generators/{generator}" + plural: "generators" + singular: "generator" + }; + + // Output only. Identifier. The resource name of the generator. Format: + // `projects/<Project ID>/locations/<Location ID>/generators/<Generator ID>` + string name = 1 [ + (google.api.field_behavior) = IDENTIFIER, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + + // Optional. Human readable description of the generator. + string description = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Input context of the generator. + oneof context { + // Input of prebuilt Summarization feature. + SummarizationContext summarization_context = 13; + } + + // Optional. Inference parameters for this generator. + InferenceParameter inference_parameter = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The trigger event of the generator. It defines when the generator + // is triggered in a conversation. + TriggerEvent trigger_event = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Creation time of this generator. + google.protobuf.Timestamp create_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Update time of this generator. + google.protobuf.Timestamp update_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Suggested summary of the conversation. +message SummarySuggestion { + // A component of the generated summary. + message SummarySection { + // Required. Name of the section. + string section = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Summary text for the section. + string summary = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Required. All the parts of generated summary. + repeated SummarySection summary_sections = 1 + [(google.api.field_behavior) = REQUIRED]; +} + +// Suggestion generated using a Generator. +message GeneratorSuggestion { + // The suggestion could be one of the many types + oneof suggestion { + // Optional. Suggested summary. + SummarySuggestion summary_suggestion = 2 + [(google.api.field_behavior) = OPTIONAL]; + } +} + +// The event that triggers the generator and LLM execution. +enum TriggerEvent { + // Default value for TriggerEvent. + TRIGGER_EVENT_UNSPECIFIED = 0; + + // Triggers when each chat message or voice utterance ends. + END_OF_UTTERANCE = 1; + + // Triggers on the conversation manually by API calls, such as + // Conversations.GenerateStatelessSuggestion and + // Conversations.GenerateSuggestions. + MANUAL_CALL = 2; +} diff --git a/google/cloud/dialogflow/v2beta1/participant.proto b/google/cloud/dialogflow/v2beta1/participant.proto index d3fa78f68..ea9ef3a59 100644 --- a/google/cloud/dialogflow/v2beta1/participant.proto +++ b/google/cloud/dialogflow/v2beta1/participant.proto @@ -182,6 +182,19 @@ service Participants { option (google.api.method_signature) = "parent"; } + // Gets knowledge assist suggestions based on historical messages. + rpc SuggestKnowledgeAssist(SuggestKnowledgeAssistRequest) + returns (SuggestKnowledgeAssistResponse) { + option (google.api.http) = { + post: "/v2beta1/{parent=projects/*/conversations/*/participants/*}/suggestions:suggestKnowledgeAssist" + body: "*" + additional_bindings { + post: "/v2beta1/{parent=projects/*/locations/*/conversations/*/participants/*}/suggestions:suggestKnowledgeAssist" + body: "*" + } + }; + } + // Deprecated: Use inline suggestion, event based suggestion or // Suggestion* API instead. // See @@ -341,6 +354,10 @@ message Message { // Required. The message content. string content = 2 [(google.api.field_behavior) = REQUIRED]; + // Optional. Automated agent responses. + repeated ResponseMessage response_messages = 11 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. The message language. // This should be a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) // language tag. Example: "en-US". @@ -451,7 +468,7 @@ message AudioInput { 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. + // A single request can contain up to 2 minutes of speech audio data. // The transcribed text cannot contain more than 256 bytes for virtual agent // interactions. bytes audio = 2; @@ -537,6 +554,9 @@ message AutomatedAgentReply { // Format: `projects/<Project ID>/locations/<Location ID>/agents/<Agent // ID>/flows/<Flow ID>/pages/<Page ID>`. string cx_current_page = 11; + + // The auth code for accessing Call Companion UI. + bytes call_companion_auth_code = 12; } // Represents the selection of a suggestion. @@ -623,6 +643,9 @@ message SuggestionFeature { // Run knowledge search with text input from agent or text generated query. KNOWLEDGE_SEARCH = 14; + + // Run knowledge assist with automatic query generation. + KNOWLEDGE_ASSIST = 15; } // Type of Human Agent Assistant API feature to request. @@ -1208,6 +1231,9 @@ message SuggestionResult { // SuggestArticlesResponse if request is for ARTICLE_SUGGESTION. SuggestArticlesResponse suggest_articles_response = 2; + // SuggestKnowledgeAssistResponse if request is for KNOWLEDGE_ASSIST. + SuggestKnowledgeAssistResponse suggest_knowledge_assist_response = 8; + // SuggestFaqAnswersResponse if request is for FAQ_ANSWER. SuggestFaqAnswersResponse suggest_faq_answers_response = 3; @@ -1678,3 +1704,123 @@ message ResponseMessage { TelephonyTransferCall telephony_transfer_call = 6; } } + +// The request message for +// [Participants.SuggestKnowledgeAssist][google.cloud.dialogflow.v2beta1.Participants.SuggestKnowledgeAssist]. +message SuggestKnowledgeAssistRequest { + // Required. The name of the participant to fetch suggestions for. + // Format: `projects/<Project ID>/locations/<Location + // ID>/conversations/<Conversation ID>/participants/<Participant ID>`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Participant" + } + ]; + + // Optional. The name of the latest conversation message to compile + // suggestions for. If empty, it will be the latest message of the + // conversation. Format: `projects/<Project ID>/locations/<Location + // ID>/conversations/<Conversation ID>/messages/<Message ID>`. + string latest_message = 2 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "dialogflow.googleapis.com/Message" + } + ]; + + // Optional. Max number of messages prior to and including + // [latest_message][google.cloud.dialogflow.v2beta1.SuggestKnowledgeAssistRequest.latest_message] + // to use as context when compiling the suggestion. The context size is by + // default 100 and at most 100. + int32 context_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The previously suggested query for the given conversation. This + // helps identify whether the next suggestion we generate is resonably + // different from the previous one. This is useful to avoid similar + // suggestions within the conversation. + string previous_suggested_query = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response message for +// [Participants.SuggestKnowledgeAssist][google.cloud.dialogflow.v2beta1.Participants.SuggestKnowledgeAssist]. +message SuggestKnowledgeAssistResponse { + // Output only. Knowledge Assist suggestion. + KnowledgeAssistAnswer knowledge_assist_answer = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The name of the latest conversation message used to compile suggestion for. + // Format: `projects/<Project ID>/locations/<Location + // ID>/conversations/<Conversation ID>/messages/<Message ID>`. + string latest_message = 2; + + // Number of messages prior to and including + // [latest_message][google.cloud.dialogflow.v2beta1.SuggestKnowledgeAssistResponse.latest_message] + // to compile the suggestion. It may be smaller than the + // [SuggestKnowledgeAssistRequest.context_size][google.cloud.dialogflow.v2beta1.SuggestKnowledgeAssistRequest.context_size] + // field in the request if there are fewer messages in the conversation. + int32 context_size = 3; +} + +// Represents a Knowledge Assist answer. +message KnowledgeAssistAnswer { + // Represents a suggested query. + message SuggestedQuery { + // Suggested query text. + string query_text = 1; + } + + // Represents an answer from Knowledge. Currently supports FAQ and Generative + // answers. + message KnowledgeAnswer { + // Details about source of FAQ answer. + message FaqSource { + // The corresponding FAQ question. + string question = 2; + } + + // Details about source of Generative answer. + message GenerativeSource { + // Snippet Source for a Generative Prediction. + message Snippet { + // URI the data is sourced from. + string uri = 2; + + // Text taken from that URI. + string text = 3; + + // Title of the document. + string title = 4; + } + + // All snippets used for this Generative Prediction, with their source URI + // and data. + repeated Snippet snippets = 1; + } + + // The piece of text from the `source` that answers this suggested query. + string answer_text = 1; + + // Source of result. + oneof source { + // Populated if the prediction came from FAQ. + FaqSource faq_source = 3; + + // Populated if the prediction was Generative. + GenerativeSource generative_source = 4; + } + } + + // The query suggested based on the context. Suggestion is made only if it + // is different from the previous suggestion. + SuggestedQuery suggested_query = 1; + + // The answer generated for the suggested query. Whether or not an answer is + // generated depends on how confident we are about the generated query. + KnowledgeAnswer suggested_query_answer = 2; + + // The name of the answer record. + // Format: `projects/<Project ID>/locations/<location ID>/answer + // Records/<Answer Record ID>`. + string answer_record = 3; +} diff --git a/google/cloud/discoveryengine/BUILD.bazel b/google/cloud/discoveryengine/BUILD.bazel index 3cc3f4572..4e6a8adce 100644 --- a/google/cloud/discoveryengine/BUILD.bazel +++ b/google/cloud/discoveryengine/BUILD.bazel @@ -21,7 +21,7 @@ ruby_cloud_gapic_library( srcs = ["//google/cloud/discoveryengine/v1:discoveryengine_proto_with_info"], extra_protoc_parameters = [ "ruby-cloud-gem-name=google-cloud-discovery_engine", - "ruby-cloud-wrapper-of=v1:0.4;v1beta:0.7", + "ruby-cloud-wrapper-of=v1:1.1;v1beta:0.15", ], service_yaml = "//google/cloud/discoveryengine/v1:discoveryengine_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/discoveryengine/v1/BUILD.bazel b/google/cloud/discoveryengine/v1/BUILD.bazel index b3024ee4b..2f4a27a92 100644 --- a/google/cloud/discoveryengine/v1/BUILD.bazel +++ b/google/cloud/discoveryengine/v1/BUILD.bazel @@ -33,6 +33,7 @@ proto_library( "control_service.proto", "conversation.proto", "conversational_search_service.proto", + "custom_tuning_model.proto", "data_store.proto", "data_store_service.proto", "document.proto", @@ -51,6 +52,7 @@ proto_library( "schema.proto", "schema_service.proto", "search_service.proto", + "search_tuning_service.proto", "session.proto", "site_search_engine.proto", "site_search_engine_service.proto", @@ -153,6 +155,8 @@ java_gapic_test( "com.google.cloud.discoveryengine.v1.SchemaServiceClientTest", "com.google.cloud.discoveryengine.v1.SearchServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1.SearchServiceClientTest", + "com.google.cloud.discoveryengine.v1.SearchTuningServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1.SearchTuningServiceClientTest", "com.google.cloud.discoveryengine.v1.SiteSearchEngineServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1.SiteSearchEngineServiceClientTest", "com.google.cloud.discoveryengine.v1.UserEventServiceClientHttpJsonTest", @@ -403,6 +407,7 @@ load( csharp_proto_library( name = "discoveryengine_csharp_proto", + extra_opts = [], deps = [":discoveryengine_proto"], ) diff --git a/google/cloud/discoveryengine/v1/answer.proto b/google/cloud/discoveryengine/v1/answer.proto index f24e88174..7309c525a 100644 --- a/google/cloud/discoveryengine/v1/answer.proto +++ b/google/cloud/discoveryengine/v1/answer.proto @@ -69,6 +69,13 @@ message Answer { // Page identifier. string page_identifier = 2; + + // The relevance of the chunk for a given query. Values range from 0.0 + // (completely irrelevant) to 1.0 (completely relevant). + // This value is for informational purpose only. It may change for + // the same query and chunk at any time due to a model retraining or + // change in implementation. + optional float relevance_score = 3; } // Document resource name. @@ -121,13 +128,28 @@ message Answer { // Chunk textual content. string content = 2; - // Relevance score. + // The relevance of the chunk for a given query. Values range from 0.0 + // (completely irrelevant) to 1.0 (completely relevant). + // This value is for informational purpose only. It may change for + // the same query and chunk at any time due to a model retraining or + // change in implementation. optional float relevance_score = 3; // Document metadata. DocumentMetadata document_metadata = 4; } + // Structured search information. + message StructuredDocumentInfo { + // Document resource name. + string document = 1 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Document" + }]; + + // Structured search data. + google.protobuf.Struct struct_data = 2; + } + // Search result content. oneof content { // Unstructured document information. @@ -135,6 +157,9 @@ message Answer { // Chunk information. ChunkInfo chunk_info = 2; + + // Structured document information. + StructuredDocumentInfo structured_document_info = 3; } } @@ -168,7 +193,11 @@ message Answer { // Chunk textual content. string content = 2; - // Relevance score. + // The relevance of the chunk for a given query. Values range from + // 0.0 (completely irrelevant) to 1.0 (completely relevant). + // This value is for informational purpose only. It may change for + // the same query and chunk at any time due to a model retraining or + // change in implementation. optional float relevance_score = 3; } @@ -191,9 +220,8 @@ message Answer { // Data representation. // The structured JSON data for the document. - // It's populated from the struct data from the Document (code - // pointer: http://shortn/_objzAfIiHq), or the Chunk in search result - // (code pointer: http://shortn/_Ipo6KFFGBL). + // It's populated from the struct data from the Document, or the + // Chunk in search result. google.protobuf.Struct struct_data = 6; } @@ -252,8 +280,14 @@ message Answer { // Adversarial query classification type. ADVERSARIAL_QUERY = 1; - // Non-answer-seeking query classification type. + // Non-answer-seeking query classification type, for chit chat. NON_ANSWER_SEEKING_QUERY = 2; + + // Jail-breaking query classification type. + JAIL_BREAKING_QUERY = 3; + + // Non-answer-seeking query classification type, for no clear intent. + NON_ANSWER_SEEKING_QUERY_V2 = 4; } // Query classification type. @@ -290,7 +324,9 @@ message Answer { // The adversarial query ignored case. ADVERSARIAL_QUERY_IGNORED = 1; - // The non-answer seeking query ignored case. + // The non-answer seeking query ignored case + // + // Google skips the answer if the query is chit chat. NON_ANSWER_SEEKING_QUERY_IGNORED = 2; // The out-of-domain query ignored case. @@ -309,6 +345,30 @@ message Answer { // Google skips the answer if there is no relevant content in the // retrieved search results. NO_RELEVANT_CONTENT = 5; + + // The jail-breaking query ignored case. + // + // For example, "Reply in the tone of a competing company's CEO". + // Google skips the answer if the query is classified as a jail-breaking + // query. + JAIL_BREAKING_QUERY_IGNORED = 6; + + // The customer policy violation case. + // + // Google skips the summary if there is a customer policy violation + // detected. The policy is defined by the customer. + CUSTOMER_POLICY_VIOLATION = 7; + + // The non-answer seeking query ignored case. + // + // Google skips the answer if the query doesn't have clear intent. + NON_ANSWER_SEEKING_QUERY_IGNORED_V2 = 8; + + // The low-grounded answer case. + // + // Google skips the answer if a well grounded answer was unable to be + // generated. + LOW_GROUNDED_ANSWER = 9; } // Immutable. Fully qualified name diff --git a/google/cloud/discoveryengine/v1/common.proto b/google/cloud/discoveryengine/v1/common.proto index f4891639a..a37e17975 100644 --- a/google/cloud/discoveryengine/v1/common.proto +++ b/google/cloud/discoveryengine/v1/common.proto @@ -57,6 +57,10 @@ option (google.api.resource_definition) = { type: "healthcare.googleapis.com/FhirStore" pattern: "projects/{project}/locations/{location}/datasets/{dataset}/fhirStores/{fhir_store}" }; +option (google.api.resource_definition) = { + type: "healthcare.googleapis.com/FhirResource" + pattern: "projects/{project}/locations/{location}/datasets/{dataset}/fhirStores/{fhir_store}/fhir/{resource_type}/{fhir_resource_id}" +}; // The industry vertical associated with the // [DataStore][google.cloud.discoveryengine.v1.DataStore]. diff --git a/google/cloud/discoveryengine/v1/control.proto b/google/cloud/discoveryengine/v1/control.proto index d2d9e730b..2292d905b 100644 --- a/google/cloud/discoveryengine/v1/control.proto +++ b/google/cloud/discoveryengine/v1/control.proto @@ -62,6 +62,9 @@ message Condition { // Search only // A list of terms to match the query on. + // Cannot be set when + // [Condition.query_regex][google.cloud.discoveryengine.v1.Condition.query_regex] + // is set. // // Maximum of 10 query terms. repeated QueryTerm query_terms = 2; @@ -70,11 +73,18 @@ message Condition { // // Maximum of 10 time ranges. repeated TimeRange active_time_range = 3; + + // Optional. Query regex to match the whole search query. + // Cannot be set when + // [Condition.query_terms][google.cloud.discoveryengine.v1.Condition.query_terms] + // is set. This is currently supporting promotion use case. + string query_regex = 4 [(google.api.field_behavior) = OPTIONAL]; } // Defines a conditioned behavior to employ during serving. -// Must be attached to a [ServingConfig][] to be considered at serving time. -// Permitted actions dependent on `SolutionType`. +// Must be attached to a +// [ServingConfig][google.cloud.discoveryengine.v1.ServingConfig] to be +// considered at serving time. Permitted actions dependent on `SolutionType`. message Control { option (google.api.resource) = { type: "discoveryengine.googleapis.com/Control" @@ -182,8 +192,9 @@ message Control { // Otherwise an INVALID ARGUMENT error is thrown. string display_name = 2 [(google.api.field_behavior) = REQUIRED]; - // Output only. List of all [ServingConfig][] ids this control is attached to. - // May take up to 10 minutes to update after changes. + // Output only. List of all + // [ServingConfig][google.cloud.discoveryengine.v1.ServingConfig] IDs this + // control is attached to. May take up to 10 minutes to update after changes. repeated string associated_serving_config_ids = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/google/cloud/discoveryengine/v1/control_service.proto b/google/cloud/discoveryengine/v1/control_service.proto index e7c044040..a7d11ba2c 100644 --- a/google/cloud/discoveryengine/v1/control_service.proto +++ b/google/cloud/discoveryengine/v1/control_service.proto @@ -135,9 +135,9 @@ service ControlService { // Request for CreateControl method. message CreateControlRequest { // Required. Full resource name of parent data store. Format: - // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/dataStores/{data_store_id}` + // `projects/{project}/locations/{location}/collections/{collection_id}/dataStores/{data_store_id}` // or - // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/engines/{engine_id}`. + // `projects/{project}/locations/{location}/collections/{collection_id}/engines/{engine_id}`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -176,7 +176,7 @@ message UpdateControlRequest { // Request for DeleteControl method. message DeleteControlRequest { // Required. The resource name of the Control to delete. Format: - // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/dataStores/{data_store_id}/controls/{control_id}` + // `projects/{project}/locations/{location}/collections/{collection_id}/dataStores/{data_store_id}/controls/{control_id}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -188,7 +188,7 @@ message DeleteControlRequest { // Request for GetControl method. message GetControlRequest { // Required. The resource name of the Control to get. Format: - // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/dataStores/{data_store_id}/controls/{control_id}` + // `projects/{project}/locations/{location}/collections/{collection_id}/dataStores/{data_store_id}/controls/{control_id}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -200,9 +200,9 @@ message GetControlRequest { // Request for ListControls method. message ListControlsRequest { // Required. The data store resource name. Format: - // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/dataStores/{data_store_id}` + // `projects/{project}/locations/{location}/collections/{collection_id}/dataStores/{data_store_id}` // or - // `projects/{project_number}/locations/{location_id}/collections/{collection_id}/engines/{engine_id}`. + // `projects/{project}/locations/{location}/collections/{collection_id}/engines/{engine_id}`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/google/cloud/discoveryengine/v1/conversational_search_service.proto b/google/cloud/discoveryengine/v1/conversational_search_service.proto index 7bb0bc12c..507bbfcf2 100644 --- a/google/cloud/discoveryengine/v1/conversational_search_service.proto +++ b/google/cloud/discoveryengine/v1/conversational_search_service.proto @@ -273,9 +273,9 @@ service ConversationalSearchService { // method. message ConverseConversationRequest { // Required. The resource name of the Conversation to get. Format: - // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}/conversations/{conversation_id}`. + // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store_id}/conversations/{conversation_id}`. // Use - // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}/conversations/-` + // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store_id}/conversations/-` // to activate auto session mode, which automatically creates a new // conversation inside a ConverseConversation session. string name = 1 [ @@ -289,7 +289,7 @@ message ConverseConversationRequest { TextInput query = 2 [(google.api.field_behavior) = REQUIRED]; // The resource name of the Serving Config to use. Format: - // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}/servingConfigs/{serving_config_id}` + // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store_id}/servingConfigs/{serving_config_id}` // If this is not set, the default serving config will be used. string serving_config = 3 [(google.api.resource_reference) = { type: "discoveryengine.googleapis.com/ServingConfig" @@ -366,7 +366,7 @@ message ConverseConversationResponse { // Request for CreateConversation method. message CreateConversationRequest { // Required. Full resource name of parent data store. Format: - // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}` + // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store_id}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -396,7 +396,7 @@ message UpdateConversationRequest { // Request for DeleteConversation method. message DeleteConversationRequest { // Required. The resource name of the Conversation to delete. Format: - // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}/conversations/{conversation_id}` + // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store_id}/conversations/{conversation_id}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -408,7 +408,7 @@ message DeleteConversationRequest { // Request for GetConversation method. message GetConversationRequest { // Required. The resource name of the Conversation to get. Format: - // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}/conversations/{conversation_id}` + // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store_id}/conversations/{conversation_id}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -420,7 +420,7 @@ message GetConversationRequest { // Request for ListConversations method. message ListConversationsRequest { // Required. The data store resource name. Format: - // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}` + // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store_id}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -540,6 +540,20 @@ message AnswerQueryRequest { // of relevance to generate answers. If set to `true` or unset, the behavior // will be determined automatically by the service. optional bool ignore_low_relevant_content = 7; + + // Optional. Specifies whether to filter out jail-breaking queries. The + // default value is `false`. + // + // Google employs search-query classification to detect jail-breaking + // queries. No summary is returned if the search query is classified as a + // jail-breaking query. A user might add instructions to the query to + // change the tone, style, language, content of the answer, or ask the + // model to act as a different entity, e.g. "Reply in the tone of a + // competing company's CEO". If this field is set to `true`, we skip + // generating summaries for jail-breaking queries and return fallback + // messages instead. + bool ignore_jail_breaking_query = 8 + [(google.api.field_behavior) = OPTIONAL]; } // Search specification. @@ -584,12 +598,7 @@ message AnswerQueryRequest { string order_by = 4; // Specifies the search result mode. If unspecified, the - // search result mode is based on - // [DataStore.DocumentProcessingConfig.chunking_config][]: - // * If [DataStore.DocumentProcessingConfig.chunking_config][] is - // specified, - // it defaults to `CHUNKS`. - // * Otherwise, it defaults to `DOCUMENTS`. + // search result mode defaults to `DOCUMENTS`. // See [parse and chunk // documents](https://cloud.google.com/generative-ai-app-builder/docs/parse-chunk-documents) SearchRequest.ContentSearchSpec.SearchResultMode search_result_mode = 5; @@ -612,12 +621,14 @@ message AnswerQueryRequest { // Page identifier. string page_identifier = 1; - // Document content. + // Document content to be used for answer generation. string content = 2; } // Extractive segment. // [Guide](https://cloud.google.com/generative-ai-app-builder/docs/snippets#extractive-segments) + // Answer generation will only use it if document_contexts is empty. + // This is supposed to be shorter snippets. message ExtractiveSegment { // Page identifier. string page_identifier = 1; @@ -647,18 +658,33 @@ message AnswerQueryRequest { // Title. string title = 3; - // List of document contexts. + // List of document contexts. The content will be used for Answer + // Generation. This is supposed to be the main content of the document + // that can be long and comprehensive. repeated DocumentContext document_contexts = 4; // List of extractive segments. repeated ExtractiveSegment extractive_segments = 5; + // Deprecated: This field is deprecated and will have no effect on + // the Answer generation. + // Please use document_contexts and extractive_segments fields. // List of extractive answers. - repeated ExtractiveAnswer extractive_answers = 6; + repeated ExtractiveAnswer extractive_answers = 6 [deprecated = true]; } // Chunk information. message ChunkInfo { + // Document metadata contains the information of the document of the + // current chunk. + message DocumentMetadata { + // Uri of the document. + string uri = 1; + + // Title of the document. + string title = 2; + } + // Chunk resource name. string chunk = 1 [(google.api.resource_reference) = { type: "discoveryengine.googleapis.com/Chunk" @@ -666,6 +692,9 @@ message AnswerQueryRequest { // Chunk textual content. string content = 2; + + // Metadata of the document from the current chunk. + DocumentMetadata document_metadata = 4; } // Search result content. @@ -705,8 +734,14 @@ message AnswerQueryRequest { // Adversarial query classification type. ADVERSARIAL_QUERY = 1; - // Non-answer-seeking query classification type. + // Non-answer-seeking query classification type, for chit chat. NON_ANSWER_SEEKING_QUERY = 2; + + // Jail-breaking query classification type. + JAIL_BREAKING_QUERY = 3; + + // Non-answer-seeking query classification type, for no clear intent. + NON_ANSWER_SEEKING_QUERY_V2 = 4; } // Enabled query classification types. @@ -772,6 +807,9 @@ message AnswerQueryRequest { // Query understanding specification. QueryUnderstandingSpec query_understanding_spec = 9; + // Deprecated: This field is deprecated. Streaming Answer API will be + // supported. + // // Asynchronous mode control. // // If enabled, the response will be returned with answer/session resource @@ -781,7 +819,7 @@ message AnswerQueryRequest { // or // [ConversationalSearchService.GetSession][google.cloud.discoveryengine.v1.ConversationalSearchService.GetSession] // method. - bool asynchronous_mode = 10; + bool asynchronous_mode = 10 [deprecated = true]; // A unique identifier for tracking visitors. For example, this could be // implemented with an HTTP cookie, which should be able to uniquely identify @@ -819,9 +857,11 @@ message AnswerQueryRequest { // method. message AnswerQueryResponse { // Answer resource object. - // If [AnswerQueryRequest.StepSpec.max_step_count][] is greater than 1, - // use [Answer.name][google.cloud.discoveryengine.v1.Answer.name] to fetch - // answer information using + // If + // [AnswerQueryRequest.QueryUnderstandingSpec.QueryRephraserSpec.max_rephrase_steps][google.cloud.discoveryengine.v1.AnswerQueryRequest.QueryUnderstandingSpec.QueryRephraserSpec.max_rephrase_steps] + // is greater than 1, use + // [Answer.name][google.cloud.discoveryengine.v1.Answer.name] to fetch answer + // information using // [ConversationalSearchService.GetAnswer][google.cloud.discoveryengine.v1.ConversationalSearchService.GetAnswer] // API. Answer answer = 1; @@ -839,7 +879,7 @@ message AnswerQueryResponse { // Request for GetAnswer method. message GetAnswerRequest { // Required. The resource name of the Answer to get. Format: - // `projects/{project_number}/locations/{location_id}/collections/{collection}/engines/{engine_id}/sessions/{session_id}/answers/{answer_id}` + // `projects/{project}/locations/{location}/collections/{collection}/engines/{engine_id}/sessions/{session_id}/answers/{answer_id}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -851,7 +891,7 @@ message GetAnswerRequest { // Request for CreateSession method. message CreateSessionRequest { // Required. Full resource name of parent data store. Format: - // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}` + // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store_id}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -881,7 +921,7 @@ message UpdateSessionRequest { // Request for DeleteSession method. message DeleteSessionRequest { // Required. The resource name of the Session to delete. Format: - // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}/sessions/{session_id}` + // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store_id}/sessions/{session_id}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -893,7 +933,7 @@ message DeleteSessionRequest { // Request for GetSession method. message GetSessionRequest { // Required. The resource name of the Session to get. Format: - // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}/sessions/{session_id}` + // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store_id}/sessions/{session_id}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -905,7 +945,7 @@ message GetSessionRequest { // Request for ListSessions method. message ListSessionsRequest { // Required. The data store resource name. Format: - // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}` + // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store_id}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/google/cloud/discoveryengine/v1/custom_tuning_model.proto b/google/cloud/discoveryengine/v1/custom_tuning_model.proto new file mode 100644 index 000000000..ae6bc4c45 --- /dev/null +++ b/google/cloud/discoveryengine/v1/custom_tuning_model.proto @@ -0,0 +1,101 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "CustomTuningModelProto"; +option java_package = "com.google.cloud.discoveryengine.v1"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; + +// Metadata that describes a custom tuned model. +message CustomTuningModel { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/CustomTuningModel" + pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/customTuningModels/{custom_tuning_model}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/customTuningModels/{custom_tuning_model}" + }; + + // The state of the model. + enum ModelState { + // Default value. + MODEL_STATE_UNSPECIFIED = 0; + + // The model is in a paused training state. + TRAINING_PAUSED = 1; + + // The model is currently training. + TRAINING = 2; + + // The model has successfully completed training. + TRAINING_COMPLETE = 3; + + // The model is ready for serving. + READY_FOR_SERVING = 4; + + // The model training failed. + TRAINING_FAILED = 5; + + // The model training finished successfully but metrics did not improve. + NO_IMPROVEMENT = 6; + + // Input data validation failed. Model training didn't start. + INPUT_VALIDATION_FAILED = 7; + } + + // Required. The fully qualified resource name of the model. + // + // Format: + // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/customTuningModels/{custom_tuning_model}`. + // + // Model must be an alpha-numerical string with limit of 40 characters. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/CustomTuningModel" + } + ]; + + // The display name of the model. + string display_name = 2; + + // The version of the model. + int64 model_version = 3; + + // The state that the model is in (e.g.`TRAINING` or `TRAINING_FAILED`). + ModelState model_state = 4; + + // Deprecated: Timestamp the Model was created at. + google.protobuf.Timestamp create_time = 5 [deprecated = true]; + + // Timestamp the model training was initiated. + google.protobuf.Timestamp training_start_time = 6; + + // The metrics of the trained model. + map<string, double> metrics = 7; + + // Currently this is only populated if the model state is + // `INPUT_VALIDATION_FAILED`. + string error_message = 8; +} diff --git a/google/cloud/discoveryengine/v1/data_store.proto b/google/cloud/discoveryengine/v1/data_store.proto index ef853a80f..32157c7e9 100644 --- a/google/cloud/discoveryengine/v1/data_store.proto +++ b/google/cloud/discoveryengine/v1/data_store.proto @@ -40,6 +40,27 @@ message DataStore { pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}" }; + // Estimation of data size per data store. + message BillingEstimation { + // Data size for structured data in terms of bytes. + int64 structured_data_size = 1; + + // Data size for unstructured data in terms of bytes. + int64 unstructured_data_size = 2; + + // Data size for websites in terms of bytes. + int64 website_data_size = 3; + + // Last updated timestamp for structured data. + google.protobuf.Timestamp structured_data_update_time = 4; + + // Last updated timestamp for unstructured data. + google.protobuf.Timestamp unstructured_data_update_time = 5; + + // Last updated timestamp for websites. + google.protobuf.Timestamp website_data_update_time = 6; + } + // Content config of the data store. enum ContentConfig { // Default value. @@ -55,6 +76,11 @@ message DataStore { // The data store is used for public website search. PUBLIC_WEBSITE = 3; + + // The data store is used for workspace search. Details of workspace + // data store are specified in the + // [WorkspaceConfig][google.cloud.discoveryengine.v1.WorkspaceConfig]. + GOOGLE_WORKSPACE = 4; } // Immutable. The full resource name of the data store. @@ -98,6 +124,17 @@ message DataStore { google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Data size estimation for billing. + BillingEstimation billing_estimation = 23 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Config to store data store type configuration for workspace data. This + // must be set when + // [DataStore.content_config][google.cloud.discoveryengine.v1.DataStore.content_config] + // is set as + // [DataStore.ContentConfig.GOOGLE_WORKSPACE][google.cloud.discoveryengine.v1.DataStore.ContentConfig.GOOGLE_WORKSPACE]. + WorkspaceConfig workspace_config = 25; + // Configuration for Document understanding and enrichment. DocumentProcessingConfig document_processing_config = 27; @@ -117,3 +154,50 @@ message DataStore { // doc](https://cloud.google.com/generative-ai-app-builder/docs/provide-schema). Schema starting_schema = 28; } + +// Config to store data store type configuration for workspace data +message WorkspaceConfig { + // Specifies the type of Workspace App supported by this DataStore + enum Type { + // Defaults to an unspecified Workspace type. + TYPE_UNSPECIFIED = 0; + + // Workspace Data Store contains Drive data + GOOGLE_DRIVE = 1; + + // Workspace Data Store contains Mail data + GOOGLE_MAIL = 2; + + // Workspace Data Store contains Sites data + GOOGLE_SITES = 3; + + // Workspace Data Store contains Calendar data + GOOGLE_CALENDAR = 4; + + // Workspace Data Store contains Chat data + GOOGLE_CHAT = 5; + + // Workspace Data Store contains Groups data + GOOGLE_GROUPS = 6; + + // Workspace Data Store contains Keep data + GOOGLE_KEEP = 7; + } + + // The Google Workspace data source. + Type type = 1; + + // Obfuscated Dasher customer ID. + string dasher_customer_id = 2; + + // Optional. The super admin service account for the workspace that will be + // used for access token generation. For now we only use it for Native Google + // Drive connector data ingestion. + string super_admin_service_account = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The super admin email address for the workspace that will be used + // for access token generation. For now we only use it for Native Google Drive + // connector data ingestion. + string super_admin_email_address = 5 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/discoveryengine/v1/data_store_service.proto b/google/cloud/discoveryengine/v1/data_store_service.proto index 94c120d26..89aeb6b36 100644 --- a/google/cloud/discoveryengine/v1/data_store_service.proto +++ b/google/cloud/discoveryengine/v1/data_store_service.proto @@ -152,6 +152,16 @@ message CreateDataStoreRequest { // search (GENERIC vertical and PUBLIC_WEBSITE content_config), this flag will // be ignored. bool create_advanced_site_search = 4; + + // A boolean flag indicating whether to skip the default schema creation for + // the data store. Only enable this flag if you are certain that the default + // schema is incompatible with your use case. + // + // If set to true, you must manually create a schema for the data store before + // any documents can be ingested. + // + // This flag cannot be specified if `data_store.starting_schema` is specified. + bool skip_default_schema_creation = 7; } // Request message for diff --git a/google/cloud/discoveryengine/v1/discoveryengine_v1.yaml b/google/cloud/discoveryengine/v1/discoveryengine_v1.yaml index 40ab3ae27..d2ec176e5 100644 --- a/google/cloud/discoveryengine/v1/discoveryengine_v1.yaml +++ b/google/cloud/discoveryengine/v1/discoveryengine_v1.yaml @@ -16,6 +16,7 @@ apis: - name: google.cloud.discoveryengine.v1.RecommendationService - name: google.cloud.discoveryengine.v1.SchemaService - name: google.cloud.discoveryengine.v1.SearchService +- name: google.cloud.discoveryengine.v1.SearchTuningService - name: google.cloud.discoveryengine.v1.SiteSearchEngineService - name: google.cloud.discoveryengine.v1.UserEventService - name: google.cloud.location.Locations @@ -58,6 +59,8 @@ types: - name: google.cloud.discoveryengine.v1.PurgeSuggestionDenyListEntriesResponse - name: google.cloud.discoveryengine.v1.Schema - name: google.cloud.discoveryengine.v1.TargetSite +- name: google.cloud.discoveryengine.v1.TrainCustomModelMetadata +- name: google.cloud.discoveryengine.v1.TrainCustomModelResponse - name: google.cloud.discoveryengine.v1.UpdateSchemaMetadata - name: google.cloud.discoveryengine.v1.UpdateTargetSiteMetadata @@ -89,6 +92,7 @@ http: - get: '/v1/{name=projects/*/locations/*/dataStores/*/branches/*/operations/*}' - get: '/v1/{name=projects/*/locations/*/dataStores/*/models/*/operations/*}' - get: '/v1/{name=projects/*/locations/*/dataStores/*/operations/*}' + - get: '/v1/{name=projects/*/locations/*/identityMappingStores/*/operations/*}' - get: '/v1/{name=projects/*/locations/*/operations/*}' - get: '/v1/{name=projects/*/operations/*}' - selector: google.longrunning.Operations.ListOperations @@ -106,6 +110,7 @@ http: - get: '/v1/{name=projects/*/locations/*/dataStores/*/branches/*}/operations' - get: '/v1/{name=projects/*/locations/*/dataStores/*/models/*}/operations' - get: '/v1/{name=projects/*/locations/*/dataStores/*}/operations' + - get: '/v1/{name=projects/*/locations/*/identityMappingStores/*}/operations' - get: '/v1/{name=projects/*/locations/*}/operations' - get: '/v1/{name=projects/*}/operations' @@ -135,7 +140,7 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform - - selector: google.cloud.discoveryengine.v1.GroundedGenerationService.CheckGrounding + - selector: 'google.cloud.discoveryengine.v1.GroundedGenerationService.*' oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform @@ -159,6 +164,18 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.discoveryengine.v1.SearchService.SearchLite + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.discoveryengine.v1.SearchTuningService.ListCustomModels + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.discoveryengine.v1.SearchTuningService.TrainCustomModel + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.discoveryengine.v1.SiteSearchEngineService.*' oauth: canonical_scopes: |- diff --git a/google/cloud/discoveryengine/v1/document.proto b/google/cloud/discoveryengine/v1/document.proto index 5c9af32e8..1826a0cda 100644 --- a/google/cloud/discoveryengine/v1/document.proto +++ b/google/cloud/discoveryengine/v1/document.proto @@ -20,6 +20,7 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; @@ -70,6 +71,17 @@ message Document { string mime_type = 1; } + // Index status of the document. + message IndexStatus { + // The time when the document was indexed. + // If this field is populated, it means the document has been indexed. + google.protobuf.Timestamp index_time = 1; + + // A sample of errors encountered while indexing the document. + // If this field is populated, the document is not indexed due to errors. + repeated google.rpc.Status error_samples = 2; + } + // Data representation. One of // [struct_data][google.cloud.discoveryengine.v1.Document.struct_data] or // [json_data][google.cloud.discoveryengine.v1.Document.json_data] should be @@ -127,4 +139,12 @@ message Document { // document has never been indexed. google.protobuf.Timestamp index_time = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The index status of the document. + // + // * If document is indexed successfully, the index_time field is populated. + // * Otherwise, if document is not indexed due to errors, the error_samples + // field is populated. + // * Otherwise, index_status is unset. + IndexStatus index_status = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/discoveryengine/v1/document_processing_config.proto b/google/cloud/discoveryengine/v1/document_processing_config.proto index cef0e861d..b7f3f06af 100644 --- a/google/cloud/discoveryengine/v1/document_processing_config.proto +++ b/google/cloud/discoveryengine/v1/document_processing_config.proto @@ -29,11 +29,11 @@ option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; // A singleton resource of -// [DataStore][google.cloud.discoveryengine.v1.DataStore]. It's empty when -// [DataStore][google.cloud.discoveryengine.v1.DataStore] is created, which -// defaults to digital parser. The first call to -// [DataStoreService.UpdateDocumentProcessingConfig][] method will initialize -// the config. +// [DataStore][google.cloud.discoveryengine.v1.DataStore]. If it's empty when +// [DataStore][google.cloud.discoveryengine.v1.DataStore] is created and +// [DataStore][google.cloud.discoveryengine.v1.DataStore] is set to +// [DataStore.ContentConfig.CONTENT_REQUIRED][google.cloud.discoveryengine.v1.DataStore.ContentConfig.CONTENT_REQUIRED], +// the default parser will default to digital parser. message DocumentProcessingConfig { option (google.api.resource) = { type: "discoveryengine.googleapis.com/DocumentProcessingConfig" @@ -123,5 +123,9 @@ message DocumentProcessingConfig { // layout parsing are supported. // * `pptx`: Override parsing config for PPTX files, only digital parsing and // layout parsing are supported. + // * `xlsm`: Override parsing config for XLSM files, only digital parsing and + // layout parsing are supported. + // * `xlsx`: Override parsing config for XLSX files, only digital parsing and + // layout parsing are supported. map<string, ParsingConfig> parsing_config_overrides = 5; } diff --git a/google/cloud/discoveryengine/v1/document_service.proto b/google/cloud/discoveryengine/v1/document_service.proto index 6e88badab..ebff9b6e9 100644 --- a/google/cloud/discoveryengine/v1/document_service.proto +++ b/google/cloud/discoveryengine/v1/document_service.proto @@ -26,6 +26,7 @@ import "google/cloud/discoveryengine/v1/purge_config.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.DiscoveryEngine.V1"; option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; @@ -156,6 +157,20 @@ service DocumentService { metadata_type: "google.cloud.discoveryengine.v1.PurgeDocumentsMetadata" }; } + + // Gets index freshness metadata for + // [Document][google.cloud.discoveryengine.v1.Document]s. Supported for + // website search only. + rpc BatchGetDocumentsMetadata(BatchGetDocumentsMetadataRequest) + returns (BatchGetDocumentsMetadataResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/dataStores/*/branches/*}/batchGetDocumentsMetadata" + additional_bindings { + get: "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*/branches/*}/batchGetDocumentsMetadata" + } + }; + option (google.api.method_signature) = "parent"; + } } // Request message for @@ -318,3 +333,121 @@ message DeleteDocumentRequest { } ]; } + +// Request message for +// [DocumentService.BatchGetDocumentsMetadata][google.cloud.discoveryengine.v1.DocumentService.BatchGetDocumentsMetadata] +// method. +message BatchGetDocumentsMetadataRequest { + // Matcher for the [Document][google.cloud.discoveryengine.v1.Document]s by + // exact uris. + message UrisMatcher { + // The exact URIs to match by. + repeated string uris = 1; + } + + // Matcher for the [Document][google.cloud.discoveryengine.v1.Document]s by + // FHIR resource names. + message FhirMatcher { + // Required. The FHIR resources to match by. + // Format: + // projects/{project}/locations/{location}/datasets/{dataset}/fhirStores/{fhir_store}/fhir/{resource_type}/{fhir_resource_id} + repeated string fhir_resources = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "healthcare.googleapis.com/FhirResource" + } + ]; + } + + // Matcher for the [Document][google.cloud.discoveryengine.v1.Document]s. + // Currently supports matching by exact URIs. + message Matcher { + // Matcher for the [Document][google.cloud.discoveryengine.v1.Document]s. + oneof matcher { + // Matcher by exact URIs. + UrisMatcher uris_matcher = 1; + + // Matcher by FHIR resource names. + FhirMatcher fhir_matcher = 2; + } + } + + // Required. The parent branch resource name, such as + // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Branch" + } + ]; + + // Required. Matcher for the + // [Document][google.cloud.discoveryengine.v1.Document]s. + Matcher matcher = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for +// [DocumentService.BatchGetDocumentsMetadata][google.cloud.discoveryengine.v1.DocumentService.BatchGetDocumentsMetadata] +// method. +message BatchGetDocumentsMetadataResponse { + // The metadata of a [Document][google.cloud.discoveryengine.v1.Document]. + message DocumentMetadata { + // The value of the matcher that was used to match the + // [Document][google.cloud.discoveryengine.v1.Document]. + message MatcherValue { + // The value of the matcher that was used to match the + // [Document][google.cloud.discoveryengine.v1.Document]. + oneof matcher_value { + // If match by URI, the URI of the + // [Document][google.cloud.discoveryengine.v1.Document]. + string uri = 1; + + // Format: + // projects/{project}/locations/{location}/datasets/{dataset}/fhirStores/{fhir_store}/fhir/{resource_type}/{fhir_resource_id} + string fhir_resource = 2 [(google.api.resource_reference) = { + type: "healthcare.googleapis.com/FhirResource" + }]; + } + } + + // The value of the matcher that was used to match the + // [Document][google.cloud.discoveryengine.v1.Document]. + MatcherValue matcher_value = 2; + + // The state of the document. + State state = 3; + + // The timestamp of the last time the + // [Document][google.cloud.discoveryengine.v1.Document] was last indexed. + google.protobuf.Timestamp last_refreshed_time = 4; + + // The data ingestion source of the + // [Document][google.cloud.discoveryengine.v1.Document]. + // + // Allowed values are: + // + // * `batch`: Data ingested via Batch API, e.g., ImportDocuments. + // * `streaming` Data ingested via Streaming API, e.g., FHIR streaming. + string data_ingestion_source = 5; + } + + // The state of the [Document][google.cloud.discoveryengine.v1.Document]. + enum State { + // Should never be set. + STATE_UNSPECIFIED = 0; + + // The [Document][google.cloud.discoveryengine.v1.Document] is indexed. + INDEXED = 1; + + // The [Document][google.cloud.discoveryengine.v1.Document] is not indexed + // because its URI is not in the + // [TargetSite][google.cloud.discoveryengine.v1.TargetSite]. + NOT_IN_TARGET_SITE = 2; + + // The [Document][google.cloud.discoveryengine.v1.Document] is not indexed. + NOT_IN_INDEX = 3; + } + + // The metadata of the [Document][google.cloud.discoveryengine.v1.Document]s. + repeated DocumentMetadata documents_metadata = 1; +} diff --git a/google/cloud/discoveryengine/v1/engine.proto b/google/cloud/discoveryengine/v1/engine.proto index 2bb990f1e..c96bf7584 100644 --- a/google/cloud/discoveryengine/v1/engine.proto +++ b/google/cloud/discoveryengine/v1/engine.proto @@ -163,7 +163,7 @@ message Engine { // characters. // // Format: - // `projects/{project_number}/locations/{location}/collections/{collection}/engines/{engine}` + // `projects/{project}/locations/{location}/collections/{collection}/engines/{engine}` // engine should be 1-63 characters, and valid characters are // /[a-z0-9][a-z0-9-_]*/. Otherwise, an INVALID_ARGUMENT error is returned. string name = 1 [(google.api.field_behavior) = IMMUTABLE]; @@ -212,4 +212,8 @@ message Engine { // Common config spec that specifies the metadata of the engine. CommonConfig common_config = 15; + + // Optional. Whether to disable analytics for searches performed on this + // engine. + bool disable_analytics = 26 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/google/cloud/discoveryengine/v1/grounded_generation_service.proto b/google/cloud/discoveryengine/v1/grounded_generation_service.proto index 3fb601dd7..8db4efdd1 100644 --- a/google/cloud/discoveryengine/v1/grounded_generation_service.proto +++ b/google/cloud/discoveryengine/v1/grounded_generation_service.proto @@ -37,6 +37,24 @@ service GroundedGenerationService { option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + // Generates grounded content in a streaming fashion. + rpc StreamGenerateGroundedContent(stream GenerateGroundedContentRequest) + returns (stream GenerateGroundedContentResponse) { + option (google.api.http) = { + post: "/v1/{location=projects/*/locations/*}:streamGenerateGroundedContent" + body: "*" + }; + } + + // Generates grounded content. + rpc GenerateGroundedContent(GenerateGroundedContentRequest) + returns (GenerateGroundedContentResponse) { + option (google.api.http) = { + post: "/v1/{location=projects/*/locations/*}:generateGroundedContent" + body: "*" + }; + } + // Performs a grounding check. rpc CheckGrounding(CheckGroundingRequest) returns (CheckGroundingResponse) { option (google.api.http) = { @@ -46,6 +64,328 @@ service GroundedGenerationService { } } +// Base structured datatype containing multi-part content of a message. +message GroundedGenerationContent { + // Single part of content. + message Part { + // Holder of data. It only supports text for now. + oneof data { + // Inline text. + string text = 1; + } + } + + // Producer of the content. Must be either `user` or `model`. + // + // Intended to be used for multi-turn conversations. Otherwise, it can be left + // unset. + string role = 1; + + // Ordered `Parts` that constitute a single message. + repeated Part parts = 2; +} + +// Top-level message sent by the client for the `GenerateGroundedContent` +// method. +message GenerateGroundedContentRequest { + // Content generation specification. + message GenerationSpec { + // Specifies which Vertex model id to use for generation. + string model_id = 3; + + // Language code for content. Use language tags defined by + // [BCP47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). + string language_code = 2; + + // If specified, custom value for the temperature will be used. + optional float temperature = 4; + + // If specified, custom value for nucleus sampling will be used. + optional float top_p = 5; + + // If specified, custom value for top-k sampling will be used. + optional int32 top_k = 7; + + // If specified, custom value for frequency penalty will be used. + optional float frequency_penalty = 8; + + // If specified, custom value for presence penalty will be used. + optional float presence_penalty = 9; + + // If specified, custom value for max output tokens will be used. + optional int32 max_output_tokens = 10; + } + + // Describes the options to customize dynamic retrieval. + message DynamicRetrievalConfiguration { + // Describes the predictor settings for dynamic retrieval. + message DynamicRetrievalPredictor { + // The version of the predictor to be used in dynamic retrieval. + enum Version { + // Automatically choose the best version of the retrieval predictor. + VERSION_UNSPECIFIED = 0; + + // The V1 model which is evaluating each source independently. + V1_INDEPENDENT = 1; + } + + // The version of the predictor to be used in dynamic retrieval. + Version version = 1; + + // The value of the threshold. If the predictor will predict a + // value smaller than this, it would suppress grounding in the source. + optional float threshold = 2; + } + + // Specification for the predictor for dynamic retrieval. + DynamicRetrievalPredictor predictor = 1; + } + + // Grounding source. + message GroundingSource { + // Message to be used for grounding based on inline content. + message InlineSource { + // List of facts to be used for grounding. + repeated GroundingFact grounding_facts = 1; + + // Attributes associated with the content. + // + // Common attributes include `source` (indicating where the content was + // sourced from) and `author` (indicating the author of the content). + map<string, string> attributes = 2; + } + + // Message to be used for grounding with Vertex AI Search. + message SearchSource { + // The resource name of the Engine to use. + // + // Format: + // `projects/{project}/locations/{location}/collections/{collection_id}/engines/{engine_id}/servingConfigs/{serving_config_id}` + string serving_config = 1 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/ServingConfig" + }]; + + // Number of search results to return. + // + // The default value is 10. The maximumm allowed value is 10. + int32 max_result_count = 2; + + // Filter expression to be applied to the search. + // + // The syntax is the same as + // [SearchRequest.filter][google.cloud.discoveryengine.v1.SearchRequest.filter]. + string filter = 3; + + // If set, safe search is enabled in Vertex AI Search requests. + bool safe_search = 5; + } + + // Google Search config parameters. + message GoogleSearchSource { + // Optional. Specifies the dynamic retrieval configuration for the given + // source. + DynamicRetrievalConfiguration dynamic_retrieval_config = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Sources. + oneof source { + // If set, grounding is performed with inline content. + InlineSource inline_source = 1; + + // If set, grounding is performed with Vertex AI Search. + SearchSource search_source = 2; + + // If set, grounding is performed with Google Search. + GoogleSearchSource google_search_source = 3; + } + } + + // Grounding specification. + message GroundingSpec { + // Grounding sources. + repeated GroundingSource grounding_sources = 1; + } + + // Required. Location resource. + // + // Format: `projects/{project}/locations/{location}`. + string location = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Location" + } + ]; + + // Content of the system instruction for the current API. + // + // These instructions will take priority over any other prompt instructions + // if the selected model is supporting them. + GroundedGenerationContent system_instruction = 5; + + // Content of the current conversation with the model. + // + // For single-turn queries, this is a single instance. For multi-turn queries, + // this is a repeated field that contains conversation history + latest + // request. + // + // Only a single-turn query is supported currently. + repeated GroundedGenerationContent contents = 2; + + // Content generation specification. + GenerationSpec generation_spec = 3; + + // Grounding specification. + GroundingSpec grounding_spec = 4; + + // The user labels applied to a resource must meet the following requirements: + // + // * Each resource can have multiple labels, up to a maximum of 64. + // * Each label must be a key-value pair. + // * Keys have a minimum length of 1 character and a maximum length of 63 + // characters and cannot be empty. Values can be empty and have a maximum + // length of 63 characters. + // * Keys and values can contain only lowercase letters, numeric characters, + // underscores, and dashes. All characters must use UTF-8 encoding, and + // international characters are allowed. + // * The key portion of a label must be unique. However, you can use the same + // key with multiple resources. + // * Keys must start with a lowercase letter or international character. + // + // See [Google Cloud + // Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) + // for more details. + map<string, string> user_labels = 6; +} + +message GenerateGroundedContentResponse { + // A response candidate generated from the model. + message Candidate { + // Citation for the generated content. + message GroundingMetadata { + // Describes the metadata associated with a retrieval step. + message RetrievalMetadata { + // Describes the source to which the metadata is associated to. + enum Source { + // Unspecified source. + SOURCE_UNSPECIFIED = 0; + + // Vertex AI search. + VERTEX_AI_SEARCH = 1; + + // Google Search. + GOOGLE_SEARCH = 3; + + // User inline provided content. + INLINE_CONTENT = 2; + + // Google Maps. + GOOGLE_MAPS = 4; + } + + // Describes the source to which the metadata is referring to. + Source source = 1; + + // Metadata for dynamic retrieval. + DynamicRetrievalMetadata dynamic_retrieval_metadata = 2; + } + + // Describes the metadata about dynamic retrieval. + message DynamicRetrievalMetadata { + // Metadata for the dynamic retrieval predictor. + DynamicRetrievalPredictorMetadata predictor_metadata = 1; + } + + // Describes the metadata about the dynamic retrieval predictor. + message DynamicRetrievalPredictorMetadata { + // The version of the predictor which was used in dynamic retrieval. + enum Version { + // Unspecified version, should never be used. + VERSION_UNSPECIFIED = 0; + + // The V1 model which is evaluating each source independently. + V1_INDEPENDENT = 1; + } + + // The version of the predictor which was used in dynamic retrieval. + Version version = 1; + + // The value of the predictor. This should be between [0, 1] where + // a value of 0 means that the query would not benefit from grounding, + // while a value of 1.0 means that the query would benefit the most. + // In between values allow to differentiate between different usefulness + // scores for grounding. + optional float prediction = 2; + } + + // Google search entry point. + message SearchEntryPoint { + // Web content snippet that can be embedded in a web page or an app + // webview. + string rendered_content = 1; + + // Base64 encoded JSON representing array of <search term, search url> + // tuple. + bytes sdk_blob = 2; + } + + // Grounding info for a claim in the candidate and its support. + message GroundingSupport { + // Text for the claim in the candidate. Always provided when a + // support is found. + string claim_text = 1; + + // A list of indices (into 'support_chunks') specifying the + // citations associated with the claim. For instance [1,3,4] means + // that support_chunks[1], support_chunks[3], + // support_chunks[4] are the chunks attributed to the claim. + repeated int32 support_chunk_indices = 3; + + // A score in the range of [0, 1] describing how grounded is a specific + // claim in the support chunks indicated. + // Higher value means that the claim is better supported by the chunks. + optional float support_score = 2; + } + + // Retrieval metadata to provide an understanding in the + // retrieval steps performed by the model. There can be multiple such + // messages which can correspond to different parts of the retrieval. This + // is a mechanism used to ensure transparency to our users. + repeated RetrievalMetadata retrieval_metadata = 5; + + // List of chunks to be attributed across all claims in the candidate. + // These are derived from the grounding sources supplied in the request. + repeated FactChunk support_chunks = 1; + + // Web search queries for the following-up web search. + repeated string web_search_queries = 3; + + // Google search entry for the following-up web searches. + SearchEntryPoint search_entry_point = 4; + + // GroundingSupport across all claims in the answer candidate. + // An support to a fact indicates that the claim is supported by + // the fact. + repeated GroundingSupport grounding_support = 2; + } + + // Index of the candidate. + int32 index = 1; + + // Content of the candidate. + GroundedGenerationContent content = 2; + + // The overall grounding score for the candidate, in the range of [0, 1]. + optional float grounding_score = 3; + + // Grounding metadata for the generated content. + GroundingMetadata grounding_metadata = 4; + } + + // Generated candidates. + repeated Candidate candidates = 1; +} + // Specification for the grounding check. message CheckGroundingSpec { // The threshold (in [0,1]) used for determining whether a fact must be @@ -129,8 +469,9 @@ message CheckGroundingResponse { // field will be set to false. In that case, no grounding check was done for // the claim and therefore // [citation_indices][google.cloud.discoveryengine.v1.CheckGroundingResponse.Claim.citation_indices], + // [anti_citation_indices][google.cloud.discoveryengine.v1.CheckGroundingResponse.Claim.anti_citation_indices], // and - // [anti_citation_indices][google.cloud.discoveryengine.v1.CheckGroundingResponse.Claim.anti_citation_indices] + // [score][google.cloud.discoveryengine.v1.CheckGroundingResponse.Claim.score] // should not be returned. optional bool grounding_check_required = 6; } diff --git a/google/cloud/discoveryengine/v1/import_config.proto b/google/cloud/discoveryengine/v1/import_config.proto index 171a0c1dc..837dda002 100644 --- a/google/cloud/discoveryengine/v1/import_config.proto +++ b/google/cloud/discoveryengine/v1/import_config.proto @@ -82,7 +82,7 @@ message BigQuerySource { google.type.Date partition_date = 5; } - // The project ID (can be project # or ID) that the BigQuery source is in with + // The project ID or the project number that contains the BigQuery source. Has // a length limit of 128 characters. If not specified, inherits the project // ID from the parent request. string project_id = 1; @@ -124,7 +124,7 @@ message BigQuerySource { // The Spanner source for importing data message SpannerSource { - // The project ID that the Spanner source is in with a length limit of 128 + // The project ID that contains the Spanner source. Has a length limit of 128 // characters. If not specified, inherits the project ID from the parent // request. string project_id = 1; @@ -258,7 +258,7 @@ message BigtableOptions { // The Cloud Bigtable source for importing data. message BigtableSource { - // The project ID that the Bigtable source is in with a length limit of 128 + // The project ID that contains the Bigtable source. Has a length limit of 128 // characters. If not specified, inherits the project ID from the parent // request. string project_id = 1; @@ -290,12 +290,18 @@ message FhirStoreSource { // limit of 2,000 characters. Can be specified if one wants to have the // FhirStore export to a specific Cloud Storage directory. string gcs_staging_dir = 2; + + // The FHIR resource types to import. The resource types should be a subset of + // all [supported FHIR resource + // types](https://cloud.google.com/generative-ai-app-builder/docs/fhir-schema-reference#resource-level-specification). + // Default to all supported FHIR resource types if empty. + repeated string resource_types = 3; } // Cloud SQL source import data from. message CloudSqlSource { - // The project ID that the Cloud SQL source is in with a length limit of 128 - // characters. If not specified, inherits the project ID from the parent + // The project ID that contains the Cloud SQL source. Has a length limit of + // 128 characters. If not specified, inherits the project ID from the parent // request. string project_id = 1; @@ -327,8 +333,8 @@ message CloudSqlSource { // AlloyDB source import data from. message AlloyDbSource { - // The project ID that the AlloyDB source is in - // with a length limit of 128 characters. If not specified, inherits the + // The project ID that contains the AlloyDB source. + // Has a length limit of 128 characters. If not specified, inherits the // project ID from the parent request. string project_id = 1; diff --git a/google/cloud/discoveryengine/v1/project.proto b/google/cloud/discoveryengine/v1/project.proto index aa311bf20..48979b431 100644 --- a/google/cloud/discoveryengine/v1/project.proto +++ b/google/cloud/discoveryengine/v1/project.proto @@ -81,7 +81,7 @@ message Project { } // Output only. Full resource name of the project, for example - // `projects/{project_number}`. + // `projects/{project}`. // Note that when making requests, project number and project id are both // acceptable, but the server will always respond in project number. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/google/cloud/discoveryengine/v1/purge_config.proto b/google/cloud/discoveryengine/v1/purge_config.proto index 2101b6952..342a96abc 100644 --- a/google/cloud/discoveryengine/v1/purge_config.proto +++ b/google/cloud/discoveryengine/v1/purge_config.proto @@ -18,6 +18,7 @@ package google.cloud.discoveryengine.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1/import_config.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; @@ -30,10 +31,123 @@ option objc_class_prefix = "DISCOVERYENGINE"; option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; +// Request message for PurgeUserEvents method. +message PurgeUserEventsRequest { + // Required. The resource name of the catalog under which the events are + // created. The format is + // `projects/{project}/locations/global/collections/{collection}/dataStores/{dataStore}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; + + // Required. The filter string to specify the events to be deleted with a + // length limit of 5,000 characters. The eligible fields for filtering are: + // + // * `eventType`: Double quoted + // [UserEvent.event_type][google.cloud.discoveryengine.v1.UserEvent.event_type] + // string. + // * `eventTime`: in ISO 8601 "zulu" format. + // * `userPseudoId`: Double quoted string. Specifying this will delete all + // events associated with a visitor. + // * `userId`: Double quoted string. Specifying this will delete all events + // associated with a user. + // + // Examples: + // + // * Deleting all events in a time range: + // `eventTime > "2012-04-23T18:25:43.511Z" + // eventTime < "2012-04-23T18:30:43.511Z"` + // * Deleting specific eventType: + // `eventType = "search"` + // * Deleting all events for a specific visitor: + // `userPseudoId = "visitor1024"` + // * Deleting all events inside a DataStore: + // `*` + // + // The filtering fields are assumed to have an implicit AND. + string filter = 2 [(google.api.field_behavior) = REQUIRED]; + + // The `force` field is currently not supported. Purge user event requests + // will permanently delete all purgeable events. Once the development is + // complete: + // If `force` is set to false, the method will return the expected + // purge count without deleting any user events. This field will default to + // false if not included in the request. + bool force = 3; +} + +// Response of the PurgeUserEventsRequest. If the long running operation is +// successfully done, then this message is returned by the +// google.longrunning.Operations.response field. +message PurgeUserEventsResponse { + // The total count of events purged as a result of the operation. + int64 purge_count = 1; +} + +// Metadata related to the progress of the PurgeUserEvents operation. +// This will be returned by the google.longrunning.Operation.metadata field. +message PurgeUserEventsMetadata { + // 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; +} + +// Configuration of destination for Purge related errors. +message PurgeErrorConfig { + // Required. Errors destination. + oneof destination { + // Cloud Storage prefix for purge errors. This must be an empty, + // existing Cloud Storage directory. Purge errors are written to + // sharded files in this directory, one per line, as a JSON-encoded + // `google.rpc.Status` message. + string gcs_prefix = 1; + } +} + // Request message for // [DocumentService.PurgeDocuments][google.cloud.discoveryengine.v1.DocumentService.PurgeDocuments] // method. message PurgeDocumentsRequest { + // The inline source for the input config for + // [DocumentService.PurgeDocuments][google.cloud.discoveryengine.v1.DocumentService.PurgeDocuments] + // method. + message InlineSource { + // Required. A list of full resource name of documents to purge. In the + // format + // `projects/*/locations/*/collections/*/dataStores/*/branches/*/documents/*`. + // Recommended max of 100 items. + repeated string documents = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Document" + } + ]; + } + + // The desired input source for the purging documents based on document IDs. + oneof source { + // Cloud Storage location for the input content. + // Supported `data_schema`: + // * `document_id`: One valid + // [Document.id][google.cloud.discoveryengine.v1.Document.id] per line. + GcsSource gcs_source = 5; + + // Inline source for the input content for purge. + InlineSource inline_source = 6; + } + // Required. The parent resource name, such as // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}`. string parent = 1 [ @@ -48,6 +162,9 @@ message PurgeDocumentsRequest { // `*` (all items). string filter = 2 [(google.api.field_behavior) = REQUIRED]; + // The desired location of errors incurred during the purge. + PurgeErrorConfig error_config = 7; + // Actually performs the purge. If `force` is set to false, return the // expected purge count without deleting any documents. bool force = 3; diff --git a/google/cloud/discoveryengine/v1/rank_service.proto b/google/cloud/discoveryengine/v1/rank_service.proto index e3e5142db..e7630fa5e 100644 --- a/google/cloud/discoveryengine/v1/rank_service.proto +++ b/google/cloud/discoveryengine/v1/rank_service.proto @@ -73,7 +73,7 @@ message RankingRecord { // [RankService.Rank][google.cloud.discoveryengine.v1.RankService.Rank] method. message RankRequest { // Required. The resource name of the rank service config, such as - // `projects/{project_num}/locations/{location_id}/rankingConfigs/default_ranking_config`. + // `projects/{project_num}/locations/{location}/rankingConfigs/default_ranking_config`. string ranking_config = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/google/cloud/discoveryengine/v1/recommendation_service.proto b/google/cloud/discoveryengine/v1/recommendation_service.proto index 634470290..508d230e8 100644 --- a/google/cloud/discoveryengine/v1/recommendation_service.proto +++ b/google/cloud/discoveryengine/v1/recommendation_service.proto @@ -58,7 +58,8 @@ service RecommendationService { // Request message for Recommend method. message RecommendRequest { - // Required. Full resource name of a [ServingConfig][]: + // Required. Full resource name of a + // [ServingConfig][google.cloud.discoveryengine.v1.ServingConfig]: // `projects/*/locations/global/collections/*/engines/*/servingConfigs/*`, or // `projects/*/locations/global/collections/*/dataStores/*/servingConfigs/*` // diff --git a/google/cloud/discoveryengine/v1/search_service.proto b/google/cloud/discoveryengine/v1/search_service.proto index 290f1e455..198a553b4 100644 --- a/google/cloud/discoveryengine/v1/search_service.proto +++ b/google/cloud/discoveryengine/v1/search_service.proto @@ -55,6 +55,34 @@ service SearchService { } }; } + + // Performs a search. Similar to the + // [SearchService.Search][google.cloud.discoveryengine.v1.SearchService.Search] + // method, but a lite version that allows API key for authentication, where + // OAuth and IAM checks are not required. + // + // Only public website search is supported by this method. If data stores and + // engines not associated with public website search are specified, a + // `FAILED_PRECONDITION` error is returned. + // + // This method can be used for easy onboarding without having to implement an + // authentication backend. However, it is strongly recommended to use + // [SearchService.Search][google.cloud.discoveryengine.v1.SearchService.Search] + // instead with required OAuth and IAM checks to provide better data security. + rpc SearchLite(SearchRequest) returns (SearchResponse) { + option (google.api.http) = { + post: "/v1/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:searchLite" + body: "*" + additional_bindings { + post: "/v1/{serving_config=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}:searchLite" + body: "*" + } + additional_bindings { + post: "/v1/{serving_config=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}:searchLite" + body: "*" + } + }; + } } // Request message for @@ -83,6 +111,11 @@ message SearchRequest { type: "discoveryengine.googleapis.com/DataStore" } ]; + + // Optional. Filter specification to filter documents in the data store + // specified by data_store field. For more information on filtering, see + // [Filtering](https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata) + string filter = 5 [(google.api.field_behavior) = OPTIONAL]; } // A facet specification to perform faceted search. @@ -223,6 +256,80 @@ message SearchRequest { message BoostSpec { // Boost applies to documents which match a condition. message ConditionBoostSpec { + // Specification for custom ranking based on customer specified attribute + // value. It provides more controls for customized ranking than the simple + // (condition, boost) combination above. + message BoostControlSpec { + // The control points used to define the curve. The curve defined + // through these control points can only be monotonically increasing + // or decreasing(constant values are acceptable). + message ControlPoint { + // Can be one of: + // 1. The numerical field value. + // 2. The duration spec for freshness: + // The value must be formatted as an XSD `dayTimeDuration` value (a + // restricted subset of an ISO 8601 duration value). The pattern for + // this is: `[nD][T[nH][nM][nS]]`. + string attribute_value = 1; + + // The value between -1 to 1 by which to boost the score if the + // attribute_value evaluates to the value specified above. + float boost_amount = 2; + } + + // The attribute(or function) for which the custom ranking is to be + // applied. + enum AttributeType { + // Unspecified AttributeType. + ATTRIBUTE_TYPE_UNSPECIFIED = 0; + + // The value of the numerical field will be used to dynamically update + // the boost amount. In this case, the attribute_value (the x value) + // of the control point will be the actual value of the numerical + // field for which the boost_amount is specified. + NUMERICAL = 1; + + // For the freshness use case the attribute value will be the duration + // between the current time and the date in the datetime field + // specified. The value must be formatted as an XSD `dayTimeDuration` + // value (a restricted subset of an ISO 8601 duration value). The + // pattern for this is: `[nD][T[nH][nM][nS]]`. + // For example, `5D`, `3DT12H30M`, `T24H`. + FRESHNESS = 2; + } + + // The interpolation type to be applied. Default will be linear + // (Piecewise Linear). + enum InterpolationType { + // Interpolation type is unspecified. In this case, it defaults to + // Linear. + INTERPOLATION_TYPE_UNSPECIFIED = 0; + + // Piecewise linear interpolation will be applied. + LINEAR = 1; + } + + // The name of the field whose value will be used to determine the + // boost amount. + string field_name = 1; + + // The attribute type to be used to determine the boost amount. The + // attribute value can be derived from the field value of the specified + // field_name. In the case of numerical it is straightforward i.e. + // attribute_value = numerical_field_value. In the case of freshness + // however, attribute_value = (time.now() - datetime_field_value). + AttributeType attribute_type = 2; + + // The interpolation type to be applied to connect the control points + // listed below. + InterpolationType interpolation_type = 3; + + // The control points used to define the curve. The monotonic function + // (defined through the interpolation_type above) passes through the + // control points listed here. + repeated ControlPoint control_points = 4; + } + // An expression which specifies a boost condition. The syntax and // supported fields are the same as a filter expression. See // [SearchRequest.filter][google.cloud.discoveryengine.v1.SearchRequest.filter] @@ -255,6 +362,10 @@ message SearchRequest { // boost_control_spec below are set. If both are set then the global boost // is ignored and the more fine-grained boost_control_spec is applied. float boost = 2; + + // Complex specification for custom ranking based on customer defined + // attribute value. + BoostControlSpec boost_control_spec = 3; } // Condition boost specifications. If a document matches multiple conditions @@ -420,6 +531,28 @@ message SearchRequest { // fallback messages instead. bool ignore_non_summary_seeking_query = 4; + // Specifies whether to filter out queries that have low relevance. The + // default value is `false`. + // + // If this field is set to `false`, all search results are used regardless + // of relevance to generate answers. If set to `true`, only queries with + // high relevance search results will generate answers. + bool ignore_low_relevant_content = 9; + + // Optional. Specifies whether to filter out jail-breaking queries. The + // default value is `false`. + // + // Google employs search-query classification to detect jail-breaking + // queries. No summary is returned if the search query is classified as a + // jail-breaking query. A user might add instructions to the query to + // change the tone, style, language, content of the answer, or ask the + // model to act as a different entity, e.g. "Reply in the tone of a + // competing company's CEO". If this field is set to `true`, we skip + // generating summaries for jail-breaking queries and return fallback + // messages instead. + bool ignore_jail_breaking_query = 10 + [(google.api.field_behavior) = OPTIONAL]; + // If specified, the spec will be used to modify the prompt provided to // the LLM. ModelPromptSpec model_prompt_spec = 5; @@ -514,11 +647,7 @@ message SearchRequest { } // Specifies the search result mode. If unspecified, the - // search result mode is based on - // [DataStore.DocumentProcessingConfig.chunking_config][]: - // * If [DataStore.DocumentProcessingConfig.chunking_config][] is specified, - // it defaults to `CHUNKS`. - // * Otherwise, it defaults to `DOCUMENTS`. + // search result mode defaults to `DOCUMENTS`. enum SearchResultMode { // Default value. SEARCH_RESULT_MODE_UNSPECIFIED = 0; @@ -544,11 +673,7 @@ message SearchRequest { ExtractiveContentSpec extractive_content_spec = 3; // Specifies the search result mode. If unspecified, the - // search result mode is based on - // [DataStore.DocumentProcessingConfig.chunking_config][]: - // * If [DataStore.DocumentProcessingConfig.chunking_config][] is specified, - // it defaults to `CHUNKS`. - // * Otherwise, it defaults to `DOCUMENTS`. + // search result mode defaults to `DOCUMENTS`. SearchResultMode search_result_mode = 4; // Specifies the chunk spec to be returned from the search response. @@ -682,6 +807,11 @@ message SearchRequest { // If this field is negative, an `INVALID_ARGUMENT` is returned. int32 offset = 6; + // The maximum number of results to return for OneBox. + // This applies to each OneBox type individually. + // Default number is 10. + int32 one_box_page_size = 47; + // Specs defining dataStores to filter on in a search call and configurations // for those dataStores. This is only considered for engines with multiple // dataStores use case. For single dataStore within an engine, they should @@ -724,9 +854,12 @@ message SearchRequest { // Leave it unset if ordered by relevance. `order_by` expression is // case-sensitive. // - // For more information on ordering for retail search, see - // [Ordering](https://cloud.google.com/retail/docs/filter-and-order#order) - // + // For more information on ordering the website search results, see + // [Order web search + // results](https://cloud.google.com/generative-ai-app-builder/docs/order-web-search-results). + // For more information on ordering the healthcare search results, see + // [Order healthcare search + // results](https://cloud.google.com/generative-ai-app-builder/docs/order-hc-results). // If this field is unrecognizable, an `INVALID_ARGUMENT` is returned. string order_by = 8; @@ -1003,14 +1136,15 @@ message SearchResponse { // The adversarial query ignored case. // - // Only populated when + // Only used when // [SummarySpec.ignore_adversarial_query][google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SummarySpec.ignore_adversarial_query] // is set to `true`. ADVERSARIAL_QUERY_IGNORED = 1; // The non-summary seeking query ignored case. // - // Only populated when + // Google skips the summary if the query is chit chat. + // Only used when // [SummarySpec.ignore_non_summary_seeking_query][google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SummarySpec.ignore_non_summary_seeking_query] // is set to `true`. NON_SUMMARY_SEEKING_QUERY_IGNORED = 2; @@ -1032,6 +1166,34 @@ message SearchResponse { // // Google skips the summary if the LLM addon is not enabled. LLM_ADDON_NOT_ENABLED = 5; + + // The no relevant content case. + // + // Google skips the summary if there is no relevant content in the + // retrieved search results. + NO_RELEVANT_CONTENT = 6; + + // The jail-breaking query ignored case. + // + // For example, "Reply in the tone of a competing company's CEO". + // Only used when + // [SearchRequest.ContentSearchSpec.SummarySpec.ignore_jail_breaking_query] + // is set to `true`. + JAIL_BREAKING_QUERY_IGNORED = 7; + + // The customer policy violation case. + // + // Google skips the summary if there is a customer policy violation + // detected. The policy is defined by the customer. + CUSTOMER_POLICY_VIOLATION = 8; + + // The non-answer seeking query ignored case. + // + // Google skips the summary if the query doesn't have clear intent. + // Only used when + // [SearchRequest.ContentSearchSpec.SummarySpec.ignore_non_answer_seeking_query] + // is set to `true`. + NON_SUMMARY_SEEKING_QUERY_IGNORED_V2 = 9; } // The summary content. @@ -1095,7 +1257,8 @@ message SearchResponse { // A unique search token. This should be included in the // [UserEvent][google.cloud.discoveryengine.v1.UserEvent] logs resulting from // this search, which enables accurate attribution of search model - // performance. + // performance. This also helps to identify a request during the customer + // support scenarios. string attribution_token = 4; // The URI of a customer-defined redirect page. If redirect action is diff --git a/google/cloud/discoveryengine/v1/search_tuning_service.proto b/google/cloud/discoveryengine/v1/search_tuning_service.proto new file mode 100644 index 000000000..a7b48f904 --- /dev/null +++ b/google/cloud/discoveryengine/v1/search_tuning_service.proto @@ -0,0 +1,196 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1/custom_tuning_model.proto"; +import "google/cloud/discoveryengine/v1/import_config.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "SearchTuningServiceProto"; +option java_package = "com.google.cloud.discoveryengine.v1"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1"; + +// Service for search tuning. +service SearchTuningService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Trains a custom model. + rpc TrainCustomModel(TrainCustomModelRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{data_store=projects/*/locations/*/collections/*/dataStores/*}:trainCustomModel" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.discoveryengine.v1.TrainCustomModelResponse" + metadata_type: "google.cloud.discoveryengine.v1.TrainCustomModelMetadata" + }; + } + + // Gets a list of all the custom models. + rpc ListCustomModels(ListCustomModelsRequest) + returns (ListCustomModelsResponse) { + option (google.api.http) = { + get: "/v1/{data_store=projects/*/locations/*/collections/*/dataStores/*}/customModels" + }; + } +} + +// Request message for +// [SearchTuningService.ListCustomModels][google.cloud.discoveryengine.v1.SearchTuningService.ListCustomModels] +// method. +message ListCustomModelsRequest { + // Required. The resource name of the parent Data Store, such as + // `projects/*/locations/global/collections/default_collection/dataStores/default_data_store`. + // This field is used to identify the data store where to fetch the models + // from. + string data_store = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; +} + +// Response message for +// [SearchTuningService.ListCustomModels][google.cloud.discoveryengine.v1.SearchTuningService.ListCustomModels] +// method. +message ListCustomModelsResponse { + // List of custom tuning models. + repeated CustomTuningModel models = 1; +} + +// Request message for +// [SearchTuningService.TrainCustomModel][google.cloud.discoveryengine.v1.SearchTuningService.TrainCustomModel] +// method. +message TrainCustomModelRequest { + // Cloud Storage training data input. + message GcsTrainingInput { + // The Cloud Storage corpus data which could be associated in train data. + // The data path format is `gs://<bucket_to_data>/<jsonl_file_name>`. + // A newline delimited jsonl/ndjson file. + // + // For search-tuning model, each line should have the _id, title + // and text. Example: + // `{"_id": "doc1", title: "relevant doc", "text": "relevant text"}` + string corpus_data_path = 1; + + // The gcs query data which could be associated in train data. + // The data path format is `gs://<bucket_to_data>/<jsonl_file_name>`. + // A newline delimited jsonl/ndjson file. + // + // For search-tuning model, each line should have the _id + // and text. Example: {"_id": "query1", "text": "example query"} + string query_data_path = 2; + + // Cloud Storage training data path whose format should be + // `gs://<bucket_to_data>/<tsv_file_name>`. The file should be in tsv + // format. Each line should have the doc_id and query_id and score (number). + // + // For search-tuning model, it should have the query-id corpus-id + // score as tsv file header. The score should be a number in `[0, inf+)`. + // The larger the number is, the more relevant the pair is. Example: + // + // * `query-id\tcorpus-id\tscore` + // * `query1\tdoc1\t1` + string train_data_path = 3; + + // Cloud Storage test data. Same format as train_data_path. If not provided, + // a random 80/20 train/test split will be performed on train_data_path. + string test_data_path = 4; + } + + // Model training input. + oneof training_input { + // Cloud Storage training input. + GcsTrainingInput gcs_training_input = 2; + } + + // Required. The resource name of the Data Store, such as + // `projects/*/locations/global/collections/default_collection/dataStores/default_data_store`. + // This field is used to identify the data store where to train the models. + string data_store = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; + + // Model to be trained. Supported values are: + // + // * **search-tuning**: Fine tuning the search system based on data provided. + string model_type = 3; + + // The desired location of errors incurred during the data ingestion and + // training. + ImportErrorConfig error_config = 4; + + // If not provided, a UUID will be generated. + string model_id = 5; +} + +// Response of the +// [TrainCustomModelRequest][google.cloud.discoveryengine.v1.TrainCustomModelRequest]. +// This message is returned by the google.longrunning.Operations.response field. +message TrainCustomModelResponse { + // A sample of errors encountered while processing the data. + repeated google.rpc.Status error_samples = 1; + + // Echoes the destination for the complete errors in the request if set. + ImportErrorConfig error_config = 2; + + // The trained model status. Possible values are: + // + // * **bad-data**: The training data quality is bad. + // * **no-improvement**: Tuning didn't improve performance. Won't deploy. + // * **in-progress**: Model training job creation is in progress. + // * **training**: Model is actively training. + // * **evaluating**: The model is evaluating trained metrics. + // * **indexing**: The model trained metrics are indexing. + // * **ready**: The model is ready for serving. + string model_status = 3; + + // The metrics of the trained model. + map<string, double> metrics = 4; + + // Fully qualified name of the CustomTuningModel. + string model_name = 5; +} + +// Metadata related to the progress of the TrainCustomModel operation. This is +// returned by the google.longrunning.Operation.metadata field. +message TrainCustomModelMetadata { + // Operation create time. + google.protobuf.Timestamp create_time = 1; + + // Operation last update time. If the operation is done, this is also the + // finish time. + google.protobuf.Timestamp update_time = 2; +} diff --git a/google/cloud/discoveryengine/v1/site_search_engine_service.proto b/google/cloud/discoveryengine/v1/site_search_engine_service.proto index fa5ea8dcb..ba0e26e90 100644 --- a/google/cloud/discoveryengine/v1/site_search_engine_service.proto +++ b/google/cloud/discoveryengine/v1/site_search_engine_service.proto @@ -536,6 +536,11 @@ message RecrawlUrisRequest { // [TargetSite][google.cloud.discoveryengine.v1.TargetSite] in // `site_search_engine`. repeated string uris = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Full resource name of the [SiteCredential][], such as + // `projects/*/locations/*/collections/*/dataStores/*/siteSearchEngine/siteCredentials/*`. + // Only set to crawl private URIs. + string site_credential = 5 [(google.api.field_behavior) = OPTIONAL]; } // Response message for diff --git a/google/cloud/discoveryengine/v1/user_event.proto b/google/cloud/discoveryengine/v1/user_event.proto index bbc01341d..f5215796c 100644 --- a/google/cloud/discoveryengine/v1/user_event.proto +++ b/google/cloud/discoveryengine/v1/user_event.proto @@ -429,7 +429,7 @@ message DocumentInfo { // The [Document][google.cloud.discoveryengine.v1.Document] resource full // name, of the form: - // `projects/{project_id}/locations/{location}/collections/{collection_id}/dataStores/{data_store_id}/branches/{branch_id}/documents/{document_id}` + // `projects/{project}/locations/{location}/collections/{collection_id}/dataStores/{data_store_id}/branches/{branch_id}/documents/{document_id}` string name = 2 [(google.api.resource_reference) = { type: "discoveryengine.googleapis.com/Document" }]; @@ -453,6 +453,10 @@ message DocumentInfo { // The promotion IDs associated with this Document. // Currently, this field is restricted to at most one ID. repeated string promotion_ids = 4; + + // Output only. Whether the referenced Document can be found in the data + // store. + bool joined = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Detailed panel information associated with a user event. diff --git a/google/cloud/discoveryengine/v1/user_event_service.proto b/google/cloud/discoveryengine/v1/user_event_service.proto index 7ec0f7ca6..489101e63 100644 --- a/google/cloud/discoveryengine/v1/user_event_service.proto +++ b/google/cloud/discoveryengine/v1/user_event_service.proto @@ -22,6 +22,7 @@ import "google/api/field_behavior.proto"; import "google/api/httpbody.proto"; import "google/api/resource.proto"; import "google/cloud/discoveryengine/v1/import_config.proto"; +import "google/cloud/discoveryengine/v1/purge_config.proto"; import "google/cloud/discoveryengine/v1/user_event.proto"; import "google/longrunning/operations.proto"; @@ -73,6 +74,26 @@ service UserEventService { }; } + // Deletes permanently all user events specified by the filter provided. + // Depending on the number of events specified by the filter, this operation + // could take hours or days to complete. To test a filter, use the list + // command first. + rpc PurgeUserEvents(PurgeUserEventsRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/dataStores/*}/userEvents:purge" + body: "*" + additional_bindings { + post: "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*}/userEvents:purge" + body: "*" + } + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.discoveryengine.v1.PurgeUserEventsResponse" + metadata_type: "google.cloud.discoveryengine.v1.PurgeUserEventsMetadata" + }; + } + // Bulk import of user events. Request processing might be // synchronous. Events that already exist are skipped. // Use this method for backfilling historical user events. diff --git a/google/cloud/discoveryengine/v1alpha/BUILD.bazel b/google/cloud/discoveryengine/v1alpha/BUILD.bazel index 1e21a743b..05b8e24fb 100644 --- a/google/cloud/discoveryengine/v1alpha/BUILD.bazel +++ b/google/cloud/discoveryengine/v1alpha/BUILD.bazel @@ -45,6 +45,8 @@ proto_library( "engine.proto", "engine_service.proto", "estimate_billing_service.proto", + "evaluation.proto", + "evaluation_service.proto", "grounded_generation_service.proto", "grounding.proto", "import_config.proto", @@ -53,6 +55,10 @@ proto_library( "purge_config.proto", "rank_service.proto", "recommendation_service.proto", + "sample_query.proto", + "sample_query_service.proto", + "sample_query_set.proto", + "sample_query_set_service.proto", "schema.proto", "schema_service.proto", "search_service.proto", @@ -155,6 +161,8 @@ java_gapic_test( "com.google.cloud.discoveryengine.v1alpha.EngineServiceClientTest", "com.google.cloud.discoveryengine.v1alpha.EstimateBillingServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1alpha.EstimateBillingServiceClientTest", + "com.google.cloud.discoveryengine.v1alpha.EvaluationServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1alpha.EvaluationServiceClientTest", "com.google.cloud.discoveryengine.v1alpha.GroundedGenerationServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1alpha.GroundedGenerationServiceClientTest", "com.google.cloud.discoveryengine.v1alpha.ProjectServiceClientHttpJsonTest", @@ -163,6 +171,10 @@ java_gapic_test( "com.google.cloud.discoveryengine.v1alpha.RankServiceClientTest", "com.google.cloud.discoveryengine.v1alpha.RecommendationServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1alpha.RecommendationServiceClientTest", + "com.google.cloud.discoveryengine.v1alpha.SampleQueryServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1alpha.SampleQueryServiceClientTest", + "com.google.cloud.discoveryengine.v1alpha.SampleQuerySetServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1alpha.SampleQuerySetServiceClientTest", "com.google.cloud.discoveryengine.v1alpha.SchemaServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1alpha.SchemaServiceClientTest", "com.google.cloud.discoveryengine.v1alpha.SearchServiceClientHttpJsonTest", diff --git a/google/cloud/discoveryengine/v1alpha/acl_config_service.proto b/google/cloud/discoveryengine/v1alpha/acl_config_service.proto index 6f09d2651..bc9044867 100644 --- a/google/cloud/discoveryengine/v1alpha/acl_config_service.proto +++ b/google/cloud/discoveryengine/v1alpha/acl_config_service.proto @@ -37,7 +37,7 @@ service AclConfigService { option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; - // Default Acl Configuration for use in a location of a customer's project. + // Default ACL configuration for use in a location of a customer's project. // Updates will only reflect to new data stores. Existing data stores will // still use the old value. rpc UpdateAclConfig(UpdateAclConfigRequest) returns (AclConfig) { diff --git a/google/cloud/discoveryengine/v1alpha/answer.proto b/google/cloud/discoveryengine/v1alpha/answer.proto index b8dbd68ed..cc874417d 100644 --- a/google/cloud/discoveryengine/v1alpha/answer.proto +++ b/google/cloud/discoveryengine/v1alpha/answer.proto @@ -69,6 +69,13 @@ message Answer { // Page identifier. string page_identifier = 2; + + // The relevance of the chunk for a given query. Values range from 0.0 + // (completely irrelevant) to 1.0 (completely relevant). + // This value is for informational purpose only. It may change for + // the same query and chunk at any time due to a model retraining or + // change in implementation. + optional float relevance_score = 3; } // Document resource name. @@ -121,13 +128,28 @@ message Answer { // Chunk textual content. string content = 2; - // Relevance score. + // The relevance of the chunk for a given query. Values range from 0.0 + // (completely irrelevant) to 1.0 (completely relevant). + // This value is for informational purpose only. It may change for + // the same query and chunk at any time due to a model retraining or + // change in implementation. optional float relevance_score = 3; // Document metadata. DocumentMetadata document_metadata = 4; } + // Structured search information. + message StructuredDocumentInfo { + // Document resource name. + string document = 1 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Document" + }]; + + // Structured search data. + google.protobuf.Struct struct_data = 2; + } + // Search result content. oneof content { // Unstructured document information. @@ -135,6 +157,9 @@ message Answer { // Chunk information. ChunkInfo chunk_info = 2; + + // Structured document information. + StructuredDocumentInfo structured_document_info = 3; } } @@ -168,7 +193,11 @@ message Answer { // Chunk textual content. string content = 2; - // Relevance score. + // The relevance of the chunk for a given query. Values range from + // 0.0 (completely irrelevant) to 1.0 (completely relevant). + // This value is for informational purpose only. It may change for + // the same query and chunk at any time due to a model retraining or + // change in implementation. optional float relevance_score = 3; } @@ -188,6 +217,14 @@ message Answer { // If citation_type is CHUNK_LEVEL_CITATION and chunk mode is on, // populate chunk info. repeated ChunkInfo chunk_info = 5; + + // Data representation. + // The structured JSON data for the document. + // It's populated from the struct data from the Document + // , or the Chunk in + // search result + // . + google.protobuf.Struct struct_data = 6; } // Search results observed by the search action, it can be snippets info @@ -247,6 +284,9 @@ message Answer { // Non-answer-seeking query classification type. NON_ANSWER_SEEKING_QUERY = 2; + + // Jail-breaking query classification type. + JAIL_BREAKING_QUERY = 3; } // Query classification type. @@ -296,6 +336,25 @@ message Answer { // Google skips the answer if there is a potential policy violation // detected. This includes content that may be violent or toxic. POTENTIAL_POLICY_VIOLATION = 4; + + // The no relevant content case. + // + // Google skips the answer if there is no relevant content in the + // retrieved search results. + NO_RELEVANT_CONTENT = 5; + + // The jail-breaking query ignored case. + // + // For example, "Reply in the tone of a competing company's CEO". + // Google skips the answer if the query is classified as a jail-breaking + // query. + JAIL_BREAKING_QUERY_IGNORED = 6; + + // The customer policy violation case. + // + // Google skips the summary if there is a customer policy violation + // detected. The policy is defined by the customer. + CUSTOMER_POLICY_VIOLATION = 7; } // Immutable. Fully qualified name diff --git a/google/cloud/discoveryengine/v1alpha/chunk.proto b/google/cloud/discoveryengine/v1alpha/chunk.proto index 2fce93273..384fbbc98 100644 --- a/google/cloud/discoveryengine/v1alpha/chunk.proto +++ b/google/cloud/discoveryengine/v1alpha/chunk.proto @@ -96,7 +96,7 @@ message Chunk { // Content is a string from a document (parsed content). string content = 3; - // The relevance score based on similarity. + // Output only. Represents the relevance score based on similarity. // Higher score indicates higher chunk relevance. // The score is in range [-1.0, 1.0]. // Only populated on [SearchService.SearchResponse][]. diff --git a/google/cloud/discoveryengine/v1alpha/completion.proto b/google/cloud/discoveryengine/v1alpha/completion.proto index bf59e80e1..1023e7883 100644 --- a/google/cloud/discoveryengine/v1alpha/completion.proto +++ b/google/cloud/discoveryengine/v1alpha/completion.proto @@ -50,3 +50,34 @@ message SuggestionDenyListEntry { // exact phrase, or block any suggestions containing this phrase. MatchOperator match_operator = 2 [(google.api.field_behavior) = REQUIRED]; } + +// Autocomplete suggestions that are imported from Customer. +message CompletionSuggestion { + // Ranking metrics of this suggestion. + oneof ranking_info { + // Global score of this suggestion. Control how this suggestion would be + // scored / ranked. + double global_score = 2; + + // Frequency of this suggestion. Will be used to rank suggestions when score + // is not available. + int64 frequency = 3; + } + + // Required. The suggestion text. + string suggestion = 1 [(google.api.field_behavior) = REQUIRED]; + + // BCP-47 language code of this suggestion. + string language_code = 4; + + // If two suggestions have the same groupId, they will not be + // returned together. Instead the one ranked higher will be returned. This can + // be used to deduplicate semantically identical suggestions. + string group_id = 5; + + // The score of this suggestion within its group. + double group_score = 6; + + // Alternative matching phrases for this suggestion. + repeated string alternative_phrases = 7; +} diff --git a/google/cloud/discoveryengine/v1alpha/completion_service.proto b/google/cloud/discoveryengine/v1alpha/completion_service.proto index 042fb8bf0..e6c3a1f36 100644 --- a/google/cloud/discoveryengine/v1alpha/completion_service.proto +++ b/google/cloud/discoveryengine/v1alpha/completion_service.proto @@ -86,6 +86,44 @@ service CompletionService { metadata_type: "google.cloud.discoveryengine.v1alpha.PurgeSuggestionDenyListEntriesMetadata" }; } + + // Imports + // [CompletionSuggestion][google.cloud.discoveryengine.v1alpha.CompletionSuggestion]s + // for a DataStore. + rpc ImportCompletionSuggestions(ImportCompletionSuggestionsRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*}/completionSuggestions:import" + body: "*" + additional_bindings { + post: "/v1alpha/{parent=projects/*/locations/*/dataStores/*}/completionSuggestions:import" + body: "*" + } + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.discoveryengine.v1alpha.ImportCompletionSuggestionsResponse" + metadata_type: "google.cloud.discoveryengine.v1alpha.ImportCompletionSuggestionsMetadata" + }; + } + + // Permanently deletes all + // [CompletionSuggestion][google.cloud.discoveryengine.v1alpha.CompletionSuggestion]s + // for a DataStore. + rpc PurgeCompletionSuggestions(PurgeCompletionSuggestionsRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*}/completionSuggestions:purge" + body: "*" + additional_bindings { + post: "/v1alpha/{parent=projects/*/locations/*/dataStores/*}/completionSuggestions:purge" + body: "*" + } + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.discoveryengine.v1alpha.PurgeCompletionSuggestionsResponse" + metadata_type: "google.cloud.discoveryengine.v1alpha.PurgeCompletionSuggestionsMetadata" + }; + } } // Request message for diff --git a/google/cloud/discoveryengine/v1alpha/control.proto b/google/cloud/discoveryengine/v1alpha/control.proto index f20e6d6e2..0f9c937a0 100644 --- a/google/cloud/discoveryengine/v1alpha/control.proto +++ b/google/cloud/discoveryengine/v1alpha/control.proto @@ -184,7 +184,7 @@ message Control { string display_name = 2 [(google.api.field_behavior) = REQUIRED]; // Output only. List of all - // [ServingConfig][google.cloud.discoveryengine.v1alpha.ServingConfig] ids + // [ServingConfig][google.cloud.discoveryengine.v1alpha.ServingConfig] IDs // this control is attached to. May take up to 10 minutes to update after // changes. repeated string associated_serving_config_ids = 3 diff --git a/google/cloud/discoveryengine/v1alpha/conversational_search_service.proto b/google/cloud/discoveryengine/v1alpha/conversational_search_service.proto index 2f89b2cba..b74a56756 100644 --- a/google/cloud/discoveryengine/v1alpha/conversational_search_service.proto +++ b/google/cloud/discoveryengine/v1alpha/conversational_search_service.proto @@ -589,12 +589,7 @@ message AnswerQueryRequest { string order_by = 4; // Specifies the search result mode. If unspecified, the - // search result mode is based on - // [DataStore.DocumentProcessingConfig.chunking_config][]: - // * If [DataStore.DocumentProcessingConfig.chunking_config][] is - // specified, - // it defaults to `CHUNKS`. - // * Otherwise, it defaults to `DOCUMENTS`. + // search result mode defaults to `DOCUMENTS`. // See [parse and chunk // documents](https://cloud.google.com/generative-ai-app-builder/docs/parse-chunk-documents) SearchRequest.ContentSearchSpec.SearchResultMode search_result_mode = 5; @@ -715,6 +710,9 @@ message AnswerQueryRequest { // Non-answer-seeking query classification type. NON_ANSWER_SEEKING_QUERY = 2; + + // Jail-breaking query classification type. + JAIL_BREAKING_QUERY = 3; } // Enabled query classification types. @@ -801,6 +799,25 @@ message AnswerQueryRequest { // The field must be a UTF-8 encoded string with a length limit of 128 // characters. Otherwise, an `INVALID_ARGUMENT` error is returned. string user_pseudo_id = 12; + + // The user labels applied to a resource must meet the following requirements: + // + // * Each resource can have multiple labels, up to a maximum of 64. + // * Each label must be a key-value pair. + // * Keys have a minimum length of 1 character and a maximum length of 63 + // characters and cannot be empty. Values can be empty and have a maximum + // length of 63 characters. + // * Keys and values can contain only lowercase letters, numeric characters, + // underscores, and dashes. All characters must use UTF-8 encoding, and + // international characters are allowed. + // * The key portion of a label must be unique. However, you can use the same + // key with multiple resources. + // * Keys must start with a lowercase letter or international character. + // + // See [Google Cloud + // Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) + // for more details. + map<string, string> user_labels = 13; } // Response message for @@ -808,9 +825,11 @@ message AnswerQueryRequest { // method. message AnswerQueryResponse { // Answer resource object. - // If [AnswerQueryRequest.StepSpec.max_step_count][] is greater than 1, - // use [Answer.name][google.cloud.discoveryengine.v1alpha.Answer.name] to - // fetch answer information using + // If + // [AnswerQueryRequest.QueryUnderstandingSpec.QueryRephraserSpec.max_rephrase_steps][google.cloud.discoveryengine.v1alpha.AnswerQueryRequest.QueryUnderstandingSpec.QueryRephraserSpec.max_rephrase_steps] + // is greater than 1, use + // [Answer.name][google.cloud.discoveryengine.v1alpha.Answer.name] to fetch + // answer information using // [ConversationalSearchService.GetAnswer][google.cloud.discoveryengine.v1alpha.ConversationalSearchService.GetAnswer] // API. Answer answer = 1; diff --git a/google/cloud/discoveryengine/v1alpha/custom_tuning_model.proto b/google/cloud/discoveryengine/v1alpha/custom_tuning_model.proto index bfa54cccb..53f87ed8d 100644 --- a/google/cloud/discoveryengine/v1alpha/custom_tuning_model.proto +++ b/google/cloud/discoveryengine/v1alpha/custom_tuning_model.proto @@ -56,6 +56,12 @@ message CustomTuningModel { // The model training failed. TRAINING_FAILED = 5; + + // The model training finished successfully but metrics did not improve. + NO_IMPROVEMENT = 6; + + // Input data validation failed. Model training didn't start. + INPUT_VALIDATION_FAILED = 7; } // Required. The fully qualified resource name of the model. @@ -80,8 +86,11 @@ message CustomTuningModel { ModelState model_state = 4; // Timestamp the Model was created at. - google.protobuf.Timestamp create_time = 5; + google.protobuf.Timestamp create_time = 5 [deprecated = true]; // Timestamp the model training was initiated. google.protobuf.Timestamp training_start_time = 6; + + // The metrics of the trained model. + map<string, double> metrics = 7; } diff --git a/google/cloud/discoveryengine/v1alpha/data_store.proto b/google/cloud/discoveryengine/v1alpha/data_store.proto index f9997edac..bb8840fcf 100644 --- a/google/cloud/discoveryengine/v1alpha/data_store.proto +++ b/google/cloud/discoveryengine/v1alpha/data_store.proto @@ -55,6 +55,11 @@ message DataStore { // The data store is used for public website search. PUBLIC_WEBSITE = 3; + + // The data store is used for workspace search. Details of workspace + // data store are specified in the + // [WorkspaceConfig][google.cloud.discoveryengine.v1alpha.WorkspaceConfig]. + GOOGLE_WORKSPACE = 4; } // Immutable. The full resource name of the data store. @@ -98,6 +103,9 @@ message DataStore { google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Language info for DataStore. + LanguageInfo language_info = 14; + // Output only. Data store level identity provider config. IdpConfig idp_config = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -120,6 +128,13 @@ message DataStore { // non-`PUBLIC_WEBSITE` content config. bool acl_enabled = 24 [(google.api.field_behavior) = IMMUTABLE]; + // Config to store data store type configuration for workspace data. This + // must be set when + // [DataStore.content_config][google.cloud.discoveryengine.v1alpha.DataStore.content_config] + // is set as + // [DataStore.ContentConfig.GOOGLE_WORKSPACE][google.cloud.discoveryengine.v1alpha.DataStore.ContentConfig.GOOGLE_WORKSPACE]. + WorkspaceConfig workspace_config = 25; + // Configuration for Document understanding and enrichment. DocumentProcessingConfig document_processing_config = 27; @@ -140,3 +155,59 @@ message DataStore { // doc](https://cloud.google.com/generative-ai-app-builder/docs/provide-schema). Schema starting_schema = 28; } + +// Language info for DataStore. +message LanguageInfo { + // The language code for the DataStore. + string language_code = 1; + + // Output only. This is the normalized form of language_code. + // E.g.: language_code of `en-GB`, `en_GB`, `en-UK` or `en-gb` + // will have normalized_language_code of `en-GB`. + string normalized_language_code = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Language part of normalized_language_code. + // E.g.: `en-US` -> `en`, `zh-Hans-HK` -> `zh`, `en` -> `en`. + string language = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Region part of normalized_language_code, if present. + // E.g.: `en-US` -> `US`, `zh-Hans-HK` -> `HK`, `en` -> ``. + string region = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Config to store data store type configuration for workspace data +message WorkspaceConfig { + // Specifies the type of Workspace App supported by this DataStore + enum Type { + // Defaults to an unspecified Workspace type. + TYPE_UNSPECIFIED = 0; + + // Workspace Data Store contains Drive data + GOOGLE_DRIVE = 1; + + // Workspace Data Store contains Mail data + GOOGLE_MAIL = 2; + + // Workspace Data Store contains Sites data + GOOGLE_SITES = 3; + + // Workspace Data Store contains Calendar data + GOOGLE_CALENDAR = 4; + + // Workspace Data Store contains Chat data + GOOGLE_CHAT = 5; + + // Workspace Data Store contains Groups data + GOOGLE_GROUPS = 6; + + // Workspace Data Store contains Keep data + GOOGLE_KEEP = 7; + } + + // The Google Workspace data source. + Type type = 1; + + // Obfuscated Dasher customer ID. + string dasher_customer_id = 2; +} diff --git a/google/cloud/discoveryengine/v1alpha/data_store_service.proto b/google/cloud/discoveryengine/v1alpha/data_store_service.proto index 52d57729b..cd0e1656c 100644 --- a/google/cloud/discoveryengine/v1alpha/data_store_service.proto +++ b/google/cloud/discoveryengine/v1alpha/data_store_service.proto @@ -189,6 +189,16 @@ message CreateDataStoreRequest { // search (GENERIC vertical and PUBLIC_WEBSITE content_config), this flag will // be ignored. bool create_advanced_site_search = 4; + + // A boolean flag indicating whether to skip the default schema creation for + // the data store. Only enable this flag if you are certain that the default + // schema is incompatible with your use case. + // + // If set to true, you must manually create a schema for the data store before + // any documents can be ingested. + // + // This flag cannot be specified if `data_store.starting_schema` is specified. + bool skip_default_schema_creation = 7; } // Request message for @@ -265,7 +275,7 @@ message ListDataStoresRequest { // INVALID_ARGUMENT error is returned. string page_token = 3; - // Filter by solution type. + // Filter by solution type . // For example: `filter = 'solution_type:SOLUTION_TYPE_SEARCH'` string filter = 4; } diff --git a/google/cloud/discoveryengine/v1alpha/discoveryengine_grpc_service_config.json b/google/cloud/discoveryengine/v1alpha/discoveryengine_grpc_service_config.json index fb2e525db..fb8a0ca5f 100644 --- a/google/cloud/discoveryengine/v1alpha/discoveryengine_grpc_service_config.json +++ b/google/cloud/discoveryengine/v1alpha/discoveryengine_grpc_service_config.json @@ -19,8 +19,11 @@ { "service": "google.cloud.discoveryengine.v1alpha.ControlService" }, { "service": "google.cloud.discoveryengine.v1alpha.ConversationalSearchService" }, { "service": "google.cloud.discoveryengine.v1alpha.DocumentService" }, + { "service": "google.cloud.discoveryengine.v1alpha.EvaluationService" }, { "service": "google.cloud.discoveryengine.v1alpha.ProjectService" }, { "service": "google.cloud.discoveryengine.v1alpha.RankService" }, + { "service": "google.cloud.discoveryengine.v1alpha.SampleQueryService" }, + { "service": "google.cloud.discoveryengine.v1alpha.SampleQuerySetService" }, { "service": "google.cloud.discoveryengine.v1alpha.SchemaService" }, { "service": "google.cloud.discoveryengine.v1alpha.SearchService" }, { "service": "google.cloud.discoveryengine.v1alpha.UserEventService" }, @@ -56,6 +59,15 @@ "backoffMultiplier": 1.3, "retryableStatusCodes": ["UNAVAILABLE"] } + }, + { + "name": [ + { + "service": "google.cloud.discoveryengine.v1alpha.EvaluationService", + "method": "CreateEvaluation" + } + ], + "timeout": "300s" } ] } diff --git a/google/cloud/discoveryengine/v1alpha/discoveryengine_v1alpha.yaml b/google/cloud/discoveryengine/v1alpha/discoveryengine_v1alpha.yaml index 984bfa7e5..1ddb86658 100644 --- a/google/cloud/discoveryengine/v1alpha/discoveryengine_v1alpha.yaml +++ b/google/cloud/discoveryengine/v1alpha/discoveryengine_v1alpha.yaml @@ -13,10 +13,13 @@ apis: - name: google.cloud.discoveryengine.v1alpha.DocumentService - name: google.cloud.discoveryengine.v1alpha.EngineService - name: google.cloud.discoveryengine.v1alpha.EstimateBillingService +- name: google.cloud.discoveryengine.v1alpha.EvaluationService - name: google.cloud.discoveryengine.v1alpha.GroundedGenerationService - name: google.cloud.discoveryengine.v1alpha.ProjectService - name: google.cloud.discoveryengine.v1alpha.RankService - name: google.cloud.discoveryengine.v1alpha.RecommendationService +- name: google.cloud.discoveryengine.v1alpha.SampleQueryService +- name: google.cloud.discoveryengine.v1alpha.SampleQuerySetService - name: google.cloud.discoveryengine.v1alpha.SchemaService - name: google.cloud.discoveryengine.v1alpha.SearchService - name: google.cloud.discoveryengine.v1alpha.SearchTuningService @@ -35,6 +38,7 @@ types: - name: google.cloud.discoveryengine.v1alpha.Control - name: google.cloud.discoveryengine.v1alpha.CreateDataStoreMetadata - name: google.cloud.discoveryengine.v1alpha.CreateEngineMetadata +- name: google.cloud.discoveryengine.v1alpha.CreateEvaluationMetadata - name: google.cloud.discoveryengine.v1alpha.CreateSchemaMetadata - name: google.cloud.discoveryengine.v1alpha.CreateTargetSiteMetadata - name: google.cloud.discoveryengine.v1alpha.DataStore @@ -50,9 +54,15 @@ types: - name: google.cloud.discoveryengine.v1alpha.Engine - name: google.cloud.discoveryengine.v1alpha.EstimateDataSizeMetadata - name: google.cloud.discoveryengine.v1alpha.EstimateDataSizeResponse +- name: google.cloud.discoveryengine.v1alpha.Evaluation - name: google.cloud.discoveryengine.v1alpha.FieldConfig +- name: google.cloud.discoveryengine.v1alpha.GetUriPatternDocumentDataResponse +- name: google.cloud.discoveryengine.v1alpha.ImportCompletionSuggestionsMetadata +- name: google.cloud.discoveryengine.v1alpha.ImportCompletionSuggestionsResponse - name: google.cloud.discoveryengine.v1alpha.ImportDocumentsMetadata - name: google.cloud.discoveryengine.v1alpha.ImportDocumentsResponse +- name: google.cloud.discoveryengine.v1alpha.ImportSampleQueriesMetadata +- name: google.cloud.discoveryengine.v1alpha.ImportSampleQueriesResponse - name: google.cloud.discoveryengine.v1alpha.ImportSuggestionDenyListEntriesMetadata - name: google.cloud.discoveryengine.v1alpha.ImportSuggestionDenyListEntriesResponse - name: google.cloud.discoveryengine.v1alpha.ImportUserEventsMetadata @@ -60,6 +70,8 @@ types: - name: google.cloud.discoveryengine.v1alpha.ListCustomModelsResponse - name: google.cloud.discoveryengine.v1alpha.Project - name: google.cloud.discoveryengine.v1alpha.ProvisionProjectMetadata +- name: google.cloud.discoveryengine.v1alpha.PurgeCompletionSuggestionsMetadata +- name: google.cloud.discoveryengine.v1alpha.PurgeCompletionSuggestionsResponse - name: google.cloud.discoveryengine.v1alpha.PurgeDocumentsMetadata - name: google.cloud.discoveryengine.v1alpha.PurgeDocumentsResponse - name: google.cloud.discoveryengine.v1alpha.PurgeSuggestionDenyListEntriesMetadata @@ -70,6 +82,8 @@ types: - name: google.cloud.discoveryengine.v1alpha.RecrawlUrisResponse - name: google.cloud.discoveryengine.v1alpha.Schema - name: google.cloud.discoveryengine.v1alpha.Session +- name: google.cloud.discoveryengine.v1alpha.SetUriPatternDocumentDataMetadata +- name: google.cloud.discoveryengine.v1alpha.SetUriPatternDocumentDataResponse - name: google.cloud.discoveryengine.v1alpha.TargetSite - name: google.cloud.discoveryengine.v1alpha.TrainCustomModelMetadata - name: google.cloud.discoveryengine.v1alpha.TrainCustomModelResponse @@ -104,6 +118,7 @@ http: - get: '/v1alpha/{name=projects/*/locations/*/dataStores/*/models/*/operations/*}' - get: '/v1alpha/{name=projects/*/locations/*/dataStores/*/operations/*}' - get: '/v1alpha/{name=projects/*/locations/*/evaluations/*/operations/*}' + - get: '/v1alpha/{name=projects/*/locations/*/identity_mapping_stores/*/operations/*}' - get: '/v1alpha/{name=projects/*/locations/*/operations/*}' - get: '/v1alpha/{name=projects/*/locations/*/sampleQuerySets/*/operations/*}' - get: '/v1alpha/{name=projects/*/operations/*}' @@ -121,6 +136,7 @@ http: - get: '/v1alpha/{name=projects/*/locations/*/dataStores/*/branches/*}/operations' - get: '/v1alpha/{name=projects/*/locations/*/dataStores/*/models/*}/operations' - get: '/v1alpha/{name=projects/*/locations/*/dataStores/*}/operations' + - get: '/v1alpha/{name=projects/*/locations/*/identity_mapping_stores/*}/operations' - get: '/v1alpha/{name=projects/*/locations/*}/operations' - get: '/v1alpha/{name=projects/*}/operations' @@ -170,6 +186,10 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.discoveryengine.v1alpha.EvaluationService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: google.cloud.discoveryengine.v1alpha.GroundedGenerationService.CheckGrounding oauth: canonical_scopes: |- @@ -186,6 +206,14 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.discoveryengine.v1alpha.SampleQueryService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.discoveryengine.v1alpha.SampleQuerySetService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.discoveryengine.v1alpha.SchemaService.*' oauth: canonical_scopes: |- diff --git a/google/cloud/discoveryengine/v1alpha/document.proto b/google/cloud/discoveryengine/v1alpha/document.proto index ca07572b1..e140ab1da 100644 --- a/google/cloud/discoveryengine/v1alpha/document.proto +++ b/google/cloud/discoveryengine/v1alpha/document.proto @@ -21,6 +21,7 @@ import "google/api/resource.proto"; import "google/cloud/discoveryengine/v1alpha/common.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; @@ -55,7 +56,7 @@ message Document { // The URI of the content. Only Cloud Storage URIs (e.g. // `gs://bucket-name/path/to/file`) are supported. The maximum file size - // is 2.5 MB for text-based formats, 100 MB for other formats. + // is 2.5 MB for text-based formats, 200 MB for other formats. string uri = 3; } @@ -135,12 +136,26 @@ message Document { message AccessRestriction { // List of principals. repeated Principal principals = 1; + + // All users within the Identity Provider. + bool idp_wide = 2; } // Readers of the document. repeated AccessRestriction readers = 1; } + // Index status of the document. + message IndexStatus { + // The time when the document was indexed. + // If this field is populated, it means the document has been indexed. + google.protobuf.Timestamp index_time = 1; + + // A sample of errors encountered while indexing the document. + // If this field is populated, the document is not indexed due to errors. + repeated google.rpc.Status error_samples = 2; + } + // Data representation. One of // [struct_data][google.cloud.discoveryengine.v1alpha.Document.struct_data] or // [json_data][google.cloud.discoveryengine.v1alpha.Document.json_data] should @@ -201,6 +216,14 @@ message Document { // document has never been indexed. google.protobuf.Timestamp index_time = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The index status of the document. + // + // * If document is indexed successfully, the index_time field is populated. + // * Otherwise, if document is not indexed due to errors, the error_samples + // field is populated. + // * Otherwise, index_status is unset. + IndexStatus index_status = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Document captures all raw metadata information of items to be recommended or diff --git a/google/cloud/discoveryengine/v1alpha/document_processing_config.proto b/google/cloud/discoveryengine/v1alpha/document_processing_config.proto index 67e3cc601..1df398910 100644 --- a/google/cloud/discoveryengine/v1alpha/document_processing_config.proto +++ b/google/cloud/discoveryengine/v1alpha/document_processing_config.proto @@ -118,8 +118,12 @@ message DocumentProcessingConfig { // * `pdf`: Override parsing config for PDF files, either digital parsing, ocr // parsing or layout parsing is supported. // * `html`: Override parsing config for HTML files, only digital parsing and - // or layout parsing are supported. + // layout parsing are supported. // * `docx`: Override parsing config for DOCX files, only digital parsing and - // or layout parsing are supported. + // layout parsing are supported. + // * `pptx`: Override parsing config for PPTX files, only digital parsing and + // layout parsing are supported. + // * `xlsx`: Override parsing config for XLSX files, only digital parsing and + // layout parsing are supported. map<string, ParsingConfig> parsing_config_overrides = 5; } diff --git a/google/cloud/discoveryengine/v1alpha/document_service.proto b/google/cloud/discoveryengine/v1alpha/document_service.proto index 1a92b01ce..ce3870eb1 100644 --- a/google/cloud/discoveryengine/v1alpha/document_service.proto +++ b/google/cloud/discoveryengine/v1alpha/document_service.proto @@ -26,6 +26,7 @@ import "google/cloud/discoveryengine/v1alpha/purge_config.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.DiscoveryEngine.V1Alpha"; option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; @@ -171,6 +172,20 @@ service DocumentService { }; option (google.api.method_signature) = "name"; } + + // Gets index freshness metadata for + // [Document][google.cloud.discoveryengine.v1alpha.Document]s. Supported for + // website search only. + rpc BatchGetDocumentsMetadata(BatchGetDocumentsMetadataRequest) + returns (BatchGetDocumentsMetadataResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=projects/*/locations/*/dataStores/*/branches/*}/batchGetDocumentsMetadata" + additional_bindings { + get: "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*/branches/*}/batchGetDocumentsMetadata" + } + }; + option (google.api.method_signature) = "parent"; + } } // Request message for @@ -351,7 +366,7 @@ message GetProcessedDocumentRequest { // Only available if ChunkingConfig is enabled on the data store. CHUNKED_DOCUMENT = 2; - // Returns the converted PNG Image bytes if available. + // Returns the converted Image bytes (as JPEG or PNG) if available. PNG_CONVERTED_DOCUMENT = 3; } @@ -389,3 +404,95 @@ message GetProcessedDocumentRequest { // What format output should be. If unspecified, defaults to JSON. ProcessedDocumentFormat processed_document_format = 3; } + +// Request message for +// [DocumentService.BatchGetDocumentsMetadata][google.cloud.discoveryengine.v1alpha.DocumentService.BatchGetDocumentsMetadata] +// method. +message BatchGetDocumentsMetadataRequest { + // Matcher for the [Document][google.cloud.discoveryengine.v1alpha.Document]s + // by exact uris. + message UrisMatcher { + // The exact URIs to match by. + repeated string uris = 1; + } + + // Matcher for the [Document][google.cloud.discoveryengine.v1alpha.Document]s. + // Currently supports matching by exact URIs. + message Matcher { + // Matcher for the + // [Document][google.cloud.discoveryengine.v1alpha.Document]s. + oneof matcher { + // Matcher by exact URIs. + UrisMatcher uris_matcher = 1; + } + } + + // Required. The parent branch resource name, such as + // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Branch" + } + ]; + + // Required. Matcher for the + // [Document][google.cloud.discoveryengine.v1alpha.Document]s. + Matcher matcher = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for +// [DocumentService.BatchGetDocumentsMetadata][google.cloud.discoveryengine.v1alpha.DocumentService.BatchGetDocumentsMetadata] +// method. +message BatchGetDocumentsMetadataResponse { + // The metadata of a + // [Document][google.cloud.discoveryengine.v1alpha.Document]. + message DocumentMetadata { + // The value of the matcher that was used to match the + // [Document][google.cloud.discoveryengine.v1alpha.Document]. + message MatcherValue { + // The value of the matcher that was used to match the + // [Document][google.cloud.discoveryengine.v1alpha.Document]. + oneof matcher_value { + // If match by URI, the URI of the + // [Document][google.cloud.discoveryengine.v1alpha.Document]. + string uri = 1; + } + } + + // The value of the matcher that was used to match the + // [Document][google.cloud.discoveryengine.v1alpha.Document]. + MatcherValue matcher_value = 2; + + // The state of the document. + State state = 3; + + // The timestamp of the last time the + // [Document][google.cloud.discoveryengine.v1alpha.Document] was last + // indexed. + google.protobuf.Timestamp last_refreshed_time = 4; + } + + // The state of the + // [Document][google.cloud.discoveryengine.v1alpha.Document]. + enum State { + // Should never be set. + STATE_UNSPECIFIED = 0; + + // The [Document][google.cloud.discoveryengine.v1alpha.Document] is indexed. + INDEXED = 1; + + // The [Document][google.cloud.discoveryengine.v1alpha.Document] is not + // indexed because its URI is not in the + // [TargetSite][google.cloud.discoveryengine.v1alpha.TargetSite]. + NOT_IN_TARGET_SITE = 2; + + // The [Document][google.cloud.discoveryengine.v1alpha.Document] is not + // indexed. + NOT_IN_INDEX = 3; + } + + // The metadata of the + // [Document][google.cloud.discoveryengine.v1alpha.Document]s. + repeated DocumentMetadata documents_metadata = 1; +} diff --git a/google/cloud/discoveryengine/v1alpha/evaluation.proto b/google/cloud/discoveryengine/v1alpha/evaluation.proto new file mode 100644 index 000000000..9d55c0e46 --- /dev/null +++ b/google/cloud/discoveryengine/v1alpha/evaluation.proto @@ -0,0 +1,232 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1alpha; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1alpha/search_service.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "EvaluationProto"; +option java_package = "com.google.cloud.discoveryengine.v1alpha"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; + +// An evaluation is a single execution (or run) of an evaluation process. It +// encapsulates the state of the evaluation and the resulting data. +message Evaluation { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/Evaluation" + pattern: "projects/{project}/locations/{location}/evaluations/{evaluation}" + }; + + // Describes the specification of the evaluation. + message EvaluationSpec { + // Describes the specification of the query set. + message QuerySetSpec { + // Required. The full resource name of the + // [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet] + // used for the evaluation, in the format of + // `projects/{project}/locations/{location}/sampleQuerySets/{sampleQuerySet}`. + string sample_query_set = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/SampleQuerySet" + } + ]; + } + + // The search specification. + oneof search_spec { + // Required. The search request that is used to perform the evaluation. + // + // Only the following fields within SearchRequest are supported; if any + // other fields are provided, an UNSUPPORTED error will be returned: + // + // * [SearchRequest.serving_config][google.cloud.discoveryengine.v1alpha.SearchRequest.serving_config] + // * [SearchRequest.branch][google.cloud.discoveryengine.v1alpha.SearchRequest.branch] + // * [SearchRequest.canonical_filter][google.cloud.discoveryengine.v1alpha.SearchRequest.canonical_filter] + // * [SearchRequest.query_expansion_spec][google.cloud.discoveryengine.v1alpha.SearchRequest.query_expansion_spec] + // * [SearchRequest.spell_correction_spec][google.cloud.discoveryengine.v1alpha.SearchRequest.spell_correction_spec] + // * [SearchRequest.content_search_spec][google.cloud.discoveryengine.v1alpha.SearchRequest.content_search_spec] + // * [SearchRequest.user_pseudo_id][google.cloud.discoveryengine.v1alpha.SearchRequest.user_pseudo_id] + SearchRequest search_request = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Required. The specification of the query set. + QuerySetSpec query_set_spec = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Describes the state of an evaluation. + enum State { + // The evaluation is unspecified. + STATE_UNSPECIFIED = 0; + + // The service is preparing to run the evaluation. + PENDING = 1; + + // The evaluation is in progress. + RUNNING = 2; + + // The evaluation completed successfully. + SUCCEEDED = 3; + + // The evaluation failed. + FAILED = 4; + } + + // Identifier. The full resource name of the + // [Evaluation][google.cloud.discoveryengine.v1alpha.Evaluation], in the + // format of + // `projects/{project}/locations/{location}/evaluations/{evaluation}`. + // + // This field must be a UTF-8 encoded string with a length limit of 1024 + // characters. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. The specification of the evaluation. + EvaluationSpec evaluation_spec = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The metrics produced by the evaluation, averaged across all + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery]s in the + // [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet]. + // + // Only populated when the evaluation's state is SUCCEEDED. + QualityMetrics quality_metrics = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The state of the evaluation. + State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The error that occurred during evaluation. Only populated when + // the evaluation's state is FAILED. + google.rpc.Status error = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp the + // [Evaluation][google.cloud.discoveryengine.v1alpha.Evaluation] was created + // at. + google.protobuf.Timestamp create_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp the + // [Evaluation][google.cloud.discoveryengine.v1alpha.Evaluation] was completed + // at. + google.protobuf.Timestamp end_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A sample of errors encountered while processing the request. + repeated google.rpc.Status error_samples = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Describes the metrics produced by the evaluation. +message QualityMetrics { + // Stores the metric values at specific top-k levels. + message TopkMetrics { + // The top-1 value. + double top_1 = 1; + + // The top-3 value. + double top_3 = 2; + + // The top-5 value. + double top_5 = 3; + + // The top-10 value. + double top_10 = 4; + } + + // Recall per document, at various top-k cutoff levels. + // + // Recall is the fraction of relevant documents retrieved out of all + // relevant documents. + // + // Example (top-5): + // * For a single + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery], If 3 out + // of 5 relevant documents are retrieved in the top-5, recall@5 = 3/5 = 0.6 + TopkMetrics doc_recall = 1; + + // Precision per document, at various top-k cutoff levels. + // + // Precision is the fraction of retrieved documents that are relevant. + // + // Example (top-5): + // * For a single + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery], If 4 out + // of 5 retrieved documents in the top-5 are relevant, precision@5 = 4/5 = + // 0.8 + TopkMetrics doc_precision = 2; + + // Normalized discounted cumulative gain (NDCG) per document, at various top-k + // cutoff levels. + // + // NDCG measures the ranking quality, giving higher relevance to top + // results. + // + // Example (top-3): + // Suppose [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery] + // with three retrieved documents (D1, D2, D3) and binary relevance + // judgements (1 for relevant, 0 for not relevant): + // + // Retrieved: [D3 (0), D1 (1), D2 (1)] + // Ideal: [D1 (1), D2 (1), D3 (0)] + // + // Calculate NDCG@3 for each + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery]: + // * DCG@3: 0/log2(1+1) + 1/log2(2+1) + 1/log2(3+1) = 1.13 + // * Ideal DCG@3: 1/log2(1+1) + 1/log2(2+1) + 0/log2(3+1) = 1.63 + // * NDCG@3: 1.13/1.63 = 0.693 + TopkMetrics doc_ndcg = 3; + + // Recall per page, at various top-k cutoff levels. + // + // Recall is the fraction of relevant pages retrieved out of all relevant + // pages. + // + // Example (top-5): + // * For a single + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery], if 3 out + // of 5 relevant pages are retrieved in the top-5, recall@5 = 3/5 = 0.6 + TopkMetrics page_recall = 4; + + // Normalized discounted cumulative gain (NDCG) per page, at various top-k + // cutoff levels. + // + // NDCG measures the ranking quality, giving higher relevance to top + // results. + // + // Example (top-3): + // Suppose [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery] + // with three retrieved pages (P1, P2, P3) and binary relevance judgements (1 + // for relevant, 0 for not relevant): + // + // Retrieved: [P3 (0), P1 (1), P2 (1)] + // Ideal: [P1 (1), P2 (1), P3 (0)] + // + // Calculate NDCG@3 for + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery]: + // * DCG@3: 0/log2(1+1) + 1/log2(2+1) + 1/log2(3+1) = 1.13 + // * Ideal DCG@3: 1/log2(1+1) + 1/log2(2+1) + 0/log2(3+1) = 1.63 + // * NDCG@3: 1.13/1.63 = 0.693 + TopkMetrics page_ndcg = 5; +} diff --git a/google/cloud/discoveryengine/v1alpha/evaluation_service.proto b/google/cloud/discoveryengine/v1alpha/evaluation_service.proto new file mode 100644 index 000000000..9e5b66ec6 --- /dev/null +++ b/google/cloud/discoveryengine/v1alpha/evaluation_service.proto @@ -0,0 +1,252 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1alpha; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1alpha/evaluation.proto"; +import "google/cloud/discoveryengine/v1alpha/sample_query.proto"; +import "google/longrunning/operations.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "EvaluationServiceProto"; +option java_package = "com.google.cloud.discoveryengine.v1alpha"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; + +// Service for managing +// [Evaluation][google.cloud.discoveryengine.v1alpha.Evaluation]s, +service EvaluationService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Gets a [Evaluation][google.cloud.discoveryengine.v1alpha.Evaluation]. + rpc GetEvaluation(GetEvaluationRequest) returns (Evaluation) { + option (google.api.http) = { + get: "/v1alpha/{name=projects/*/locations/*/evaluations/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Gets a list of + // [Evaluation][google.cloud.discoveryengine.v1alpha.Evaluation]s. + rpc ListEvaluations(ListEvaluationsRequest) + returns (ListEvaluationsResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=projects/*/locations/*}/evaluations" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates a [Evaluation][google.cloud.discoveryengine.v1alpha.Evaluation]. + // + // Upon creation, the evaluation will be automatically triggered and begin + // execution. + rpc CreateEvaluation(CreateEvaluationRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1alpha/{parent=projects/*/locations/*}/evaluations" + body: "evaluation" + }; + option (google.api.method_signature) = "parent,evaluation"; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.discoveryengine.v1alpha.Evaluation" + metadata_type: "google.cloud.discoveryengine.v1alpha.CreateEvaluationMetadata" + }; + } + + // Gets a list of results for a given a + // [Evaluation][google.cloud.discoveryengine.v1alpha.Evaluation]. + rpc ListEvaluationResults(ListEvaluationResultsRequest) + returns (ListEvaluationResultsResponse) { + option (google.api.http) = { + get: "/v1alpha/{evaluation=projects/*/locations/*/evaluations/*}:listResults" + }; + option (google.api.method_signature) = "evaluation"; + } +} + +// Request message for +// [EvaluationService.GetEvaluation][google.cloud.discoveryengine.v1alpha.EvaluationService.GetEvaluation] +// method. +message GetEvaluationRequest { + // Required. Full resource name of + // [Evaluation][google.cloud.discoveryengine.v1alpha.Evaluation], such as + // `projects/{project}/locations/{location}/evaluations/{evaluation}`. + // + // If the caller does not have permission to access the + // [Evaluation][google.cloud.discoveryengine.v1alpha.Evaluation], regardless + // of whether or not it exists, a PERMISSION_DENIED error is returned. + // + // If the requested + // [Evaluation][google.cloud.discoveryengine.v1alpha.Evaluation] 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/Evaluation" + } + ]; +} + +// Request message for +// [EvaluationService.ListEvaluations][google.cloud.discoveryengine.v1alpha.EvaluationService.ListEvaluations] +// method. +message ListEvaluationsRequest { + // Required. The parent location resource name, such as + // `projects/{project}/locations/{location}`. + // + // If the caller does not have permission to list + // [Evaluation][google.cloud.discoveryengine.v1alpha.Evaluation]s under this + // location, regardless of whether or not this location exists, a + // `PERMISSION_DENIED` error is returned. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Location" + } + ]; + + // Maximum number of + // [Evaluation][google.cloud.discoveryengine.v1alpha.Evaluation]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 + // [ListEvaluationsResponse.next_page_token][google.cloud.discoveryengine.v1alpha.ListEvaluationsResponse.next_page_token], + // received from a previous + // [EvaluationService.ListEvaluations][google.cloud.discoveryengine.v1alpha.EvaluationService.ListEvaluations] + // call. Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // [EvaluationService.ListEvaluations][google.cloud.discoveryengine.v1alpha.EvaluationService.ListEvaluations] + // must match the call that provided the page token. Otherwise, an + // `INVALID_ARGUMENT` error is returned. + string page_token = 3; +} + +// Response message for +// [EvaluationService.ListEvaluations][google.cloud.discoveryengine.v1alpha.EvaluationService.ListEvaluations] +// method. +message ListEvaluationsResponse { + // The [Evaluation][google.cloud.discoveryengine.v1alpha.Evaluation]s. + repeated Evaluation evaluations = 1; + + // A token that can be sent as + // [ListEvaluationsRequest.page_token][google.cloud.discoveryengine.v1alpha.ListEvaluationsRequest.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 +// [EvaluationService.CreateEvaluation][google.cloud.discoveryengine.v1alpha.EvaluationService.CreateEvaluation] +// method. +message CreateEvaluationRequest { + // Required. The parent resource name, such as + // `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Location" + } + ]; + + // Required. The [Evaluation][google.cloud.discoveryengine.v1alpha.Evaluation] + // to create. + Evaluation evaluation = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Metadata for +// [EvaluationService.CreateEvaluation][google.cloud.discoveryengine.v1alpha.EvaluationService.CreateEvaluation] +// method. +message CreateEvaluationMetadata {} + +// Request message for +// [EvaluationService.ListEvaluationResults][google.cloud.discoveryengine.v1alpha.EvaluationService.ListEvaluationResults] +// method. +message ListEvaluationResultsRequest { + // Required. The evaluation resource name, such as + // `projects/{project}/locations/{location}/evaluations/{evaluation}`. + // + // If the caller does not have permission to list [EvaluationResult][] + // under this evaluation, regardless of whether or not this evaluation + // set exists, a `PERMISSION_DENIED` error is returned. + string evaluation = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Evaluation" + } + ]; + + // Maximum number of [EvaluationResult][] 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 + // [ListEvaluationResultsResponse.next_page_token][google.cloud.discoveryengine.v1alpha.ListEvaluationResultsResponse.next_page_token], + // received from a previous + // [EvaluationService.ListEvaluationResults][google.cloud.discoveryengine.v1alpha.EvaluationService.ListEvaluationResults] + // call. Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // [EvaluationService.ListEvaluationResults][google.cloud.discoveryengine.v1alpha.EvaluationService.ListEvaluationResults] + // must match the call that provided the page token. Otherwise, an + // `INVALID_ARGUMENT` error is returned. + string page_token = 3; +} + +// Response message for +// [EvaluationService.ListEvaluationResults][google.cloud.discoveryengine.v1alpha.EvaluationService.ListEvaluationResults] +// method. +message ListEvaluationResultsResponse { + // Represents the results of an evaluation for a single + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery]. + message EvaluationResult { + // Output only. The + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery] that was + // evaluated. + SampleQuery sample_query = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The metrics produced by the evaluation, for a given + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery]. + QualityMetrics quality_metrics = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The + // [EvaluationResult][google.cloud.discoveryengine.v1alpha.ListEvaluationResultsResponse.EvaluationResult]s. + repeated EvaluationResult evaluation_results = 1; + + // A token that can be sent as + // [ListEvaluationResultsRequest.page_token][google.cloud.discoveryengine.v1alpha.ListEvaluationResultsRequest.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/discoveryengine/v1alpha/grounded_generation_service.proto b/google/cloud/discoveryengine/v1alpha/grounded_generation_service.proto index a1f604b65..a94b2d9a6 100644 --- a/google/cloud/discoveryengine/v1alpha/grounded_generation_service.proto +++ b/google/cloud/discoveryengine/v1alpha/grounded_generation_service.proto @@ -129,8 +129,9 @@ message CheckGroundingResponse { // field will be set to false. In that case, no grounding check was done for // the claim and therefore // [citation_indices][google.cloud.discoveryengine.v1alpha.CheckGroundingResponse.Claim.citation_indices], + // [anti_citation_indices][google.cloud.discoveryengine.v1alpha.CheckGroundingResponse.Claim.anti_citation_indices], // and - // [anti_citation_indices][google.cloud.discoveryengine.v1alpha.CheckGroundingResponse.Claim.anti_citation_indices] + // [score][google.cloud.discoveryengine.v1alpha.CheckGroundingResponse.Claim.score] // should not be returned. optional bool grounding_check_required = 6; } diff --git a/google/cloud/discoveryengine/v1alpha/import_config.proto b/google/cloud/discoveryengine/v1alpha/import_config.proto index 231155d15..f1b7e8bbd 100644 --- a/google/cloud/discoveryengine/v1alpha/import_config.proto +++ b/google/cloud/discoveryengine/v1alpha/import_config.proto @@ -20,6 +20,7 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/discoveryengine/v1alpha/completion.proto"; import "google/cloud/discoveryengine/v1alpha/document.proto"; +import "google/cloud/discoveryengine/v1alpha/sample_query.proto"; import "google/cloud/discoveryengine/v1alpha/user_event.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; @@ -83,7 +84,7 @@ message BigQuerySource { google.type.Date partition_date = 5; } - // The project ID (can be project # or ID) that the BigQuery source is in with + // The project ID or the project number that contains the BigQuery source. Has // a length limit of 128 characters. If not specified, inherits the project // ID from the parent request. string project_id = 1; @@ -126,7 +127,7 @@ message BigQuerySource { // The Spanner source for importing data message SpannerSource { - // The project ID that the Spanner source is in with a length limit of 128 + // The project ID that contains the Spanner source. Has a length limit of 128 // characters. If not specified, inherits the project ID from the parent // request. string project_id = 1; @@ -260,7 +261,7 @@ message BigtableOptions { // The Cloud Bigtable source for importing data. message BigtableSource { - // The project ID that the Bigtable source is in with a length limit of 128 + // The project ID that contains the Bigtable source. Has a length limit of 128 // characters. If not specified, inherits the project ID from the parent // request. string project_id = 1; @@ -292,12 +293,18 @@ message FhirStoreSource { // limit of 2,000 characters. Can be specified if one wants to have the // FhirStore export to a specific Cloud Storage directory. string gcs_staging_dir = 2; + + // The FHIR resource types to import. The resource types should be a subset of + // all [supported FHIR resource + // types](https://cloud.google.com/generative-ai-app-builder/docs/fhir-schema-reference#resource-level-specification). + // Default to all supported FHIR resource types if empty. + repeated string resource_types = 3; } // Cloud SQL source import data from. message CloudSqlSource { - // The project ID that the Cloud SQL source is in with a length limit of 128 - // characters. If not specified, inherits the project ID from the parent + // The project ID that contains the Cloud SQL source. Has a length limit of + // 128 characters. If not specified, inherits the project ID from the parent // request. string project_id = 1; @@ -327,6 +334,38 @@ message CloudSqlSource { bool offload = 6; } +// AlloyDB source import data from. +message AlloyDbSource { + // The project ID that contains the AlloyDB source. + // Has a length limit of 128 characters. If not specified, inherits the + // project ID from the parent request. + string project_id = 1; + + // Required. The AlloyDB location to copy the data from with a length limit of + // 256 characters. + string location_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The AlloyDB cluster to copy the data from with a length limit of + // 256 characters. + string cluster_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The AlloyDB database to copy the data from with a length limit of + // 256 characters. + string database_id = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. The AlloyDB table to copy the data from with a length limit of + // 256 characters. + string table_id = 5 [(google.api.field_behavior) = REQUIRED]; + + // Intermediate Cloud Storage directory used for the import with a length + // limit of 2,000 characters. Can be specified if one wants to have the + // AlloyDB export to a specific Cloud Storage directory. + // + // Ensure that the AlloyDB service account has the necessary Cloud + // Storage Admin permissions to access the specified Cloud Storage directory. + string gcs_staging_dir = 6; +} + // Firestore source import data from. message FirestoreSource { // The project ID that the Cloud SQL source is in with a length limit of 128 @@ -500,6 +539,9 @@ message ImportDocumentsRequest { // Firestore input source. FirestoreSource firestore_source = 13; + // AlloyDB input source. + AlloyDbSource alloy_db_source = 14; + // Cloud Bigtable input source. BigtableSource bigtable_source = 15; } @@ -664,3 +706,158 @@ message ImportSuggestionDenyListEntriesMetadata { // finish time. google.protobuf.Timestamp update_time = 2; } + +// Request message for +// [CompletionService.ImportCompletionSuggestions][google.cloud.discoveryengine.v1alpha.CompletionService.ImportCompletionSuggestions] +// method. +message ImportCompletionSuggestionsRequest { + // The inline source for CompletionSuggestions. + message InlineSource { + // Required. A list of all denylist entries to import. Max of 1000 items. + repeated CompletionSuggestion suggestions = 1 + [(google.api.field_behavior) = REQUIRED]; + } + + // The source of the autocomplete suggestions. + oneof source { + // The Inline source for suggestion entries. + InlineSource inline_source = 2; + + // Cloud Storage location for the input content. + GcsSource gcs_source = 3; + + // BigQuery input source. + BigQuerySource bigquery_source = 4; + } + + // Required. The parent data store resource name for which to import customer + // autocomplete suggestions. + // + // Follows pattern `projects/*/locations/*/collections/*/dataStores/*` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; + + // The desired location of errors incurred during the Import. + ImportErrorConfig error_config = 5; +} + +// Response of the +// [CompletionService.ImportCompletionSuggestions][google.cloud.discoveryengine.v1alpha.CompletionService.ImportCompletionSuggestions] +// method. If the long running operation is done, this message is returned by +// the google.longrunning.Operations.response field if the operation is +// successful. +message ImportCompletionSuggestionsResponse { + // A sample of errors encountered while processing the request. + repeated google.rpc.Status error_samples = 1; + + // The desired location of errors incurred during the Import. + ImportErrorConfig error_config = 2; +} + +// Metadata related to the progress of the ImportCompletionSuggestions +// operation. This will be returned by the google.longrunning.Operation.metadata +// field. +message ImportCompletionSuggestionsMetadata { + // Operation create time. + google.protobuf.Timestamp create_time = 1; + + // Operation last update time. If the operation is done, this is also the + // finish time. + google.protobuf.Timestamp update_time = 2; + + // Count of + // [CompletionSuggestion][google.cloud.discoveryengine.v1alpha.CompletionSuggestion]s + // successfully imported. + int64 success_count = 3; + + // Count of + // [CompletionSuggestion][google.cloud.discoveryengine.v1alpha.CompletionSuggestion]s + // that failed to be imported. + int64 failure_count = 4; +} + +// Request message for +// [SampleQueryService.ImportSampleQueries][google.cloud.discoveryengine.v1alpha.SampleQueryService.ImportSampleQueries] +// method. +message ImportSampleQueriesRequest { + // The inline source for + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery]s. + message InlineSource { + // Required. A list of + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery]s to + // import. Max of 1000 items. + repeated SampleQuery sample_queries = 1 + [(google.api.field_behavior) = REQUIRED]; + } + + // The source of the sample queries. + oneof source { + // The Inline source for sample query entries. + InlineSource inline_source = 2; + + // Cloud Storage location for the input content. + GcsSource gcs_source = 3; + + // BigQuery input source. + BigQuerySource bigquery_source = 4; + } + + // Required. The parent sample query set resource name, such as + // `projects/{project}/locations/{location}/sampleQuerySets/{sampleQuerySet}`. + // + // If the caller does not have permission to list + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery]s under this + // sample query set, regardless of whether or not this sample query set + // exists, a `PERMISSION_DENIED` error is returned. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/SampleQuerySet" + } + ]; + + // The desired location of errors incurred during the Import. + ImportErrorConfig error_config = 5; +} + +// Response of the +// [SampleQueryService.ImportSampleQueries][google.cloud.discoveryengine.v1alpha.SampleQueryService.ImportSampleQueries] +// method. If the long running operation is done, this message is returned by +// the google.longrunning.Operations.response field if the operation is +// successful. +message ImportSampleQueriesResponse { + // A sample of errors encountered while processing the request. + repeated google.rpc.Status error_samples = 1; + + // The desired location of errors incurred during the Import. + ImportErrorConfig error_config = 2; +} + +// Metadata related to the progress of the ImportSampleQueries +// operation. This will be returned by the google.longrunning.Operation.metadata +// field. +message ImportSampleQueriesMetadata { + // ImportSampleQueries operation create time. + google.protobuf.Timestamp create_time = 1; + + // ImportSampleQueries operation last update time. If the operation is done, + // this is also the finish time. + google.protobuf.Timestamp update_time = 2; + + // Count of [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery]s + // successfully imported. + int64 success_count = 3; + + // Count of [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery]s + // that failed to be imported. + int64 failure_count = 4; + + // Total count of + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery]s that were + // processed. + int64 total_count = 5; +} diff --git a/google/cloud/discoveryengine/v1alpha/purge_config.proto b/google/cloud/discoveryengine/v1alpha/purge_config.proto index efa22411d..321ad4b6f 100644 --- a/google/cloud/discoveryengine/v1alpha/purge_config.proto +++ b/google/cloud/discoveryengine/v1alpha/purge_config.proto @@ -120,13 +120,32 @@ message PurgeErrorConfig { // [DocumentService.PurgeDocuments][google.cloud.discoveryengine.v1alpha.DocumentService.PurgeDocuments] // method. message PurgeDocumentsRequest { - // The desired input source for the purging documents based on document ids. + // The inline source for the input config for + // [DocumentService.PurgeDocuments][google.cloud.discoveryengine.v1alpha.DocumentService.PurgeDocuments] + // method. + message InlineSource { + // Required. A list of full resource name of documents to purge. In the + // format + // `projects/*/locations/*/collections/*/dataStores/*/branches/*/documents/*`. + // Recommended max of 100 items. + repeated string documents = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Document" + } + ]; + } + + // The desired input source for the purging documents based on document IDs. oneof source { // Cloud Storage location for the input content. // Supported `data_schema`: // * `document_id`: One valid // [Document.id][google.cloud.discoveryengine.v1alpha.Document.id] per line. GcsSource gcs_source = 5; + + // Inline source for the input content for purge. + InlineSource inline_source = 6; } // Required. The parent resource name, such as @@ -223,3 +242,41 @@ message PurgeSuggestionDenyListEntriesMetadata { // finish time. google.protobuf.Timestamp update_time = 2; } + +// Request message for +// [CompletionService.PurgeCompletionSuggestions][google.cloud.discoveryengine.v1alpha.CompletionService.PurgeCompletionSuggestions] +// method. +message PurgeCompletionSuggestionsRequest { + // Required. The parent data store resource name for which to purge completion + // suggestions. Follows pattern + // projects/*/locations/*/collections/*/dataStores/*. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; +} + +// Response message for +// [CompletionService.PurgeCompletionSuggestions][google.cloud.discoveryengine.v1alpha.CompletionService.PurgeCompletionSuggestions] +// method. +message PurgeCompletionSuggestionsResponse { + // Whether the completion suggestions were successfully purged. + bool purge_succeeded = 1; + + // A sample of errors encountered while processing the request. + repeated google.rpc.Status error_samples = 2; +} + +// Metadata related to the progress of the PurgeCompletionSuggestions +// operation. This is returned by the google.longrunning.Operation.metadata +// field. +message PurgeCompletionSuggestionsMetadata { + // Operation create time. + google.protobuf.Timestamp create_time = 1; + + // Operation last update time. If the operation is done, this is also the + // finish time. + google.protobuf.Timestamp update_time = 2; +} diff --git a/google/cloud/discoveryengine/v1alpha/sample_query.proto b/google/cloud/discoveryengine/v1alpha/sample_query.proto new file mode 100644 index 000000000..e03d05c1a --- /dev/null +++ b/google/cloud/discoveryengine/v1alpha/sample_query.proto @@ -0,0 +1,86 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1alpha; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "SampleQueryProto"; +option java_package = "com.google.cloud.discoveryengine.v1alpha"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; + +// Sample Query captures metadata to be used for evaluation. +message SampleQuery { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/SampleQuery" + pattern: "projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}/sampleQueries/{sample_query}" + }; + + // Query Entry captures metadata to be used for search evaluation. + message QueryEntry { + // Defines the parameters of the query's expected outcome. + message Target { + // Expected uri of the target. + // + // This field must be a UTF-8 encoded string with a length limit of 2048 + // characters. + // + // Example of valid uris: `https://example.com/abc`, + // `gcs://example/example.pdf`. + string uri = 1; + + // Expected page numbers of the target. + // + // Each page number must be non negative. + repeated int32 page_numbers = 2; + + // Relevance score of the target. + optional double score = 3; + } + + // Required. The query. + string query = 1 [(google.api.field_behavior) = REQUIRED]; + + // List of targets for the query. + repeated Target targets = 3; + } + + // The content of the sample query. + oneof content { + // The query entry. + QueryEntry query_entry = 2; + } + + // Identifier. The full resource name of the sample query, in the format of + // `projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}/sampleQueries/{sample_query}`. + // + // This field must be a UTF-8 encoded string with a length limit of 1024 + // characters. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. Timestamp the + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery] was created + // at. + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/discoveryengine/v1alpha/sample_query_service.proto b/google/cloud/discoveryengine/v1alpha/sample_query_service.proto new file mode 100644 index 000000000..1ace647fe --- /dev/null +++ b/google/cloud/discoveryengine/v1alpha/sample_query_service.proto @@ -0,0 +1,264 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1alpha; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1alpha/import_config.proto"; +import "google/cloud/discoveryengine/v1alpha/sample_query.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "SampleQueryServiceProto"; +option java_package = "com.google.cloud.discoveryengine.v1alpha"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; + +// Service for managing +// [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery]s, +service SampleQueryService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Gets a [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery]. + rpc GetSampleQuery(GetSampleQueryRequest) returns (SampleQuery) { + option (google.api.http) = { + get: "/v1alpha/{name=projects/*/locations/*/sampleQuerySets/*/sampleQueries/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Gets a list of + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery]s. + rpc ListSampleQueries(ListSampleQueriesRequest) + returns (ListSampleQueriesResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=projects/*/locations/*/sampleQuerySets/*}/sampleQueries" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates a [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery] + rpc CreateSampleQuery(CreateSampleQueryRequest) returns (SampleQuery) { + option (google.api.http) = { + post: "/v1alpha/{parent=projects/*/locations/*/sampleQuerySets/*}/sampleQueries" + body: "sample_query" + }; + option (google.api.method_signature) = + "parent,sample_query,sample_query_id"; + } + + // Updates a [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery]. + rpc UpdateSampleQuery(UpdateSampleQueryRequest) returns (SampleQuery) { + option (google.api.http) = { + patch: "/v1alpha/{sample_query.name=projects/*/locations/*/sampleQuerySets/*/sampleQueries/*}" + body: "sample_query" + }; + option (google.api.method_signature) = "sample_query,update_mask"; + } + + // Deletes a [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery]. + rpc DeleteSampleQuery(DeleteSampleQueryRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1alpha/{name=projects/*/locations/*/sampleQuerySets/*/sampleQueries/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Bulk import of multiple + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery]s. Sample + // queries that already exist may be deleted. + // + // Note: It is possible for a subset of the + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery]s to be + // successfully imported. + rpc ImportSampleQueries(ImportSampleQueriesRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1alpha/{parent=projects/*/locations/*/sampleQuerySets/*}/sampleQueries:import" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.discoveryengine.v1alpha.ImportSampleQueriesResponse" + metadata_type: "google.cloud.discoveryengine.v1alpha.ImportSampleQueriesMetadata" + }; + } +} + +// Request message for +// [SampleQueryService.GetSampleQuery][google.cloud.discoveryengine.v1alpha.SampleQueryService.GetSampleQuery] +// method. +message GetSampleQueryRequest { + // Required. Full resource name of + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery], such as + // `projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}/sampleQueries/{sample_query}`. + // + // If the caller does not have permission to access the + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery], regardless + // of whether or not it exists, a PERMISSION_DENIED error is returned. + // + // If the requested + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery] 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/SampleQuery" + } + ]; +} + +// Request message for +// [SampleQueryService.ListSampleQueries][google.cloud.discoveryengine.v1alpha.SampleQueryService.ListSampleQueries] +// method. +message ListSampleQueriesRequest { + // Required. The parent sample query set resource name, such as + // `projects/{project}/locations/{location}/sampleQuerySets/{sampleQuerySet}`. + // + // If the caller does not have permission to list + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery]s under this + // sample query set, regardless of whether or not this sample query set + // exists, a `PERMISSION_DENIED` error is returned. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/SampleQuerySet" + } + ]; + + // Maximum number of + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery]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 + // [ListSampleQueriesResponse.next_page_token][google.cloud.discoveryengine.v1alpha.ListSampleQueriesResponse.next_page_token], + // received from a previous + // [SampleQueryService.ListSampleQueries][google.cloud.discoveryengine.v1alpha.SampleQueryService.ListSampleQueries] + // call. Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // [SampleQueryService.ListSampleQueries][google.cloud.discoveryengine.v1alpha.SampleQueryService.ListSampleQueries] + // must match the call that provided the page token. Otherwise, an + // `INVALID_ARGUMENT` error is returned. + string page_token = 3; +} + +// Response message for +// [SampleQueryService.ListSampleQueries][google.cloud.discoveryengine.v1alpha.SampleQueryService.ListSampleQueries] +// method. +message ListSampleQueriesResponse { + // The [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery]s. + repeated SampleQuery sample_queries = 1; + + // A token that can be sent as + // [ListSampleQueriesRequest.page_token][google.cloud.discoveryengine.v1alpha.ListSampleQueriesRequest.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 +// [SampleQueryService.CreateSampleQuery][google.cloud.discoveryengine.v1alpha.SampleQueryService.CreateSampleQuery] +// method. +message CreateSampleQueryRequest { + // Required. The parent resource name, such as + // `projects/{project}/locations/{location}/sampleQuerySets/{sampleQuerySet}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/SampleQuerySet" + } + ]; + + // Required. The + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery] to create. + SampleQuery sample_query = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID to use for the + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery], which will + // become the final component of the + // [SampleQuery.name][google.cloud.discoveryengine.v1alpha.SampleQuery.name]. + // + // If the caller does not have permission to create the + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery], regardless + // of whether or not it exists, a `PERMISSION_DENIED` error is returned. + // + // This field must be unique among all + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery]s with the + // same + // [parent][google.cloud.discoveryengine.v1alpha.CreateSampleQueryRequest.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 sample_query_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for +// [SampleQueryService.UpdateSampleQuery][google.cloud.discoveryengine.v1alpha.SampleQueryService.UpdateSampleQuery] +// method. +message UpdateSampleQueryRequest { + // Required. The simple query to update. + // + // If the caller does not have permission to update the + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery], regardless + // of whether or not it exists, a `PERMISSION_DENIED` error is returned. + // + // If the [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery] to + // update does not exist a `NOT_FOUND` error is returned. + SampleQuery sample_query = 1 [(google.api.field_behavior) = REQUIRED]; + + // Indicates which fields in the provided imported 'simple query' to update. + // If not set, will by default update all fields. + google.protobuf.FieldMask update_mask = 2; +} + +// Request message for +// [SampleQueryService.DeleteSampleQuery][google.cloud.discoveryengine.v1alpha.SampleQueryService.DeleteSampleQuery] +// method. +message DeleteSampleQueryRequest { + // Required. Full resource name of + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery], such as + // `projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}/sampleQueries/{sample_query}`. + // + // If the caller does not have permission to delete the + // [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery], regardless + // of whether or not it exists, a `PERMISSION_DENIED` error is returned. + // + // If the [SampleQuery][google.cloud.discoveryengine.v1alpha.SampleQuery] 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/SampleQuery" + } + ]; +} diff --git a/google/cloud/discoveryengine/v1alpha/sample_query_set.proto b/google/cloud/discoveryengine/v1alpha/sample_query_set.proto new file mode 100644 index 000000000..599e554dd --- /dev/null +++ b/google/cloud/discoveryengine/v1alpha/sample_query_set.proto @@ -0,0 +1,64 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1alpha; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "SampleQuerySetProto"; +option java_package = "com.google.cloud.discoveryengine.v1alpha"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; + +// A SampleQuerySet is the parent resource of SampleQuery, and contains the +// configurations shared by all SampleQuery under it. +message SampleQuerySet { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/SampleQuerySet" + pattern: "projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}" + }; + + // Identifier. The full resource name of the + // [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet], in + // the format of + // `projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}`. + // + // This field must be a UTF-8 encoded string with a length limit of 1024 + // characters. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. The sample query set display name. + // + // This field must be a UTF-8 encoded string with a length limit of 128 + // characters. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Timestamp the + // [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet] was + // created at. + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The description of the + // [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet]. + string description = 4; +} diff --git a/google/cloud/discoveryengine/v1alpha/sample_query_set_service.proto b/google/cloud/discoveryengine/v1alpha/sample_query_set_service.proto new file mode 100644 index 000000000..793173a9f --- /dev/null +++ b/google/cloud/discoveryengine/v1alpha/sample_query_set_service.proto @@ -0,0 +1,258 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1alpha; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1alpha/sample_query_set.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "SampleQuerySetServiceProto"; +option java_package = "com.google.cloud.discoveryengine.v1alpha"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; + +// Service for managing +// [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet]s, +service SampleQuerySetService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Gets a + // [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet]. + rpc GetSampleQuerySet(GetSampleQuerySetRequest) returns (SampleQuerySet) { + option (google.api.http) = { + get: "/v1alpha/{name=projects/*/locations/*/sampleQuerySets/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Gets a list of + // [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet]s. + rpc ListSampleQuerySets(ListSampleQuerySetsRequest) + returns (ListSampleQuerySetsResponse) { + option (google.api.http) = { + get: "/v1alpha/{parent=projects/*/locations/*}/sampleQuerySets" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates a + // [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet] + rpc CreateSampleQuerySet(CreateSampleQuerySetRequest) + returns (SampleQuerySet) { + option (google.api.http) = { + post: "/v1alpha/{parent=projects/*/locations/*}/sampleQuerySets" + body: "sample_query_set" + }; + option (google.api.method_signature) = + "parent,sample_query_set,sample_query_set_id"; + } + + // Updates a + // [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet]. + rpc UpdateSampleQuerySet(UpdateSampleQuerySetRequest) + returns (SampleQuerySet) { + option (google.api.http) = { + patch: "/v1alpha/{sample_query_set.name=projects/*/locations/*/sampleQuerySets/*}" + body: "sample_query_set" + }; + option (google.api.method_signature) = "sample_query_set,update_mask"; + } + + // Deletes a + // [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet]. + rpc DeleteSampleQuerySet(DeleteSampleQuerySetRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1alpha/{name=projects/*/locations/*/sampleQuerySets/*}" + }; + option (google.api.method_signature) = "name"; + } +} + +// Request message for +// [SampleQuerySetService.GetSampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySetService.GetSampleQuerySet] +// method. +message GetSampleQuerySetRequest { + // Required. Full resource name of + // [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet], such + // as + // `projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}`. + // + // If the caller does not have permission to access the + // [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet], + // regardless of whether or not it exists, a PERMISSION_DENIED error is + // returned. + // + // If the requested + // [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet] 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/SampleQuerySet" + } + ]; +} + +// Request message for +// [SampleQuerySetService.ListSampleQuerySets][google.cloud.discoveryengine.v1alpha.SampleQuerySetService.ListSampleQuerySets] +// method. +message ListSampleQuerySetsRequest { + // Required. The parent location resource name, such as + // `projects/{project}/locations/{location}`. + // + // If the caller does not have permission to list + // [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet]s + // under this location, regardless of whether or not this location exists, a + // `PERMISSION_DENIED` error is returned. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Location" + } + ]; + + // Maximum number of + // [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet]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 + // [ListSampleQuerySetsResponse.next_page_token][google.cloud.discoveryengine.v1alpha.ListSampleQuerySetsResponse.next_page_token], + // received from a previous + // [SampleQuerySetService.ListSampleQuerySets][google.cloud.discoveryengine.v1alpha.SampleQuerySetService.ListSampleQuerySets] + // call. Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // [SampleQuerySetService.ListSampleQuerySets][google.cloud.discoveryengine.v1alpha.SampleQuerySetService.ListSampleQuerySets] + // must match the call that provided the page token. Otherwise, an + // `INVALID_ARGUMENT` error is returned. + string page_token = 3; +} + +// Response message for +// [SampleQuerySetService.ListSampleQuerySets][google.cloud.discoveryengine.v1alpha.SampleQuerySetService.ListSampleQuerySets] +// method. +message ListSampleQuerySetsResponse { + // The [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet]s. + repeated SampleQuerySet sample_query_sets = 1; + + // A token that can be sent as + // [ListSampleQuerySetsRequest.page_token][google.cloud.discoveryengine.v1alpha.ListSampleQuerySetsRequest.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 +// [SampleQuerySetService.CreateSampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySetService.CreateSampleQuerySet] +// method. +message CreateSampleQuerySetRequest { + // Required. The parent resource name, such as + // `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Location" + } + ]; + + // Required. The + // [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet] to + // create. + SampleQuerySet sample_query_set = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID to use for the + // [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet], + // which will become the final component of the + // [SampleQuerySet.name][google.cloud.discoveryengine.v1alpha.SampleQuerySet.name]. + // + // If the caller does not have permission to create the + // [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet], + // regardless of whether or not it exists, a `PERMISSION_DENIED` error is + // returned. + // + // This field must be unique among all + // [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet]s with + // the same + // [parent][google.cloud.discoveryengine.v1alpha.CreateSampleQuerySetRequest.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 sample_query_set_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for +// [SampleQuerySetService.UpdateSampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySetService.UpdateSampleQuerySet] +// method. +message UpdateSampleQuerySetRequest { + // Required. The sample query set to update. + // + // If the caller does not have permission to update the + // [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet], + // regardless of whether or not it exists, a `PERMISSION_DENIED` error is + // returned. + // + // If the + // [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet] to + // update does not exist a `NOT_FOUND` error is returned. + SampleQuerySet sample_query_set = 1 [(google.api.field_behavior) = REQUIRED]; + + // Indicates which fields in the provided imported 'sample query set' to + // update. If not set, will by default update all fields. + google.protobuf.FieldMask update_mask = 2; +} + +// Request message for +// [SampleQuerySetService.DeleteSampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySetService.DeleteSampleQuerySet] +// method. +message DeleteSampleQuerySetRequest { + // Required. Full resource name of + // [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet], such + // as + // `projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}`. + // + // If the caller does not have permission to delete the + // [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet], + // regardless of whether or not it exists, a `PERMISSION_DENIED` error is + // returned. + // + // If the + // [SampleQuerySet][google.cloud.discoveryengine.v1alpha.SampleQuerySet] 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/SampleQuerySet" + } + ]; +} diff --git a/google/cloud/discoveryengine/v1alpha/schema.proto b/google/cloud/discoveryengine/v1alpha/schema.proto index 2a9df13fb..0e9fed0e3 100644 --- a/google/cloud/discoveryengine/v1alpha/schema.proto +++ b/google/cloud/discoveryengine/v1alpha/schema.proto @@ -192,6 +192,11 @@ message FieldConfig { // Retrieve value from page map. PAGEMAP = 2; + // Retrieve value from the attributes set by + // [SiteSearchEngineService.SetUriPatternDocumentData][google.cloud.discoveryengine.v1alpha.SiteSearchEngineService.SetUriPatternDocumentData] + // API. + URI_PATTERN_MAPPING = 3; + // Retrieve value from schema.org data. SCHEMA_ORG = 4; } diff --git a/google/cloud/discoveryengine/v1alpha/search_service.proto b/google/cloud/discoveryengine/v1alpha/search_service.proto index 5a0b6a4be..da6509bfb 100644 --- a/google/cloud/discoveryengine/v1alpha/search_service.proto +++ b/google/cloud/discoveryengine/v1alpha/search_service.proto @@ -71,8 +71,8 @@ message SearchRequest { } // A struct to define data stores to filter on in a search call and - // configurations for those data stores. A maximum of 1 DataStoreSpec per - // data_store is allowed. Otherwise, an `INVALID_ARGUMENT` error is returned. + // configurations for those data stores. Otherwise, an `INVALID_ARGUMENT` + // error is returned. message DataStoreSpec { // Required. Full resource name of // [DataStore][google.cloud.discoveryengine.v1alpha.DataStore], such as @@ -151,6 +151,9 @@ message SearchRequest { // Maximum facet values that are returned for this facet. If // unspecified, defaults to 20. The maximum allowed value is 300. Values // above 300 are coerced to 300. + // For aggregation in healthcare search, when the [FacetKey.key] is + // "healthcare_aggregation_key", the limit will be overridden to + // 10,000 internally, regardless of the value set here. // // If this field is negative, an `INVALID_ARGUMENT` is returned. int32 limit = 2; @@ -495,6 +498,14 @@ message SearchRequest { // fallback messages instead. bool ignore_non_summary_seeking_query = 4; + // Specifies whether to filter out queries that have low relevance. The + // default value is `false`. + // + // If this field is set to `false`, all search results are used regardless + // of relevance to generate answers. If set to `true`, only queries with + // high relevance search results will generate answers. + bool ignore_low_relevant_content = 9; + // If specified, the spec will be used to modify the prompt provided to // the LLM. ModelPromptSpec model_prompt_spec = 5; @@ -642,6 +653,119 @@ message SearchRequest { repeated EmbeddingVector embedding_vectors = 1; } + // Specification to enable natural language understanding capabilities for + // search requests. + message NaturalLanguageQueryUnderstandingSpec { + // Enum describing under which condition filter extraction should occur. + enum FilterExtractionCondition { + // Server behavior defaults to [Condition.DISABLED][]. + CONDITION_UNSPECIFIED = 0; + + // Disables NL filter extraction. + DISABLED = 1; + + // Enables NL filter extraction. + ENABLED = 2; + } + + // The condition under which filter extraction should occur. + // Default to [Condition.DISABLED][]. + FilterExtractionCondition filter_extraction_condition = 1; + + // Field names used for location-based filtering, where geolocation filters + // are detected in natural language search queries. + // Only valid when the FilterExtractionCondition is set to `ENABLED`. + // + // If this field is set, it overrides the field names set in + // [ServingConfig.geo_search_query_detection_field_names][google.cloud.discoveryengine.v1alpha.ServingConfig.geo_search_query_detection_field_names]. + repeated string geo_search_query_detection_field_names = 2; + } + + // Specification for search as you type in search requests. + message SearchAsYouTypeSpec { + // Enum describing under which condition search as you type should occur. + enum Condition { + // Server behavior defaults to + // [Condition.DISABLED][google.cloud.discoveryengine.v1alpha.SearchRequest.SearchAsYouTypeSpec.Condition.DISABLED]. + CONDITION_UNSPECIFIED = 0; + + // Disables Search As You Type. + DISABLED = 1; + + // Enables Search As You Type. + ENABLED = 2; + } + + // The condition under which search as you type should occur. + // Default to + // [Condition.DISABLED][google.cloud.discoveryengine.v1alpha.SearchRequest.SearchAsYouTypeSpec.Condition.DISABLED]. + Condition condition = 1; + } + + // Session specification. + // + // Multi-turn Search feature is currently at private GA stage. Please use + // v1alpha or v1beta version instead before we launch this feature to public + // GA. Or ask for allowlisting through Google Support team. + message SessionSpec { + // If set, the search result gets stored to the "turn" specified by this + // query ID. + // + // Example: Let's say the session looks like this: + // session { + // name: ".../sessions/xxx" + // turns { + // query { text: "What is foo?" query_id: ".../questions/yyy" } + // answer: "Foo is ..." + // } + // turns { + // query { text: "How about bar then?" query_id: ".../questions/zzz" } + // } + // } + // + // The user can call /search API with a request like this: + // + // session: ".../sessions/xxx" + // session_spec { query_id: ".../questions/zzz" } + // + // Then, the API stores the search result, associated with the last turn. + // The stored search result can be used by a subsequent /answer API call + // (with the session ID and the query ID specified). Also, it is possible + // to call /search and /answer in parallel with the same session ID & query + // ID. + string query_id = 1; + + // The number of top search results to persist. The persisted search results + // can be used for the subsequent /answer api call. + // + // This field is simliar to the `summary_result_count` field in + // [SearchRequest.ContentSearchSpec.SummarySpec.summary_result_count][google.cloud.discoveryengine.v1alpha.SearchRequest.ContentSearchSpec.SummarySpec.summary_result_count]. + // + // At most 10 results for documents mode, or 50 for chunks mode. + optional int32 search_result_persistence_count = 2; + } + + // 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. In this case, server behavior defaults to Google defined + // threshold. + RELEVANCE_THRESHOLD_UNSPECIFIED = 0; + + // Lowest relevance threshold. + LOWEST = 1; + + // Low relevance threshold. + LOW = 2; + + // Medium relevance threshold. + MEDIUM = 3; + + // High relevance threshold. + HIGH = 4; + } + // Required. The resource name of the Search serving config, such as // `projects/*/locations/global/collections/default_collection/engines/*/servingConfigs/default_serving_config`, // or @@ -744,9 +868,12 @@ message SearchRequest { // object. Leave it unset if ordered by relevance. `order_by` expression is // case-sensitive. // - // For more information on ordering for retail search, see - // [Ordering](https://cloud.google.com/retail/docs/filter-and-order#order) - // + // For more information on ordering the website search results, see + // [Order web search + // results](https://cloud.google.com/generative-ai-app-builder/docs/order-web-search-results). + // For more information on ordering the healthcare search results, see + // [Order healthcare search + // results](https://cloud.google.com/generative-ai-app-builder/docs/order-hc-results). // If this field is unrecognizable, an `INVALID_ARGUMENT` is returned. string order_by = 8; @@ -756,6 +883,19 @@ message SearchRequest { // is used to deduce `device_type` for analytics. UserInfo user_info = 21; + // The BCP-47 language code, such as "en-US" or "sr-Latn". For more + // information, see [Standard + // fields](https://cloud.google.com/apis/design/standard_fields). This field + // helps to better interpret the query. If a value isn't specified, the query + // language code is automatically detected, which may not be accurate. + string language_code = 35; + + // The Unicode country/region code (CLDR) of a location, such as "US" and + // "419". For more information, see [Standard + // fields](https://cloud.google.com/apis/design/standard_fields). If set, + // then results will be boosted based on the region_code provided. + string region_code = 36; + // Facet specifications for faceted search. If empty, no facets are returned. // // A maximum of 100 values are allowed. Otherwise, an `INVALID_ARGUMENT` @@ -827,20 +967,26 @@ message SearchRequest { // documents. This overrides // [ServingConfig.ranking_expression][google.cloud.discoveryengine.v1alpha.ServingConfig.ranking_expression]. // The ranking expression is a single function or multiple functions that are - // joint by "+". + // joined by "+". + // // * ranking_expression = function, { " + ", function }; + // // Supported functions: + // // * double * relevance_score // * double * dotProduct(embedding_field_path) + // // Function variables: - // `relevance_score`: pre-defined keywords, used for measure relevance + // + // * `relevance_score`: pre-defined keywords, used for measure relevance // between query and document. - // `embedding_field_path`: the document embedding field + // * `embedding_field_path`: the document embedding field // used with query embedding vector. - // `dotProduct`: embedding function between embedding_field_path and query + // * `dotProduct`: embedding function between embedding_field_path and query // embedding vector. // // Example ranking expression: + // // If document has an embedding field doc_embedding, the ranking expression // could be `0.5 * relevance_score + 0.3 * dotProduct(doc_embedding)`. string ranking_expression = 26; @@ -868,8 +1014,62 @@ message SearchRequest { // for more details. map<string, string> user_labels = 22; + // If `naturalLanguageQueryUnderstandingSpec` is not specified, no additional + // natural language query understanding will be done. + NaturalLanguageQueryUnderstandingSpec + natural_language_query_understanding_spec = 28; + + // Search as you type configuration. Only supported for the + // [IndustryVertical.MEDIA][google.cloud.discoveryengine.v1alpha.IndustryVertical.MEDIA] + // vertical. + SearchAsYouTypeSpec search_as_you_type_spec = 31; + // Custom fine tuning configs. + // If set, it has higher priority than the configs set in + // [ServingConfig.custom_fine_tuning_spec][google.cloud.discoveryengine.v1alpha.ServingConfig.custom_fine_tuning_spec]. CustomFineTuningSpec custom_fine_tuning_spec = 34; + + // The session resource name. Optional. + // + // Session allows users to do multi-turn /search API calls or coordination + // between /search API calls and /answer API calls. + // + // Example #1 (multi-turn /search API calls): + // 1. Call /search API with the auto-session mode (see below). + // 2. Call /search API with the session ID generated in the first call. + // Here, the previous search query gets considered in query + // standing. I.e., if the first query is "How did Alphabet do in 2022?" + // and the current query is "How about 2023?", the current query will + // be interpreted as "How did Alphabet do in 2023?". + // + // Example #2 (coordination between /search API calls and /answer API calls): + // 1. Call /search API with the auto-session mode (see below). + // 2. Call /answer API with the session ID generated in the first call. + // Here, the answer generation happens in the context of the search + // results from the first search call. + // + // Auto-session mode: when `projects/.../sessions/-` is used, a new session + // gets automatically created. Otherwise, users can use the create-session API + // to create a session manually. + // + // Multi-turn Search feature is currently at private GA stage. Please use + // v1alpha or v1beta version instead before we launch this feature to public + // GA. Or ask for allowlisting through Google Support team. + string session = 41 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Session" + }]; + + // Session specification. + // + // Can be used only when `session` is set. + SessionSpec session_spec = 42; + + // The relevance threshold of the search results. + // + // Default to Google defined threshold, leveraging a balance of + // precision and recall to deliver both highly accurate results and + // comprehensive coverage of relevant information. + RelevanceThreshold relevance_threshold = 44; } // Response message for @@ -1036,14 +1236,14 @@ message SearchResponse { // The adversarial query ignored case. // - // Only populated when + // Only used when // [SummarySpec.ignore_adversarial_query][google.cloud.discoveryengine.v1alpha.SearchRequest.ContentSearchSpec.SummarySpec.ignore_adversarial_query] // is set to `true`. ADVERSARIAL_QUERY_IGNORED = 1; // The non-summary seeking query ignored case. // - // Only populated when + // Only used when // [SummarySpec.ignore_non_summary_seeking_query][google.cloud.discoveryengine.v1alpha.SearchRequest.ContentSearchSpec.SummarySpec.ignore_non_summary_seeking_query] // is set to `true`. NON_SUMMARY_SEEKING_QUERY_IGNORED = 2; @@ -1065,6 +1265,33 @@ message SearchResponse { // // Google skips the summary if the LLM addon is not enabled. LLM_ADDON_NOT_ENABLED = 5; + + // The no relevant content case. + // + // Google skips the summary if there is no relevant content in the + // retrieved search results. + NO_RELEVANT_CONTENT = 6; + + // The jail-breaking query ignored case. + // + // For example, "Reply in the tone of a competing company's CEO". + // Only used when + // [SearchRequest.ContentSearchSpec.SummarySpec.ignore_jail_breaking_query] + // is set to `true`. + JAIL_BREAKING_QUERY_IGNORED = 7; + + // The customer policy violation case. + // + // Google skips the summary if there is a customer policy violation + // detected. The policy is defined by the customer. + CUSTOMER_POLICY_VIOLATION = 8; + + // The non-answer seeking query ignored case. + // + // Only used when + // [SearchRequest.ContentSearchSpec.SummarySpec.ignore_non_answer_seeking_query] + // is set to `true`. + NON_SUMMARY_SEEKING_QUERY_IGNORED_V2 = 9; } // The summary content. @@ -1105,6 +1332,179 @@ message SearchResponse { int64 pinned_result_count = 2; } + // Information describing what natural language understanding was + // done on the input query. + message NaturalLanguageQueryUnderstandingInfo { + // The filters that were extracted from the input query represented in a + // structured form. + message StructuredExtractedFilter { + // Constraint expression of a string field. + message StringConstraint { + // Name of the string field as defined in the schema. + string field_name = 1; + + // Values of the string field. The record will only be returned if the + // field value matches one of the values specified here. + repeated string values = 2; + + // Identifies the keywords within the search query that match a filter. + string query_segment = 3; + } + + // Constraint expression of a number field. Example: price < 100. + message NumberConstraint { + // The comparison operation that was performed. + enum Comparison { + // Undefined comparison operator. + COMPARISON_UNSPECIFIED = 0; + + // Denotes equality `=` operator. + EQUALS = 1; + + // Denotes less than or equal to `<=` operator. + LESS_THAN_EQUALS = 2; + + // Denotes less than `<` operator. + LESS_THAN = 3; + + // Denotes greater than or equal to `>=` operator. + GREATER_THAN_EQUALS = 4; + + // Denotes greater than `>` operator. + GREATER_THAN = 5; + } + + // Name of the numerical field as defined in the schema. + string field_name = 1; + + // The comparison operation performed between the field value and the + // value specified in the constraint. + Comparison comparison = 2; + + // The value specified in the numerical constraint. + double value = 3; + + // Identifies the keywords within the search query that match a filter. + string query_segment = 4; + } + + // Constraint of a geolocation field. + // Name of the geolocation field as defined in the schema. + message GeolocationConstraint { + // The name of the geolocation field as defined in the schema. + string field_name = 1; + + // The reference address that was inferred from the input query. The + // proximity of the reference address to the geolocation field will be + // used to filter the results. + string address = 2; + + // The latitude of the geolocation inferred from the input query. + double latitude = 4; + + // The longitude of the geolocation inferred from the input query. + double longitude = 5; + + // The radius in meters around the address. The record is returned if + // the location of the geolocation field is within the radius. + float radius_in_meters = 3; + } + + // Logical `And` operator. + message AndExpression { + // The expressions that were ANDed together. + repeated Expression expressions = 1; + } + + // Logical `Or` operator. + message OrExpression { + // The expressions that were ORed together. + repeated Expression expressions = 1; + } + + // The expression denoting the filter that was extracted from the input + // query. + message Expression { + // The expression type. + oneof expr { + // String constraint expression. + StringConstraint string_constraint = 1; + + // Numerical constraint expression. + NumberConstraint number_constraint = 2; + + // Geolocation constraint expression. + GeolocationConstraint geolocation_constraint = 3; + + // Logical "And" compound operator connecting multiple expressions. + AndExpression and_expr = 4; + + // Logical "Or" compound operator connecting multiple expressions. + OrExpression or_expr = 5; + } + } + + // The expression denoting the filter that was extracted from the input + // query in a structured form. It can be a simple expression denoting a + // single string, numerical or geolocation constraint or a compound + // expression which is a combination of multiple expressions connected + // using logical (OR and AND) operators. + Expression expression = 1; + } + + // The filters that were extracted from the input query. + string extracted_filters = 1; + + // Rewritten input query minus the extracted filters. + string rewritten_query = 2; + + // The filters that were extracted from the input query represented in a + // structured form. + StructuredExtractedFilter structured_extracted_filter = 3; + } + + // Information about the session. + message SessionInfo { + // Name of the session. + // If the auto-session mode is used (when + // [SearchRequest.session][google.cloud.discoveryengine.v1alpha.SearchRequest.session] + // ends with "-"), this field holds the newly generated session name. + string name = 1; + + // Query ID that corresponds to this search API call. + // One session can have multiple turns, each with a unique query ID. + // + // By specifying the session name and this query ID in the Answer API call, + // the answer generation happens in the context of the search results from + // this search call. + string query_id = 2; + } + + // OneBoxResult is a holder for all results of specific type that we want + // to display in UI differently. + message OneBoxResult { + // The type of One Box result. + enum OneBoxType { + // Default value. Should not be used. + ONE_BOX_TYPE_UNSPECIFIED = 0; + + // One Box result contains people results. + PEOPLE = 1; + + // One Box result contains organization results. + ORGANIZATION = 2; + + // One Box result contains slack results. + SLACK = 3; + } + + // The type of One Box result. + OneBoxType one_box_type = 1; + + // The search results for this One Box. + repeated SearchResult search_results = 2; + } + // A list of matched documents. The order represents the ranking. repeated SearchResult results = 1; @@ -1125,7 +1525,8 @@ message SearchResponse { // A unique search token. This should be included in the // [UserEvent][google.cloud.discoveryengine.v1alpha.UserEvent] logs resulting // from this search, which enables accurate attribution of search model - // performance. + // performance. This also helps to identify a request during the customer + // support scenarios. string attribution_token = 4; // The URI of a customer-defined redirect page. If redirect action is @@ -1160,4 +1561,19 @@ message SearchResponse { // Query expansion information for the returned results. QueryExpansionInfo query_expansion_info = 14; + + // Natural language query understanding information for the returned results. + NaturalLanguageQueryUnderstandingInfo + natural_language_query_understanding_info = 15; + + // Session information. + // + // Only set if + // [SearchRequest.session][google.cloud.discoveryengine.v1alpha.SearchRequest.session] + // is provided. See its description for more details. + SessionInfo session_info = 19; + + // A list of One Box results. There can be multiple One Box results of + // different types. + repeated OneBoxResult one_box_results = 20; } diff --git a/google/cloud/discoveryengine/v1alpha/serving_config.proto b/google/cloud/discoveryengine/v1alpha/serving_config.proto index 36096e658..dccfc2117 100644 --- a/google/cloud/discoveryengine/v1alpha/serving_config.proto +++ b/google/cloud/discoveryengine/v1alpha/serving_config.proto @@ -171,27 +171,36 @@ message ServingConfig { // // The ranking expression is a single function or multiple functions that are // joined by "+". + // // * ranking_expression = function, { " + ", function }; + // // Supported functions: + // // * double * relevance_score // * double * dotProduct(embedding_field_path) + // // Function variables: - // relevance_score: pre-defined keywords, used for measure relevance between - // query and document. - // embedding_field_path: the document embedding field + // + // * `relevance_score`: pre-defined keywords, used for measure relevance + // between query and document. + // * `embedding_field_path`: the document embedding field // used with query embedding vector. - // dotProduct: embedding function between embedding_field_path and query + // * `dotProduct`: embedding function between embedding_field_path and query // embedding vector. // // Example ranking expression: + // // If document has an embedding field doc_embedding, the ranking expression - // could be 0.5 * relevance_score + 0.3 * dotProduct(doc_embedding). + // could be `0.5 * relevance_score + 0.3 * dotProduct(doc_embedding)`. string ranking_expression = 21; // Guided search configs. GuidedSearchSpec guided_search_spec = 22; // Custom fine tuning configs. + // If + // [SearchRequest.custom_fine_tuning_spec][google.cloud.discoveryengine.v1alpha.SearchRequest.custom_fine_tuning_spec] + // is set, it has higher priority than the configs set here. CustomFineTuningSpec custom_fine_tuning_spec = 24; // Output only. ServingConfig created timestamp. diff --git a/google/cloud/discoveryengine/v1alpha/site_search_engine_service.proto b/google/cloud/discoveryengine/v1alpha/site_search_engine_service.proto index 08988291d..b1a45a677 100644 --- a/google/cloud/discoveryengine/v1alpha/site_search_engine_service.proto +++ b/google/cloud/discoveryengine/v1alpha/site_search_engine_service.proto @@ -23,6 +23,7 @@ import "google/api/resource.proto"; import "google/cloud/discoveryengine/v1alpha/site_search_engine.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; +import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; @@ -221,6 +222,29 @@ service SiteSearchEngineService { get: "/v1alpha/{site_search_engine=projects/*/locations/*/collections/*/dataStores/*/siteSearchEngine}:fetchDomainVerificationStatus" }; } + + // Sets the URI Pattern to Document data mapping for an Advanced Site Search + // DataStore. + rpc SetUriPatternDocumentData(SetUriPatternDocumentDataRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1alpha/{site_search_engine=projects/*/locations/*/collections/*/dataStores/*/siteSearchEngine}:setUriPatternDocumentData" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.discoveryengine.v1alpha.SetUriPatternDocumentDataResponse" + metadata_type: "google.cloud.discoveryengine.v1alpha.SetUriPatternDocumentDataMetadata" + }; + } + + // Gets the URI Pattern to Document data mapping for an Advanced Site Search + // DataStore. + rpc GetUriPatternDocumentData(GetUriPatternDocumentDataRequest) + returns (GetUriPatternDocumentDataResponse) { + option (google.api.http) = { + get: "/v1alpha/{site_search_engine=projects/*/locations/*/collections/*/dataStores/*/siteSearchEngine}:getUriPatternDocumentData" + }; + } } // Request message for @@ -693,3 +717,105 @@ message FetchDomainVerificationStatusResponse { // This will always be populated in the response. int32 total_size = 3; } + +// Request message for +// [SiteSearchEngineService.SetUriPatternDocumentData][google.cloud.discoveryengine.v1alpha.SiteSearchEngineService.SetUriPatternDocumentData] +// method. +message SetUriPatternDocumentDataRequest { + // Required. Full resource name of the + // [SiteSearchEngine][google.cloud.discoveryengine.v1alpha.SiteSearchEngine], + // such as + // `projects/*/locations/*/collections/*/dataStores/*/siteSearchEngine`. + string site_search_engine = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/SiteSearchEngine" + } + ]; + + // Document data keyed by URI pattern. Each entry must be consistent with + // the [Schema][google.cloud.discoveryengine.v1alpha.Schema]. For example: + // [Schema][google.cloud.discoveryengine.v1alpha.Schema] = { + // "type": "object", + // "properties": { + // "Categories": { + // "type": "array", + // "items": { + // "retrievable": true, + // "type": "string" + // } + // } + // } + // + // document_data_map = { + // "www.url1.com/*": { + // "Categories": ["category1", "category2"] + // }, + // "www.url2.com/*": { + // "Categories": ["category3"] + // } + // } + map<string, google.protobuf.Struct> document_data_map = 2; + + // If true, clears the document data map. If true, + // [SetUriPatternDocumentDataRequest.document_data_map][google.cloud.discoveryengine.v1alpha.SetUriPatternDocumentDataRequest.document_data_map] + // must be empty. + bool empty_document_data_map = 4; + + // Optional. If not provided, the current + // [Schema][google.cloud.discoveryengine.v1alpha.Schema] is used. If provided, + // validates and updates the + // [Schema][google.cloud.discoveryengine.v1alpha.Schema]. If validation fails, + // an error is returned. + google.protobuf.Struct schema = 3; +} + +// Response message for +// [SiteSearchEngineService.SetUriPatternDocumentData][google.cloud.discoveryengine.v1alpha.SiteSearchEngineService.SetUriPatternDocumentData] +// method. +message SetUriPatternDocumentDataResponse {} + +// Metadata related to the progress of the +// [SiteSearchEngineService.SetUriPatternDocumentData][google.cloud.discoveryengine.v1alpha.SiteSearchEngineService.SetUriPatternDocumentData] +// operation. This will be returned by the google.longrunning.Operation.metadata +// field. +message SetUriPatternDocumentDataMetadata { + // 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; +} + +// Request message for +// [SiteSearchEngineService.GetUriPatternDocumentData][google.cloud.discoveryengine.v1alpha.SiteSearchEngineService.GetUriPatternDocumentData] +// method. +message GetUriPatternDocumentDataRequest { + // Required. Full resource name of the + // [SiteSearchEngine][google.cloud.discoveryengine.v1alpha.SiteSearchEngine], + // such as + // `projects/*/locations/*/collections/*/dataStores/*/siteSearchEngine`. + string site_search_engine = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/SiteSearchEngine" + } + ]; +} + +// Response message for +// [SiteSearchEngineService.GetUriPatternDocumentData][google.cloud.discoveryengine.v1alpha.SiteSearchEngineService.GetUriPatternDocumentData] +// method. +message GetUriPatternDocumentDataResponse { + // Document data keyed by URI pattern. For example: + // document_data_map = { + // "www.url1.com/*": { + // "Categories": ["category1", "category2"] + // }, + // "www.url2.com/*": { + // "Categories": ["category3"] + // } + // } + map<string, google.protobuf.Struct> document_data_map = 1; +} diff --git a/google/cloud/discoveryengine/v1alpha/user_event.proto b/google/cloud/discoveryengine/v1alpha/user_event.proto index 1e9ec3159..402e62edf 100644 --- a/google/cloud/discoveryengine/v1alpha/user_event.proto +++ b/google/cloud/discoveryengine/v1alpha/user_event.proto @@ -458,6 +458,10 @@ message DocumentInfo { // The promotion IDs associated with this Document. // Currently, this field is restricted to at most one ID. repeated string promotion_ids = 4; + + // Output only. Whether the referenced Document can be found in the data + // store. + bool joined = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Detailed panel information associated with a user event. diff --git a/google/cloud/discoveryengine/v1alpha/user_event_service.proto b/google/cloud/discoveryengine/v1alpha/user_event_service.proto index bec240363..81ef898f1 100644 --- a/google/cloud/discoveryengine/v1alpha/user_event_service.proto +++ b/google/cloud/discoveryengine/v1alpha/user_event_service.proto @@ -68,6 +68,9 @@ service UserEventService { additional_bindings { get: "/v1alpha/{parent=projects/*/locations/*/collections/*/dataStores/*}/userEvents:collect" } + additional_bindings { + get: "/v1alpha/{parent=projects/*/locations/*}/userEvents:collect" + } }; } diff --git a/google/cloud/discoveryengine/v1beta/BUILD.bazel b/google/cloud/discoveryengine/v1beta/BUILD.bazel index bad6c6511..f717d7dff 100644 --- a/google/cloud/discoveryengine/v1beta/BUILD.bazel +++ b/google/cloud/discoveryengine/v1beta/BUILD.bazel @@ -25,6 +25,7 @@ proto_library( name = "discoveryengine_proto", srcs = [ "answer.proto", + "chunk.proto", "common.proto", "completion.proto", "completion_service.proto", @@ -40,6 +41,8 @@ proto_library( "document_service.proto", "engine.proto", "engine_service.proto", + "evaluation.proto", + "evaluation_service.proto", "grounded_generation_service.proto", "grounding.proto", "import_config.proto", @@ -48,6 +51,10 @@ proto_library( "purge_config.proto", "rank_service.proto", "recommendation_service.proto", + "sample_query.proto", + "sample_query_service.proto", + "sample_query_set.proto", + "sample_query_set_service.proto", "schema.proto", "schema_service.proto", "search_service.proto", @@ -144,6 +151,8 @@ java_gapic_test( "com.google.cloud.discoveryengine.v1beta.DocumentServiceClientTest", "com.google.cloud.discoveryengine.v1beta.EngineServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1beta.EngineServiceClientTest", + "com.google.cloud.discoveryengine.v1beta.EvaluationServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1beta.EvaluationServiceClientTest", "com.google.cloud.discoveryengine.v1beta.GroundedGenerationServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1beta.GroundedGenerationServiceClientTest", "com.google.cloud.discoveryengine.v1beta.ProjectServiceClientHttpJsonTest", @@ -152,6 +161,10 @@ java_gapic_test( "com.google.cloud.discoveryengine.v1beta.RankServiceClientTest", "com.google.cloud.discoveryengine.v1beta.RecommendationServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1beta.RecommendationServiceClientTest", + "com.google.cloud.discoveryengine.v1beta.SampleQueryServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1beta.SampleQueryServiceClientTest", + "com.google.cloud.discoveryengine.v1beta.SampleQuerySetServiceClientHttpJsonTest", + "com.google.cloud.discoveryengine.v1beta.SampleQuerySetServiceClientTest", "com.google.cloud.discoveryengine.v1beta.SchemaServiceClientHttpJsonTest", "com.google.cloud.discoveryengine.v1beta.SchemaServiceClientTest", "com.google.cloud.discoveryengine.v1beta.SearchServiceClientHttpJsonTest", @@ -410,7 +423,6 @@ load( csharp_proto_library( name = "discoveryengine_csharp_proto", - extra_opts = [], deps = [":discoveryengine_proto"], ) diff --git a/google/cloud/discoveryengine/v1beta/answer.proto b/google/cloud/discoveryengine/v1beta/answer.proto index 6f444c818..a826eb67c 100644 --- a/google/cloud/discoveryengine/v1beta/answer.proto +++ b/google/cloud/discoveryengine/v1beta/answer.proto @@ -69,6 +69,13 @@ message Answer { // Page identifier. string page_identifier = 2; + + // The relevance of the chunk for a given query. Values range from 0.0 + // (completely irrelevant) to 1.0 (completely relevant). + // This value is for informational purpose only. It may change for + // the same query and chunk at any time due to a model retraining or + // change in implementation. + optional float relevance_score = 3; } // Document resource name. @@ -121,13 +128,28 @@ message Answer { // Chunk textual content. string content = 2; - // Relevance score. + // The relevance of the chunk for a given query. Values range from 0.0 + // (completely irrelevant) to 1.0 (completely relevant). + // This value is for informational purpose only. It may change for + // the same query and chunk at any time due to a model retraining or + // change in implementation. optional float relevance_score = 3; // Document metadata. DocumentMetadata document_metadata = 4; } + // Structured search information. + message StructuredDocumentInfo { + // Document resource name. + string document = 1 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Document" + }]; + + // Structured search data. + google.protobuf.Struct struct_data = 2; + } + // Search result content. oneof content { // Unstructured document information. @@ -135,6 +157,9 @@ message Answer { // Chunk information. ChunkInfo chunk_info = 2; + + // Structured document information. + StructuredDocumentInfo structured_document_info = 3; } } @@ -168,7 +193,11 @@ message Answer { // Chunk textual content. string content = 2; - // Relevance score. + // The relevance of the chunk for a given query. Values range from + // 0.0 (completely irrelevant) to 1.0 (completely relevant). + // This value is for informational purpose only. It may change for + // the same query and chunk at any time due to a model retraining or + // change in implementation. optional float relevance_score = 3; } @@ -188,6 +217,14 @@ message Answer { // If citation_type is CHUNK_LEVEL_CITATION and chunk mode is on, // populate chunk info. repeated ChunkInfo chunk_info = 5; + + // Data representation. + // The structured JSON data for the document. + // It's populated from the struct data from the Document + // , or the Chunk in + // search result + // . + google.protobuf.Struct struct_data = 6; } // Search results observed by the search action, it can be snippets info @@ -247,6 +284,9 @@ message Answer { // Non-answer-seeking query classification type. NON_ANSWER_SEEKING_QUERY = 2; + + // Jail-breaking query classification type. + JAIL_BREAKING_QUERY = 3; } // Query classification type. @@ -296,6 +336,25 @@ message Answer { // Google skips the answer if there is a potential policy violation // detected. This includes content that may be violent or toxic. POTENTIAL_POLICY_VIOLATION = 4; + + // The no relevant content case. + // + // Google skips the answer if there is no relevant content in the + // retrieved search results. + NO_RELEVANT_CONTENT = 5; + + // The jail-breaking query ignored case. + // + // For example, "Reply in the tone of a competing company's CEO". + // Google skips the answer if the query is classified as a jail-breaking + // query. + JAIL_BREAKING_QUERY_IGNORED = 6; + + // The customer policy violation case. + // + // Google skips the summary if there is a customer policy violation + // detected. The policy is defined by the customer. + CUSTOMER_POLICY_VIOLATION = 7; } // Immutable. Fully qualified name diff --git a/google/cloud/discoveryengine/v1beta/chunk.proto b/google/cloud/discoveryengine/v1beta/chunk.proto new file mode 100644 index 000000000..7d4d4f0fd --- /dev/null +++ b/google/cloud/discoveryengine/v1beta/chunk.proto @@ -0,0 +1,119 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.discoveryengine.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 = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "ChunkProto"; +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"; + +// Chunk captures all raw metadata information of items to be recommended or +// searched in the chunk mode. +message Chunk { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/Chunk" + pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/branches/{branch}/documents/{document}/chunks/{chunk}" + pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}/documents/{document}/chunks/{chunk}" + }; + + // Document metadata contains the information of the document of the current + // chunk. + message DocumentMetadata { + // Uri of the document. + string uri = 1; + + // Title of the document. + string title = 2; + + // Data representation. + // The structured JSON data for the document. It should conform to the + // registered [Schema][google.cloud.discoveryengine.v1beta.Schema] or an + // `INVALID_ARGUMENT` error is thrown. + google.protobuf.Struct struct_data = 3; + } + + // Page span of the chunk. + message PageSpan { + // The start page of the chunk. + int32 page_start = 1; + + // The end page of the chunk. + int32 page_end = 2; + } + + // Metadata of the current chunk. This field is only populated on + // [SearchService.Search][google.cloud.discoveryengine.v1beta.SearchService.Search] + // API. + message ChunkMetadata { + // The previous chunks of the current chunk. The number is controlled by + // [SearchRequest.ContentSearchSpec.ChunkSpec.num_previous_chunks][google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.ChunkSpec.num_previous_chunks]. + // This field is only populated on + // [SearchService.Search][google.cloud.discoveryengine.v1beta.SearchService.Search] + // API. + repeated Chunk previous_chunks = 1; + + // The next chunks of the current chunk. The number is controlled by + // [SearchRequest.ContentSearchSpec.ChunkSpec.num_next_chunks][google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.ChunkSpec.num_next_chunks]. + // This field is only populated on + // [SearchService.Search][google.cloud.discoveryengine.v1beta.SearchService.Search] + // API. + repeated Chunk next_chunks = 2; + } + + // The full resource name of the chunk. + // Format: + // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}/documents/{document_id}/chunks/{chunk_id}`. + // + // This field must be a UTF-8 encoded string with a length limit of 1024 + // characters. + string name = 1; + + // Unique chunk ID of the current chunk. + string id = 2; + + // Content is a string from a document (parsed content). + string content = 3; + + // Output only. Represents the relevance score based on similarity. + // Higher score indicates higher chunk relevance. + // The score is in range [-1.0, 1.0]. + // Only populated on [SearchService.SearchResponse][]. + optional double relevance_score = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Metadata of the document from the current chunk. + DocumentMetadata document_metadata = 5; + + // Output only. This field is OUTPUT_ONLY. + // It contains derived data that are not in the original input document. + google.protobuf.Struct derived_struct_data = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Page span of the chunk. + PageSpan page_span = 6; + + // Output only. Metadata of the current chunk. + ChunkMetadata chunk_metadata = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/discoveryengine/v1beta/common.proto b/google/cloud/discoveryengine/v1beta/common.proto index 640423d8f..9e4042285 100644 --- a/google/cloud/discoveryengine/v1beta/common.proto +++ b/google/cloud/discoveryengine/v1beta/common.proto @@ -51,11 +51,6 @@ option (google.api.resource_definition) = { type: "healthcare.googleapis.com/FhirStore" pattern: "projects/{project}/locations/{location}/datasets/{dataset}/fhirStores/{fhir_store}" }; -option (google.api.resource_definition) = { - type: "discoveryengine.googleapis.com/Chunk" - pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/branches/{branch}/documents/{document}/chunks/{chunk}" - pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}/documents/{document}/chunks/{chunk}" -}; // The industry vertical associated with the // [DataStore][google.cloud.discoveryengine.v1beta.DataStore]. diff --git a/google/cloud/discoveryengine/v1beta/completion.proto b/google/cloud/discoveryengine/v1beta/completion.proto index 8e13527cd..b991284e4 100644 --- a/google/cloud/discoveryengine/v1beta/completion.proto +++ b/google/cloud/discoveryengine/v1beta/completion.proto @@ -50,3 +50,34 @@ message SuggestionDenyListEntry { // exact phrase, or block any suggestions containing this phrase. MatchOperator match_operator = 2 [(google.api.field_behavior) = REQUIRED]; } + +// Autocomplete suggestions that are imported from Customer. +message CompletionSuggestion { + // Ranking metrics of this suggestion. + oneof ranking_info { + // Global score of this suggestion. Control how this suggestion would be + // scored / ranked. + double global_score = 2; + + // Frequency of this suggestion. Will be used to rank suggestions when score + // is not available. + int64 frequency = 3; + } + + // Required. The suggestion text. + string suggestion = 1 [(google.api.field_behavior) = REQUIRED]; + + // BCP-47 language code of this suggestion. + string language_code = 4; + + // If two suggestions have the same groupId, they will not be + // returned together. Instead the one ranked higher will be returned. This can + // be used to deduplicate semantically identical suggestions. + string group_id = 5; + + // The score of this suggestion within its group. + double group_score = 6; + + // Alternative matching phrases for this suggestion. + repeated string alternative_phrases = 7; +} diff --git a/google/cloud/discoveryengine/v1beta/completion_service.proto b/google/cloud/discoveryengine/v1beta/completion_service.proto index fc65f6baf..4ad66898e 100644 --- a/google/cloud/discoveryengine/v1beta/completion_service.proto +++ b/google/cloud/discoveryengine/v1beta/completion_service.proto @@ -86,6 +86,44 @@ service CompletionService { metadata_type: "google.cloud.discoveryengine.v1beta.PurgeSuggestionDenyListEntriesMetadata" }; } + + // Imports + // [CompletionSuggestion][google.cloud.discoveryengine.v1beta.CompletionSuggestion]s + // for a DataStore. + rpc ImportCompletionSuggestions(ImportCompletionSuggestionsRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*}/completionSuggestions:import" + body: "*" + additional_bindings { + post: "/v1beta/{parent=projects/*/locations/*/dataStores/*}/completionSuggestions:import" + body: "*" + } + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.discoveryengine.v1beta.ImportCompletionSuggestionsResponse" + metadata_type: "google.cloud.discoveryengine.v1beta.ImportCompletionSuggestionsMetadata" + }; + } + + // Permanently deletes all + // [CompletionSuggestion][google.cloud.discoveryengine.v1beta.CompletionSuggestion]s + // for a DataStore. + rpc PurgeCompletionSuggestions(PurgeCompletionSuggestionsRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*}/completionSuggestions:purge" + body: "*" + additional_bindings { + post: "/v1beta/{parent=projects/*/locations/*/dataStores/*}/completionSuggestions:purge" + body: "*" + } + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.discoveryengine.v1beta.PurgeCompletionSuggestionsResponse" + metadata_type: "google.cloud.discoveryengine.v1beta.PurgeCompletionSuggestionsMetadata" + }; + } } // Request message for diff --git a/google/cloud/discoveryengine/v1beta/control.proto b/google/cloud/discoveryengine/v1beta/control.proto index d9045b7c0..94f94cf1d 100644 --- a/google/cloud/discoveryengine/v1beta/control.proto +++ b/google/cloud/discoveryengine/v1beta/control.proto @@ -184,7 +184,7 @@ message Control { string display_name = 2 [(google.api.field_behavior) = REQUIRED]; // Output only. List of all - // [ServingConfig][google.cloud.discoveryengine.v1beta.ServingConfig] ids this + // [ServingConfig][google.cloud.discoveryengine.v1beta.ServingConfig] IDs this // control is attached to. May take up to 10 minutes to update after changes. repeated string associated_serving_config_ids = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/google/cloud/discoveryengine/v1beta/conversational_search_service.proto b/google/cloud/discoveryengine/v1beta/conversational_search_service.proto index dcdc48bb5..65cdace82 100644 --- a/google/cloud/discoveryengine/v1beta/conversational_search_service.proto +++ b/google/cloud/discoveryengine/v1beta/conversational_search_service.proto @@ -587,6 +587,12 @@ message AnswerQueryRequest { // If this field is unrecognizable, an `INVALID_ARGUMENT` is returned. string order_by = 4; + // Specifies the search result mode. If unspecified, the + // search result mode defaults to `DOCUMENTS`. + // See [parse and chunk + // documents](https://cloud.google.com/generative-ai-app-builder/docs/parse-chunk-documents) + SearchRequest.ContentSearchSpec.SearchResultMode search_result_mode = 5; + // Specs defining dataStores to filter on in a search call and // configurations for those dataStores. This is only considered for // engines with multiple dataStores use case. For single dataStore within @@ -700,6 +706,9 @@ message AnswerQueryRequest { // Non-answer-seeking query classification type. NON_ANSWER_SEEKING_QUERY = 2; + + // Jail-breaking query classification type. + JAIL_BREAKING_QUERY = 3; } // Enabled query classification types. @@ -786,6 +795,25 @@ message AnswerQueryRequest { // The field must be a UTF-8 encoded string with a length limit of 128 // characters. Otherwise, an `INVALID_ARGUMENT` error is returned. string user_pseudo_id = 12; + + // The user labels applied to a resource must meet the following requirements: + // + // * Each resource can have multiple labels, up to a maximum of 64. + // * Each label must be a key-value pair. + // * Keys have a minimum length of 1 character and a maximum length of 63 + // characters and cannot be empty. Values can be empty and have a maximum + // length of 63 characters. + // * Keys and values can contain only lowercase letters, numeric characters, + // underscores, and dashes. All characters must use UTF-8 encoding, and + // international characters are allowed. + // * The key portion of a label must be unique. However, you can use the same + // key with multiple resources. + // * Keys must start with a lowercase letter or international character. + // + // See [Google Cloud + // Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) + // for more details. + map<string, string> user_labels = 13; } // Response message for @@ -793,8 +821,10 @@ message AnswerQueryRequest { // method. message AnswerQueryResponse { // Answer resource object. - // If [AnswerQueryRequest.StepSpec.max_step_count][] is greater than 1, - // use [Answer.name][google.cloud.discoveryengine.v1beta.Answer.name] to fetch + // If + // [AnswerQueryRequest.QueryUnderstandingSpec.QueryRephraserSpec.max_rephrase_steps][google.cloud.discoveryengine.v1beta.AnswerQueryRequest.QueryUnderstandingSpec.QueryRephraserSpec.max_rephrase_steps] + // is greater than 1, use + // [Answer.name][google.cloud.discoveryengine.v1beta.Answer.name] to fetch // answer information using // [ConversationalSearchService.GetAnswer][google.cloud.discoveryengine.v1beta.ConversationalSearchService.GetAnswer] // API. diff --git a/google/cloud/discoveryengine/v1beta/custom_tuning_model.proto b/google/cloud/discoveryengine/v1beta/custom_tuning_model.proto index 165d28032..532888b0a 100644 --- a/google/cloud/discoveryengine/v1beta/custom_tuning_model.proto +++ b/google/cloud/discoveryengine/v1beta/custom_tuning_model.proto @@ -56,6 +56,12 @@ message CustomTuningModel { // The model training failed. TRAINING_FAILED = 5; + + // The model training finished successfully but metrics did not improve. + NO_IMPROVEMENT = 6; + + // Input data validation failed. Model training didn't start. + INPUT_VALIDATION_FAILED = 7; } // Required. The fully qualified resource name of the model. @@ -80,8 +86,11 @@ message CustomTuningModel { ModelState model_state = 4; // Timestamp the Model was created at. - google.protobuf.Timestamp create_time = 5; + google.protobuf.Timestamp create_time = 5 [deprecated = true]; // Timestamp the model training was initiated. google.protobuf.Timestamp training_start_time = 6; + + // The metrics of the trained model. + map<string, double> metrics = 7; } diff --git a/google/cloud/discoveryengine/v1beta/data_store.proto b/google/cloud/discoveryengine/v1beta/data_store.proto index f45585131..d581d9767 100644 --- a/google/cloud/discoveryengine/v1beta/data_store.proto +++ b/google/cloud/discoveryengine/v1beta/data_store.proto @@ -98,6 +98,9 @@ message DataStore { google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Language info for DataStore. + LanguageInfo language_info = 14; + // Configuration for Document understanding and enrichment. DocumentProcessingConfig document_processing_config = 27; @@ -118,3 +121,23 @@ message DataStore { // doc](https://cloud.google.com/generative-ai-app-builder/docs/provide-schema). Schema starting_schema = 28; } + +// Language info for DataStore. +message LanguageInfo { + // The language code for the DataStore. + string language_code = 1; + + // Output only. This is the normalized form of language_code. + // E.g.: language_code of `en-GB`, `en_GB`, `en-UK` or `en-gb` + // will have normalized_language_code of `en-GB`. + string normalized_language_code = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Language part of normalized_language_code. + // E.g.: `en-US` -> `en`, `zh-Hans-HK` -> `zh`, `en` -> `en`. + string language = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Region part of normalized_language_code, if present. + // E.g.: `en-US` -> `US`, `zh-Hans-HK` -> `HK`, `en` -> ``. + string region = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/discoveryengine/v1beta/data_store_service.proto b/google/cloud/discoveryengine/v1beta/data_store_service.proto index 6709fe6f1..0dc197dbb 100644 --- a/google/cloud/discoveryengine/v1beta/data_store_service.proto +++ b/google/cloud/discoveryengine/v1beta/data_store_service.proto @@ -152,6 +152,16 @@ message CreateDataStoreRequest { // search (GENERIC vertical and PUBLIC_WEBSITE content_config), this flag will // be ignored. bool create_advanced_site_search = 4; + + // A boolean flag indicating whether to skip the default schema creation for + // the data store. Only enable this flag if you are certain that the default + // schema is incompatible with your use case. + // + // If set to true, you must manually create a schema for the data store before + // any documents can be ingested. + // + // This flag cannot be specified if `data_store.starting_schema` is specified. + bool skip_default_schema_creation = 7; } // Request message for diff --git a/google/cloud/discoveryengine/v1beta/discoveryengine_grpc_service_config.json b/google/cloud/discoveryengine/v1beta/discoveryengine_grpc_service_config.json index cf0c64df0..4c1c99c8d 100644 --- a/google/cloud/discoveryengine/v1beta/discoveryengine_grpc_service_config.json +++ b/google/cloud/discoveryengine/v1beta/discoveryengine_grpc_service_config.json @@ -19,8 +19,11 @@ { "service": "google.cloud.discoveryengine.v1beta.ControlService" }, { "service": "google.cloud.discoveryengine.v1beta.ConversationalSearchService" }, { "service": "google.cloud.discoveryengine.v1beta.DocumentService" }, + { "service": "google.cloud.discoveryengine.v1beta.EvaluationService" }, { "service": "google.cloud.discoveryengine.v1beta.ProjectService" }, { "service": "google.cloud.discoveryengine.v1beta.RankService" }, + { "service": "google.cloud.discoveryengine.v1beta.SampleQueryService" }, + { "service": "google.cloud.discoveryengine.v1beta.SampleQuerySetService" }, { "service": "google.cloud.discoveryengine.v1beta.SchemaService" }, { "service": "google.cloud.discoveryengine.v1beta.SearchService" }, { "service": "google.cloud.discoveryengine.v1beta.UserEventService" }, @@ -56,6 +59,15 @@ "backoffMultiplier": 1.3, "retryableStatusCodes": ["UNAVAILABLE"] } + }, + { + "name": [ + { + "service": "google.cloud.discoveryengine.v1beta.EvaluationService", + "method": "CreateEvaluation" + } + ], + "timeout": "300s" } ] } diff --git a/google/cloud/discoveryengine/v1beta/discoveryengine_v1beta.yaml b/google/cloud/discoveryengine/v1beta/discoveryengine_v1beta.yaml index aeceb7974..4c8a73421 100644 --- a/google/cloud/discoveryengine/v1beta/discoveryengine_v1beta.yaml +++ b/google/cloud/discoveryengine/v1beta/discoveryengine_v1beta.yaml @@ -10,10 +10,13 @@ apis: - name: google.cloud.discoveryengine.v1beta.DataStoreService - name: google.cloud.discoveryengine.v1beta.DocumentService - name: google.cloud.discoveryengine.v1beta.EngineService +- name: google.cloud.discoveryengine.v1beta.EvaluationService - name: google.cloud.discoveryengine.v1beta.GroundedGenerationService - name: google.cloud.discoveryengine.v1beta.ProjectService - name: google.cloud.discoveryengine.v1beta.RankService - name: google.cloud.discoveryengine.v1beta.RecommendationService +- name: google.cloud.discoveryengine.v1beta.SampleQueryService +- name: google.cloud.discoveryengine.v1beta.SampleQuerySetService - name: google.cloud.discoveryengine.v1beta.SchemaService - name: google.cloud.discoveryengine.v1beta.SearchService - name: google.cloud.discoveryengine.v1beta.SearchTuningService @@ -30,6 +33,7 @@ types: - name: google.cloud.discoveryengine.v1beta.Control - name: google.cloud.discoveryengine.v1beta.CreateDataStoreMetadata - name: google.cloud.discoveryengine.v1beta.CreateEngineMetadata +- name: google.cloud.discoveryengine.v1beta.CreateEvaluationMetadata - name: google.cloud.discoveryengine.v1beta.CreateSchemaMetadata - name: google.cloud.discoveryengine.v1beta.CreateTargetSiteMetadata - name: google.cloud.discoveryengine.v1beta.DataStore @@ -42,8 +46,13 @@ types: - name: google.cloud.discoveryengine.v1beta.EnableAdvancedSiteSearchMetadata - name: google.cloud.discoveryengine.v1beta.EnableAdvancedSiteSearchResponse - name: google.cloud.discoveryengine.v1beta.Engine +- name: google.cloud.discoveryengine.v1beta.Evaluation +- name: google.cloud.discoveryengine.v1beta.ImportCompletionSuggestionsMetadata +- name: google.cloud.discoveryengine.v1beta.ImportCompletionSuggestionsResponse - name: google.cloud.discoveryengine.v1beta.ImportDocumentsMetadata - name: google.cloud.discoveryengine.v1beta.ImportDocumentsResponse +- name: google.cloud.discoveryengine.v1beta.ImportSampleQueriesMetadata +- name: google.cloud.discoveryengine.v1beta.ImportSampleQueriesResponse - name: google.cloud.discoveryengine.v1beta.ImportSuggestionDenyListEntriesMetadata - name: google.cloud.discoveryengine.v1beta.ImportSuggestionDenyListEntriesResponse - name: google.cloud.discoveryengine.v1beta.ImportUserEventsMetadata @@ -89,7 +98,9 @@ http: - get: '/v1beta/{name=projects/*/locations/*/dataStores/*/branches/*/operations/*}' - get: '/v1beta/{name=projects/*/locations/*/dataStores/*/models/*/operations/*}' - get: '/v1beta/{name=projects/*/locations/*/dataStores/*/operations/*}' + - get: '/v1beta/{name=projects/*/locations/*/evaluations/*/operations/*}' - get: '/v1beta/{name=projects/*/locations/*/operations/*}' + - get: '/v1beta/{name=projects/*/locations/*/sampleQuerySets/*/operations/*}' - get: '/v1beta/{name=projects/*/operations/*}' - selector: google.longrunning.Operations.ListOperations get: '/v1beta/{name=projects/*/locations/*/collections/*/dataConnector}/operations' @@ -134,6 +145,10 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.discoveryengine.v1beta.EvaluationService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: google.cloud.discoveryengine.v1beta.GroundedGenerationService.CheckGrounding oauth: canonical_scopes: |- @@ -150,6 +165,14 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.discoveryengine.v1beta.SampleQueryService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.discoveryengine.v1beta.SampleQuerySetService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.discoveryengine.v1beta.SchemaService.*' oauth: canonical_scopes: |- diff --git a/google/cloud/discoveryengine/v1beta/document.proto b/google/cloud/discoveryengine/v1beta/document.proto index 2e8f82f03..9f7accb36 100644 --- a/google/cloud/discoveryengine/v1beta/document.proto +++ b/google/cloud/discoveryengine/v1beta/document.proto @@ -20,6 +20,7 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; @@ -54,7 +55,7 @@ message Document { // The URI of the content. Only Cloud Storage URIs (e.g. // `gs://bucket-name/path/to/file`) are supported. The maximum file size - // is 2.5 MB for text-based formats, 100 MB for other formats. + // is 2.5 MB for text-based formats, 200 MB for other formats. string uri = 3; } @@ -70,6 +71,17 @@ message Document { string mime_type = 1; } + // Index status of the document. + message IndexStatus { + // The time when the document was indexed. + // If this field is populated, it means the document has been indexed. + google.protobuf.Timestamp index_time = 1; + + // A sample of errors encountered while indexing the document. + // If this field is populated, the document is not indexed due to errors. + repeated google.rpc.Status error_samples = 2; + } + // Data representation. One of // [struct_data][google.cloud.discoveryengine.v1beta.Document.struct_data] or // [json_data][google.cloud.discoveryengine.v1beta.Document.json_data] should @@ -127,4 +139,12 @@ message Document { // document has never been indexed. google.protobuf.Timestamp index_time = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The index status of the document. + // + // * If document is indexed successfully, the index_time field is populated. + // * Otherwise, if document is not indexed due to errors, the error_samples + // field is populated. + // * Otherwise, index_status is unset. + IndexStatus index_status = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/discoveryengine/v1beta/document_processing_config.proto b/google/cloud/discoveryengine/v1beta/document_processing_config.proto index eb1ef031a..b3b053382 100644 --- a/google/cloud/discoveryengine/v1beta/document_processing_config.proto +++ b/google/cloud/discoveryengine/v1beta/document_processing_config.proto @@ -41,6 +41,30 @@ message DocumentProcessingConfig { pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/documentProcessingConfig" }; + // Configuration for chunking config. + message ChunkingConfig { + // Configuration for the layout based chunking. + message LayoutBasedChunkingConfig { + // The token size limit for each chunk. + // + // Supported values: 100-500 (inclusive). + // Default value: 500. + int32 chunk_size = 1; + + // Whether to include appending different levels of headings to chunks + // from the middle of the document to prevent context loss. + // + // Default value: False. + bool include_ancestor_headings = 2; + } + + // Additional configs that defines the behavior of the chunking. + oneof chunk_mode { + // Configuration for the layout based chunking. + LayoutBasedChunkingConfig layout_based_chunking_config = 1; + } + } + // Related configurations applied to a specific type of document parser. message ParsingConfig { // The digital parsing configurations for documents. @@ -57,6 +81,9 @@ message DocumentProcessingConfig { bool use_native_text = 2; } + // The layout parsing configurations for documents. + message LayoutParsingConfig {} + // Configs for document processing types. oneof type_dedicated_config { // Configurations applied to digital parser. @@ -65,6 +92,9 @@ message DocumentProcessingConfig { // Configurations applied to OCR parser. Currently it only applies to // PDFs. OcrParsingConfig ocr_parsing_config = 2; + + // Configurations applied to layout parser. + LayoutParsingConfig layout_parsing_config = 3; } } @@ -73,6 +103,9 @@ message DocumentProcessingConfig { // `projects/*/locations/*/collections/*/dataStores/*/documentProcessingConfig`. string name = 1; + // Whether chunking mode is enabled. + ChunkingConfig chunking_config = 3; + // Configurations for default Document parser. // If not specified, we will configure it as default DigitalParsingConfig, and // the default parsing config will be applied to all file types for Document @@ -85,8 +118,12 @@ message DocumentProcessingConfig { // * `pdf`: Override parsing config for PDF files, either digital parsing, ocr // parsing or layout parsing is supported. // * `html`: Override parsing config for HTML files, only digital parsing and - // or layout parsing are supported. + // layout parsing are supported. // * `docx`: Override parsing config for DOCX files, only digital parsing and - // or layout parsing are supported. + // layout parsing are supported. + // * `pptx`: Override parsing config for PPTX files, only digital parsing and + // layout parsing are supported. + // * `xlsx`: Override parsing config for XLSX files, only digital parsing and + // layout parsing are supported. map<string, ParsingConfig> parsing_config_overrides = 5; } diff --git a/google/cloud/discoveryengine/v1beta/document_service.proto b/google/cloud/discoveryengine/v1beta/document_service.proto index 0258b8191..2a0252f03 100644 --- a/google/cloud/discoveryengine/v1beta/document_service.proto +++ b/google/cloud/discoveryengine/v1beta/document_service.proto @@ -26,6 +26,7 @@ import "google/cloud/discoveryengine/v1beta/purge_config.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.DiscoveryEngine.V1Beta"; option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; @@ -158,6 +159,20 @@ service DocumentService { metadata_type: "google.cloud.discoveryengine.v1beta.PurgeDocumentsMetadata" }; } + + // Gets index freshness metadata for + // [Document][google.cloud.discoveryengine.v1beta.Document]s. Supported for + // website search only. + rpc BatchGetDocumentsMetadata(BatchGetDocumentsMetadataRequest) + returns (BatchGetDocumentsMetadataResponse) { + option (google.api.http) = { + get: "/v1beta/{parent=projects/*/locations/*/dataStores/*/branches/*}/batchGetDocumentsMetadata" + additional_bindings { + get: "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*/branches/*}/batchGetDocumentsMetadata" + } + }; + option (google.api.method_signature) = "parent"; + } } // Request message for @@ -320,3 +335,102 @@ message DeleteDocumentRequest { } ]; } + +// Request message for +// [DocumentService.BatchGetDocumentsMetadata][google.cloud.discoveryengine.v1beta.DocumentService.BatchGetDocumentsMetadata] +// method. +message BatchGetDocumentsMetadataRequest { + // Matcher for the [Document][google.cloud.discoveryengine.v1beta.Document]s + // by exact uris. + message UrisMatcher { + // The exact URIs to match by. + repeated string uris = 1; + } + + // Matcher for the [Document][google.cloud.discoveryengine.v1beta.Document]s. + // Currently supports matching by exact URIs. + message Matcher { + // Matcher for the + // [Document][google.cloud.discoveryengine.v1beta.Document]s. + oneof matcher { + // Matcher by exact URIs. + UrisMatcher uris_matcher = 1; + } + } + + // Required. The parent branch resource name, such as + // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Branch" + } + ]; + + // Required. Matcher for the + // [Document][google.cloud.discoveryengine.v1beta.Document]s. + Matcher matcher = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for +// [DocumentService.BatchGetDocumentsMetadata][google.cloud.discoveryengine.v1beta.DocumentService.BatchGetDocumentsMetadata] +// method. +message BatchGetDocumentsMetadataResponse { + // The metadata of a [Document][google.cloud.discoveryengine.v1beta.Document]. + message DocumentMetadata { + // The value of the matcher that was used to match the + // [Document][google.cloud.discoveryengine.v1beta.Document]. + message MatcherValue { + // The value of the matcher that was used to match the + // [Document][google.cloud.discoveryengine.v1beta.Document]. + oneof matcher_value { + // If match by URI, the URI of the + // [Document][google.cloud.discoveryengine.v1beta.Document]. + string uri = 1; + } + } + + // The value of the matcher that was used to match the + // [Document][google.cloud.discoveryengine.v1beta.Document]. + MatcherValue matcher_value = 2; + + // The state of the document. + State state = 3; + + // The timestamp of the last time the + // [Document][google.cloud.discoveryengine.v1beta.Document] was last + // indexed. + google.protobuf.Timestamp last_refreshed_time = 4; + + // The data ingestion source of the + // [Document][google.cloud.discoveryengine.v1beta.Document]. + // + // Allowed values are: + // + // * `batch`: Data ingested via Batch API, e.g., ImportDocuments. + // * `streaming` Data ingested via Streaming API, e.g., FHIR streaming. + string data_ingestion_source = 5; + } + + // The state of the [Document][google.cloud.discoveryengine.v1beta.Document]. + enum State { + // Should never be set. + STATE_UNSPECIFIED = 0; + + // The [Document][google.cloud.discoveryengine.v1beta.Document] is indexed. + INDEXED = 1; + + // The [Document][google.cloud.discoveryengine.v1beta.Document] is not + // indexed because its URI is not in the + // [TargetSite][google.cloud.discoveryengine.v1beta.TargetSite]. + NOT_IN_TARGET_SITE = 2; + + // The [Document][google.cloud.discoveryengine.v1beta.Document] is not + // indexed. + NOT_IN_INDEX = 3; + } + + // The metadata of the + // [Document][google.cloud.discoveryengine.v1beta.Document]s. + repeated DocumentMetadata documents_metadata = 1; +} diff --git a/google/cloud/discoveryengine/v1beta/evaluation.proto b/google/cloud/discoveryengine/v1beta/evaluation.proto new file mode 100644 index 000000000..a61db0858 --- /dev/null +++ b/google/cloud/discoveryengine/v1beta/evaluation.proto @@ -0,0 +1,231 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY 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/search_service.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "EvaluationProto"; +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"; + +// An evaluation is a single execution (or run) of an evaluation process. It +// encapsulates the state of the evaluation and the resulting data. +message Evaluation { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/Evaluation" + pattern: "projects/{project}/locations/{location}/evaluations/{evaluation}" + }; + + // Describes the specification of the evaluation. + message EvaluationSpec { + // Describes the specification of the query set. + message QuerySetSpec { + // Required. The full resource name of the + // [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet] + // used for the evaluation, in the format of + // `projects/{project}/locations/{location}/sampleQuerySets/{sampleQuerySet}`. + string sample_query_set = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/SampleQuerySet" + } + ]; + } + + // The search specification. + oneof search_spec { + // Required. The search request that is used to perform the evaluation. + // + // Only the following fields within SearchRequest are supported; if any + // other fields are provided, an UNSUPPORTED error will be returned: + // + // * [SearchRequest.serving_config][google.cloud.discoveryengine.v1beta.SearchRequest.serving_config] + // * [SearchRequest.branch][google.cloud.discoveryengine.v1beta.SearchRequest.branch] + // * [SearchRequest.canonical_filter][google.cloud.discoveryengine.v1beta.SearchRequest.canonical_filter] + // * [SearchRequest.query_expansion_spec][google.cloud.discoveryengine.v1beta.SearchRequest.query_expansion_spec] + // * [SearchRequest.spell_correction_spec][google.cloud.discoveryengine.v1beta.SearchRequest.spell_correction_spec] + // * [SearchRequest.content_search_spec][google.cloud.discoveryengine.v1beta.SearchRequest.content_search_spec] + // * [SearchRequest.user_pseudo_id][google.cloud.discoveryengine.v1beta.SearchRequest.user_pseudo_id] + SearchRequest search_request = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Required. The specification of the query set. + QuerySetSpec query_set_spec = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Describes the state of an evaluation. + enum State { + // The evaluation is unspecified. + STATE_UNSPECIFIED = 0; + + // The service is preparing to run the evaluation. + PENDING = 1; + + // The evaluation is in progress. + RUNNING = 2; + + // The evaluation completed successfully. + SUCCEEDED = 3; + + // The evaluation failed. + FAILED = 4; + } + + // Identifier. The full resource name of the + // [Evaluation][google.cloud.discoveryengine.v1beta.Evaluation], in the format + // of `projects/{project}/locations/{location}/evaluations/{evaluation}`. + // + // This field must be a UTF-8 encoded string with a length limit of 1024 + // characters. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. The specification of the evaluation. + EvaluationSpec evaluation_spec = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The metrics produced by the evaluation, averaged across all + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery]s in the + // [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet]. + // + // Only populated when the evaluation's state is SUCCEEDED. + QualityMetrics quality_metrics = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The state of the evaluation. + State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The error that occurred during evaluation. Only populated when + // the evaluation's state is FAILED. + google.rpc.Status error = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp the + // [Evaluation][google.cloud.discoveryengine.v1beta.Evaluation] was created + // at. + google.protobuf.Timestamp create_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp the + // [Evaluation][google.cloud.discoveryengine.v1beta.Evaluation] was completed + // at. + google.protobuf.Timestamp end_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A sample of errors encountered while processing the request. + repeated google.rpc.Status error_samples = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Describes the metrics produced by the evaluation. +message QualityMetrics { + // Stores the metric values at specific top-k levels. + message TopkMetrics { + // The top-1 value. + double top_1 = 1; + + // The top-3 value. + double top_3 = 2; + + // The top-5 value. + double top_5 = 3; + + // The top-10 value. + double top_10 = 4; + } + + // Recall per document, at various top-k cutoff levels. + // + // Recall is the fraction of relevant documents retrieved out of all + // relevant documents. + // + // Example (top-5): + // * For a single + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery], If 3 out + // of 5 relevant documents are retrieved in the top-5, recall@5 = 3/5 = 0.6 + TopkMetrics doc_recall = 1; + + // Precision per document, at various top-k cutoff levels. + // + // Precision is the fraction of retrieved documents that are relevant. + // + // Example (top-5): + // * For a single + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery], If 4 out + // of 5 retrieved documents in the top-5 are relevant, precision@5 = 4/5 = + // 0.8 + TopkMetrics doc_precision = 2; + + // Normalized discounted cumulative gain (NDCG) per document, at various top-k + // cutoff levels. + // + // NDCG measures the ranking quality, giving higher relevance to top + // results. + // + // Example (top-3): + // Suppose [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery] + // with three retrieved documents (D1, D2, D3) and binary relevance + // judgements (1 for relevant, 0 for not relevant): + // + // Retrieved: [D3 (0), D1 (1), D2 (1)] + // Ideal: [D1 (1), D2 (1), D3 (0)] + // + // Calculate NDCG@3 for each + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery]: + // * DCG@3: 0/log2(1+1) + 1/log2(2+1) + 1/log2(3+1) = 1.13 + // * Ideal DCG@3: 1/log2(1+1) + 1/log2(2+1) + 0/log2(3+1) = 1.63 + // * NDCG@3: 1.13/1.63 = 0.693 + TopkMetrics doc_ndcg = 3; + + // Recall per page, at various top-k cutoff levels. + // + // Recall is the fraction of relevant pages retrieved out of all relevant + // pages. + // + // Example (top-5): + // * For a single + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery], if 3 out + // of 5 relevant pages are retrieved in the top-5, recall@5 = 3/5 = 0.6 + TopkMetrics page_recall = 4; + + // Normalized discounted cumulative gain (NDCG) per page, at various top-k + // cutoff levels. + // + // NDCG measures the ranking quality, giving higher relevance to top + // results. + // + // Example (top-3): + // Suppose [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery] + // with three retrieved pages (P1, P2, P3) and binary relevance judgements (1 + // for relevant, 0 for not relevant): + // + // Retrieved: [P3 (0), P1 (1), P2 (1)] + // Ideal: [P1 (1), P2 (1), P3 (0)] + // + // Calculate NDCG@3 for + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery]: + // * DCG@3: 0/log2(1+1) + 1/log2(2+1) + 1/log2(3+1) = 1.13 + // * Ideal DCG@3: 1/log2(1+1) + 1/log2(2+1) + 0/log2(3+1) = 1.63 + // * NDCG@3: 1.13/1.63 = 0.693 + TopkMetrics page_ndcg = 5; +} diff --git a/google/cloud/discoveryengine/v1beta/evaluation_service.proto b/google/cloud/discoveryengine/v1beta/evaluation_service.proto new file mode 100644 index 000000000..0a7a5dec8 --- /dev/null +++ b/google/cloud/discoveryengine/v1beta/evaluation_service.proto @@ -0,0 +1,252 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY 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/evaluation.proto"; +import "google/cloud/discoveryengine/v1beta/sample_query.proto"; +import "google/longrunning/operations.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "EvaluationServiceProto"; +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 managing +// [Evaluation][google.cloud.discoveryengine.v1beta.Evaluation]s, +service EvaluationService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Gets a [Evaluation][google.cloud.discoveryengine.v1beta.Evaluation]. + rpc GetEvaluation(GetEvaluationRequest) returns (Evaluation) { + option (google.api.http) = { + get: "/v1beta/{name=projects/*/locations/*/evaluations/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Gets a list of + // [Evaluation][google.cloud.discoveryengine.v1beta.Evaluation]s. + rpc ListEvaluations(ListEvaluationsRequest) + returns (ListEvaluationsResponse) { + option (google.api.http) = { + get: "/v1beta/{parent=projects/*/locations/*}/evaluations" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates a [Evaluation][google.cloud.discoveryengine.v1beta.Evaluation]. + // + // Upon creation, the evaluation will be automatically triggered and begin + // execution. + rpc CreateEvaluation(CreateEvaluationRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta/{parent=projects/*/locations/*}/evaluations" + body: "evaluation" + }; + option (google.api.method_signature) = "parent,evaluation"; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.discoveryengine.v1beta.Evaluation" + metadata_type: "google.cloud.discoveryengine.v1beta.CreateEvaluationMetadata" + }; + } + + // Gets a list of results for a given a + // [Evaluation][google.cloud.discoveryengine.v1beta.Evaluation]. + rpc ListEvaluationResults(ListEvaluationResultsRequest) + returns (ListEvaluationResultsResponse) { + option (google.api.http) = { + get: "/v1beta/{evaluation=projects/*/locations/*/evaluations/*}:listResults" + }; + option (google.api.method_signature) = "evaluation"; + } +} + +// Request message for +// [EvaluationService.GetEvaluation][google.cloud.discoveryengine.v1beta.EvaluationService.GetEvaluation] +// method. +message GetEvaluationRequest { + // Required. Full resource name of + // [Evaluation][google.cloud.discoveryengine.v1beta.Evaluation], such as + // `projects/{project}/locations/{location}/evaluations/{evaluation}`. + // + // If the caller does not have permission to access the + // [Evaluation][google.cloud.discoveryengine.v1beta.Evaluation], regardless of + // whether or not it exists, a PERMISSION_DENIED error is returned. + // + // If the requested + // [Evaluation][google.cloud.discoveryengine.v1beta.Evaluation] 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/Evaluation" + } + ]; +} + +// Request message for +// [EvaluationService.ListEvaluations][google.cloud.discoveryengine.v1beta.EvaluationService.ListEvaluations] +// method. +message ListEvaluationsRequest { + // Required. The parent location resource name, such as + // `projects/{project}/locations/{location}`. + // + // If the caller does not have permission to list + // [Evaluation][google.cloud.discoveryengine.v1beta.Evaluation]s under this + // location, regardless of whether or not this location exists, a + // `PERMISSION_DENIED` error is returned. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Location" + } + ]; + + // Maximum number of + // [Evaluation][google.cloud.discoveryengine.v1beta.Evaluation]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 + // [ListEvaluationsResponse.next_page_token][google.cloud.discoveryengine.v1beta.ListEvaluationsResponse.next_page_token], + // received from a previous + // [EvaluationService.ListEvaluations][google.cloud.discoveryengine.v1beta.EvaluationService.ListEvaluations] + // call. Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // [EvaluationService.ListEvaluations][google.cloud.discoveryengine.v1beta.EvaluationService.ListEvaluations] + // must match the call that provided the page token. Otherwise, an + // `INVALID_ARGUMENT` error is returned. + string page_token = 3; +} + +// Response message for +// [EvaluationService.ListEvaluations][google.cloud.discoveryengine.v1beta.EvaluationService.ListEvaluations] +// method. +message ListEvaluationsResponse { + // The [Evaluation][google.cloud.discoveryengine.v1beta.Evaluation]s. + repeated Evaluation evaluations = 1; + + // A token that can be sent as + // [ListEvaluationsRequest.page_token][google.cloud.discoveryengine.v1beta.ListEvaluationsRequest.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 +// [EvaluationService.CreateEvaluation][google.cloud.discoveryengine.v1beta.EvaluationService.CreateEvaluation] +// method. +message CreateEvaluationRequest { + // Required. The parent resource name, such as + // `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Location" + } + ]; + + // Required. The [Evaluation][google.cloud.discoveryengine.v1beta.Evaluation] + // to create. + Evaluation evaluation = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Metadata for +// [EvaluationService.CreateEvaluation][google.cloud.discoveryengine.v1beta.EvaluationService.CreateEvaluation] +// method. +message CreateEvaluationMetadata {} + +// Request message for +// [EvaluationService.ListEvaluationResults][google.cloud.discoveryengine.v1beta.EvaluationService.ListEvaluationResults] +// method. +message ListEvaluationResultsRequest { + // Required. The evaluation resource name, such as + // `projects/{project}/locations/{location}/evaluations/{evaluation}`. + // + // If the caller does not have permission to list [EvaluationResult][] + // under this evaluation, regardless of whether or not this evaluation + // set exists, a `PERMISSION_DENIED` error is returned. + string evaluation = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Evaluation" + } + ]; + + // Maximum number of [EvaluationResult][] 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 + // [ListEvaluationResultsResponse.next_page_token][google.cloud.discoveryengine.v1beta.ListEvaluationResultsResponse.next_page_token], + // received from a previous + // [EvaluationService.ListEvaluationResults][google.cloud.discoveryengine.v1beta.EvaluationService.ListEvaluationResults] + // call. Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // [EvaluationService.ListEvaluationResults][google.cloud.discoveryengine.v1beta.EvaluationService.ListEvaluationResults] + // must match the call that provided the page token. Otherwise, an + // `INVALID_ARGUMENT` error is returned. + string page_token = 3; +} + +// Response message for +// [EvaluationService.ListEvaluationResults][google.cloud.discoveryengine.v1beta.EvaluationService.ListEvaluationResults] +// method. +message ListEvaluationResultsResponse { + // Represents the results of an evaluation for a single + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery]. + message EvaluationResult { + // Output only. The + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery] that was + // evaluated. + SampleQuery sample_query = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The metrics produced by the evaluation, for a given + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery]. + QualityMetrics quality_metrics = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The + // [EvaluationResult][google.cloud.discoveryengine.v1beta.ListEvaluationResultsResponse.EvaluationResult]s. + repeated EvaluationResult evaluation_results = 1; + + // A token that can be sent as + // [ListEvaluationResultsRequest.page_token][google.cloud.discoveryengine.v1beta.ListEvaluationResultsRequest.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/discoveryengine/v1beta/grounded_generation_service.proto b/google/cloud/discoveryengine/v1beta/grounded_generation_service.proto index 5ba783dc5..0a54344e0 100644 --- a/google/cloud/discoveryengine/v1beta/grounded_generation_service.proto +++ b/google/cloud/discoveryengine/v1beta/grounded_generation_service.proto @@ -129,8 +129,9 @@ message CheckGroundingResponse { // field will be set to false. In that case, no grounding check was done for // the claim and therefore // [citation_indices][google.cloud.discoveryengine.v1beta.CheckGroundingResponse.Claim.citation_indices], + // [anti_citation_indices][google.cloud.discoveryengine.v1beta.CheckGroundingResponse.Claim.anti_citation_indices], // and - // [anti_citation_indices][google.cloud.discoveryengine.v1beta.CheckGroundingResponse.Claim.anti_citation_indices] + // [score][google.cloud.discoveryengine.v1beta.CheckGroundingResponse.Claim.score] // should not be returned. optional bool grounding_check_required = 6; } diff --git a/google/cloud/discoveryengine/v1beta/import_config.proto b/google/cloud/discoveryengine/v1beta/import_config.proto index 22c064010..d1fcac879 100644 --- a/google/cloud/discoveryengine/v1beta/import_config.proto +++ b/google/cloud/discoveryengine/v1beta/import_config.proto @@ -20,6 +20,7 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/discoveryengine/v1beta/completion.proto"; import "google/cloud/discoveryengine/v1beta/document.proto"; +import "google/cloud/discoveryengine/v1beta/sample_query.proto"; import "google/cloud/discoveryengine/v1beta/user_event.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; @@ -83,7 +84,7 @@ message BigQuerySource { google.type.Date partition_date = 5; } - // The project ID (can be project # or ID) that the BigQuery source is in with + // The project ID or the project number that contains the BigQuery source. Has // a length limit of 128 characters. If not specified, inherits the project // ID from the parent request. string project_id = 1; @@ -125,7 +126,7 @@ message BigQuerySource { // The Spanner source for importing data message SpannerSource { - // The project ID that the Spanner source is in with a length limit of 128 + // The project ID that contains the Spanner source. Has a length limit of 128 // characters. If not specified, inherits the project ID from the parent // request. string project_id = 1; @@ -259,7 +260,7 @@ message BigtableOptions { // The Cloud Bigtable source for importing data. message BigtableSource { - // The project ID that the Bigtable source is in with a length limit of 128 + // The project ID that contains the Bigtable source. Has a length limit of 128 // characters. If not specified, inherits the project ID from the parent // request. string project_id = 1; @@ -291,12 +292,18 @@ message FhirStoreSource { // limit of 2,000 characters. Can be specified if one wants to have the // FhirStore export to a specific Cloud Storage directory. string gcs_staging_dir = 2; + + // The FHIR resource types to import. The resource types should be a subset of + // all [supported FHIR resource + // types](https://cloud.google.com/generative-ai-app-builder/docs/fhir-schema-reference#resource-level-specification). + // Default to all supported FHIR resource types if empty. + repeated string resource_types = 3; } // Cloud SQL source import data from. message CloudSqlSource { - // The project ID that the Cloud SQL source is in with a length limit of 128 - // characters. If not specified, inherits the project ID from the parent + // The project ID that contains the Cloud SQL source. Has a length limit of + // 128 characters. If not specified, inherits the project ID from the parent // request. string project_id = 1; @@ -326,6 +333,38 @@ message CloudSqlSource { bool offload = 6; } +// AlloyDB source import data from. +message AlloyDbSource { + // The project ID that contains the AlloyDB source. + // Has a length limit of 128 characters. If not specified, inherits the + // project ID from the parent request. + string project_id = 1; + + // Required. The AlloyDB location to copy the data from with a length limit of + // 256 characters. + string location_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The AlloyDB cluster to copy the data from with a length limit of + // 256 characters. + string cluster_id = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The AlloyDB database to copy the data from with a length limit of + // 256 characters. + string database_id = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. The AlloyDB table to copy the data from with a length limit of + // 256 characters. + string table_id = 5 [(google.api.field_behavior) = REQUIRED]; + + // Intermediate Cloud Storage directory used for the import with a length + // limit of 2,000 characters. Can be specified if one wants to have the + // AlloyDB export to a specific Cloud Storage directory. + // + // Ensure that the AlloyDB service account has the necessary Cloud + // Storage Admin permissions to access the specified Cloud Storage directory. + string gcs_staging_dir = 6; +} + // Firestore source import data from. message FirestoreSource { // The project ID that the Cloud SQL source is in with a length limit of 128 @@ -499,6 +538,9 @@ message ImportDocumentsRequest { // Firestore input source. FirestoreSource firestore_source = 13; + // AlloyDB input source. + AlloyDbSource alloy_db_source = 14; + // Cloud Bigtable input source. BigtableSource bigtable_source = 15; } @@ -663,3 +705,158 @@ message ImportSuggestionDenyListEntriesMetadata { // finish time. google.protobuf.Timestamp update_time = 2; } + +// Request message for +// [CompletionService.ImportCompletionSuggestions][google.cloud.discoveryengine.v1beta.CompletionService.ImportCompletionSuggestions] +// method. +message ImportCompletionSuggestionsRequest { + // The inline source for CompletionSuggestions. + message InlineSource { + // Required. A list of all denylist entries to import. Max of 1000 items. + repeated CompletionSuggestion suggestions = 1 + [(google.api.field_behavior) = REQUIRED]; + } + + // The source of the autocomplete suggestions. + oneof source { + // The Inline source for suggestion entries. + InlineSource inline_source = 2; + + // Cloud Storage location for the input content. + GcsSource gcs_source = 3; + + // BigQuery input source. + BigQuerySource bigquery_source = 4; + } + + // Required. The parent data store resource name for which to import customer + // autocomplete suggestions. + // + // Follows pattern `projects/*/locations/*/collections/*/dataStores/*` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; + + // The desired location of errors incurred during the Import. + ImportErrorConfig error_config = 5; +} + +// Response of the +// [CompletionService.ImportCompletionSuggestions][google.cloud.discoveryengine.v1beta.CompletionService.ImportCompletionSuggestions] +// method. If the long running operation is done, this message is returned by +// the google.longrunning.Operations.response field if the operation is +// successful. +message ImportCompletionSuggestionsResponse { + // A sample of errors encountered while processing the request. + repeated google.rpc.Status error_samples = 1; + + // The desired location of errors incurred during the Import. + ImportErrorConfig error_config = 2; +} + +// Metadata related to the progress of the ImportCompletionSuggestions +// operation. This will be returned by the google.longrunning.Operation.metadata +// field. +message ImportCompletionSuggestionsMetadata { + // Operation create time. + google.protobuf.Timestamp create_time = 1; + + // Operation last update time. If the operation is done, this is also the + // finish time. + google.protobuf.Timestamp update_time = 2; + + // Count of + // [CompletionSuggestion][google.cloud.discoveryengine.v1beta.CompletionSuggestion]s + // successfully imported. + int64 success_count = 3; + + // Count of + // [CompletionSuggestion][google.cloud.discoveryengine.v1beta.CompletionSuggestion]s + // that failed to be imported. + int64 failure_count = 4; +} + +// Request message for +// [SampleQueryService.ImportSampleQueries][google.cloud.discoveryengine.v1beta.SampleQueryService.ImportSampleQueries] +// method. +message ImportSampleQueriesRequest { + // The inline source for + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery]s. + message InlineSource { + // Required. A list of + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery]s to + // import. Max of 1000 items. + repeated SampleQuery sample_queries = 1 + [(google.api.field_behavior) = REQUIRED]; + } + + // The source of the sample queries. + oneof source { + // The Inline source for sample query entries. + InlineSource inline_source = 2; + + // Cloud Storage location for the input content. + GcsSource gcs_source = 3; + + // BigQuery input source. + BigQuerySource bigquery_source = 4; + } + + // Required. The parent sample query set resource name, such as + // `projects/{project}/locations/{location}/sampleQuerySets/{sampleQuerySet}`. + // + // If the caller does not have permission to list + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery]s under this + // sample query set, regardless of whether or not this sample query set + // exists, a `PERMISSION_DENIED` error is returned. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/SampleQuerySet" + } + ]; + + // The desired location of errors incurred during the Import. + ImportErrorConfig error_config = 5; +} + +// Response of the +// [SampleQueryService.ImportSampleQueries][google.cloud.discoveryengine.v1beta.SampleQueryService.ImportSampleQueries] +// method. If the long running operation is done, this message is returned by +// the google.longrunning.Operations.response field if the operation is +// successful. +message ImportSampleQueriesResponse { + // A sample of errors encountered while processing the request. + repeated google.rpc.Status error_samples = 1; + + // The desired location of errors incurred during the Import. + ImportErrorConfig error_config = 2; +} + +// Metadata related to the progress of the ImportSampleQueries +// operation. This will be returned by the google.longrunning.Operation.metadata +// field. +message ImportSampleQueriesMetadata { + // ImportSampleQueries operation create time. + google.protobuf.Timestamp create_time = 1; + + // ImportSampleQueries operation last update time. If the operation is done, + // this is also the finish time. + google.protobuf.Timestamp update_time = 2; + + // Count of [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery]s + // successfully imported. + int64 success_count = 3; + + // Count of [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery]s + // that failed to be imported. + int64 failure_count = 4; + + // Total count of + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery]s that were + // processed. + int64 total_count = 5; +} diff --git a/google/cloud/discoveryengine/v1beta/purge_config.proto b/google/cloud/discoveryengine/v1beta/purge_config.proto index 7c7550bf4..36baf8e42 100644 --- a/google/cloud/discoveryengine/v1beta/purge_config.proto +++ b/google/cloud/discoveryengine/v1beta/purge_config.proto @@ -18,6 +18,7 @@ package google.cloud.discoveryengine.v1beta; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; +import "google/cloud/discoveryengine/v1beta/import_config.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; @@ -30,10 +31,123 @@ option objc_class_prefix = "DISCOVERYENGINE"; option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1beta"; option ruby_package = "Google::Cloud::DiscoveryEngine::V1beta"; +// 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/collections/{$collectionId}/dataStores/${dataStoreId}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; + + // Required. The filter string to specify the events to be deleted with a + // length limit of 5,000 characters. The eligible fields for filtering are: + // + // * `eventType`: Double quoted + // [UserEvent.event_type][google.cloud.discoveryengine.v1beta.UserEvent.event_type] + // string. + // * `eventTime`: in ISO 8601 "zulu" format. + // * `userPseudoId`: Double quoted string. Specifying this will delete all + // events associated with a visitor. + // * `userId`: Double quoted string. Specifying this will delete all events + // associated with a user. + // + // Examples: + // + // * Deleting all events in a time range: + // `eventTime > "2012-04-23T18:25:43.511Z" + // eventTime < "2012-04-23T18:30:43.511Z"` + // * Deleting specific eventType: + // `eventType = "search"` + // * Deleting all events for a specific visitor: + // `userPseudoId = "visitor1024"` + // * Deleting all events inside a DataStore: + // `*` + // + // The filtering fields are assumed to have an implicit AND. + string filter = 2 [(google.api.field_behavior) = REQUIRED]; + + // The `force` field is currently not supported. Purge user event requests + // will permanently delete all purgeable events. Once the development is + // complete: + // If `force` is set to false, the method will return the expected + // purge count without deleting any user events. This field will default to + // false if not included in the request. + bool force = 3; +} + +// Response of the PurgeUserEventsRequest. If the long running operation is +// successfully done, then this message is returned by the +// google.longrunning.Operations.response field. +message PurgeUserEventsResponse { + // The total count of events purged as a result of the operation. + int64 purge_count = 1; +} + +// Metadata related to the progress of the PurgeUserEvents operation. +// This will be returned by the google.longrunning.Operation.metadata field. +message PurgeUserEventsMetadata { + // 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; +} + +// Configuration of destination for Purge related errors. +message PurgeErrorConfig { + // Required. Errors destination. + oneof destination { + // Cloud Storage prefix for purge errors. This must be an empty, + // existing Cloud Storage directory. Purge errors are written to + // sharded files in this directory, one per line, as a JSON-encoded + // `google.rpc.Status` message. + string gcs_prefix = 1; + } +} + // Request message for // [DocumentService.PurgeDocuments][google.cloud.discoveryengine.v1beta.DocumentService.PurgeDocuments] // method. message PurgeDocumentsRequest { + // The inline source for the input config for + // [DocumentService.PurgeDocuments][google.cloud.discoveryengine.v1beta.DocumentService.PurgeDocuments] + // method. + message InlineSource { + // Required. A list of full resource name of documents to purge. In the + // format + // `projects/*/locations/*/collections/*/dataStores/*/branches/*/documents/*`. + // Recommended max of 100 items. + repeated string documents = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Document" + } + ]; + } + + // The desired input source for the purging documents based on document IDs. + oneof source { + // Cloud Storage location for the input content. + // Supported `data_schema`: + // * `document_id`: One valid + // [Document.id][google.cloud.discoveryengine.v1beta.Document.id] per line. + GcsSource gcs_source = 5; + + // Inline source for the input content for purge. + InlineSource inline_source = 6; + } + // Required. The parent resource name, such as // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}`. string parent = 1 [ @@ -48,6 +162,9 @@ message PurgeDocumentsRequest { // `*` (all items). string filter = 2 [(google.api.field_behavior) = REQUIRED]; + // The desired location of errors incurred during the purge. + PurgeErrorConfig error_config = 7; + // Actually performs the purge. If `force` is set to false, return the // expected purge count without deleting any documents. bool force = 3; @@ -125,3 +242,41 @@ message PurgeSuggestionDenyListEntriesMetadata { // finish time. google.protobuf.Timestamp update_time = 2; } + +// Request message for +// [CompletionService.PurgeCompletionSuggestions][google.cloud.discoveryengine.v1beta.CompletionService.PurgeCompletionSuggestions] +// method. +message PurgeCompletionSuggestionsRequest { + // Required. The parent data store resource name for which to purge completion + // suggestions. Follows pattern + // projects/*/locations/*/collections/*/dataStores/*. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/DataStore" + } + ]; +} + +// Response message for +// [CompletionService.PurgeCompletionSuggestions][google.cloud.discoveryengine.v1beta.CompletionService.PurgeCompletionSuggestions] +// method. +message PurgeCompletionSuggestionsResponse { + // Whether the completion suggestions were successfully purged. + bool purge_succeeded = 1; + + // A sample of errors encountered while processing the request. + repeated google.rpc.Status error_samples = 2; +} + +// Metadata related to the progress of the PurgeCompletionSuggestions +// operation. This is returned by the google.longrunning.Operation.metadata +// field. +message PurgeCompletionSuggestionsMetadata { + // Operation create time. + google.protobuf.Timestamp create_time = 1; + + // Operation last update time. If the operation is done, this is also the + // finish time. + google.protobuf.Timestamp update_time = 2; +} diff --git a/google/cloud/discoveryengine/v1beta/sample_query.proto b/google/cloud/discoveryengine/v1beta/sample_query.proto new file mode 100644 index 000000000..5c2d70b5e --- /dev/null +++ b/google/cloud/discoveryengine/v1beta/sample_query.proto @@ -0,0 +1,86 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1beta; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "SampleQueryProto"; +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"; + +// Sample Query captures metadata to be used for evaluation. +message SampleQuery { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/SampleQuery" + pattern: "projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}/sampleQueries/{sample_query}" + }; + + // Query Entry captures metadata to be used for search evaluation. + message QueryEntry { + // Defines the parameters of the query's expected outcome. + message Target { + // Expected uri of the target. + // + // This field must be a UTF-8 encoded string with a length limit of 2048 + // characters. + // + // Example of valid uris: `https://example.com/abc`, + // `gcs://example/example.pdf`. + string uri = 1; + + // Expected page numbers of the target. + // + // Each page number must be non negative. + repeated int32 page_numbers = 2; + + // Relevance score of the target. + optional double score = 3; + } + + // Required. The query. + string query = 1 [(google.api.field_behavior) = REQUIRED]; + + // List of targets for the query. + repeated Target targets = 3; + } + + // The content of the sample query. + oneof content { + // The query entry. + QueryEntry query_entry = 2; + } + + // Identifier. The full resource name of the sample query, in the format of + // `projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}/sampleQueries/{sample_query}`. + // + // This field must be a UTF-8 encoded string with a length limit of 1024 + // characters. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. Timestamp the + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery] was created + // at. + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/discoveryengine/v1beta/sample_query_service.proto b/google/cloud/discoveryengine/v1beta/sample_query_service.proto new file mode 100644 index 000000000..d7fc538b1 --- /dev/null +++ b/google/cloud/discoveryengine/v1beta/sample_query_service.proto @@ -0,0 +1,264 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.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/import_config.proto"; +import "google/cloud/discoveryengine/v1beta/sample_query.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "SampleQueryServiceProto"; +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 managing +// [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery]s, +service SampleQueryService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Gets a [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery]. + rpc GetSampleQuery(GetSampleQueryRequest) returns (SampleQuery) { + option (google.api.http) = { + get: "/v1beta/{name=projects/*/locations/*/sampleQuerySets/*/sampleQueries/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Gets a list of + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery]s. + rpc ListSampleQueries(ListSampleQueriesRequest) + returns (ListSampleQueriesResponse) { + option (google.api.http) = { + get: "/v1beta/{parent=projects/*/locations/*/sampleQuerySets/*}/sampleQueries" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates a [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery] + rpc CreateSampleQuery(CreateSampleQueryRequest) returns (SampleQuery) { + option (google.api.http) = { + post: "/v1beta/{parent=projects/*/locations/*/sampleQuerySets/*}/sampleQueries" + body: "sample_query" + }; + option (google.api.method_signature) = + "parent,sample_query,sample_query_id"; + } + + // Updates a [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery]. + rpc UpdateSampleQuery(UpdateSampleQueryRequest) returns (SampleQuery) { + option (google.api.http) = { + patch: "/v1beta/{sample_query.name=projects/*/locations/*/sampleQuerySets/*/sampleQueries/*}" + body: "sample_query" + }; + option (google.api.method_signature) = "sample_query,update_mask"; + } + + // Deletes a [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery]. + rpc DeleteSampleQuery(DeleteSampleQueryRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1beta/{name=projects/*/locations/*/sampleQuerySets/*/sampleQueries/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Bulk import of multiple + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery]s. Sample + // queries that already exist may be deleted. + // + // Note: It is possible for a subset of the + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery]s to be + // successfully imported. + rpc ImportSampleQueries(ImportSampleQueriesRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta/{parent=projects/*/locations/*/sampleQuerySets/*}/sampleQueries:import" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.discoveryengine.v1beta.ImportSampleQueriesResponse" + metadata_type: "google.cloud.discoveryengine.v1beta.ImportSampleQueriesMetadata" + }; + } +} + +// Request message for +// [SampleQueryService.GetSampleQuery][google.cloud.discoveryengine.v1beta.SampleQueryService.GetSampleQuery] +// method. +message GetSampleQueryRequest { + // Required. Full resource name of + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery], such as + // `projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}/sampleQueries/{sample_query}`. + // + // If the caller does not have permission to access the + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery], regardless + // of whether or not it exists, a PERMISSION_DENIED error is returned. + // + // If the requested + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery] 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/SampleQuery" + } + ]; +} + +// Request message for +// [SampleQueryService.ListSampleQueries][google.cloud.discoveryengine.v1beta.SampleQueryService.ListSampleQueries] +// method. +message ListSampleQueriesRequest { + // Required. The parent sample query set resource name, such as + // `projects/{project}/locations/{location}/sampleQuerySets/{sampleQuerySet}`. + // + // If the caller does not have permission to list + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery]s under this + // sample query set, regardless of whether or not this sample query set + // exists, a `PERMISSION_DENIED` error is returned. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/SampleQuerySet" + } + ]; + + // Maximum number of + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery]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 + // [ListSampleQueriesResponse.next_page_token][google.cloud.discoveryengine.v1beta.ListSampleQueriesResponse.next_page_token], + // received from a previous + // [SampleQueryService.ListSampleQueries][google.cloud.discoveryengine.v1beta.SampleQueryService.ListSampleQueries] + // call. Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // [SampleQueryService.ListSampleQueries][google.cloud.discoveryengine.v1beta.SampleQueryService.ListSampleQueries] + // must match the call that provided the page token. Otherwise, an + // `INVALID_ARGUMENT` error is returned. + string page_token = 3; +} + +// Response message for +// [SampleQueryService.ListSampleQueries][google.cloud.discoveryengine.v1beta.SampleQueryService.ListSampleQueries] +// method. +message ListSampleQueriesResponse { + // The [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery]s. + repeated SampleQuery sample_queries = 1; + + // A token that can be sent as + // [ListSampleQueriesRequest.page_token][google.cloud.discoveryengine.v1beta.ListSampleQueriesRequest.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 +// [SampleQueryService.CreateSampleQuery][google.cloud.discoveryengine.v1beta.SampleQueryService.CreateSampleQuery] +// method. +message CreateSampleQueryRequest { + // Required. The parent resource name, such as + // `projects/{project}/locations/{location}/sampleQuerySets/{sampleQuerySet}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/SampleQuerySet" + } + ]; + + // Required. The + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery] to create. + SampleQuery sample_query = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID to use for the + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery], which will + // become the final component of the + // [SampleQuery.name][google.cloud.discoveryengine.v1beta.SampleQuery.name]. + // + // If the caller does not have permission to create the + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery], regardless + // of whether or not it exists, a `PERMISSION_DENIED` error is returned. + // + // This field must be unique among all + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery]s with the + // same + // [parent][google.cloud.discoveryengine.v1beta.CreateSampleQueryRequest.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 sample_query_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for +// [SampleQueryService.UpdateSampleQuery][google.cloud.discoveryengine.v1beta.SampleQueryService.UpdateSampleQuery] +// method. +message UpdateSampleQueryRequest { + // Required. The simple query to update. + // + // If the caller does not have permission to update the + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery], regardless + // of whether or not it exists, a `PERMISSION_DENIED` error is returned. + // + // If the [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery] to + // update does not exist a `NOT_FOUND` error is returned. + SampleQuery sample_query = 1 [(google.api.field_behavior) = REQUIRED]; + + // Indicates which fields in the provided imported 'simple query' to update. + // If not set, will by default update all fields. + google.protobuf.FieldMask update_mask = 2; +} + +// Request message for +// [SampleQueryService.DeleteSampleQuery][google.cloud.discoveryengine.v1beta.SampleQueryService.DeleteSampleQuery] +// method. +message DeleteSampleQueryRequest { + // Required. Full resource name of + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery], such as + // `projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}/sampleQueries/{sample_query}`. + // + // If the caller does not have permission to delete the + // [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery], regardless + // of whether or not it exists, a `PERMISSION_DENIED` error is returned. + // + // If the [SampleQuery][google.cloud.discoveryengine.v1beta.SampleQuery] 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/SampleQuery" + } + ]; +} diff --git a/google/cloud/discoveryengine/v1beta/sample_query_set.proto b/google/cloud/discoveryengine/v1beta/sample_query_set.proto new file mode 100644 index 000000000..d8562a1dc --- /dev/null +++ b/google/cloud/discoveryengine/v1beta/sample_query_set.proto @@ -0,0 +1,64 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.discoveryengine.v1beta; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "SampleQuerySetProto"; +option java_package = "com.google.cloud.discoveryengine.v1beta"; +option objc_class_prefix = "DISCOVERYENGINE"; +option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1beta"; +option ruby_package = "Google::Cloud::DiscoveryEngine::V1beta"; + +// A SampleQuerySet is the parent resource of SampleQuery, and contains the +// configurations shared by all SampleQuery under it. +message SampleQuerySet { + option (google.api.resource) = { + type: "discoveryengine.googleapis.com/SampleQuerySet" + pattern: "projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}" + }; + + // Identifier. The full resource name of the + // [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet], in + // the format of + // `projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}`. + // + // This field must be a UTF-8 encoded string with a length limit of 1024 + // characters. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. The sample query set display name. + // + // This field must be a UTF-8 encoded string with a length limit of 128 + // characters. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Timestamp the + // [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet] was + // created at. + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The description of the + // [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet]. + string description = 4; +} diff --git a/google/cloud/discoveryengine/v1beta/sample_query_set_service.proto b/google/cloud/discoveryengine/v1beta/sample_query_set_service.proto new file mode 100644 index 000000000..a2c0ceebe --- /dev/null +++ b/google/cloud/discoveryengine/v1beta/sample_query_set_service.proto @@ -0,0 +1,256 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY 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/sample_query_set.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; +option go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; +option java_multiple_files = true; +option java_outer_classname = "SampleQuerySetServiceProto"; +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 managing +// [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet]s, +service SampleQuerySetService { + option (google.api.default_host) = "discoveryengine.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Gets a + // [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet]. + rpc GetSampleQuerySet(GetSampleQuerySetRequest) returns (SampleQuerySet) { + option (google.api.http) = { + get: "/v1beta/{name=projects/*/locations/*/sampleQuerySets/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Gets a list of + // [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet]s. + rpc ListSampleQuerySets(ListSampleQuerySetsRequest) + returns (ListSampleQuerySetsResponse) { + option (google.api.http) = { + get: "/v1beta/{parent=projects/*/locations/*}/sampleQuerySets" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates a + // [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet] + rpc CreateSampleQuerySet(CreateSampleQuerySetRequest) + returns (SampleQuerySet) { + option (google.api.http) = { + post: "/v1beta/{parent=projects/*/locations/*}/sampleQuerySets" + body: "sample_query_set" + }; + option (google.api.method_signature) = + "parent,sample_query_set,sample_query_set_id"; + } + + // Updates a + // [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet]. + rpc UpdateSampleQuerySet(UpdateSampleQuerySetRequest) + returns (SampleQuerySet) { + option (google.api.http) = { + patch: "/v1beta/{sample_query_set.name=projects/*/locations/*/sampleQuerySets/*}" + body: "sample_query_set" + }; + option (google.api.method_signature) = "sample_query_set,update_mask"; + } + + // Deletes a + // [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet]. + rpc DeleteSampleQuerySet(DeleteSampleQuerySetRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1beta/{name=projects/*/locations/*/sampleQuerySets/*}" + }; + option (google.api.method_signature) = "name"; + } +} + +// Request message for +// [SampleQuerySetService.GetSampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySetService.GetSampleQuerySet] +// method. +message GetSampleQuerySetRequest { + // Required. Full resource name of + // [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet], such + // as + // `projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}`. + // + // If the caller does not have permission to access the + // [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet], + // regardless of whether or not it exists, a PERMISSION_DENIED error is + // returned. + // + // If the requested + // [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet] 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/SampleQuerySet" + } + ]; +} + +// Request message for +// [SampleQuerySetService.ListSampleQuerySets][google.cloud.discoveryengine.v1beta.SampleQuerySetService.ListSampleQuerySets] +// method. +message ListSampleQuerySetsRequest { + // Required. The parent location resource name, such as + // `projects/{project}/locations/{location}`. + // + // If the caller does not have permission to list + // [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet]s under + // this location, regardless of whether or not this location exists, a + // `PERMISSION_DENIED` error is returned. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Location" + } + ]; + + // Maximum number of + // [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet]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 + // [ListSampleQuerySetsResponse.next_page_token][google.cloud.discoveryengine.v1beta.ListSampleQuerySetsResponse.next_page_token], + // received from a previous + // [SampleQuerySetService.ListSampleQuerySets][google.cloud.discoveryengine.v1beta.SampleQuerySetService.ListSampleQuerySets] + // call. Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // [SampleQuerySetService.ListSampleQuerySets][google.cloud.discoveryengine.v1beta.SampleQuerySetService.ListSampleQuerySets] + // must match the call that provided the page token. Otherwise, an + // `INVALID_ARGUMENT` error is returned. + string page_token = 3; +} + +// Response message for +// [SampleQuerySetService.ListSampleQuerySets][google.cloud.discoveryengine.v1beta.SampleQuerySetService.ListSampleQuerySets] +// method. +message ListSampleQuerySetsResponse { + // The [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet]s. + repeated SampleQuerySet sample_query_sets = 1; + + // A token that can be sent as + // [ListSampleQuerySetsRequest.page_token][google.cloud.discoveryengine.v1beta.ListSampleQuerySetsRequest.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 +// [SampleQuerySetService.CreateSampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySetService.CreateSampleQuerySet] +// method. +message CreateSampleQuerySetRequest { + // Required. The parent resource name, such as + // `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Location" + } + ]; + + // Required. The + // [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet] to + // create. + SampleQuerySet sample_query_set = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID to use for the + // [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet], which + // will become the final component of the + // [SampleQuerySet.name][google.cloud.discoveryengine.v1beta.SampleQuerySet.name]. + // + // If the caller does not have permission to create the + // [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet], + // regardless of whether or not it exists, a `PERMISSION_DENIED` error is + // returned. + // + // This field must be unique among all + // [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet]s with + // the same + // [parent][google.cloud.discoveryengine.v1beta.CreateSampleQuerySetRequest.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 sample_query_set_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for +// [SampleQuerySetService.UpdateSampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySetService.UpdateSampleQuerySet] +// method. +message UpdateSampleQuerySetRequest { + // Required. The sample query set to update. + // + // If the caller does not have permission to update the + // [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet], + // regardless of whether or not it exists, a `PERMISSION_DENIED` error is + // returned. + // + // If the [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet] + // to update does not exist a `NOT_FOUND` error is returned. + SampleQuerySet sample_query_set = 1 [(google.api.field_behavior) = REQUIRED]; + + // Indicates which fields in the provided imported 'sample query set' to + // update. If not set, will by default update all fields. + google.protobuf.FieldMask update_mask = 2; +} + +// Request message for +// [SampleQuerySetService.DeleteSampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySetService.DeleteSampleQuerySet] +// method. +message DeleteSampleQuerySetRequest { + // Required. Full resource name of + // [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet], such + // as + // `projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}`. + // + // If the caller does not have permission to delete the + // [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet], + // regardless of whether or not it exists, a `PERMISSION_DENIED` error is + // returned. + // + // If the [SampleQuerySet][google.cloud.discoveryengine.v1beta.SampleQuerySet] + // 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/SampleQuerySet" + } + ]; +} diff --git a/google/cloud/discoveryengine/v1beta/search_service.proto b/google/cloud/discoveryengine/v1beta/search_service.proto index 8112eb803..7a59a9d98 100644 --- a/google/cloud/discoveryengine/v1beta/search_service.proto +++ b/google/cloud/discoveryengine/v1beta/search_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/discoveryengine/v1beta/chunk.proto"; import "google/cloud/discoveryengine/v1beta/common.proto"; import "google/cloud/discoveryengine/v1beta/document.proto"; import "google/protobuf/struct.proto"; @@ -70,8 +71,8 @@ message SearchRequest { } // A struct to define data stores to filter on in a search call and - // configurations for those data stores. A maximum of 1 DataStoreSpec per - // data_store is allowed. Otherwise, an `INVALID_ARGUMENT` error is returned. + // configurations for those data stores. Otherwise, an `INVALID_ARGUMENT` + // error is returned. message DataStoreSpec { // Required. Full resource name of // [DataStore][google.cloud.discoveryengine.v1beta.DataStore], such as @@ -150,6 +151,9 @@ message SearchRequest { // Maximum facet values that are returned for this facet. If // unspecified, defaults to 20. The maximum allowed value is 300. Values // above 300 are coerced to 300. + // For aggregation in healthcare search, when the [FacetKey.key] is + // "healthcare_aggregation_key", the limit will be overridden to + // 10,000 internally, regardless of the value set here. // // If this field is negative, an `INVALID_ARGUMENT` is returned. int32 limit = 2; @@ -445,8 +449,9 @@ message SearchRequest { // // At most 10 results for documents mode, or 50 for chunks mode, can be // used to generate a summary. The chunks mode is used when - // [SearchRequest.ContentSearchSpec.search_result_mode][] is set to - // [CHUNKS][SearchRequest.ContentSearchSpec.SearchResultMode.CHUNKS]. + // [SearchRequest.ContentSearchSpec.search_result_mode][google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.search_result_mode] + // is set to + // [CHUNKS][google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SearchResultMode.CHUNKS]. int32 summary_result_count = 1; // Specifies whether to include citations in the summary. The default @@ -493,6 +498,14 @@ message SearchRequest { // fallback messages instead. bool ignore_non_summary_seeking_query = 4; + // Specifies whether to filter out queries that have low relevance. The + // default value is `false`. + // + // If this field is set to `false`, all search results are used regardless + // of relevance to generate answers. If set to `true`, only queries with + // high relevance search results will generate answers. + bool ignore_low_relevant_content = 9; + // If specified, the spec will be used to modify the prompt provided to // the LLM. ModelPromptSpec model_prompt_spec = 5; @@ -569,6 +582,37 @@ message SearchRequest { int32 num_next_segments = 5; } + // Specifies the chunk spec to be returned from the search response. + // Only available if the + // [SearchRequest.ContentSearchSpec.search_result_mode][google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.search_result_mode] + // is set to + // [CHUNKS][google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SearchResultMode.CHUNKS] + message ChunkSpec { + // The number of previous chunks to be returned of the current chunk. The + // maximum allowed value is 3. + // If not specified, no previous chunks will be returned. + int32 num_previous_chunks = 1; + + // The number of next chunks to be returned of the current chunk. The + // maximum allowed value is 3. + // If not specified, no next chunks will be returned. + int32 num_next_chunks = 2; + } + + // Specifies the search result mode. If unspecified, the + // search result mode defaults to `DOCUMENTS`. + enum SearchResultMode { + // Default value. + SEARCH_RESULT_MODE_UNSPECIFIED = 0; + + // Returns documents in the search result. + DOCUMENTS = 1; + + // Returns chunks in the search result. Only available if the + // [DataStore.DocumentProcessingConfig.chunking_config][] is specified. + CHUNKS = 2; + } + // If `snippetSpec` is not specified, snippets are not included in the // search response. SnippetSpec snippet_spec = 1; @@ -580,6 +624,17 @@ message SearchRequest { // If there is no extractive_content_spec provided, there will be no // extractive answer in the search response. ExtractiveContentSpec extractive_content_spec = 3; + + // Specifies the search result mode. If unspecified, the + // search result mode defaults to `DOCUMENTS`. + SearchResultMode search_result_mode = 4; + + // Specifies the chunk spec to be returned from the search response. + // Only available if the + // [SearchRequest.ContentSearchSpec.search_result_mode][google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.search_result_mode] + // is set to + // [CHUNKS][google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SearchResultMode.CHUNKS] + ChunkSpec chunk_spec = 5; } // The specification that uses customized query embedding vector to do @@ -598,6 +653,119 @@ message SearchRequest { repeated EmbeddingVector embedding_vectors = 1; } + // Specification to enable natural language understanding capabilities for + // search requests. + message NaturalLanguageQueryUnderstandingSpec { + // Enum describing under which condition filter extraction should occur. + enum FilterExtractionCondition { + // Server behavior defaults to [Condition.DISABLED][]. + CONDITION_UNSPECIFIED = 0; + + // Disables NL filter extraction. + DISABLED = 1; + + // Enables NL filter extraction. + ENABLED = 2; + } + + // The condition under which filter extraction should occur. + // Default to [Condition.DISABLED][]. + FilterExtractionCondition filter_extraction_condition = 1; + + // Field names used for location-based filtering, where geolocation filters + // are detected in natural language search queries. + // Only valid when the FilterExtractionCondition is set to `ENABLED`. + // + // If this field is set, it overrides the field names set in + // [ServingConfig.geo_search_query_detection_field_names][google.cloud.discoveryengine.v1beta.ServingConfig.geo_search_query_detection_field_names]. + repeated string geo_search_query_detection_field_names = 2; + } + + // Specification for search as you type in search requests. + message SearchAsYouTypeSpec { + // Enum describing under which condition search as you type should occur. + enum Condition { + // Server behavior defaults to + // [Condition.DISABLED][google.cloud.discoveryengine.v1beta.SearchRequest.SearchAsYouTypeSpec.Condition.DISABLED]. + CONDITION_UNSPECIFIED = 0; + + // Disables Search As You Type. + DISABLED = 1; + + // Enables Search As You Type. + ENABLED = 2; + } + + // The condition under which search as you type should occur. + // Default to + // [Condition.DISABLED][google.cloud.discoveryengine.v1beta.SearchRequest.SearchAsYouTypeSpec.Condition.DISABLED]. + Condition condition = 1; + } + + // Session specification. + // + // Multi-turn Search feature is currently at private GA stage. Please use + // v1alpha or v1beta version instead before we launch this feature to public + // GA. Or ask for allowlisting through Google Support team. + message SessionSpec { + // If set, the search result gets stored to the "turn" specified by this + // query ID. + // + // Example: Let's say the session looks like this: + // session { + // name: ".../sessions/xxx" + // turns { + // query { text: "What is foo?" query_id: ".../questions/yyy" } + // answer: "Foo is ..." + // } + // turns { + // query { text: "How about bar then?" query_id: ".../questions/zzz" } + // } + // } + // + // The user can call /search API with a request like this: + // + // session: ".../sessions/xxx" + // session_spec { query_id: ".../questions/zzz" } + // + // Then, the API stores the search result, associated with the last turn. + // The stored search result can be used by a subsequent /answer API call + // (with the session ID and the query ID specified). Also, it is possible + // to call /search and /answer in parallel with the same session ID & query + // ID. + string query_id = 1; + + // The number of top search results to persist. The persisted search results + // can be used for the subsequent /answer api call. + // + // This field is simliar to the `summary_result_count` field in + // [SearchRequest.ContentSearchSpec.SummarySpec.summary_result_count][google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.summary_result_count]. + // + // At most 10 results for documents mode, or 50 for chunks mode. + optional int32 search_result_persistence_count = 2; + } + + // 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. In this case, server behavior defaults to Google defined + // threshold. + RELEVANCE_THRESHOLD_UNSPECIFIED = 0; + + // Lowest relevance threshold. + LOWEST = 1; + + // Low relevance threshold. + LOW = 2; + + // Medium relevance threshold. + MEDIUM = 3; + + // High relevance threshold. + HIGH = 4; + } + // Required. The resource name of the Search serving config, such as // `projects/*/locations/global/collections/default_collection/engines/*/servingConfigs/default_serving_config`, // or @@ -699,9 +867,12 @@ message SearchRequest { // object. Leave it unset if ordered by relevance. `order_by` expression is // case-sensitive. // - // For more information on ordering for retail search, see - // [Ordering](https://cloud.google.com/retail/docs/filter-and-order#order) - // + // For more information on ordering the website search results, see + // [Order web search + // results](https://cloud.google.com/generative-ai-app-builder/docs/order-web-search-results). + // For more information on ordering the healthcare search results, see + // [Order healthcare search + // results](https://cloud.google.com/generative-ai-app-builder/docs/order-hc-results). // If this field is unrecognizable, an `INVALID_ARGUMENT` is returned. string order_by = 8; @@ -711,6 +882,19 @@ message SearchRequest { // is used to deduce `device_type` for analytics. UserInfo user_info = 21; + // The BCP-47 language code, such as "en-US" or "sr-Latn". For more + // information, see [Standard + // fields](https://cloud.google.com/apis/design/standard_fields). This field + // helps to better interpret the query. If a value isn't specified, the query + // language code is automatically detected, which may not be accurate. + string language_code = 35; + + // The Unicode country/region code (CLDR) of a location, such as "US" and + // "419". For more information, see [Standard + // fields](https://cloud.google.com/apis/design/standard_fields). If set, + // then results will be boosted based on the region_code provided. + string region_code = 36; + // Facet specifications for faceted search. If empty, no facets are returned. // // A maximum of 100 values are allowed. Otherwise, an `INVALID_ARGUMENT` @@ -782,20 +966,26 @@ message SearchRequest { // documents. This overrides // [ServingConfig.ranking_expression][google.cloud.discoveryengine.v1beta.ServingConfig.ranking_expression]. // The ranking expression is a single function or multiple functions that are - // joint by "+". + // joined by "+". + // // * ranking_expression = function, { " + ", function }; + // // Supported functions: + // // * double * relevance_score // * double * dotProduct(embedding_field_path) + // // Function variables: - // `relevance_score`: pre-defined keywords, used for measure relevance + // + // * `relevance_score`: pre-defined keywords, used for measure relevance // between query and document. - // `embedding_field_path`: the document embedding field + // * `embedding_field_path`: the document embedding field // used with query embedding vector. - // `dotProduct`: embedding function between embedding_field_path and query + // * `dotProduct`: embedding function between embedding_field_path and query // embedding vector. // // Example ranking expression: + // // If document has an embedding field doc_embedding, the ranking expression // could be `0.5 * relevance_score + 0.3 * dotProduct(doc_embedding)`. string ranking_expression = 26; @@ -822,6 +1012,58 @@ message SearchRequest { // Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) // for more details. map<string, string> user_labels = 22; + + // If `naturalLanguageQueryUnderstandingSpec` is not specified, no additional + // natural language query understanding will be done. + NaturalLanguageQueryUnderstandingSpec + natural_language_query_understanding_spec = 28; + + // Search as you type configuration. Only supported for the + // [IndustryVertical.MEDIA][google.cloud.discoveryengine.v1beta.IndustryVertical.MEDIA] + // vertical. + SearchAsYouTypeSpec search_as_you_type_spec = 31; + + // The session resource name. Optional. + // + // Session allows users to do multi-turn /search API calls or coordination + // between /search API calls and /answer API calls. + // + // Example #1 (multi-turn /search API calls): + // 1. Call /search API with the auto-session mode (see below). + // 2. Call /search API with the session ID generated in the first call. + // Here, the previous search query gets considered in query + // standing. I.e., if the first query is "How did Alphabet do in 2022?" + // and the current query is "How about 2023?", the current query will + // be interpreted as "How did Alphabet do in 2023?". + // + // Example #2 (coordination between /search API calls and /answer API calls): + // 1. Call /search API with the auto-session mode (see below). + // 2. Call /answer API with the session ID generated in the first call. + // Here, the answer generation happens in the context of the search + // results from the first search call. + // + // Auto-session mode: when `projects/.../sessions/-` is used, a new session + // gets automatically created. Otherwise, users can use the create-session API + // to create a session manually. + // + // Multi-turn Search feature is currently at private GA stage. Please use + // v1alpha or v1beta version instead before we launch this feature to public + // GA. Or ask for allowlisting through Google Support team. + string session = 41 [(google.api.resource_reference) = { + type: "discoveryengine.googleapis.com/Session" + }]; + + // Session specification. + // + // Can be used only when `session` is set. + SessionSpec session_spec = 42; + + // The relevance threshold of the search results. + // + // Default to Google defined threshold, leveraging a balance of + // precision and recall to deliver both highly accurate results and + // comprehensive coverage of relevant information. + RelevanceThreshold relevance_threshold = 44; } // Response message for @@ -838,6 +1080,12 @@ message SearchResponse { // marked as `retrievable` are populated. Document document = 2; + // The chunk data in the search response if the + // [SearchRequest.ContentSearchSpec.search_result_mode][google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.search_result_mode] + // is set to + // [CHUNKS][google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SearchResultMode.CHUNKS]. + Chunk chunk = 18; + // Google provided available scores. map<string, DoubleList> model_scores = 4; } @@ -982,14 +1230,14 @@ message SearchResponse { // The adversarial query ignored case. // - // Only populated when + // Only used when // [SummarySpec.ignore_adversarial_query][google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ignore_adversarial_query] // is set to `true`. ADVERSARIAL_QUERY_IGNORED = 1; // The non-summary seeking query ignored case. // - // Only populated when + // Only used when // [SummarySpec.ignore_non_summary_seeking_query][google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ignore_non_summary_seeking_query] // is set to `true`. NON_SUMMARY_SEEKING_QUERY_IGNORED = 2; @@ -1011,6 +1259,26 @@ message SearchResponse { // // Google skips the summary if the LLM addon is not enabled. LLM_ADDON_NOT_ENABLED = 5; + + // The no relevant content case. + // + // Google skips the summary if there is no relevant content in the + // retrieved search results. + NO_RELEVANT_CONTENT = 6; + + // The jail-breaking query ignored case. + // + // For example, "Reply in the tone of a competing company's CEO". + // Only used when + // [SearchRequest.ContentSearchSpec.SummarySpec.ignore_jail_breaking_query] + // is set to `true`. + JAIL_BREAKING_QUERY_IGNORED = 7; + + // The customer policy violation case. + // + // Google skips the summary if there is a customer policy violation + // detected. The policy is defined by the customer. + CUSTOMER_POLICY_VIOLATION = 8; } // The summary content. @@ -1051,6 +1319,179 @@ message SearchResponse { int64 pinned_result_count = 2; } + // Information describing what natural language understanding was + // done on the input query. + message NaturalLanguageQueryUnderstandingInfo { + // The filters that were extracted from the input query represented in a + // structured form. + message StructuredExtractedFilter { + // Constraint expression of a string field. + message StringConstraint { + // Name of the string field as defined in the schema. + string field_name = 1; + + // Values of the string field. The record will only be returned if the + // field value matches one of the values specified here. + repeated string values = 2; + + // Identifies the keywords within the search query that match a filter. + string query_segment = 3; + } + + // Constraint expression of a number field. Example: price < 100. + message NumberConstraint { + // The comparison operation that was performed. + enum Comparison { + // Undefined comparison operator. + COMPARISON_UNSPECIFIED = 0; + + // Denotes equality `=` operator. + EQUALS = 1; + + // Denotes less than or equal to `<=` operator. + LESS_THAN_EQUALS = 2; + + // Denotes less than `<` operator. + LESS_THAN = 3; + + // Denotes greater than or equal to `>=` operator. + GREATER_THAN_EQUALS = 4; + + // Denotes greater than `>` operator. + GREATER_THAN = 5; + } + + // Name of the numerical field as defined in the schema. + string field_name = 1; + + // The comparison operation performed between the field value and the + // value specified in the constraint. + Comparison comparison = 2; + + // The value specified in the numerical constraint. + double value = 3; + + // Identifies the keywords within the search query that match a filter. + string query_segment = 4; + } + + // Constraint of a geolocation field. + // Name of the geolocation field as defined in the schema. + message GeolocationConstraint { + // The name of the geolocation field as defined in the schema. + string field_name = 1; + + // The reference address that was inferred from the input query. The + // proximity of the reference address to the geolocation field will be + // used to filter the results. + string address = 2; + + // The latitude of the geolocation inferred from the input query. + double latitude = 4; + + // The longitude of the geolocation inferred from the input query. + double longitude = 5; + + // The radius in meters around the address. The record is returned if + // the location of the geolocation field is within the radius. + float radius_in_meters = 3; + } + + // Logical `And` operator. + message AndExpression { + // The expressions that were ANDed together. + repeated Expression expressions = 1; + } + + // Logical `Or` operator. + message OrExpression { + // The expressions that were ORed together. + repeated Expression expressions = 1; + } + + // The expression denoting the filter that was extracted from the input + // query. + message Expression { + // The expression type. + oneof expr { + // String constraint expression. + StringConstraint string_constraint = 1; + + // Numerical constraint expression. + NumberConstraint number_constraint = 2; + + // Geolocation constraint expression. + GeolocationConstraint geolocation_constraint = 3; + + // Logical "And" compound operator connecting multiple expressions. + AndExpression and_expr = 4; + + // Logical "Or" compound operator connecting multiple expressions. + OrExpression or_expr = 5; + } + } + + // The expression denoting the filter that was extracted from the input + // query in a structured form. It can be a simple expression denoting a + // single string, numerical or geolocation constraint or a compound + // expression which is a combination of multiple expressions connected + // using logical (OR and AND) operators. + Expression expression = 1; + } + + // The filters that were extracted from the input query. + string extracted_filters = 1; + + // Rewritten input query minus the extracted filters. + string rewritten_query = 2; + + // The filters that were extracted from the input query represented in a + // structured form. + StructuredExtractedFilter structured_extracted_filter = 3; + } + + // Information about the session. + message SessionInfo { + // Name of the session. + // If the auto-session mode is used (when + // [SearchRequest.session][google.cloud.discoveryengine.v1beta.SearchRequest.session] + // ends with "-"), this field holds the newly generated session name. + string name = 1; + + // Query ID that corresponds to this search API call. + // One session can have multiple turns, each with a unique query ID. + // + // By specifying the session name and this query ID in the Answer API call, + // the answer generation happens in the context of the search results from + // this search call. + string query_id = 2; + } + + // OneBoxResult is a holder for all results of specific type that we want + // to display in UI differently. + message OneBoxResult { + // The type of One Box result. + enum OneBoxType { + // Default value. Should not be used. + ONE_BOX_TYPE_UNSPECIFIED = 0; + + // One Box result contains people results. + PEOPLE = 1; + + // One Box result contains organization results. + ORGANIZATION = 2; + + // One Box result contains slack results. + SLACK = 3; + } + + // The type of One Box result. + OneBoxType one_box_type = 1; + + // The search results for this One Box. + repeated SearchResult search_results = 2; + } + // A list of matched documents. The order represents the ranking. repeated SearchResult results = 1; @@ -1071,7 +1512,8 @@ message SearchResponse { // A unique search token. This should be included in the // [UserEvent][google.cloud.discoveryengine.v1beta.UserEvent] logs resulting // from this search, which enables accurate attribution of search model - // performance. + // performance. This also helps to identify a request during the customer + // support scenarios. string attribution_token = 4; // The URI of a customer-defined redirect page. If redirect action is @@ -1106,4 +1548,19 @@ message SearchResponse { // Query expansion information for the returned results. QueryExpansionInfo query_expansion_info = 14; + + // Natural language query understanding information for the returned results. + NaturalLanguageQueryUnderstandingInfo + natural_language_query_understanding_info = 15; + + // Session information. + // + // Only set if + // [SearchRequest.session][google.cloud.discoveryengine.v1beta.SearchRequest.session] + // is provided. See its description for more details. + SessionInfo session_info = 19; + + // A list of One Box results. There can be multiple One Box results of + // different types. + repeated OneBoxResult one_box_results = 20; } diff --git a/google/cloud/discoveryengine/v1beta/serving_config.proto b/google/cloud/discoveryengine/v1beta/serving_config.proto index 8194bfee8..a83bcf3ab 100644 --- a/google/cloud/discoveryengine/v1beta/serving_config.proto +++ b/google/cloud/discoveryengine/v1beta/serving_config.proto @@ -171,21 +171,27 @@ message ServingConfig { // // The ranking expression is a single function or multiple functions that are // joined by "+". + // // * ranking_expression = function, { " + ", function }; + // // Supported functions: + // // * double * relevance_score // * double * dotProduct(embedding_field_path) + // // Function variables: - // relevance_score: pre-defined keywords, used for measure relevance between - // query and document. - // embedding_field_path: the document embedding field + // + // * `relevance_score`: pre-defined keywords, used for measure relevance + // between query and document. + // * `embedding_field_path`: the document embedding field // used with query embedding vector. - // dotProduct: embedding function between embedding_field_path and query + // * `dotProduct`: embedding function between embedding_field_path and query // embedding vector. // // Example ranking expression: + // // If document has an embedding field doc_embedding, the ranking expression - // could be 0.5 * relevance_score + 0.3 * dotProduct(doc_embedding). + // could be `0.5 * relevance_score + 0.3 * dotProduct(doc_embedding)`. string ranking_expression = 21; // Output only. ServingConfig created timestamp. diff --git a/google/cloud/discoveryengine/v1beta/user_event.proto b/google/cloud/discoveryengine/v1beta/user_event.proto index acd0f82ae..7dae6e2c7 100644 --- a/google/cloud/discoveryengine/v1beta/user_event.proto +++ b/google/cloud/discoveryengine/v1beta/user_event.proto @@ -456,6 +456,10 @@ message DocumentInfo { // The promotion IDs associated with this Document. // Currently, this field is restricted to at most one ID. repeated string promotion_ids = 4; + + // Output only. Whether the referenced Document can be found in the data + // store. + bool joined = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Detailed panel information associated with a user event. diff --git a/google/cloud/discoveryengine/v1beta/user_event_service.proto b/google/cloud/discoveryengine/v1beta/user_event_service.proto index 5ccf0ba19..9a28618c2 100644 --- a/google/cloud/discoveryengine/v1beta/user_event_service.proto +++ b/google/cloud/discoveryengine/v1beta/user_event_service.proto @@ -22,6 +22,7 @@ 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/purge_config.proto"; import "google/cloud/discoveryengine/v1beta/user_event.proto"; import "google/longrunning/operations.proto"; @@ -67,6 +68,29 @@ service UserEventService { additional_bindings { get: "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*}/userEvents:collect" } + additional_bindings { + get: "/v1beta/{parent=projects/*/locations/*}/userEvents:collect" + } + }; + } + + // Deletes permanently all user events specified by the filter provided. + // Depending on the number of events specified by the filter, this operation + // could take hours or days to complete. To test a filter, use the list + // command first. + rpc PurgeUserEvents(PurgeUserEventsRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta/{parent=projects/*/locations/*/dataStores/*}/userEvents:purge" + body: "*" + additional_bindings { + post: "/v1beta/{parent=projects/*/locations/*/collections/*/dataStores/*}/userEvents:purge" + body: "*" + } + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.discoveryengine.v1beta.PurgeUserEventsResponse" + metadata_type: "google.cloud.discoveryengine.v1beta.PurgeUserEventsMetadata" }; } diff --git a/google/cloud/documentai/documentai_v1beta1.yaml b/google/cloud/documentai/documentai_v1beta1.yaml deleted file mode 100644 index 78865689c..000000000 --- a/google/cloud/documentai/documentai_v1beta1.yaml +++ /dev/null @@ -1,29 +0,0 @@ -type: google.api.Service -config_version: 3 -name: documentai.googleapis.com -title: Cloud Document AI API - -apis: -- name: google.cloud.documentai.v1beta1.DocumentUnderstandingService - -types: -- name: google.cloud.documentai.v1beta1.BatchProcessDocumentsResponse -- name: google.cloud.documentai.v1beta1.Document -- name: google.cloud.documentai.v1beta1.OperationMetadata - -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. - -authentication: - rules: - - selector: google.cloud.documentai.v1beta1.DocumentUnderstandingService.BatchProcessDocuments - 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/documentai/v1/BUILD.bazel b/google/cloud/documentai/v1/BUILD.bazel index 14b10d4db..6f0d4bb6d 100644 --- a/google/cloud/documentai/v1/BUILD.bazel +++ b/google/cloud/documentai/v1/BUILD.bazel @@ -242,7 +242,7 @@ php_gapic_library( name = "documentai_php_gapic", srcs = [":documentai_proto_with_info"], grpc_service_config = "documentai_v1_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "documentai_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/documentai/v1/document_io.proto b/google/cloud/documentai/v1/document_io.proto index a84bfc4fb..b18537f30 100644 --- a/google/cloud/documentai/v1/document_io.proto +++ b/google/cloud/documentai/v1/document_io.proto @@ -66,7 +66,8 @@ message GcsPrefix { // The common config to specify a set of documents used as input. message BatchDocumentsInputConfig { - // The source. + // The source. Make sure that the caller of the API has storage.objects.get + // access to the buckets. oneof source { // The set of documents that match the specified Cloud Storage `gcs_prefix`. GcsPrefix gcs_prefix = 1; diff --git a/google/cloud/documentai/v1/document_processor_service.proto b/google/cloud/documentai/v1/document_processor_service.proto index 793a56008..03ca47302 100644 --- a/google/cloud/documentai/v1/document_processor_service.proto +++ b/google/cloud/documentai/v1/document_processor_service.proto @@ -359,8 +359,9 @@ message ProcessOptions { // If a page range is set, only the given pages are extracted and processed // from the document. In the output document, // [Document.Page.page_number][google.cloud.documentai.v1.Document.Page.page_number] - // refers to the page number in the original document. This configuration - // only applies to sync requests. + // refers to the page number in the original document. + // This configuration only applies to online processing with + // [ProcessDocument][google.cloud.documentai.v1.DocumentProcessorService.ProcessDocument]. oneof page_range { // Which pages to process (1-indexed). IndividualPageSelector individual_page_selector = 5; @@ -440,6 +441,9 @@ message ProcessRequest { // characters, underscores, and dashes. International characters are allowed. // Label values are optional. Label keys must start with a letter. map<string, string> labels = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Option to remove images from the document. + bool imageless_mode = 11 [(google.api.field_behavior) = OPTIONAL]; } // The status of human review on a processed document. diff --git a/google/cloud/documentai/v1/documentai_v1.yaml b/google/cloud/documentai/v1/documentai_v1.yaml index 8171cdbea..a47cea072 100644 --- a/google/cloud/documentai/v1/documentai_v1.yaml +++ b/google/cloud/documentai/v1/documentai_v1.yaml @@ -86,12 +86,29 @@ authentication: https://www.googleapis.com/auth/cloud-platform publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=1132231&template=1639002 documentation_uri: https://cloud.google.com/document-ai/docs + api_short_name: documentai github_label: 'api: documentai' organization: CLOUD library_settings: - version: google.cloud.documentai.v1 + java_settings: + common: {} + cpp_settings: + common: {} + php_settings: + common: {} + python_settings: + common: {} + node_settings: + common: {} dotnet_settings: + common: {} ignored_resources: - documentai.googleapis.com/Location + ruby_settings: + common: {} + go_settings: + common: {} proto_reference_documentation_uri: https://cloud.google.com/document-ai/docs/reference/rpc diff --git a/google/cloud/documentai/v1/documentai_v1_grpc_service_config.json b/google/cloud/documentai/v1/documentai_v1_grpc_service_config.json index 5fb18cfe1..6041f840a 100644 --- a/google/cloud/documentai/v1/documentai_v1_grpc_service_config.json +++ b/google/cloud/documentai/v1/documentai_v1_grpc_service_config.json @@ -9,12 +9,14 @@ ], "timeout": "300s", "retryPolicy": { - "initialBackoff": "0.100s", - "maxBackoff": "60s", - "backoffMultiplier": 1.3, + "maxAttempts": 5, + "initialBackoff": "1.000s", + "maxBackoff": "90s", + "backoffMultiplier": 9.0, "retryableStatusCodes": [ "DEADLINE_EXCEEDED", - "UNAVAILABLE" + "UNAVAILABLE", + "RESOURCE_EXHAUSTED" ] } }, @@ -31,9 +33,10 @@ ], "timeout": "120s", "retryPolicy": { - "initialBackoff": "0.100s", + "maxAttempts": 5, + "initialBackoff": "1.000s", "maxBackoff": "60s", - "backoffMultiplier": 1.3, + "backoffMultiplier": 1.5, "retryableStatusCodes": [ "DEADLINE_EXCEEDED", "UNAVAILABLE" diff --git a/google/cloud/documentai/v1/processor.proto b/google/cloud/documentai/v1/processor.proto index 6b86a0ab3..5897d3710 100644 --- a/google/cloud/documentai/v1/processor.proto +++ b/google/cloud/documentai/v1/processor.proto @@ -52,6 +52,52 @@ message ProcessorVersion { }]; } + // Information about Generative AI model-based processor versions. + message GenAiModelInfo { + // Information for a pretrained Google-managed foundation model. + message FoundationGenAiModelInfo { + // Whether finetuning is allowed for this base processor version. + bool finetuning_allowed = 1; + + // The minimum number of labeled documents in the training dataset + // required for finetuning. + int32 min_train_labeled_documents = 2; + } + + // Information for a custom Generative AI model created by the user. These + // are created with `Create New Version` in either the `Call foundation + // model` or `Fine tuning` tabs. + message CustomGenAiModelInfo { + // The type of custom model created by the user. + enum CustomModelType { + // The model type is unspecified. + CUSTOM_MODEL_TYPE_UNSPECIFIED = 0; + + // The model is a versioned foundation model. + VERSIONED_FOUNDATION = 1; + + // The model is a finetuned foundation model. + FINE_TUNED = 2; + } + + // The type of custom model created by the user. + CustomModelType custom_model_type = 1; + + // The base processor version ID for the custom model. + string base_processor_version_id = 2; + } + + // The processor version is either a pretrained Google-managed foundation + // model or a custom Generative AI model created by the user. + oneof model_info { + // Information for a pretrained Google-managed foundation model. + FoundationGenAiModelInfo foundation_gen_ai_model_info = 1; + + // Information for a custom Generative AI model created by the user. + CustomGenAiModelInfo custom_gen_ai_model_info = 2; + } + } + // The possible states of the processor version. enum State { // The processor version is in an unspecified state. @@ -134,6 +180,11 @@ message ProcessorVersion { // Output only. Reserved for future use. bool satisfies_pzi = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Information about Generative AI model-based processor + // versions. + GenAiModelInfo gen_ai_model_info = 18 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Contains the alias and the aliased resource name of processor version. diff --git a/google/cloud/documentai/v1beta1/BUILD.bazel b/google/cloud/documentai/v1beta1/BUILD.bazel deleted file mode 100644 index ae795aa18..000000000 --- a/google/cloud/documentai/v1beta1/BUILD.bazel +++ /dev/null @@ -1,352 +0,0 @@ -# This file was automatically generated by BuildFileGenerator -# https://github.com/googleapis/gapic-generator/tree/master/rules_gapic/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 = "documentai_proto", - srcs = [ - "document.proto", - "document_understanding.proto", - "geometry.proto", - ], - deps = [ - "//google/api:annotations_proto", - "//google/api:client_proto", - "//google/api:field_behavior_proto", - "//google/longrunning:operations_proto", - "//google/rpc:status_proto", - "//google/type:color_proto", - "@com_google_protobuf//:timestamp_proto", - ], -) - -proto_library_with_info( - name = "documentai_proto_with_info", - deps = [ - ":documentai_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 = "documentai_java_proto", - deps = [":documentai_proto"], -) - -java_grpc_library( - name = "documentai_java_grpc", - srcs = [":documentai_proto"], - deps = [":documentai_java_proto"], -) - -java_gapic_library( - name = "documentai_java_gapic", - srcs = [":documentai_proto_with_info"], - grpc_service_config = "documentai_grpc_service_config.json", - rest_numeric_enums = True, - service_yaml = "//google/cloud/documentai:documentai_v1beta1.yaml", - test_deps = [ - ":documentai_java_grpc", - ], - transport = "grpc", - deps = [ - ":documentai_java_proto", - ], -) - -java_gapic_test( - name = "documentai_java_gapic_test_suite", - test_classes = [ - "com.google.cloud.documentai.v1beta1.DocumentUnderstandingServiceClientTest", - ], - runtime_deps = [":documentai_java_gapic_test"], -) - -# Open Source Packages -java_gapic_assembly_gradle_pkg( - name = "google-cloud-documentai-v1beta1-java", - include_samples = True, - transport = "grpc", - deps = [ - ":documentai_java_gapic", - ":documentai_java_grpc", - ":documentai_java_proto", - ":documentai_proto", - ], -) - -############################################################################## -# Go -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "go_gapic_assembly_pkg", - "go_gapic_library", - "go_proto_library", -) - -go_proto_library( - name = "documentai_go_proto", - compilers = ["@io_bazel_rules_go//proto:go_grpc"], - importpath = "cloud.google.com/go/documentai/apiv1beta1/documentaipb", - protos = [":documentai_proto"], - deps = [ - "//google/api:annotations_go_proto", - "//google/longrunning:longrunning_go_proto", - "//google/rpc:status_go_proto", - "//google/type:color_go_proto", - ], -) - -go_gapic_library( - name = "documentai_go_gapic", - srcs = [":documentai_proto_with_info"], - grpc_service_config = "documentai_grpc_service_config.json", - importpath = "cloud.google.com/go/documentai/apiv1beta1;documentai", - release_level = "beta", - rest_numeric_enums = True, - service_yaml = "//google/cloud/documentai:documentai_v1beta1.yaml", - transport = "grpc", - deps = [ - ":documentai_go_proto", - "//google/longrunning:longrunning_go_proto", - "@com_google_cloud_go_longrunning//:go_default_library", - "@com_google_cloud_go_longrunning//autogen:go_default_library", - ], -) - -# Open Source Packages -go_gapic_assembly_pkg( - name = "gapi-cloud-documentai-v1beta1-go", - deps = [ - ":documentai_go_gapic", - ":documentai_go_gapic_srcjar-snippets.srcjar", - ":documentai_go_gapic_srcjar-test.srcjar", - ":documentai_go_proto", - ], -) - -############################################################################## -# Python -############################################################################## -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", - rest_numeric_enums = True, - service_yaml = "//google/cloud/documentai:documentai_v1beta1.yaml", - 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 -py_gapic_assembly_pkg( - name = "documentai-v1beta1-py", - deps = [ - ":documentai_py_gapic", - ], -) - -############################################################################## -# PHP -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "php_gapic_assembly_pkg", - "php_gapic_library", - "php_proto_library", -) - -php_proto_library( - name = "documentai_php_proto", - deps = [":documentai_proto"], -) - -php_gapic_library( - name = "documentai_php_gapic", - srcs = [":documentai_proto_with_info"], - grpc_service_config = "documentai_grpc_service_config.json", - rest_numeric_enums = True, - service_yaml = "//google/cloud/documentai:documentai_v1beta1.yaml", - transport = "grpc+rest", - deps = [":documentai_php_proto"], -) - -# Open Source Packages -php_gapic_assembly_pkg( - name = "google-cloud-documentai-v1beta1-php", - deps = [ - ":documentai_php_gapic", - ":documentai_php_proto", - ], -) - -############################################################################## -# Node.js -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "nodejs_gapic_assembly_pkg", - "nodejs_gapic_library", -) - -nodejs_gapic_library( - name = "documentai_nodejs_gapic", - 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", - rest_numeric_enums = True, - service_yaml = "//google/cloud/documentai:documentai_v1beta1.yaml", - transport = "grpc", - deps = [], -) - -nodejs_gapic_assembly_pkg( - name = "documentai-v1beta1-nodejs", - deps = [ - ":documentai_nodejs_gapic", - ":documentai_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 = "documentai_ruby_proto", - deps = [":documentai_proto"], -) - -ruby_grpc_library( - name = "documentai_ruby_grpc", - srcs = [":documentai_proto"], - deps = [":documentai_ruby_proto"], -) - -ruby_cloud_gapic_library( - name = "documentai_ruby_gapic", - srcs = [":documentai_proto_with_info"], - extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-documentai-v1beta1"], - rest_numeric_enums = True, - service_yaml = "//google/cloud/documentai:documentai_v1beta1.yaml", - transport = "grpc", - deps = [ - ":documentai_ruby_grpc", - ":documentai_ruby_proto", - ], -) - -# Open Source Packages -ruby_gapic_assembly_pkg( - name = "google-cloud-documentai-v1beta1-ruby", - deps = [ - ":documentai_ruby_gapic", - ":documentai_ruby_grpc", - ":documentai_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 = "documentai_csharp_proto", - deps = [":documentai_proto"], -) - -csharp_grpc_library( - name = "documentai_csharp_grpc", - srcs = [":documentai_proto"], - deps = [":documentai_csharp_proto"], -) - -csharp_gapic_library( - name = "documentai_csharp_gapic", - srcs = [":documentai_proto_with_info"], - common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", - grpc_service_config = "documentai_grpc_service_config.json", - rest_numeric_enums = True, - service_yaml = "//google/cloud/documentai:documentai_v1beta1.yaml", - transport = "grpc", - deps = [ - ":documentai_csharp_grpc", - ":documentai_csharp_proto", - ], -) - -# Open Source Packages -csharp_gapic_assembly_pkg( - name = "google-cloud-documentai-v1beta1-csharp", - deps = [ - ":documentai_csharp_gapic", - ":documentai_csharp_grpc", - ":documentai_csharp_proto", - ], -) - -############################################################################## -# C++ -############################################################################## -# Put your C++ rules here diff --git a/google/cloud/documentai/v1beta1/document.proto b/google/cloud/documentai/v1beta1/document.proto deleted file mode 100644 index 788a14a8c..000000000 --- a/google/cloud/documentai/v1beta1/document.proto +++ /dev/null @@ -1,449 +0,0 @@ -// Copyright 2024 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY 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.v1beta1; - -import "google/api/field_behavior.proto"; -import "google/cloud/documentai/v1beta1/geometry.proto"; -import "google/rpc/status.proto"; -import "google/type/color.proto"; - -option csharp_namespace = "Google.Cloud.DocumentAI.V1Beta1"; -option go_package = "cloud.google.com/go/documentai/apiv1beta1/documentaipb;documentaipb"; -option java_multiple_files = true; -option java_outer_classname = "DocumentProto"; -option java_package = "com.google.cloud.documentai.v1beta1"; -option php_namespace = "Google\\Cloud\\DocumentAI\\V1beta1"; -option ruby_package = "Google::Cloud::DocumentAI::V1beta1"; - -// 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. -message Document { - // For a large document, sharding may be performed to produce several - // document shards. Each document shard contains this field to detail which - // shard it is. - message ShardInfo { - // The 0-based index of this shard. - int64 shard_index = 1; - - // Total number of shards. - int64 shard_count = 2; - - // The index of the first character in - // [Document.text][google.cloud.documentai.v1beta1.Document.text] in the - // overall document global text. - int64 text_offset = 3; - } - - // Annotation for common text style attributes. This adheres to CSS - // conventions as much as possible. - message Style { - // Font size with unit. - message FontSize { - // Font size for the text. - float size = 1; - - // Unit for the font size. Follows CSS naming (in, px, pt, etc.). - string unit = 2; - } - - // Text anchor indexing into the - // [Document.text][google.cloud.documentai.v1beta1.Document.text]. - TextAnchor text_anchor = 1; - - // Text color. - google.type.Color color = 2; - - // Text background color. - google.type.Color background_color = 3; - - // Font weight. Possible values are normal, bold, bolder, and lighter. - // https://www.w3schools.com/cssref/pr_font_weight.asp - string font_weight = 4; - - // Text style. Possible values are normal, italic, and oblique. - // https://www.w3schools.com/cssref/pr_font_font-style.asp - string text_style = 5; - - // Text decoration. Follows CSS standard. - // <text-decoration-line> <text-decoration-color> <text-decoration-style> - // https://www.w3schools.com/cssref/pr_text_text-decoration.asp - string text_decoration = 6; - - // Font size. - FontSize font_size = 7; - } - - // A page in a [Document][google.cloud.documentai.v1beta1.Document]. - message Page { - // Dimension for the page. - message Dimension { - // Page width. - float width = 1; - - // Page height. - float height = 2; - - // Dimension unit. - string unit = 3; - } - - // Visual element describing a layout unit on a page. - message Layout { - // Detected human reading orientation. - enum Orientation { - // Unspecified orientation. - ORIENTATION_UNSPECIFIED = 0; - - // Orientation is aligned with page up. - PAGE_UP = 1; - - // Orientation is aligned with page right. - // Turn the head 90 degrees clockwise from upright to read. - PAGE_RIGHT = 2; - - // Orientation is aligned with page down. - // Turn the head 180 degrees from upright to read. - PAGE_DOWN = 3; - - // Orientation is aligned with page left. - // Turn the head 90 degrees counterclockwise from upright to read. - PAGE_LEFT = 4; - } - - // Text anchor indexing into the - // [Document.text][google.cloud.documentai.v1beta1.Document.text]. - TextAnchor text_anchor = 1; - - // Confidence of the current - // [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout] within - // context of the object this layout is for. e.g. confidence can be for a - // single token, a table, a visual element, etc. depending on context. - // Range [0, 1]. - float confidence = 2; - - // The bounding polygon for the - // [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout]. - BoundingPoly bounding_poly = 3; - - // Detected orientation for the - // [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout]. - Orientation orientation = 4; - } - - // A block has a set of lines (collected into paragraphs) that have a - // common line-spacing and orientation. - message Block { - // [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout] for - // [Block][google.cloud.documentai.v1beta1.Document.Page.Block]. - Layout layout = 1; - - // A list of detected languages together with confidence. - repeated DetectedLanguage detected_languages = 2; - } - - // A collection of lines that a human would perceive as a paragraph. - message Paragraph { - // [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout] for - // [Paragraph][google.cloud.documentai.v1beta1.Document.Page.Paragraph]. - Layout layout = 1; - - // A list of detected languages together with confidence. - repeated DetectedLanguage detected_languages = 2; - } - - // A collection of tokens that a human would perceive as a line. - // Does not cross column boundaries, can be horizontal, vertical, etc. - message Line { - // [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout] for - // [Line][google.cloud.documentai.v1beta1.Document.Page.Line]. - Layout layout = 1; - - // A list of detected languages together with confidence. - repeated DetectedLanguage detected_languages = 2; - } - - // A detected token. - message Token { - // Detected break at the end of a - // [Token][google.cloud.documentai.v1beta1.Document.Page.Token]. - message DetectedBreak { - // Enum to denote the type of break found. - enum Type { - // Unspecified break type. - TYPE_UNSPECIFIED = 0; - - // A single whitespace. - SPACE = 1; - - // A wider whitespace. - WIDE_SPACE = 2; - - // A hyphen that indicates that a token has been split across lines. - HYPHEN = 3; - } - - // Detected break type. - Type type = 1; - } - - // [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout] for - // [Token][google.cloud.documentai.v1beta1.Document.Page.Token]. - Layout layout = 1; - - // Detected break at the end of a - // [Token][google.cloud.documentai.v1beta1.Document.Page.Token]. - DetectedBreak detected_break = 2; - - // A list of detected languages together with confidence. - repeated DetectedLanguage detected_languages = 3; - } - - // Detected non-text visual elements e.g. checkbox, signature etc. on the - // page. - message VisualElement { - // [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout] for - // [Token][google.cloud.documentai.v1beta1.Document.Page.Token]. - Layout layout = 1; - - // Type of the - // [VisualElement][google.cloud.documentai.v1beta1.Document.Page.VisualElement]. - string type = 2; - - // A list of detected languages together with confidence. - repeated DetectedLanguage detected_languages = 3; - } - - // A table representation similar to HTML table structure. - message Table { - // A row of table cells. - message TableRow { - // Cells that make up this row. - repeated TableCell cells = 1; - } - - // A cell representation inside the table. - message TableCell { - // [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout] for - // [TableCell][google.cloud.documentai.v1beta1.Document.Page.Table.TableCell]. - Layout layout = 1; - - // How many rows this cell spans. - int32 row_span = 2; - - // How many columns this cell spans. - int32 col_span = 3; - - // A list of detected languages together with confidence. - repeated DetectedLanguage detected_languages = 4; - } - - // [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout] for - // [Table][google.cloud.documentai.v1beta1.Document.Page.Table]. - Layout layout = 1; - - // Header rows of the table. - repeated TableRow header_rows = 2; - - // Body rows of the table. - repeated TableRow body_rows = 3; - - // A list of detected languages together with confidence. - repeated DetectedLanguage detected_languages = 4; - } - - // A form field detected on the page. - message FormField { - // [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout] for the - // [FormField][google.cloud.documentai.v1beta1.Document.Page.FormField] - // name. e.g. `Address`, `Email`, `Grand total`, `Phone number`, etc. - Layout field_name = 1; - - // [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout] for the - // [FormField][google.cloud.documentai.v1beta1.Document.Page.FormField] - // value. - Layout field_value = 2; - - // A list of detected languages for name together with confidence. - repeated DetectedLanguage name_detected_languages = 3; - - // A list of detected languages for value together with confidence. - repeated DetectedLanguage value_detected_languages = 4; - } - - // 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. - string language_code = 1; - - // Confidence of detected language. Range [0, 1]. - float confidence = 2; - } - - // 1-based index for current - // [Page][google.cloud.documentai.v1beta1.Document.Page] in a parent - // [Document][google.cloud.documentai.v1beta1.Document]. Useful when a page - // is taken out of a [Document][google.cloud.documentai.v1beta1.Document] - // for individual processing. - int32 page_number = 1; - - // Physical dimension of the page. - Dimension dimension = 2; - - // [Layout][google.cloud.documentai.v1beta1.Document.Page.Layout] for the - // page. - Layout layout = 3; - - // A list of detected languages together with confidence. - repeated DetectedLanguage detected_languages = 4; - - // A list of visually detected text blocks on the page. - // A block has a set of lines (collected into paragraphs) that have a common - // line-spacing and orientation. - repeated Block blocks = 5; - - // A list of visually detected text paragraphs on the page. - // A collection of lines that a human would perceive as a paragraph. - repeated Paragraph paragraphs = 6; - - // A list of visually detected text lines on the page. - // A collection of tokens that a human would perceive as a line. - repeated Line lines = 7; - - // A list of visually detected tokens on the page. - repeated Token tokens = 8; - - // A list of detected non-text visual elements e.g. checkbox, - // signature etc. on the page. - repeated VisualElement visual_elements = 9; - - // A list of visually detected tables on the page. - repeated Table tables = 10; - - // A list of visually detected form fields on the page. - repeated FormField form_fields = 11; - } - - // A phrase in the text that is a known entity type, such as a person, an - // organization, or location. - message Entity { - // Provenance of the entity. - // Text anchor indexing into the - // [Document.text][google.cloud.documentai.v1beta1.Document.text]. - TextAnchor text_anchor = 1; - - // 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; - - // Canonical mention name. This will be a unique value in the entity list - // for this document. - string mention_id = 4; - } - - // Relationship between - // [Entities][google.cloud.documentai.v1beta1.Document.Entity]. - message EntityRelation { - // Subject entity mention_id. - string subject_id = 1; - - // Object entity mention_id. - string object_id = 2; - - // Relationship description. - string relation = 3; - } - - // Text reference indexing into the - // [Document.text][google.cloud.documentai.v1beta1.Document.text]. - message TextAnchor { - // A text segment in the - // [Document.text][google.cloud.documentai.v1beta1.Document.text]. The - // indices may be out of bounds which indicate that the text extends into - // another document shard for large sharded documents. See - // [ShardInfo.text_offset][google.cloud.documentai.v1beta1.Document.ShardInfo.text_offset] - message TextSegment { - // [TextSegment][google.cloud.documentai.v1beta1.Document.TextAnchor.TextSegment] - // start UTF-8 char index in the - // [Document.text][google.cloud.documentai.v1beta1.Document.text]. - int64 start_index = 1; - - // [TextSegment][google.cloud.documentai.v1beta1.Document.TextAnchor.TextSegment] - // half open end UTF-8 char index in the - // [Document.text][google.cloud.documentai.v1beta1.Document.text]. - int64 end_index = 2; - } - - // The text segments from the - // [Document.text][google.cloud.documentai.v1beta1.Document.text]. - repeated TextSegment text_segments = 1; - } - - // Original source document from the user. - oneof source { - // Currently supports Google Cloud Storage URI of the form - // `gs://bucket_name/object_name`. Object versioning is not supported. - // See [Google Cloud Storage Request - // URIs](https://cloud.google.com/storage/docs/reference-uris) for more - // info. - string uri = 1; - - // Inline document content, represented as a stream of bytes. - // Note: As with all `bytes` fields, protobuffers use a pure binary - // representation, whereas JSON representations use base64. - bytes content = 2; - } - - // An IANA published MIME type (also referred to as media type). For more - // information, see - // https://www.iana.org/assignments/media-types/media-types.xhtml. - string mime_type = 3; - - // UTF-8 encoded text in reading order from the document. - string text = 4; - - // Styles for the - // [Document.text][google.cloud.documentai.v1beta1.Document.text]. - repeated Style text_styles = 5; - - // Visual page layout for the - // [Document][google.cloud.documentai.v1beta1.Document]. - repeated Page pages = 6; - - // A list of entities detected on - // [Document.text][google.cloud.documentai.v1beta1.Document.text]. For - // document shards, entities in this list may cross shard boundaries. - repeated Entity entities = 7; - - // Relationship among - // [Document.entities][google.cloud.documentai.v1beta1.Document.entities]. - repeated EntityRelation entity_relations = 8; - - // Information about the sharding if this document is sharded part of a larger - // document. If the document is not sharded, this message is not specified. - ShardInfo shard_info = 9; - - // Any error that occurred while processing this document. - google.rpc.Status error = 10; -} diff --git a/google/cloud/documentai/v1beta1/document_understanding.proto b/google/cloud/documentai/v1beta1/document_understanding.proto deleted file mode 100644 index 2250efc76..000000000 --- a/google/cloud/documentai/v1beta1/document_understanding.proto +++ /dev/null @@ -1,302 +0,0 @@ -// Copyright 2024 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY 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.v1beta1; - -import "google/api/annotations.proto"; -import "google/api/client.proto"; -import "google/api/field_behavior.proto"; -import "google/cloud/documentai/v1beta1/geometry.proto"; -import "google/longrunning/operations.proto"; -import "google/protobuf/timestamp.proto"; - -option csharp_namespace = "Google.Cloud.DocumentAI.V1Beta1"; -option go_package = "cloud.google.com/go/documentai/apiv1beta1/documentaipb;documentaipb"; -option java_multiple_files = true; -option java_outer_classname = "DocumentAiProto"; -option java_package = "com.google.cloud.documentai.v1beta1"; -option php_namespace = "Google\\Cloud\\DocumentAI\\V1beta1"; -option ruby_package = "Google::Cloud::DocumentAI::V1beta1"; - -// Service to parse structured information from unstructured or semi-structured -// documents using state-of-the-art Google AI such as natural language, -// computer vision, and translation. -service DocumentUnderstandingService { - option (google.api.default_host) = "documentai.googleapis.com"; - option (google.api.oauth_scopes) = - "https://www.googleapis.com/auth/cloud-platform"; - - // LRO endpoint to batch process many documents. - rpc BatchProcessDocuments(BatchProcessDocumentsRequest) - returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v1beta1/{parent=projects/*/locations/*}/documents:batchProcess" - body: "*" - additional_bindings { - post: "/v1beta1/{parent=projects/*}/documents:batchProcess" - body: "*" - } - }; - option (google.api.method_signature) = "requests"; - option (google.longrunning.operation_info) = { - response_type: "BatchProcessDocumentsResponse" - metadata_type: "OperationMetadata" - }; - } -} - -// Request to batch process documents as an asynchronous operation. -message BatchProcessDocumentsRequest { - // Required. Individual requests for each document. - repeated ProcessDocumentRequest requests = 1 - [(google.api.field_behavior) = 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 = 2; -} - -// Request to process one document. -message ProcessDocumentRequest { - // Required. Information about the input file. - InputConfig input_config = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The desired output location. - OutputConfig output_config = 2 [(google.api.field_behavior) = REQUIRED]; - - // Specifies a known document type for deeper structure detection. Valid - // values are currently "general" and "invoice". If not provided, "general"\ - // is used as default. If any other value is given, the request is rejected. - string document_type = 3; - - // Controls table extraction behavior. If not specified, the system will - // decide reasonable defaults. - TableExtractionParams table_extraction_params = 4; - - // Controls form extraction behavior. If not specified, the system will - // decide reasonable defaults. - FormExtractionParams form_extraction_params = 5; - - // Controls entity extraction behavior. If not specified, the system will - // decide reasonable defaults. - EntityExtractionParams entity_extraction_params = 6; - - // Controls OCR behavior. If not specified, the system will decide reasonable - // defaults. - OcrParams ocr_params = 7; -} - -// Response to an batch document processing request. This is returned in -// the LRO Operation after the operation is complete. -message BatchProcessDocumentsResponse { - // Responses for each individual document. - repeated ProcessDocumentResponse responses = 1; -} - -// Response to a single document processing request. -message ProcessDocumentResponse { - // Information about the input file. This is the same as the corresponding - // input config in the request. - InputConfig input_config = 1; - - // The output location of the parsed responses. The responses are written to - // this location as JSON-serialized `Document` objects. - OutputConfig output_config = 2; -} - -// Parameters to control Optical Character Recognition (OCR) behavior. -message OcrParams { - // List of languages to use for OCR. In most cases, an empty value - // yields the best results since it enables automatic language detection. For - // languages based on the Latin alphabet, setting `language_hints` is not - // needed. In rare cases, when the language of the text in the image is known, - // setting a hint will help get better results (although it will be a - // significant hindrance if the hint is wrong). Document processing returns an - // error if one or more of the specified languages is not one of the - // supported languages. - repeated string language_hints = 1; -} - -// Parameters to control table extraction behavior. -message TableExtractionParams { - // Whether to enable table extraction. - bool enabled = 1; - - // Optional. Table bounding box hints that can be provided to complex cases - // which our algorithm cannot locate the table(s) in. - repeated TableBoundHint table_bound_hints = 2 - [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Table header hints. The extraction will bias towards producing - // these terms as table headers, which may improve accuracy. - repeated string header_hints = 3 [(google.api.field_behavior) = OPTIONAL]; - - // Model version of the table extraction system. Default is "builtin/stable". - // Specify "builtin/latest" for the latest model. - string model_version = 4; -} - -// A hint for a table bounding box on the page for table parsing. -message TableBoundHint { - // Optional. Page number for multi-paged inputs this hint applies to. If not - // provided, this hint will apply to all pages by default. This value is - // 1-based. - int32 page_number = 1 [(google.api.field_behavior) = OPTIONAL]; - - // Bounding box hint for a table on this page. The coordinates must be - // normalized to [0,1] and the bounding box must be an axis-aligned rectangle. - BoundingPoly bounding_box = 2; -} - -// Parameters to control form extraction behavior. -message FormExtractionParams { - // Whether to enable form extraction. - bool enabled = 1; - - // User can provide pairs of (key text, value type) to improve the parsing - // result. - // - // For example, if a document has a field called "Date" that holds a date - // value and a field called "Amount" that may hold either a currency value - // (e.g., "$500.00") or a simple number value (e.g., "20"), you could use the - // following hints: [ {"key": "Date", value_types: [ "DATE"]}, {"key": - // "Amount", "value_types": [ "PRICE", "NUMBER" ]} ] - // - // If the value type is unknown, but you want to provide hints for the keys, - // you can leave the value_types field blank. e.g. {"key": "Date", - // "value_types": []} - repeated KeyValuePairHint key_value_pair_hints = 2; - - // Model version of the form extraction system. Default is - // "builtin/stable". Specify "builtin/latest" for the latest model. - string model_version = 3; -} - -// User-provided hint for key value pair. -message KeyValuePairHint { - // The key text for the hint. - string key = 1; - - // Type of the value. This is case-insensitive, and could be one of: - // ADDRESS, LOCATION, ORGANIZATION, PERSON, PHONE_NUMBER, - // ID, NUMBER, EMAIL, PRICE, TERMS, DATE, NAME. Types not in this list will - // be ignored. - repeated string value_types = 2; -} - -// Parameters to control entity extraction behavior. -message EntityExtractionParams { - // Whether to enable entity extraction. - bool enabled = 1; - - // Model version of the entity extraction. Default is - // "builtin/stable". Specify "builtin/latest" for the latest model. - string model_version = 2; -} - -// The desired input location and metadata. -message InputConfig { - // Required. - oneof source { - // The Google Cloud Storage location to read the input from. This must be a - // single file. - GcsSource gcs_source = 1; - } - - // Required. Mimetype of the input. Current supported mimetypes are - // application/pdf, image/tiff, and image/gif. - string mime_type = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// The desired output location and metadata. -message OutputConfig { - // Required. - oneof destination { - // The Google Cloud Storage location to write the output to. - GcsDestination gcs_destination = 1; - } - - // The max number of pages to include into each output Document shard JSON on - // Google Cloud Storage. - // - // The valid range is [1, 100]. If not specified, the default value is 20. - // - // For example, for one pdf file with 100 pages, 100 parsed pages will be - // produced. If `pages_per_shard` = 20, then 5 Document shard JSON files each - // containing 20 parsed pages will be written under the prefix - // [OutputConfig.gcs_destination.uri][] and suffix pages-x-to-y.json where - // x and y are 1-indexed page numbers. - // - // Example GCS outputs with 157 pages and pages_per_shard = 50: - // - // <prefix>pages-001-to-050.json - // <prefix>pages-051-to-100.json - // <prefix>pages-101-to-150.json - // <prefix>pages-151-to-157.json - int32 pages_per_shard = 2; -} - -// The Google Cloud Storage location where the input file will be read from. -message GcsSource { - string uri = 1 [(google.api.field_behavior) = REQUIRED]; -} - -// The Google Cloud Storage location where the output file will be written to. -message GcsDestination { - string uri = 1 [(google.api.field_behavior) = REQUIRED]; -} - -// Contains metadata for the BatchProcessDocuments operation. -message OperationMetadata { - enum State { - // The default value. This value is used if the state is omitted. - STATE_UNSPECIFIED = 0; - - // Request is received. - ACCEPTED = 1; - - // Request operation is waiting for scheduling. - WAITING = 2; - - // Request is being processed. - RUNNING = 3; - - // The batch processing completed successfully. - SUCCEEDED = 4; - - // The batch processing was cancelled. - CANCELLED = 5; - - // The batch processing has failed. - FAILED = 6; - } - - // The state of the current batch processing. - State state = 1; - - // A message providing more details about the current state of processing. - 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; -} diff --git a/google/cloud/documentai/v1beta1/documentai_gapic.yaml b/google/cloud/documentai/v1beta1/documentai_gapic.yaml deleted file mode 100644 index 483b95fd0..000000000 --- a/google/cloud/documentai/v1beta1/documentai_gapic.yaml +++ /dev/null @@ -1,17 +0,0 @@ -type: com.google.api.codegen.ConfigProto -config_schema_version: 2.0.0 -# The settings of generated code in a specific language. -language_settings: - python: - package_name: google.cloud.documentai_v1beta1.gapic - go: - package_name: cloud.google.com/go/documentai/apiv1beta1 - csharp: - package_name: Google.Cloud.DocumentAi.V1beta1 - ruby: - package_name: Google::Cloud::DocumentAi::V1beta1 - php: - package_name: Google\Cloud\DocumentAi\V1beta1 - nodejs: - package_name: documentai.v1beta1 - domain_layer_location: google-cloud diff --git a/google/cloud/documentai/v1beta1/documentai_grpc_service_config.json b/google/cloud/documentai/v1beta1/documentai_grpc_service_config.json deleted file mode 100755 index 00e77aa3c..000000000 --- a/google/cloud/documentai/v1beta1/documentai_grpc_service_config.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "methodConfig": [ - { - "name": [ - { - "service": "google.cloud.documentai.v1beta1.DocumentUnderstandingService", - "method": "BatchProcessDocuments" - } - ], - "timeout": "60s", - "retryPolicy": { - "initialBackoff": "0.100s", - "maxBackoff": "60s", - "backoffMultiplier": 1.3, - "retryableStatusCodes": [ - "DEADLINE_EXCEEDED", - "UNAVAILABLE" - ] - } - } - ] -} diff --git a/google/cloud/documentai/v1beta1/geometry.proto b/google/cloud/documentai/v1beta1/geometry.proto deleted file mode 100644 index 2b6159ea0..000000000 --- a/google/cloud/documentai/v1beta1/geometry.proto +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2024 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY 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.v1beta1; - - -option csharp_namespace = "Google.Cloud.DocumentAI.V1Beta1"; -option go_package = "cloud.google.com/go/documentai/apiv1beta1/documentaipb;documentaipb"; -option java_multiple_files = true; -option java_outer_classname = "GeometryProto"; -option java_package = "com.google.cloud.documentai.v1beta1"; -option php_namespace = "Google\\Cloud\\DocumentAI\\V1beta1"; -option ruby_package = "Google::Cloud::DocumentAI::V1beta1"; - -// A vertex represents a 2D point in the image. -// NOTE: the vertex coordinates are in the same scale as the original image. -message Vertex { - // X coordinate. - int32 x = 1; - - // Y coordinate. - int32 y = 2; -} - -// A vertex represents a 2D point in the image. -// NOTE: the normalized vertex coordinates are relative to the original image -// and range from 0 to 1. -message NormalizedVertex { - // X coordinate. - float x = 1; - - // Y coordinate. - float y = 2; -} - -// A bounding polygon for the detected image annotation. -message BoundingPoly { - // The bounding polygon vertices. - repeated Vertex vertices = 1; - - // The bounding polygon normalized vertices. - repeated NormalizedVertex normalized_vertices = 2; -} diff --git a/google/cloud/documentai/v1beta2/barcode.proto b/google/cloud/documentai/v1beta2/barcode.proto deleted file mode 100644 index 9b4675008..000000000 --- a/google/cloud/documentai/v1beta2/barcode.proto +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2024 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY 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.v1beta2; - -option csharp_namespace = "Google.Cloud.DocumentAI.V1Beta2"; -option go_package = "cloud.google.com/go/documentai/apiv1beta2/documentaipb;documentaipb"; -option java_multiple_files = true; -option java_outer_classname = "BarcodeProto"; -option java_package = "com.google.cloud.documentai.v1beta2"; -option php_namespace = "Google\\Cloud\\DocumentAI\\V1beta2"; -option ruby_package = "Google::Cloud::DocumentAI::V1beta2"; - -// 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/v1beta2/document.proto b/google/cloud/documentai/v1beta2/document.proto deleted file mode 100644 index 3d841ee97..000000000 --- a/google/cloud/documentai/v1beta2/document.proto +++ /dev/null @@ -1,982 +0,0 @@ -// Copyright 2024 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY 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.v1beta2; - -import "google/api/field_behavior.proto"; -import "google/cloud/documentai/v1beta2/barcode.proto"; -import "google/cloud/documentai/v1beta2/geometry.proto"; -import "google/protobuf/timestamp.proto"; -import "google/rpc/status.proto"; -import "google/type/color.proto"; -import "google/type/date.proto"; -import "google/type/datetime.proto"; -import "google/type/money.proto"; -import "google/type/postal_address.proto"; - -option csharp_namespace = "Google.Cloud.DocumentAI.V1Beta2"; -option go_package = "cloud.google.com/go/documentai/apiv1beta2/documentaipb;documentaipb"; -option java_multiple_files = true; -option java_outer_classname = "DocumentProto"; -option java_package = "com.google.cloud.documentai.v1beta2"; -option php_namespace = "Google\\Cloud\\DocumentAI\\V1beta2"; -option ruby_package = "Google::Cloud::DocumentAI::V1beta2"; - -// 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 - // shard it is. - message ShardInfo { - // The 0-based index of this shard. - int64 shard_index = 1; - - // Total number of shards. - int64 shard_count = 2; - - // The index of the first character in - // [Document.text][google.cloud.documentai.v1beta2.Document.text] in the - // overall document global text. - int64 text_offset = 3; - } - - // Label attaches schema information and/or other metadata to segments within - // a [Document][google.cloud.documentai.v1beta2.Document]. Multiple - // [Label][google.cloud.documentai.v1beta2.Document.Label]s on a single field - // can denote either different labels, different instances of the same label - // created at different times, or some combination of both. - message Label { - // Provenance of the label. - oneof source { - // Label is generated AutoML model. This field stores the full resource - // name of the AutoML model. - // - // Format: - // `projects/{project-id}/locations/{location-id}/models/{model-id}` - string automl_model = 2; - } - - // Name of the label. - // - // When the label is generated from AutoML Text Classification model, this - // field represents the name of the category. - string name = 1; - - // Confidence score between 0 and 1 for label assignment. - float confidence = 3; - } - - // Annotation for common text style attributes. This adheres to CSS - // conventions as much as possible. - message Style { - // Font size with unit. - message FontSize { - // Font size for the text. - float size = 1; - - // Unit for the font size. Follows CSS naming (such as `in`, `px`, and - // `pt`). - string unit = 2; - } - - // Text anchor indexing into the - // [Document.text][google.cloud.documentai.v1beta2.Document.text]. - TextAnchor text_anchor = 1; - - // Text color. - google.type.Color color = 2; - - // Text background color. - google.type.Color background_color = 3; - - // [Font weight](https://www.w3schools.com/cssref/pr_font_weight.asp). - // Possible values are `normal`, `bold`, `bolder`, and `lighter`. - string font_weight = 4; - - // [Text style](https://www.w3schools.com/cssref/pr_font_font-style.asp). - // Possible values are `normal`, `italic`, and `oblique`. - string text_style = 5; - - // [Text - // decoration](https://www.w3schools.com/cssref/pr_text_text-decoration.asp). - // Follows CSS standard. <text-decoration-line> <text-decoration-color> - // <text-decoration-style> - string text_decoration = 6; - - // Font size. - FontSize font_size = 7; - - // Font family such as `Arial`, `Times New Roman`. - // https://www.w3schools.com/cssref/pr_font_font-family.asp - string font_family = 8; - } - - // A page in a [Document][google.cloud.documentai.v1beta2.Document]. - message Page { - // Dimension for the page. - message Dimension { - // Page width. - float width = 1; - - // Page height. - float height = 2; - - // Dimension unit. - string unit = 3; - } - - // Rendered image contents for this page. - message Image { - // Raw byte content of the image. - bytes content = 1; - - // Encoding [media type (MIME - // type)](https://www.iana.org/assignments/media-types/media-types.xhtml) - // for the image. - string mime_type = 2; - - // Width of the image in pixels. - int32 width = 3; - - // Height of the image in pixels. - int32 height = 4; - } - - // Representation for transformation matrix, intended to be compatible and - // used with OpenCV format for image manipulation. - message Matrix { - // Number of rows in the matrix. - int32 rows = 1; - - // Number of columns in the matrix. - int32 cols = 2; - - // This encodes information about what data type the matrix uses. - // For example, 0 (CV_8U) is an unsigned 8-bit image. For the full list - // of OpenCV primitive data types, please refer to - // https://docs.opencv.org/4.3.0/d1/d1b/group__core__hal__interface.html - int32 type = 3; - - // The matrix data. - bytes data = 4; - } - - // Visual element describing a layout unit on a page. - message Layout { - // Detected human reading orientation. - enum Orientation { - // Unspecified orientation. - ORIENTATION_UNSPECIFIED = 0; - - // Orientation is aligned with page up. - PAGE_UP = 1; - - // Orientation is aligned with page right. - // Turn the head 90 degrees clockwise from upright to read. - PAGE_RIGHT = 2; - - // Orientation is aligned with page down. - // Turn the head 180 degrees from upright to read. - PAGE_DOWN = 3; - - // Orientation is aligned with page left. - // Turn the head 90 degrees counterclockwise from upright to read. - PAGE_LEFT = 4; - } - - // Text anchor indexing into the - // [Document.text][google.cloud.documentai.v1beta2.Document.text]. - TextAnchor text_anchor = 1; - - // Confidence of the current - // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout] within - // context of the object this layout is for. e.g. confidence can be for a - // single token, a table, a visual element, etc. depending on context. - // Range `[0, 1]`. - float confidence = 2; - - // The bounding polygon for the - // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout]. - BoundingPoly bounding_poly = 3; - - // Detected orientation for the - // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout]. - Orientation orientation = 4; - } - - // A block has a set of lines (collected into paragraphs) that have a - // common line-spacing and orientation. - message Block { - // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout] for - // [Block][google.cloud.documentai.v1beta2.Document.Page.Block]. - Layout layout = 1; - - // A list of detected languages together with confidence. - repeated DetectedLanguage detected_languages = 2; - - // The history of this annotation. - Provenance provenance = 3 [deprecated = true]; - } - - // A collection of lines that a human would perceive as a paragraph. - message Paragraph { - // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout] for - // [Paragraph][google.cloud.documentai.v1beta2.Document.Page.Paragraph]. - Layout layout = 1; - - // A list of detected languages together with confidence. - repeated DetectedLanguage detected_languages = 2; - - // The history of this annotation. - Provenance provenance = 3 [deprecated = true]; - } - - // A collection of tokens that a human would perceive as a line. - // Does not cross column boundaries, can be horizontal, vertical, etc. - message Line { - // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout] for - // [Line][google.cloud.documentai.v1beta2.Document.Page.Line]. - Layout layout = 1; - - // A list of detected languages together with confidence. - repeated DetectedLanguage detected_languages = 2; - - // The history of this annotation. - Provenance provenance = 3 [deprecated = true]; - } - - // A detected token. - message Token { - // Detected break at the end of a - // [Token][google.cloud.documentai.v1beta2.Document.Page.Token]. - message DetectedBreak { - // Enum to denote the type of break found. - enum Type { - // Unspecified break type. - TYPE_UNSPECIFIED = 0; - - // A single whitespace. - SPACE = 1; - - // A wider whitespace. - WIDE_SPACE = 2; - - // A hyphen that indicates that a token has been split across lines. - HYPHEN = 3; - } - - // Detected break type. - Type type = 1; - } - - // Font and other text style attributes. - message StyleInfo { - // Font size in points (`1` point is `¹⁄₇₂` inches). - int32 font_size = 1; - - // Font size in pixels, equal to _unrounded - // [font_size][google.cloud.documentai.v1beta2.Document.Page.Token.StyleInfo.font_size]_ - // * _resolution_ ÷ `72.0`. - double pixel_font_size = 2; - - // Letter spacing in points. - double letter_spacing = 3; - - // Name or style of the font. - string font_type = 4; - - // Whether the text is bold (equivalent to - // [font_weight][google.cloud.documentai.v1beta2.Document.Page.Token.StyleInfo.font_weight] - // is at least `700`). - bool bold = 5; - - // Whether the text is italic. - bool italic = 6; - - // Whether the text is underlined. - bool underlined = 7; - - // Whether the text is strikethrough. - bool strikeout = 8; - - // Whether the text is a subscript. - bool subscript = 9; - - // Whether the text is a superscript. - bool superscript = 10; - - // Whether the text is in small caps. - bool smallcaps = 11; - - // TrueType weight on a scale `100` (thin) to `1000` (ultra-heavy). - // Normal is `400`, bold is `700`. - int32 font_weight = 12; - - // Whether the text is handwritten. - bool handwritten = 13; - - // Color of the text. - google.type.Color text_color = 14; - - // Color of the background. - google.type.Color background_color = 15; - } - - // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout] for - // [Token][google.cloud.documentai.v1beta2.Document.Page.Token]. - Layout layout = 1; - - // Detected break at the end of a - // [Token][google.cloud.documentai.v1beta2.Document.Page.Token]. - DetectedBreak detected_break = 2; - - // A list of detected languages together with confidence. - repeated DetectedLanguage detected_languages = 3; - - // The history of this annotation. - Provenance provenance = 4 [deprecated = true]; - - // Text style attributes. - StyleInfo style_info = 5; - } - - // A detected symbol. - message Symbol { - // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout] for - // [Symbol][google.cloud.documentai.v1beta2.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 { - // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout] for - // [VisualElement][google.cloud.documentai.v1beta2.Document.Page.VisualElement]. - Layout layout = 1; - - // Type of the - // [VisualElement][google.cloud.documentai.v1beta2.Document.Page.VisualElement]. - string type = 2; - - // A list of detected languages together with confidence. - repeated DetectedLanguage detected_languages = 3; - } - - // A table representation similar to HTML table structure. - message Table { - // A row of table cells. - message TableRow { - // Cells that make up this row. - repeated TableCell cells = 1; - } - - // A cell representation inside the table. - message TableCell { - // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout] for - // [TableCell][google.cloud.documentai.v1beta2.Document.Page.Table.TableCell]. - Layout layout = 1; - - // How many rows this cell spans. - int32 row_span = 2; - - // How many columns this cell spans. - int32 col_span = 3; - - // A list of detected languages together with confidence. - repeated DetectedLanguage detected_languages = 4; - } - - // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout] for - // [Table][google.cloud.documentai.v1beta2.Document.Page.Table]. - Layout layout = 1; - - // Header rows of the table. - repeated TableRow header_rows = 2; - - // Body rows of the table. - repeated TableRow body_rows = 3; - - // A list of detected languages together with confidence. - repeated DetectedLanguage detected_languages = 4; - - // The history of this table. - Provenance provenance = 5 [deprecated = true]; - } - - // A form field detected on the page. - message FormField { - // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout] for the - // [FormField][google.cloud.documentai.v1beta2.Document.Page.FormField] - // name. e.g. `Address`, `Email`, `Grand total`, `Phone number`, etc. - Layout field_name = 1; - - // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout] for the - // [FormField][google.cloud.documentai.v1beta2.Document.Page.FormField] - // value. - Layout field_value = 2; - - // A list of detected languages for name together with confidence. - repeated DetectedLanguage name_detected_languages = 3; - - // A list of detected languages for value together with confidence. - repeated DetectedLanguage value_detected_languages = 4; - - // If the value is non-textual, this field represents the type. Current - // valid values are: - // - // - blank (this indicates the `field_value` is normal text) - // - `unfilled_checkbox` - // - `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.v1beta2.Document.Page.Layout] for - // [DetectedBarcode][google.cloud.documentai.v1beta2.Document.Page.DetectedBarcode]. - Layout layout = 1; - - // Detailed barcode information of the - // [DetectedBarcode][google.cloud.documentai.v1beta2.Document.Page.DetectedBarcode]. - Barcode barcode = 2; - } - - // Detected language for a structural component. - message DetectedLanguage { - // The [BCP-47 language - // code](https://www.unicode.org/reports/tr35/#Unicode_locale_identifier), - // such as `en-US` or `sr-Latn`. - string language_code = 1; - - // Confidence of detected language. Range `[0, 1]`. - float confidence = 2; - } - - // Image quality scores for the page image. - message ImageQualityScores { - // Image Quality Defects - message DetectedDefect { - // Name of the defect type. Supported values are: - // - // - `quality/defect_blurry` - // - `quality/defect_noisy` - // - `quality/defect_dark` - // - `quality/defect_faint` - // - `quality/defect_text_too_small` - // - `quality/defect_document_cutoff` - // - `quality/defect_text_cutoff` - // - `quality/defect_glare` - string type = 1; - - // Confidence of detected defect. Range `[0, 1]` where `1` indicates - // strong confidence that the defect exists. - float confidence = 2; - } - - // The overall quality score. Range `[0, 1]` where `1` is perfect quality. - float quality_score = 1; - - // A list of detected defects. - repeated DetectedDefect detected_defects = 2; - } - - // 1-based index for current - // [Page][google.cloud.documentai.v1beta2.Document.Page] in a parent - // [Document][google.cloud.documentai.v1beta2.Document]. Useful when a page - // is taken out of a [Document][google.cloud.documentai.v1beta2.Document] - // for individual processing. - int32 page_number = 1; - - // Rendered image for this page. This image is preprocessed to remove any - // skew, rotation, and distortions such that the annotation bounding boxes - // can be upright and axis-aligned. - Image image = 13; - - // Transformation matrices that were applied to the original document image - // to produce - // [Page.image][google.cloud.documentai.v1beta2.Document.Page.image]. - repeated Matrix transforms = 14; - - // Physical dimension of the page. - Dimension dimension = 2; - - // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout] for the - // page. - Layout layout = 3; - - // A list of detected languages together with confidence. - repeated DetectedLanguage detected_languages = 4; - - // A list of visually detected text blocks on the page. - // A block has a set of lines (collected into paragraphs) that have a common - // line-spacing and orientation. - repeated Block blocks = 5; - - // A list of visually detected text paragraphs on the page. - // A collection of lines that a human would perceive as a paragraph. - repeated Paragraph paragraphs = 6; - - // A list of visually detected text lines on the page. - // A collection of tokens that a human would perceive as a line. - repeated Line lines = 7; - - // A list of visually detected tokens on the page. - repeated Token tokens = 8; - - // A list of detected non-text visual elements e.g. checkbox, - // signature etc. on the page. - repeated VisualElement visual_elements = 9; - - // A list of visually detected tables on the page. - repeated Table tables = 10; - - // 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; - - // Image quality scores. - ImageQualityScores image_quality_scores = 17; - - // The history of this page. - Provenance provenance = 16 [deprecated = true]; - } - - // 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 { - // 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 - google.type.Money money_value = 2; - - // Date value. Includes year, month, day. See also: - // https://github.com/googleapis/googleapis/blob/master/google/type/date.proto - google.type.Date date_value = 3; - - // DateTime value. Includes date, time, and timezone. See also: - // https://github.com/googleapis/googleapis/blob/master/google/type/datetime.proto - google.type.DateTime datetime_value = 4; - - // Postal address. See also: - // https://github.com/googleapis/googleapis/blob/master/google/type/postal_address.proto - google.type.PostalAddress address_value = 5; - - // 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; - } - - // 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 `integer` 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) = OPTIONAL]; - } - - // Optional. Provenance of the entity. - // Text anchor indexing into the - // [Document.text][google.cloud.documentai.v1beta2.Document.text]. - TextAnchor text_anchor = 1 [(google.api.field_behavior) = OPTIONAL]; - - // Required. Entity type from a schema e.g. `Address`. - string type = 2 [(google.api.field_behavior) = REQUIRED]; - - // Optional. Text value of the entity e.g. `1600 Amphitheatre Pkwy`. - string mention_text = 3 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Deprecated. Use `id` field instead. - string mention_id = 4 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Confidence of detected Schema entity. Range `[0, 1]`. - float confidence = 5 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Represents the provenance of this entity wrt. the location on - // the page where it was found. - PageAnchor page_anchor = 6 [(google.api.field_behavior) = OPTIONAL]; - - // 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. Normalized entity value. Absent if the extracted value could - // not be converted or the type (e.g. address) is not supported for certain - // parsers. This field is also only populated for certain supported document - // types. - NormalizedValue normalized_value = 9 - [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Entities can be nested to form a hierarchical data structure - // representing the content in the document. - repeated Entity properties = 10 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. The history of this annotation. - Provenance provenance = 11 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Whether the entity will be redacted for de-identification - // purposes. - bool redacted = 12 [(google.api.field_behavior) = OPTIONAL]; - } - - // Relationship between - // [Entities][google.cloud.documentai.v1beta2.Document.Entity]. - message EntityRelation { - // Subject entity id. - string subject_id = 1; - - // Object entity id. - string object_id = 2; - - // Relationship description. - string relation = 3; - } - - // Text reference indexing into the - // [Document.text][google.cloud.documentai.v1beta2.Document.text]. - message TextAnchor { - // A text segment in the - // [Document.text][google.cloud.documentai.v1beta2.Document.text]. The - // indices may be out of bounds which indicate that the text extends into - // another document shard for large sharded documents. See - // [ShardInfo.text_offset][google.cloud.documentai.v1beta2.Document.ShardInfo.text_offset] - message TextSegment { - // [TextSegment][google.cloud.documentai.v1beta2.Document.TextAnchor.TextSegment] - // start UTF-8 char index in the - // [Document.text][google.cloud.documentai.v1beta2.Document.text]. - int64 start_index = 1; - - // [TextSegment][google.cloud.documentai.v1beta2.Document.TextAnchor.TextSegment] - // half open end UTF-8 char index in the - // [Document.text][google.cloud.documentai.v1beta2.Document.text]. - int64 end_index = 2; - } - - // 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. It is always - // populated for formFields. - string content = 2; - } - - // Referencing the visual context of the entity in the - // [Document.pages][google.cloud.documentai.v1beta2.Document.pages]. Page - // anchors can be cross-page, consist of multiple bounding polygons and - // optionally reference specific layout element types. - message PageAnchor { - // Represents a weak reference to a page element within a document. - message PageRef { - // The type of layout that is being referenced. - enum LayoutType { - // Layout Unspecified. - LAYOUT_TYPE_UNSPECIFIED = 0; - - // References a - // [Page.blocks][google.cloud.documentai.v1beta2.Document.Page.blocks] - // element. - BLOCK = 1; - - // References a - // [Page.paragraphs][google.cloud.documentai.v1beta2.Document.Page.paragraphs] - // element. - PARAGRAPH = 2; - - // References a - // [Page.lines][google.cloud.documentai.v1beta2.Document.Page.lines] - // element. - LINE = 3; - - // References a - // [Page.tokens][google.cloud.documentai.v1beta2.Document.Page.tokens] - // element. - TOKEN = 4; - - // References a - // [Page.visual_elements][google.cloud.documentai.v1beta2.Document.Page.visual_elements] - // element. - VISUAL_ELEMENT = 5; - - // Refrrences a - // [Page.tables][google.cloud.documentai.v1beta2.Document.Page.tables] - // element. - TABLE = 6; - - // References a - // [Page.form_fields][google.cloud.documentai.v1beta2.Document.Page.form_fields] - // element. - FORM_FIELD = 7; - } - - // Required. Index into the - // [Document.pages][google.cloud.documentai.v1beta2.Document.pages] - // element, for example using - // `[Document.pages][page_refs.page]` to locate the related page element. - // This field is skipped when its value is the default `0`. See - // https://developers.google.com/protocol-buffers/docs/proto3#json. - int64 page = 1 [(google.api.field_behavior) = REQUIRED]; - - // Optional. The type of the layout element that is being referenced if - // any. - LayoutType layout_type = 2 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Deprecated. Use - // [PageRef.bounding_poly][google.cloud.documentai.v1beta2.Document.PageAnchor.PageRef.bounding_poly] - // instead. - string layout_id = 3 - [deprecated = true, (google.api.field_behavior) = OPTIONAL]; - - // Optional. Identifies the bounding polygon of a layout element on the - // page. If `layout_type` is set, the bounding polygon must be exactly the - // same to the layout element it's referring to. - BoundingPoly bounding_poly = 4 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Confidence of detected page element, if applicable. Range - // `[0, 1]`. - float confidence = 5 [(google.api.field_behavior) = OPTIONAL]; - } - - // One or more references to visual page elements - repeated PageRef page_refs = 1; - } - - // Structure to identify provenance relationships between annotations in - // different revisions. - message Provenance { - // The parent element the current element is based on. Used for - // referencing/aligning, removal and replacement operations. - message Parent { - // The index of the index into current revision's parent_ids list. - int32 revision = 1; - - // 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. - int32 id = 2 [deprecated = true]; - } - - // If a processor or agent does an explicit operation on existing elements. - enum OperationType { - // 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. - ADD = 1; - - // Remove an element identified by `parent`. - REMOVE = 2; - - // Updates any fields within the given provenance scope of the message. It - // overwrites the fields rather than replacing them. Use this when you - // want to update a field value of an entity without also updating all the - // child properties. - UPDATE = 7; - - // Currently unused. Replace an element identified by `parent`. - REPLACE = 3; - - // Deprecated. Request human review for the element identified by - // `parent`. - EVAL_REQUESTED = 4 [deprecated = true]; - - // Deprecated. Element is reviewed and approved at human review, - // confidence will be set to 1.0. - EVAL_APPROVED = 5 [deprecated = true]; - - // Deprecated. Element is skipped in the validation process. - EVAL_SKIPPED = 6 [deprecated = true]; - } - - // The index of the revision that produced this element. - int32 revision = 1 [deprecated = true]; - - // The Id of this operation. Needs to be unique within the scope of the - // revision. - int32 id = 2 [deprecated = true]; - - // References to the original elements that are replaced. - repeated Parent parents = 3; - - // The type of provenance operation. - OperationType type = 4; - } - - // Contains past or forward revisions of this document. - message Revision { - // Human Review information of the document. - message HumanReview { - // Human review state. e.g. `requested`, `succeeded`, `rejected`. - string state = 1; - - // A message providing more details about the current state of processing. - // For example, the rejection reason when the state is `rejected`. - string state_message = 2; - } - - // Who/what made the change - oneof source { - // If the change was made by a person specify the name or id of that - // person. - string agent = 4; - - // If the annotation was made by processor identify the processor by its - // resource name. - string processor = 5; - } - - // Id of the revision, internally generated by doc proto storage. - // Unique within the context of the document. - string id = 1; - - // 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 [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, internally generated by - // doc proto storage at the time of create. - google.protobuf.Timestamp create_time = 3; - - // Human Review information of this revision. - HumanReview human_review = 6; - } - - // This message is used for text changes aka. OCR corrections. - message TextChange { - // Provenance of the correction. - // Text anchor indexing into the - // [Document.text][google.cloud.documentai.v1beta2.Document.text]. There - // can only be a single `TextAnchor.text_segments` element. If the start - // and end index of the text segment are the same, the text change is - // inserted before that index. - TextAnchor text_anchor = 1; - - // The text that replaces the text identified in the `text_anchor`. - string changed_text = 2; - - // The history of this annotation. - repeated Provenance provenance = 3 [deprecated = true]; - } - - // Original source document from the user. - oneof source { - // Optional. Currently supports Google Cloud Storage URI of the form - // `gs://bucket_name/object_name`. Object versioning is not supported. - // For more information, refer to [Google Cloud Storage Request - // URIs](https://cloud.google.com/storage/docs/reference-uris). - string uri = 1 [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Inline document content, represented as a stream of bytes. - // Note: As with all `bytes` fields, protobuffers use a pure binary - // representation, whereas JSON representations use base64. - bytes content = 2 [(google.api.field_behavior) = OPTIONAL]; - } - - // An IANA published [media type (MIME - // type)](https://www.iana.org/assignments/media-types/media-types.xhtml). - string mime_type = 3; - - // 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.v1beta2.Document.text]. - repeated Style text_styles = 5 [deprecated = true]; - - // Visual page layout for the - // [Document][google.cloud.documentai.v1beta2.Document]. - repeated Page pages = 6; - - // A list of entities detected on - // [Document.text][google.cloud.documentai.v1beta2.Document.text]. For - // document shards, entities in this list may cross shard boundaries. - repeated Entity entities = 7; - - // Placeholder. Relationship among - // [Document.entities][google.cloud.documentai.v1beta2.Document.entities]. - repeated EntityRelation entity_relations = 8; - - // Placeholder. A list of text corrections made to - // [Document.text][google.cloud.documentai.v1beta2.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 - // document. If the document is not sharded, this message is not specified. - ShardInfo shard_info = 9; - - // [Label][google.cloud.documentai.v1beta2.Document.Label]s for this document. - repeated Label labels = 11; - - // Any error that occurred while processing this document. - google.rpc.Status error = 10; - - // Placeholder. Revision history of this document. - repeated Revision revisions = 13; -} diff --git a/google/cloud/documentai/v1beta2/document_understanding.proto b/google/cloud/documentai/v1beta2/document_understanding.proto deleted file mode 100644 index 066f2a5af..000000000 --- a/google/cloud/documentai/v1beta2/document_understanding.proto +++ /dev/null @@ -1,339 +0,0 @@ -// Copyright 2024 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY 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.v1beta2; - -import "google/api/annotations.proto"; -import "google/api/client.proto"; -import "google/api/field_behavior.proto"; -import "google/cloud/documentai/v1beta2/document.proto"; -import "google/cloud/documentai/v1beta2/geometry.proto"; -import "google/longrunning/operations.proto"; -import "google/protobuf/timestamp.proto"; - -option csharp_namespace = "Google.Cloud.DocumentAI.V1Beta2"; -option go_package = "cloud.google.com/go/documentai/apiv1beta2/documentaipb;documentaipb"; -option java_multiple_files = true; -option java_outer_classname = "DocumentAiProto"; -option java_package = "com.google.cloud.documentai.v1beta2"; -option php_namespace = "Google\\Cloud\\DocumentAI\\V1beta2"; -option ruby_package = "Google::Cloud::DocumentAI::V1beta2"; - -// Service to parse structured information from unstructured or semi-structured -// documents using state-of-the-art Google AI such as natural language, -// computer vision, and translation. -service DocumentUnderstandingService { - option (google.api.default_host) = "documentai.googleapis.com"; - option (google.api.oauth_scopes) = - "https://www.googleapis.com/auth/cloud-platform"; - - // LRO endpoint to batch process many documents. The output is written - // to Cloud Storage as JSON in the [Document] format. - rpc BatchProcessDocuments(BatchProcessDocumentsRequest) - returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v1beta2/{parent=projects/*/locations/*}/documents:batchProcess" - body: "*" - additional_bindings { - post: "/v1beta2/{parent=projects/*}/documents:batchProcess" - body: "*" - } - }; - option (google.api.method_signature) = "requests"; - option (google.longrunning.operation_info) = { - response_type: "BatchProcessDocumentsResponse" - metadata_type: "OperationMetadata" - }; - } - - // Processes a single document. - rpc ProcessDocument(ProcessDocumentRequest) returns (Document) { - option (google.api.http) = { - post: "/v1beta2/{parent=projects/*/locations/*}/documents:process" - body: "*" - additional_bindings { - post: "/v1beta2/{parent=projects/*}/documents:process" - body: "*" - } - }; - } -} - -// Request to batch process documents as an asynchronous operation. The output -// is written to Cloud Storage as JSON in the [Document] format. -message BatchProcessDocumentsRequest { - // Required. Individual requests for each document. - repeated ProcessDocumentRequest requests = 1 - [(google.api.field_behavior) = 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 = 2; -} - -// Request to process one document. -message ProcessDocumentRequest { - // 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. - // This field is only populated when used in ProcessDocument method. - string parent = 9; - - // Required. Information about the input file. - InputConfig input_config = 1 [(google.api.field_behavior) = REQUIRED]; - - // The desired output location. This field is only needed in - // BatchProcessDocumentsRequest. - OutputConfig output_config = 2; - - // Specifies a known document type for deeper structure detection. Valid - // values are currently "general" and "invoice". If not provided, "general"\ - // is used as default. If any other value is given, the request is rejected. - string document_type = 3; - - // Controls table extraction behavior. If not specified, the system will - // decide reasonable defaults. - TableExtractionParams table_extraction_params = 4; - - // Controls form extraction behavior. If not specified, the system will - // decide reasonable defaults. - FormExtractionParams form_extraction_params = 5; - - // Controls entity extraction behavior. If not specified, the system will - // decide reasonable defaults. - EntityExtractionParams entity_extraction_params = 6; - - // Controls OCR behavior. If not specified, the system will decide reasonable - // defaults. - OcrParams ocr_params = 7; - - // Controls AutoML model prediction behavior. AutoMlParams cannot be used - // together with other Params. - AutoMlParams automl_params = 8; -} - -// Response to an batch document processing request. This is returned in -// the LRO Operation after the operation is complete. -message BatchProcessDocumentsResponse { - // Responses for each individual document. - repeated ProcessDocumentResponse responses = 1; -} - -// Response to a single document processing request. -message ProcessDocumentResponse { - // Information about the input file. This is the same as the corresponding - // input config in the request. - InputConfig input_config = 1; - - // The output location of the parsed responses. The responses are written to - // this location as JSON-serialized `Document` objects. - OutputConfig output_config = 2; -} - -// Parameters to control Optical Character Recognition (OCR) behavior. -message OcrParams { - // List of languages to use for OCR. In most cases, an empty value - // yields the best results since it enables automatic language detection. For - // languages based on the Latin alphabet, setting `language_hints` is not - // needed. In rare cases, when the language of the text in the image is known, - // setting a hint will help get better results (although it will be a - // significant hindrance if the hint is wrong). Document processing returns an - // error if one or more of the specified languages is not one of the - // supported languages. - repeated string language_hints = 1; -} - -// Parameters to control table extraction behavior. -message TableExtractionParams { - // Whether to enable table extraction. - bool enabled = 1; - - // Optional. Table bounding box hints that can be provided to complex cases - // which our algorithm cannot locate the table(s) in. - repeated TableBoundHint table_bound_hints = 2 - [(google.api.field_behavior) = OPTIONAL]; - - // Optional. Reserved for future use. - repeated string header_hints = 3 [(google.api.field_behavior) = OPTIONAL]; - - // Model version of the table extraction system. Default is "builtin/stable". - // Specify "builtin/latest" for the latest model. - string model_version = 4; -} - -// A hint for a table bounding box on the page for table parsing. -message TableBoundHint { - // Optional. Page number for multi-paged inputs this hint applies to. If not - // provided, this hint will apply to all pages by default. This value is - // 1-based. - int32 page_number = 1 [(google.api.field_behavior) = OPTIONAL]; - - // Bounding box hint for a table on this page. The coordinates must be - // normalized to [0,1] and the bounding box must be an axis-aligned rectangle. - BoundingPoly bounding_box = 2; -} - -// Parameters to control form extraction behavior. -message FormExtractionParams { - // Whether to enable form extraction. - bool enabled = 1; - - // Reserved for future use. - repeated KeyValuePairHint key_value_pair_hints = 2; - - // Model version of the form extraction system. Default is - // "builtin/stable". Specify "builtin/latest" for the latest model. - // For custom form models, specify: "custom/{model_name}". Model name - // format is "bucket_name/path/to/modeldir" corresponding to - // "gs://bucket_name/path/to/modeldir" where annotated examples are stored. - string model_version = 3; -} - -// Reserved for future use. -message KeyValuePairHint { - // The key text for the hint. - string key = 1; - - // Type of the value. This is case-insensitive, and could be one of: - // ADDRESS, LOCATION, ORGANIZATION, PERSON, PHONE_NUMBER, - // ID, NUMBER, EMAIL, PRICE, TERMS, DATE, NAME. Types not in this list will - // be ignored. - repeated string value_types = 2; -} - -// Parameters to control entity extraction behavior. -message EntityExtractionParams { - // Whether to enable entity extraction. - bool enabled = 1; - - // Model version of the entity extraction. Default is - // "builtin/stable". Specify "builtin/latest" for the latest model. - string model_version = 2; -} - -// Parameters to control AutoML model prediction behavior. -message AutoMlParams { - // Resource name of the AutoML model. - // - // Format: `projects/{project-id}/locations/{location-id}/models/{model-id}`. - string model = 1; -} - -// The desired input location and metadata. -message InputConfig { - // Required. - oneof source { - // The Google Cloud Storage location to read the input from. This must be a - // single file. - GcsSource gcs_source = 1; - - // Content in bytes, represented as a stream of bytes. - // Note: As with all `bytes` fields, proto buffer messages use a pure binary - // representation, whereas JSON representations use base64. - // - // This field only works for synchronous ProcessDocument method. - bytes contents = 3; - } - - // Required. Mimetype of the input. Current supported mimetypes are - // application/pdf, image/tiff, and image/gif. In addition, application/json - // type is supported for requests with - // [ProcessDocumentRequest.automl_params][google.cloud.documentai.v1beta2.ProcessDocumentRequest.automl_params] - // field set. The JSON file needs to be in - // [Document][google.cloud.documentai.v1beta2.Document] format. - string mime_type = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// The desired output location and metadata. -message OutputConfig { - // Required. - oneof destination { - // The Google Cloud Storage location to write the output to. - GcsDestination gcs_destination = 1; - } - - // The max number of pages to include into each output Document shard JSON on - // Google Cloud Storage. - // - // The valid range is [1, 100]. If not specified, the default value is 20. - // - // For example, for one pdf file with 100 pages, 100 parsed pages will be - // produced. If `pages_per_shard` = 20, then 5 Document shard JSON files each - // containing 20 parsed pages will be written under the prefix - // [OutputConfig.gcs_destination.uri][] and suffix pages-x-to-y.json where - // x and y are 1-indexed page numbers. - // - // Example GCS outputs with 157 pages and pages_per_shard = 50: - // - // <prefix>pages-001-to-050.json - // <prefix>pages-051-to-100.json - // <prefix>pages-101-to-150.json - // <prefix>pages-151-to-157.json - int32 pages_per_shard = 2; -} - -// The Google Cloud Storage location where the input file will be read from. -message GcsSource { - string uri = 1 [(google.api.field_behavior) = REQUIRED]; -} - -// The Google Cloud Storage location where the output file will be written to. -message GcsDestination { - string uri = 1 [(google.api.field_behavior) = REQUIRED]; -} - -// Contains metadata for the BatchProcessDocuments operation. -message OperationMetadata { - enum State { - // The default value. This value is used if the state is omitted. - STATE_UNSPECIFIED = 0; - - // Request is received. - ACCEPTED = 1; - - // Request operation is waiting for scheduling. - WAITING = 2; - - // Request is being processed. - RUNNING = 3; - - // The batch processing completed successfully. - SUCCEEDED = 4; - - // The batch processing was cancelled. - CANCELLED = 5; - - // The batch processing has failed. - FAILED = 6; - } - - // The state of the current batch processing. - State state = 1; - - // A message providing more details about the current state of processing. - 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; -} diff --git a/google/cloud/documentai/v1beta2/documentai_gapic.yaml b/google/cloud/documentai/v1beta2/documentai_gapic.yaml deleted file mode 100644 index 3a642c159..000000000 --- a/google/cloud/documentai/v1beta2/documentai_gapic.yaml +++ /dev/null @@ -1,16 +0,0 @@ -type: com.google.api.codegen.ConfigProto -config_schema_version: 2.0.0 -# The settings of generated code in a specific language. -language_settings: - python: - package_name: google.cloud.documentai_v1beta2.gapic - go: - package_name: cloud.google.com/go/documentai/apiv1beta2 - csharp: - package_name: Google.Cloud.DocumentAi.V1beta2 - ruby: - package_name: Google::Cloud::DocumentAi::V1beta2 - php: - package_name: Google\Cloud\DocumentAi\V1beta2 - nodejs: - package_name: documentai.v1beta2 diff --git a/google/cloud/documentai/v1beta2/documentai_v1beta2.yaml b/google/cloud/documentai/v1beta2/documentai_v1beta2.yaml deleted file mode 100644 index f86aacdc1..000000000 --- a/google/cloud/documentai/v1beta2/documentai_v1beta2.yaml +++ /dev/null @@ -1,71 +0,0 @@ -type: google.api.Service -config_version: 3 -name: documentai.googleapis.com -title: Cloud Document AI API - -apis: -- name: google.cloud.documentai.v1beta2.DocumentUnderstandingService -- name: google.cloud.location.Locations -- name: google.longrunning.Operations - -types: -- name: google.cloud.documentai.v1beta2.BatchProcessDocumentsResponse -- name: google.cloud.documentai.v1beta2.Document -- name: google.cloud.documentai.v1beta2.OperationMetadata - -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. - -http: - rules: - - selector: google.cloud.location.Locations.GetLocation - get: '/uiv1beta3/{name=projects/*/locations/*}' - - selector: google.cloud.location.Locations.ListLocations - get: '/uiv1beta3/{name=projects/*}/locations' - - selector: google.longrunning.Operations.CancelOperation - post: '/uiv1beta3/{name=projects/*/locations/*/operations/*}:cancel' - - selector: google.longrunning.Operations.GetOperation - get: '/v1beta2/{name=projects/*/operations/*}' - additional_bindings: - - get: '/v1beta2/{name=projects/*/locations/*/operations/*}' - - get: '/uiv1beta3/{name=projects/*/locations/*/operations/*}' - - selector: google.longrunning.Operations.ListOperations - get: '/uiv1beta3/{name=projects/*/locations/*/operations}' - -authentication: - rules: - - selector: google.cloud.documentai.v1beta2.DocumentUnderstandingService.BatchProcessDocuments - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform - - selector: google.cloud.documentai.v1beta2.DocumentUnderstandingService.ProcessDocument - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform - - selector: google.cloud.location.Locations.GetLocation - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform - - selector: google.cloud.location.Locations.ListLocations - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform - - selector: 'google.longrunning.Operations.*' - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform - -publishing: - documentation_uri: https://cloud.google.com/document-ai/docs - github_label: 'api: documentai' - organization: CLOUD - proto_reference_documentation_uri: https://cloud.google.com/document-ai/docs/reference/rpc diff --git a/google/cloud/documentai/v1beta2/documentai_v1beta2_grpc_service_config.json b/google/cloud/documentai/v1beta2/documentai_v1beta2_grpc_service_config.json deleted file mode 100644 index 6013260f6..000000000 --- a/google/cloud/documentai/v1beta2/documentai_v1beta2_grpc_service_config.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "methodConfig": [ - { - "name": [ - { - "service": "google.cloud.documentai.v1beta2.DocumentUnderstandingService", - "method": "BatchProcessDocuments" - }, - { - "service": "google.cloud.documentai.v1beta2.DocumentUnderstandingService", - "method": "ProcessDocument" - } - ], - "timeout": "120s", - "retryPolicy": { - "initialBackoff": "0.100s", - "maxBackoff": "60s", - "backoffMultiplier": 1.3, - "retryableStatusCodes": [ - "DEADLINE_EXCEEDED", - "UNAVAILABLE" - ] - } - } - ] -} diff --git a/google/cloud/documentai/v1beta2/geometry.proto b/google/cloud/documentai/v1beta2/geometry.proto deleted file mode 100644 index e6e6e7e7b..000000000 --- a/google/cloud/documentai/v1beta2/geometry.proto +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2024 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY 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.v1beta2; - -option csharp_namespace = "Google.Cloud.DocumentAI.V1Beta2"; -option go_package = "cloud.google.com/go/documentai/apiv1beta2/documentaipb;documentaipb"; -option java_multiple_files = true; -option java_outer_classname = "GeometryProto"; -option java_package = "com.google.cloud.documentai.v1beta2"; -option php_namespace = "Google\\Cloud\\DocumentAI\\V1beta2"; -option ruby_package = "Google::Cloud::DocumentAI::V1beta2"; - -// A vertex represents a 2D point in the image. -// NOTE: the vertex coordinates are in the same scale as the original image. -message Vertex { - // X coordinate. - int32 x = 1; - - // Y coordinate (starts from the top of the image). - int32 y = 2; -} - -// A vertex represents a 2D point in the image. -// NOTE: the normalized vertex coordinates are relative to the original image -// and range from 0 to 1. -message NormalizedVertex { - // X coordinate. - float x = 1; - - // Y coordinate (starts from the top of the image). - float y = 2; -} - -// A bounding polygon for the detected image annotation. -message BoundingPoly { - // The bounding polygon vertices. - repeated Vertex vertices = 1; - - // The bounding polygon normalized vertices. - repeated NormalizedVertex normalized_vertices = 2; -} diff --git a/google/cloud/documentai/v1beta3/dataset.proto b/google/cloud/documentai/v1beta3/dataset.proto index 8557023b1..220a3b42e 100644 --- a/google/cloud/documentai/v1beta3/dataset.proto +++ b/google/cloud/documentai/v1beta3/dataset.proto @@ -121,6 +121,12 @@ message Dataset { // Required. State of the dataset. Ignored when updating dataset. State state = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Document Identifier. @@ -168,6 +174,12 @@ message DatasetSchema { // Optional. Schema of the dataset. DocumentSchema document_schema = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Dataset documents that the batch operation will be applied to. diff --git a/google/cloud/documentai/v1beta3/document.proto b/google/cloud/documentai/v1beta3/document.proto index c905ee34b..e9eba1b6b 100644 --- a/google/cloud/documentai/v1beta3/document.proto +++ b/google/cloud/documentai/v1beta3/document.proto @@ -1031,9 +1031,7 @@ message Document { // ID of the chunk. string chunk_id = 1; - // DO NOT USE. - // List of all parsed documents layout source blocks used to generate the - // chunk. + // Unused. repeated string source_block_ids = 2; // Text content of the chunk. diff --git a/google/cloud/documentai/v1beta3/document_io.proto b/google/cloud/documentai/v1beta3/document_io.proto index edb1364b2..d0db0252f 100644 --- a/google/cloud/documentai/v1beta3/document_io.proto +++ b/google/cloud/documentai/v1beta3/document_io.proto @@ -66,7 +66,8 @@ message GcsPrefix { // The common config to specify a set of documents used as input. message BatchDocumentsInputConfig { - // The source. + // The source. Make sure that the caller of the API has storage.objects.get + // access to the buckets. oneof source { // The set of documents that match the specified Cloud Storage `gcs_prefix`. GcsPrefix gcs_prefix = 1; diff --git a/google/cloud/documentai/v1beta3/document_processor_service.proto b/google/cloud/documentai/v1beta3/document_processor_service.proto index d91d38ec9..b84d38643 100644 --- a/google/cloud/documentai/v1beta3/document_processor_service.proto +++ b/google/cloud/documentai/v1beta3/document_processor_service.proto @@ -213,6 +213,10 @@ service DocumentProcessorService { // Creates a processor from the // [ProcessorType][google.cloud.documentai.v1beta3.ProcessorType] provided. // The processor will be at `ENABLED` state by default after its creation. + // Note that this method requires the `documentai.processors.create` + // permission on the project, which is highly privileged. A user or service + // account with this permission can create new processors that can interact + // with any gcs bucket in your project. rpc CreateProcessor(CreateProcessorRequest) returns (Processor) { option (google.api.http) = { post: "/v1beta3/{parent=projects/*/locations/*}/processors" @@ -380,8 +384,9 @@ message ProcessOptions { // If a page range is set, only the given pages are extracted and processed // from the document. In the output document, // [Document.Page.page_number][google.cloud.documentai.v1beta3.Document.Page.page_number] - // refers to the page number in the original document. This configuration - // only applies to sync requests. + // refers to the page number in the original document. + // This configuration only applies to online processing with + // [ProcessDocument][google.cloud.documentai.v1beta3.DocumentProcessorService.ProcessDocument]. oneof page_range { // Which pages to process (1-indexed). IndividualPageSelector individual_page_selector = 5; @@ -467,6 +472,9 @@ message ProcessRequest { // characters, underscores, and dashes. International characters are allowed. // Label values are optional. Label keys must start with a letter. map<string, string> labels = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Option to remove images from the document. + bool imageless_mode = 11 [(google.api.field_behavior) = OPTIONAL]; } // The status of human review on a processed document. diff --git a/google/cloud/documentai/v1beta3/document_schema.proto b/google/cloud/documentai/v1beta3/document_schema.proto index f4b86ba0a..74f381e04 100644 --- a/google/cloud/documentai/v1beta3/document_schema.proto +++ b/google/cloud/documentai/v1beta3/document_schema.proto @@ -127,6 +127,10 @@ message DocumentSchema { // EntityType name. string name = 1; + // The description of the property. Could be used to provide more + // information about the property for model calls. + string description = 7; + // User defined name for the property. string display_name = 6; @@ -169,6 +173,10 @@ message DocumentSchema { // honored for backward compatibility. string name = 1; + // The description of the entity type. Could be used to provide more + // information about the entity type for model calls. + string description = 15; + // The entity type that this type is derived from. For now, one and only // one should be set. repeated string base_types = 2; diff --git a/google/cloud/documentai/v1beta3/document_service.proto b/google/cloud/documentai/v1beta3/document_service.proto index 06c1980f5..98633ff39 100644 --- a/google/cloud/documentai/v1beta3/document_service.proto +++ b/google/cloud/documentai/v1beta3/document_service.proto @@ -43,6 +43,11 @@ service DocumentService { "https://www.googleapis.com/auth/cloud-platform"; // Updates metadata associated with a dataset. + // Note that this method requires the + // `documentai.googleapis.com/datasets.update` permission on the project, + // which is highly privileged. A user or service account with this permission + // can create new processors that can interact with any gcs bucket in your + // project. rpc UpdateDataset(UpdateDatasetRequest) returns (google.longrunning.Operation) { option (google.api.http) = { diff --git a/google/cloud/documentai/v1beta3/documentai_v1beta3.yaml b/google/cloud/documentai/v1beta3/documentai_v1beta3.yaml index 379f2ff83..c08f95823 100644 --- a/google/cloud/documentai/v1beta3/documentai_v1beta3.yaml +++ b/google/cloud/documentai/v1beta3/documentai_v1beta3.yaml @@ -98,12 +98,29 @@ authentication: https://www.googleapis.com/auth/cloud-platform publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=1132231&template=1639002 documentation_uri: https://cloud.google.com/document-ai/docs + api_short_name: documentai github_label: 'api: documentai' organization: CLOUD library_settings: - version: google.cloud.documentai.v1beta3 + java_settings: + common: {} + cpp_settings: + common: {} + php_settings: + common: {} + python_settings: + common: {} + node_settings: + common: {} dotnet_settings: + common: {} ignored_resources: - documentai.googleapis.com/Location + ruby_settings: + common: {} + go_settings: + common: {} proto_reference_documentation_uri: https://cloud.google.com/document-ai/docs/reference/rpc diff --git a/google/cloud/documentai/v1beta3/documentai_v1beta3_grpc_service_config.json b/google/cloud/documentai/v1beta3/documentai_v1beta3_grpc_service_config.json index e002f3b34..3225e5a96 100644 --- a/google/cloud/documentai/v1beta3/documentai_v1beta3_grpc_service_config.json +++ b/google/cloud/documentai/v1beta3/documentai_v1beta3_grpc_service_config.json @@ -9,12 +9,14 @@ ], "timeout": "300s", "retryPolicy": { - "initialBackoff": "0.100s", - "maxBackoff": "60s", - "backoffMultiplier": 1.3, + "maxAttempts": 5, + "initialBackoff": "1.000s", + "maxBackoff": "90s", + "backoffMultiplier": 9.0, "retryableStatusCodes": [ "DEADLINE_EXCEEDED", - "UNAVAILABLE" + "UNAVAILABLE", + "RESOURCE_EXHAUSTED" ] } }, @@ -31,9 +33,10 @@ ], "timeout": "120s", "retryPolicy": { - "initialBackoff": "0.100s", + "maxAttempts": 5, + "initialBackoff": "1.000s", "maxBackoff": "60s", - "backoffMultiplier": 1.3, + "backoffMultiplier": 1.5, "retryableStatusCodes": [ "DEADLINE_EXCEEDED", "UNAVAILABLE" diff --git a/google/cloud/documentai/v1beta3/processor.proto b/google/cloud/documentai/v1beta3/processor.proto index 3ab2d2e59..ec053cf49 100644 --- a/google/cloud/documentai/v1beta3/processor.proto +++ b/google/cloud/documentai/v1beta3/processor.proto @@ -52,6 +52,52 @@ message ProcessorVersion { }]; } + // Information about Generative AI model-based processor versions. + message GenAiModelInfo { + // Information for a pretrained Google-managed foundation model. + message FoundationGenAiModelInfo { + // Whether finetuning is allowed for this base processor version. + bool finetuning_allowed = 1; + + // The minimum number of labeled documents in the training dataset + // required for finetuning. + int32 min_train_labeled_documents = 2; + } + + // Information for a custom Generative AI model created by the user. These + // are created with `Create New Version` in either the `Call foundation + // model` or `Fine tuning` tabs. + message CustomGenAiModelInfo { + // The type of custom model created by the user. + enum CustomModelType { + // The model type is unspecified. + CUSTOM_MODEL_TYPE_UNSPECIFIED = 0; + + // The model is a versioned foundation model. + VERSIONED_FOUNDATION = 1; + + // The model is a finetuned foundation model. + FINE_TUNED = 2; + } + + // The type of custom model created by the user. + CustomModelType custom_model_type = 1; + + // The base processor version ID for the custom model. + string base_processor_version_id = 2; + } + + // The processor version is either a pretrained Google-managed foundation + // model or a custom Generative AI model created by the user. + oneof model_info { + // Information for a pretrained Google-managed foundation model. + FoundationGenAiModelInfo foundation_gen_ai_model_info = 1; + + // Information for a custom Generative AI model created by the user. + CustomGenAiModelInfo custom_gen_ai_model_info = 2; + } + } + // The possible states of the processor version. enum State { // The processor version is in an unspecified state. @@ -128,6 +174,17 @@ message ProcessorVersion { // Output only. The model type of this processor version. ModelType model_type = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Information about Generative AI model-based processor + // versions. + GenAiModelInfo gen_ai_model_info = 18 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Contains the alias and the aliased resource name of processor version. @@ -224,4 +281,10 @@ message Processor { // The [KMS key](https://cloud.google.com/security-key-management) used for // encryption and decryption in CMEK scenarios. string kms_key_name = 8; + + // Output only. Reserved for future use. + bool satisfies_pzs = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reserved for future use. + bool satisfies_pzi = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/cloud/edgenetwork/v1/resources.proto b/google/cloud/edgenetwork/v1/resources.proto index 254dfade6..ff1d94012 100644 --- a/google/cloud/edgenetwork/v1/resources.proto +++ b/google/cloud/edgenetwork/v1/resources.proto @@ -127,10 +127,10 @@ message Subnet { // non-bonded connectivity to machines. BONDING_TYPE_UNSPECIFIED = 0; - // Single homed. + // Multi homed. BONDED = 1; - // Multi homed. + // Single homed. NON_BONDED = 2; } diff --git a/google/cloud/essentialcontacts/v1/service.proto b/google/cloud/essentialcontacts/v1/service.proto index cba12cca7..5cb2a3bd1 100644 --- a/google/cloud/essentialcontacts/v1/service.proto +++ b/google/cloud/essentialcontacts/v1/service.proto @@ -163,9 +163,10 @@ message Contact { // for a list of supported languages. string language_tag = 4 [(google.api.field_behavior) = REQUIRED]; - // The validity of the contact. A contact is considered valid if it is the - // correct recipient for notifications for a particular resource. - ValidationState validation_state = 8; + // Output only. The validity of the contact. A contact is considered valid if + // it is the correct recipient for notifications for a particular resource. + ValidationState validation_state = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; // The last time the validation_state was updated, either manually or // automatically. A contact is considered stale if its validation state was diff --git a/google/cloud/eventarc/logging/v1/BUILD.bazel b/google/cloud/eventarc/logging/v1/BUILD.bazel new file mode 100644 index 000000000..06b2a54f6 --- /dev/null +++ b/google/cloud/eventarc/logging/v1/BUILD.bazel @@ -0,0 +1,217 @@ +# This file was automatically generated by BuildFileGenerator + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "logging_proto", + srcs = [ + "enrollment_activity.proto", + "google_api_source_activity.proto", + "message_bus_activity.proto", + "pipeline_activity.proto", + ], + deps = [ + "//google/api:field_info_proto", + "//google/rpc:status_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_proto_library", + "java_gapic_assembly_gradle_pkg", +) + +java_proto_library( + name = "logging_java_proto", + deps = [":logging_proto"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-eventarc-logging-v1-java", + deps = [ + ":logging_proto", + ":logging_java_proto", + ], +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_proto_library", + "go_gapic_assembly_pkg", +) + +go_proto_library( + name = "logging_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/eventarc/logging/apiv1/loggingpb", + protos = [":logging_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/rpc:status_go_proto", + ], +) + +go_gapic_assembly_pkg( + name = "google-cloud-eventarc-logging-v1-go", + deps = [ + ":logging_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "moved_proto_library", + "py_grpc_library", + "py_proto_library", + "py_gapic_library", + "py_gapic_assembly_pkg", +) + +moved_proto_library( + name = "logging_moved_proto", + srcs = [":logging_proto"], + deps = [ + "//google/api:field_info_proto", + "//google/rpc:status_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"], +) + +py_gapic_library( + name = "logging_py_gapic", + srcs = [":logging_proto"], + rest_numeric_enums = False, + transport = "grpc+rest", +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "google-cloud-eventarc-logging-v1-py", + deps = [ + ":logging_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_proto_library", +) + +php_proto_library( + name = "logging_php_proto", + deps = [":logging_proto"], +) + +php_gapic_assembly_pkg( + name = "google-cloud-eventarc-logging-v1-php", + deps = [ + ":logging_php_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "logging_ruby_proto", + deps = [":logging_proto"], +) + +ruby_grpc_library( + name = "logging_ruby_grpc", + srcs = [":logging_proto"], + deps = [":logging_ruby_proto"], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_proto_library", + "csharp_gapic_assembly_pkg", +) + +csharp_proto_library( + name = "logging_csharp_proto", + deps = [":logging_proto"], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-eventarc-logging-v1-csharp", + package_name = "Google.Cloud.Eventarc.Logging.V1", + generate_nongapic_package = True, + deps = [ + ":logging_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "logging_cc_proto", + deps = [":logging_proto"], +) + +cc_grpc_library( + name = "logging_cc_grpc", + srcs = [":logging_proto"], + grpc_only = True, + deps = [":logging_cc_proto"], +) diff --git a/google/cloud/eventarc/logging/v1/README.md b/google/cloud/eventarc/logging/v1/README.md new file mode 100644 index 000000000..71ad45582 --- /dev/null +++ b/google/cloud/eventarc/logging/v1/README.md @@ -0,0 +1,5 @@ +# Eventarc API Logging Integration + +The proto files in this directory serve as documentation for the format of the logs for the [Eventarc API](https://cloud.google.com/eventarc/docs). +These are not currently published as libraries. (Libraries may be available in some languages where appropriate, but not to the same degree of coverage as the Google Cloud Client Libraries used to make API calls.) +Language-specific options may be added later, in order to facilitate library publication. diff --git a/google/cloud/eventarc/logging/v1/enrollment_activity.proto b/google/cloud/eventarc/logging/v1/enrollment_activity.proto new file mode 100644 index 000000000..b1675e4a8 --- /dev/null +++ b/google/cloud/eventarc/logging/v1/enrollment_activity.proto @@ -0,0 +1,62 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.eventarc.logging.v1; + +import "google/api/field_info.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Cloud.Eventarc.Logging.V1"; +option go_package = "cloud.google.com/go/eventarc/logging/apiv1/loggingpb;loggingpb"; +option java_multiple_files = true; +option java_outer_classname = "EnrollmentActivityProto"; +option java_package = "com.google.cloud.eventarc.logging.v1"; +option php_namespace = "Google\\Cloud\\Eventarc\\Logging\\V1"; +option ruby_package = "Google::Cloud::Eventarc::Logging::V1"; + +// Logged during the processing of an enrollment on an event in a message bus. +message EnrollmentActivity { + // Structured log message that is emitted when an event matches an enrollment. + message Matched { + // Informational details about the matched event. + string details = 1; + + // The destination this enrollment is matched to, such as the name of the + // pipeline. + string event_destination = 2; + + // Logged when the enrollment encounters an error. + google.rpc.Status error = 3; + } + + // The unique system generated ID associated with the event passed from the + // message bus. + string message_uid = 1 [(google.api.field_info).format = UUID4]; + + // The CloudEvent ID and source from the attributes of the event. + map<string, string> attributes = 2; + + // The point in time when the activity occurred. + google.protobuf.Timestamp activity_time = 3; + + // One of the activities that can be logged during the processing of an + // enrollment. + oneof activity { + // Logged when an event matches an enrollment. + Matched matched = 4; + } +} diff --git a/google/cloud/eventarc/logging/v1/google_api_source_activity.proto b/google/cloud/eventarc/logging/v1/google_api_source_activity.proto new file mode 100644 index 000000000..3a7176f7b --- /dev/null +++ b/google/cloud/eventarc/logging/v1/google_api_source_activity.proto @@ -0,0 +1,66 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.eventarc.logging.v1; + +import "google/api/field_info.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Cloud.Eventarc.Logging.V1"; +option go_package = "cloud.google.com/go/eventarc/logging/apiv1/loggingpb;loggingpb"; +option java_multiple_files = true; +option java_outer_classname = "GoogleApiEventPublishedActivityProto"; +option java_package = "com.google.cloud.eventarc.logging.v1"; +option php_namespace = "Google\\Cloud\\Eventarc\\Logging\\V1"; +option ruby_package = "Google::Cloud::Eventarc::Logging::V1"; + +// Logged during the processing of a Google API event being sent to a +// message bus. +message GoogleApiSourceActivity { + // Structured log message that is emitted when an event is published to a + // message bus. + message Published { + // The message bus associated with this GoogleApiEvent configuration. + string message_bus = 1; + + // The event provider that produced the event. + string event_provider = 2; + + // Any additional information about the event sent. + string details = 3; + + // Logged if the event encounters an error. + google.rpc.Status error = 4; + } + + // The unique system generated ID when a message bus receives an event. This + // ID is propagated throughout the request. + string message_uid = 1 [(google.api.field_info).format = UUID4]; + + // The CloudEvent ID and source from the attributes of the event. + map<string, string> attributes = 2; + + // The point in time when the activity occurred. + google.protobuf.Timestamp activity_time = 3; + + // One of the activities that can be logged during the processing of a Google + // API event. + oneof activity { + // Logged when an event is published to a message bus. + Published published = 4; + } +} diff --git a/google/cloud/eventarc/logging/v1/message_bus_activity.proto b/google/cloud/eventarc/logging/v1/message_bus_activity.proto new file mode 100644 index 000000000..dc28ff224 --- /dev/null +++ b/google/cloud/eventarc/logging/v1/message_bus_activity.proto @@ -0,0 +1,59 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.eventarc.logging.v1; + +import "google/api/field_info.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Cloud.Eventarc.Logging.V1"; +option go_package = "cloud.google.com/go/eventarc/logging/apiv1/loggingpb;loggingpb"; +option java_multiple_files = true; +option java_outer_classname = "MessageBusActivityProto"; +option java_package = "com.google.cloud.eventarc.logging.v1"; +option php_namespace = "Google\\Cloud\\Eventarc\\Logging\\V1"; +option ruby_package = "Google::Cloud::Eventarc::Logging::V1"; + +// Logged during the processing of an event published to a message bus. +message MessageBusActivity { + // Structured log message that is emitted when an event is received by a + // message bus. + message Received { + // Informational details about the event received. + string details = 4; + + // Logged when the enrollment encounters an error. + google.rpc.Status error = 5; + } + + // The unique system generated ID when a message bus receives an event. This + // ID is propagated throughout the request. + string message_uid = 1 [(google.api.field_info).format = UUID4]; + + // The CloudEvent ID and source from the attributes of the event. + map<string, string> attributes = 2; + + // The point in time when the activity occurred. + google.protobuf.Timestamp activity_time = 3; + + // One of the activities that can be logged during the processing of an event + // published to a message bus. + oneof activity { + // Logged when an event is received by a message bus. + Received received = 4; + } +} diff --git a/google/cloud/eventarc/logging/v1/pipeline_activity.proto b/google/cloud/eventarc/logging/v1/pipeline_activity.proto new file mode 100644 index 000000000..8985fba74 --- /dev/null +++ b/google/cloud/eventarc/logging/v1/pipeline_activity.proto @@ -0,0 +1,169 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.eventarc.logging.v1; + +import "google/api/field_info.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Cloud.Eventarc.Logging.V1"; +option go_package = "cloud.google.com/go/eventarc/logging/apiv1/loggingpb;loggingpb"; +option java_multiple_files = true; +option java_outer_classname = "PipelineActivityProto"; +option java_package = "com.google.cloud.eventarc.logging.v1"; +option php_namespace = "Google\\Cloud\\Eventarc\\Logging\\V1"; +option ruby_package = "Google::Cloud::Eventarc::Logging::V1"; + +// Logged during the processing of a message in a pipeline. +message PipelineActivity { + // Format of the payload. + enum PayloadFormat { + // Default value. This value is unused. + PAYLOAD_FORMAT_UNSPECIFIED = 0; + + // JSON payload format. + JSON = 1; + + // Proto payload format. + PROTO = 2; + + // Avro payload format. + AVRO = 3; + } + + // Structured log that is emitted when a message is received in this Pipeline + // (or an error encountered). + message MessageReceived { + // Informational details when a message is received from a source. + string details = 1; + + // Input payload format of the message. + PayloadFormat input_payload_format = 2; + + // Error encountered when receiving a message from a Channel, or if the + // message is malformed. + google.rpc.Status error = 3; + } + + // Structured log that is emitted when a message is transformed during + // mediation (or an error encountered) in a Pipeline. + message MessageTransformed { + // Informational details when a message is transformed during mediation. + string details = 1; + + // Error encountered when transforming a message. + google.rpc.Status error = 2; + } + + // Structured log that is emitted when a message is converted during + // mediation (or an error encountered) in a Pipeline. + message MessageConverted { + // Informational details when a message is converted during mediation. + string details = 1; + + // Input payload format of the message. + PayloadFormat input_payload_format = 2; + + // Output payload format of the message. + PayloadFormat output_payload_format = 3; + + // Error encountered when converting a message. + google.rpc.Status error = 4; + } + + // Structured log that is emitted when a message request is dispatched to a + // destination (or an error encountered) in a Pipeline. + message MessageRequestDispatched { + // Informational details when a message is dispatched to a destination. + string details = 1; + + // The destination where the event is sent to. + string destination = 2; + + // Error encountered before dispatching a message, e.g., malformed + // destination. + google.rpc.Status error = 3; + } + + // Structured log that is emitted when a message response (or error) is + // received from a destination for a message request that was dispatched + // earlier in a Pipeline. + message MessageResponseReceived { + // Enum to encode the retry decision for the message after the response is + // received. + enum RetryStatus { + // Default value. This value is unused. + RETRY_STATUS_UNSPECIFIED = 0; + + // The Pipeline will retry dispatching the message to the destination. + WILL_RETRY = 1; + + // The Pipeline will not retry this message anymore. + RETRY_EXHAUSTED = 2; + } + + // Informational details when a message response was received by the target, + // or when the request failed. + string details = 1; + + // The retry decision for the message after the response is received. + RetryStatus retry_status = 2; + + // The future time when the message request will be retried. Present if and + // only if the `retry_status` is `WILL_RETRY`. + google.protobuf.Timestamp retry_time = 3; + + // The HTTP response code received with the message response. + int32 http_response_code = 4; + + // Status of the message response received. + google.rpc.Status error = 5; + } + + // The unique system generated ID associated with the event passed from the + // message bus. + string message_uid = 1 [(google.api.field_info).format = UUID4]; + + // The CloudEvent ID and source from the attributes of the event. + map<string, string> attributes = 2; + + // The point in time when the activity occurred. + google.protobuf.Timestamp activity_time = 3; + + // Oneof for the different logging activities in a pipeline. + oneof activity { + // Logging when a message is received in this Pipeline (or an error + // encountered). + MessageReceived message_received = 4; + + // Logging when a message is transformed during mediation (or an error + // encountered). + MessageTransformed message_transformed = 5; + + // Logging when a message is converted during mediation (or an error + // encountered). + MessageConverted message_converted = 6; + + // Logging when a message request is dispatched to a destination (or an + // error encountered). + MessageRequestDispatched message_request_dispatched = 7; + + // Logging when a message response (or error) is received from a + // destination. + MessageResponseReceived message_response_received = 8; + } +} diff --git a/google/cloud/eventarc/publishing/v1/BUILD.bazel b/google/cloud/eventarc/publishing/v1/BUILD.bazel index a01d9fd65..7d840ef79 100644 --- a/google/cloud/eventarc/publishing/v1/BUILD.bazel +++ b/google/cloud/eventarc/publishing/v1/BUILD.bazel @@ -197,7 +197,7 @@ php_gapic_library( name = "publishing_php_gapic", srcs = [":publishing_proto_with_info"], grpc_service_config = "eventarcpublishing_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "eventarcpublishing_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/eventarc/v1/BUILD.bazel b/google/cloud/eventarc/v1/BUILD.bazel index 6bec0844b..40e38e792 100644 --- a/google/cloud/eventarc/v1/BUILD.bazel +++ b/google/cloud/eventarc/v1/BUILD.bazel @@ -229,7 +229,7 @@ php_gapic_library( name = "eventarc_php_gapic", srcs = [":eventarc_proto_with_info"], grpc_service_config = "eventarc_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "eventarc_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/filestore/v1/BUILD.bazel b/google/cloud/filestore/v1/BUILD.bazel index 8cd7b24de..6f00ec4d7 100644 --- a/google/cloud/filestore/v1/BUILD.bazel +++ b/google/cloud/filestore/v1/BUILD.bazel @@ -231,7 +231,7 @@ php_gapic_library( name = "filestore_php_gapic", srcs = [":filestore_proto_with_info"], grpc_service_config = "file_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "file_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/functions/v1/functions.proto b/google/cloud/functions/v1/functions.proto index 5ddc59fa8..ddbab46f9 100644 --- a/google/cloud/functions/v1/functions.proto +++ b/google/cloud/functions/v1/functions.proto @@ -266,7 +266,7 @@ message CloudFunction { // Security patches are only applied when a function is redeployed. message OnDeployUpdatePolicy { - // Output only. contains the runtime version which was used during latest + // Output only. Contains the runtime version which was used during latest // function deployment. string runtime_version = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -458,12 +458,12 @@ message CloudFunction { // field is only supported for Firebase function deployments. string source_token = 31 [(google.api.field_behavior) = INPUT_ONLY]; - // User managed repository created in Artifact Registry optionally with a - // customer managed encryption key. If specified, deployments will use - // Artifact Registry. If unspecified and the deployment is eligible to use - // Artifact Registry, GCF will create and use a repository named - // 'gcf-artifacts' for every deployed region. This is the repository to which - // the function docker image will be pushed after it is built by Cloud Build. + // User-managed repository created in Artifact Registry to which the + // function's Docker image will be pushed after it is built by Cloud Build. + // May optionally be encrypted with a customer-managed encryption key (CMEK). + // If unspecified and `docker_registry` is not explicitly set to + // `CONTAINER_REGISTRY`, GCF will create and use a default Artifact Registry + // repository named 'gcf-artifacts' in the region. // // It must match the pattern // `projects/{project}/locations/{location}/repositories/{repository}`. @@ -482,14 +482,17 @@ message CloudFunction { // unspecified or set to `ARTIFACT_REGISTRY`. DockerRegistry docker_registry = 35; - // Runtime update policy can be one of the following. + // This controls when security patches are applied to the runtime environment. oneof runtime_update_policy { - // See the comment next to this message for more details. AutomaticUpdatePolicy automatic_update_policy = 40; - // See the comment next to this message for more details. OnDeployUpdatePolicy on_deploy_update_policy = 41; } + + // A service account the user provides for use with Cloud Build. The format of + // this field is + // `projects/{projectId}/serviceAccounts/{serviceAccountEmail}`. + string build_service_account = 43; } // Describes SourceRepository, used to represent parameters related to @@ -507,7 +510,8 @@ message SourceRepository { // To refer to a specific fixed alias (tag): // `https://source.developers.google.com/projects/*/repos/*/fixed-aliases/*/paths/*` // - // You may omit `paths/*` if you want to use the main directory. + // You may omit `paths/*` if you want to use the main directory. The function + // response may add an empty `/paths/` to the URL. string url = 1; // Output only. The URL pointing to the hosted repository where the function @@ -538,7 +542,7 @@ message HttpsTrigger { SECURE_OPTIONAL = 2; } - // Output only. The deployed URL for the function. + // Output only. The deployed url for the function. string url = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // The security level for the function. diff --git a/google/cloud/functions/v2/BUILD.bazel b/google/cloud/functions/v2/BUILD.bazel index c13fe11a4..c81b24a5a 100644 --- a/google/cloud/functions/v2/BUILD.bazel +++ b/google/cloud/functions/v2/BUILD.bazel @@ -29,6 +29,7 @@ proto_library( "//google/api:field_behavior_proto", "//google/api:resource_proto", "//google/longrunning:operations_proto", + "//google/type:date_proto", "@com_google_protobuf//:any_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", @@ -130,6 +131,7 @@ go_proto_library( deps = [ "//google/api:annotations_go_proto", "//google/longrunning:longrunning_go_proto", + "//google/type:date_go_proto", ], ) @@ -225,7 +227,7 @@ php_gapic_library( name = "functions_php_gapic", srcs = [":functions_proto_with_info"], grpc_service_config = "functions_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "cloudfunctions_v2.yaml", transport = "grpc+rest", diff --git a/google/cloud/functions/v2/functions.proto b/google/cloud/functions/v2/functions.proto index 546782d7d..193666f1a 100644 --- a/google/cloud/functions/v2/functions.proto +++ b/google/cloud/functions/v2/functions.proto @@ -25,6 +25,7 @@ import "google/protobuf/any.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; +import "google/type/date.proto"; option go_package = "cloud.google.com/go/functions/apiv2/functionspb;functionspb"; option java_multiple_files = true; @@ -156,11 +157,11 @@ service FunctionService { // 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: + // When making a HTTP PUT request, specify this header: // // * `content-type: application/zip` // - // And this header SHOULD NOT be specified: + // Do not specify this header: // // * `Authorization: Bearer YOUR_TOKEN` rpc GenerateUploadUrl(GenerateUploadUrlRequest) @@ -193,6 +194,21 @@ service FunctionService { } } +// The type of the long running operation. +enum OperationType { + // Unspecified + OPERATIONTYPE_UNSPECIFIED = 0; + + // CreateFunction + CREATE_FUNCTION = 1; + + // UpdateFunction + UPDATE_FUNCTION = 2; + + // DeleteFunction + DELETE_FUNCTION = 3; +} + // The environment the function is hosted on. enum Environment { // Unspecified @@ -284,6 +300,14 @@ message Function { string kms_key_name = 25 [(google.api.resource_reference) = { type: "cloudkms.googleapis.com/CryptoKey" }]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The create timestamp of a Cloud Function. This is only + // applicable to 2nd Gen functions. + google.protobuf.Timestamp create_time = 28 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Informational messages about the state of the Cloud Function or Operation. @@ -329,6 +353,11 @@ message StorageSource { // Google Cloud Storage generation for the object. If the generation is // omitted, the latest generation will be used. int64 generation = 3; + + // When the specified storage bucket is a 1st gen function uploard url bucket, + // this field should be set as the generated upload url for 1st gen + // deployment. + string source_upload_url = 4; } // Location of the source in a Google Cloud Source Repository. @@ -382,6 +411,11 @@ message Source { // If provided, get the source from this location in a Cloud Source // Repository. RepoSource repo_source = 2; + + // If provided, get the source from GitHub repository. This option is valid + // only for GCF 1st Gen function. + // Example: https://github.com/<user>/<repo>/blob/<commit>/<path-to-code> + string git_uri = 3; } } @@ -395,6 +429,10 @@ message SourceProvenance { // A copy of the build's `source.repo_source`, if exists, with any // revisions resolved. RepoSource resolved_repo_source = 2; + + // A copy of the build's `source.git_uri`, if exists, with any commits + // resolved. + string git_uri = 3; } // Describes the Build step of the function that builds a container from the @@ -417,6 +455,13 @@ message BuildConfig { ARTIFACT_REGISTRY = 2; } + // This controls when security patches are applied to the runtime environment. + oneof runtime_update_policy { + AutomaticUpdatePolicy automatic_update_policy = 40; + + OnDeployUpdatePolicy on_deploy_update_policy = 41; + } + // Output only. The Cloud Build name of the latest successful deployment of // the function. string build = 1 [ @@ -471,16 +516,15 @@ message BuildConfig { // applicable to 1st Gen functions, 2nd Gen functions can only use Artifact // Registry. // - // 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. + // If unspecified, it defaults to `ARTIFACT_REGISTRY`. + // If `docker_repository` field is specified, this field should either be left + // unspecified or set to `ARTIFACT_REGISTRY`. DockerRegistry docker_registry = 10; - // 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' + // Repository in Artifact Registry to which the function docker image will be + // pushed after it is built by Cloud Build. If specified by user, it is + // created and managed by user with a customer managed encryption key. + // Otherwise, GCF will create and use a repository named 'gcf-artifacts' // for every deployed region. // // It must match the pattern @@ -492,6 +536,10 @@ message BuildConfig { string docker_repository = 7 [(google.api.resource_reference) = { type: "artifactregistry.googleapis.com/Repository" }]; + + // Service account to be used for building the container. The format of this + // field is `projects/{projectId}/serviceAccounts/{serviceAccountEmail}`. + string service_account = 27; } // Describes the Service being deployed. @@ -574,7 +622,7 @@ message ServiceConfig { // a full description. string available_memory = 13; - // [Preview] The number of CPUs used in a single container instance. + // The number of CPUs used in a single container instance. // Default value is calculated from available memory. // Supports the same values as Cloud Run, see // https://cloud.google.com/run/docs/reference/rest/v1/Container#resourcerequirements @@ -646,7 +694,7 @@ message ServiceConfig { // Output only. The name of service revision. string revision = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Preview] Sets the maximum number of concurrent requests that each instance + // Sets the maximum number of concurrent requests that each instance // can receive. Defaults to 1. int32 max_instance_request_concurrency = 20; @@ -655,6 +703,11 @@ message ServiceConfig { // trigger. By default https is optional for 1st Gen functions; 2nd Gen // functions are https ONLY. SecurityLevel security_level = 21; + + // Optional. The binary authorization policy to be checked when deploying the + // Cloud Run service. + string binary_authorization_policy = 23 + [(google.api.field_behavior) = OPTIONAL]; } // Configuration for a secret environment variable. It has the information @@ -790,6 +843,16 @@ message EventTrigger { type: "eventarc.googleapis.com/Channel" } ]; + + // Optional. The hostname of the service that 1st Gen function should be + // observed. + // + // If no string is provided, the default service implementing the API will + // be used. For example, `storage.googleapis.com` is the default for all + // event types in the `google.storage` namespace. + // + // The field is only applicable to 1st Gen functions. + string service = 9 [(google.api.field_behavior) = OPTIONAL]; } // Filters events based on exact matches on the CloudEvents attributes. @@ -816,6 +879,14 @@ message GetFunctionRequest { type: "cloudfunctions.googleapis.com/Function" } ]; + + // Optional. The version of the 1st gen function whose details should + // be obtained. The version of a 1st gen function is an integer that starts + // from 1 and gets incremented on redeployments. GCF may keep historical + // configs for old versions of 1st gen function. This field can be specified + // to fetch the historical configs. This field is valid only for GCF 1st gen + // function. + string revision = 2 [(google.api.field_behavior) = OPTIONAL]; } // Request for the `ListFunctions` method. @@ -897,8 +968,7 @@ message UpdateFunctionRequest { 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. + // If no field mask is provided, all fields will be updated. google.protobuf.FieldMask update_mask = 2; } @@ -942,6 +1012,12 @@ message GenerateUploadUrlRequest { string kms_key_name = 2 [(google.api.resource_reference) = { type: "cloudkms.googleapis.com/CryptoKey" }]; + + // The function environment the generated upload url will be used for. + // The upload url for 2nd Gen functions can also be used for 1st gen + // functions, but not vice versa. If not specified, 2nd generation-style + // upload URLs are generated. + Environment environment = 3; } // Response of `GenerateSourceUploadUrl` method. @@ -1016,6 +1092,12 @@ message ListRuntimesResponse { // The environment for the runtime. Environment environment = 4; + + // Deprecation date for the runtime. + google.type.Date deprecation_date = 6; + + // Decommission date for the runtime. + google.type.Date decommission_date = 7; } // The various stages that a runtime can be in. @@ -1046,6 +1128,17 @@ message ListRuntimesResponse { repeated Runtime runtimes = 1; } +// Security patches are applied automatically to the runtime without requiring +// the function to be redeployed. +message AutomaticUpdatePolicy {} + +// Security patches are only applied when a function is redeployed. +message OnDeployUpdatePolicy { + // Output only. contains the runtime version which was used during latest + // function deployment. + string runtime_version = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + // Represents the metadata of the long-running operation. message OperationMetadata { // The time the operation was created. @@ -1065,9 +1158,10 @@ message OperationMetadata { // Identifies whether the user has requested cancellation // of the operation. Operations that have successfully been cancelled - // have [Operation.error][] value with a - // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to - // `Code.CANCELLED`. + // have + // [google.longrunning.Operation.error][google.longrunning.Operation.error] + // value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, + // corresponding to `Code.CANCELLED`. bool cancel_requested = 6; // API version used to start the operation. @@ -1078,6 +1172,16 @@ message OperationMetadata { // Mechanism for reporting in-progress stages repeated Stage stages = 9; + + // An identifier for Firebase function sources. Disclaimer: This field is only + // supported for Firebase function deployments. + string source_token = 10; + + // The build name of the function for create and update operations. + string build_name = 13; + + // The operation type. + OperationType operation_type = 11; } // Extra GCF specific location information. diff --git a/google/cloud/functions/v2alpha/BUILD.bazel b/google/cloud/functions/v2alpha/BUILD.bazel index 9f72b3d58..be8abf837 100644 --- a/google/cloud/functions/v2alpha/BUILD.bazel +++ b/google/cloud/functions/v2alpha/BUILD.bazel @@ -9,10 +9,6 @@ # * 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", @@ -44,6 +40,11 @@ load( "ruby_proto_library", ) +############################################################################## +# Common +############################################################################## +load("@rules_proto//proto:defs.bzl", "proto_library") + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) @@ -58,6 +59,7 @@ proto_library( "//google/api:field_behavior_proto", "//google/api:resource_proto", "//google/longrunning:operations_proto", + "//google/type:date_proto", "@com_google_protobuf//:any_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", @@ -137,6 +139,7 @@ go_proto_library( deps = [ "//google/api:annotations_go_proto", "//google/longrunning:longrunning_go_proto", + "//google/type:date_go_proto", ], ) diff --git a/google/cloud/functions/v2alpha/functions.proto b/google/cloud/functions/v2alpha/functions.proto index 8b6484b5c..e5e37dd8d 100644 --- a/google/cloud/functions/v2alpha/functions.proto +++ b/google/cloud/functions/v2alpha/functions.proto @@ -25,6 +25,7 @@ import "google/protobuf/any.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; +import "google/type/date.proto"; option go_package = "cloud.google.com/go/functions/apiv2alpha/functionspb;functionspb"; option java_multiple_files = true; @@ -156,11 +157,11 @@ service FunctionService { // 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: + // When making a HTTP PUT request, specify this header: // // * `content-type: application/zip` // - // And this header SHOULD NOT be specified: + // Do not specify this header: // // * `Authorization: Bearer YOUR_TOKEN` rpc GenerateUploadUrl(GenerateUploadUrlRequest) @@ -193,6 +194,21 @@ service FunctionService { } } +// The type of the long running operation. +enum OperationType { + // Unspecified + OPERATIONTYPE_UNSPECIFIED = 0; + + // CreateFunction + CREATE_FUNCTION = 1; + + // UpdateFunction + UPDATE_FUNCTION = 2; + + // DeleteFunction + DELETE_FUNCTION = 3; +} + // The environment the function is hosted on. enum Environment { // Unspecified @@ -284,6 +300,14 @@ message Function { string kms_key_name = 25 [(google.api.resource_reference) = { type: "cloudkms.googleapis.com/CryptoKey" }]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The create timestamp of a Cloud Function. This is only + // applicable to 2nd Gen functions. + google.protobuf.Timestamp create_time = 28 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Informational messages about the state of the Cloud Function or Operation. @@ -329,6 +353,11 @@ message StorageSource { // Google Cloud Storage generation for the object. If the generation is // omitted, the latest generation will be used. int64 generation = 3; + + // When the specified storage bucket is a 1st gen function uploard url bucket, + // this field should be set as the generated upload url for 1st gen + // deployment. + string source_upload_url = 4; } // Location of the source in a Google Cloud Source Repository. @@ -382,6 +411,11 @@ message Source { // If provided, get the source from this location in a Cloud Source // Repository. RepoSource repo_source = 2; + + // If provided, get the source from GitHub repository. This option is valid + // only for GCF 1st Gen function. + // Example: https://github.com/<user>/<repo>/blob/<commit>/<path-to-code> + string git_uri = 3; } } @@ -395,6 +429,10 @@ message SourceProvenance { // A copy of the build's `source.repo_source`, if exists, with any // revisions resolved. RepoSource resolved_repo_source = 2; + + // A copy of the build's `source.git_uri`, if exists, with any commits + // resolved. + string git_uri = 3; } // Describes the Build step of the function that builds a container from the @@ -417,6 +455,13 @@ message BuildConfig { ARTIFACT_REGISTRY = 2; } + // This controls when security patches are applied to the runtime environment. + oneof runtime_update_policy { + AutomaticUpdatePolicy automatic_update_policy = 40; + + OnDeployUpdatePolicy on_deploy_update_policy = 41; + } + // Output only. The Cloud Build name of the latest successful deployment of // the function. string build = 1 [ @@ -471,16 +516,15 @@ message BuildConfig { // applicable to 1st Gen functions, 2nd Gen functions can only use Artifact // Registry. // - // 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. + // If unspecified, it defaults to `ARTIFACT_REGISTRY`. + // If `docker_repository` field is specified, this field should either be left + // unspecified or set to `ARTIFACT_REGISTRY`. DockerRegistry docker_registry = 10; - // 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' + // Repository in Artifact Registry to which the function docker image will be + // pushed after it is built by Cloud Build. If specified by user, it is + // created and managed by user with a customer managed encryption key. + // Otherwise, GCF will create and use a repository named 'gcf-artifacts' // for every deployed region. // // It must match the pattern @@ -492,6 +536,10 @@ message BuildConfig { string docker_repository = 7 [(google.api.resource_reference) = { type: "artifactregistry.googleapis.com/Repository" }]; + + // Service account to be used for building the container. The format of this + // field is `projects/{projectId}/serviceAccounts/{serviceAccountEmail}`. + string service_account = 27; } // Describes the Service being deployed. @@ -574,7 +622,7 @@ message ServiceConfig { // a full description. string available_memory = 13; - // [Preview] The number of CPUs used in a single container instance. + // The number of CPUs used in a single container instance. // Default value is calculated from available memory. // Supports the same values as Cloud Run, see // https://cloud.google.com/run/docs/reference/rest/v1/Container#resourcerequirements @@ -646,7 +694,7 @@ message ServiceConfig { // Output only. The name of service revision. string revision = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Preview] Sets the maximum number of concurrent requests that each instance + // Sets the maximum number of concurrent requests that each instance // can receive. Defaults to 1. int32 max_instance_request_concurrency = 20; @@ -655,6 +703,11 @@ message ServiceConfig { // trigger. By default https is optional for 1st Gen functions; 2nd Gen // functions are https ONLY. SecurityLevel security_level = 21; + + // Optional. The binary authorization policy to be checked when deploying the + // Cloud Run service. + string binary_authorization_policy = 23 + [(google.api.field_behavior) = OPTIONAL]; } // Configuration for a secret environment variable. It has the information @@ -790,6 +843,16 @@ message EventTrigger { type: "eventarc.googleapis.com/Channel" } ]; + + // Optional. The hostname of the service that 1st Gen function should be + // observed. + // + // If no string is provided, the default service implementing the API will + // be used. For example, `storage.googleapis.com` is the default for all + // event types in the `google.storage` namespace. + // + // The field is only applicable to 1st Gen functions. + string service = 9 [(google.api.field_behavior) = OPTIONAL]; } // Filters events based on exact matches on the CloudEvents attributes. @@ -816,6 +879,14 @@ message GetFunctionRequest { type: "cloudfunctions.googleapis.com/Function" } ]; + + // Optional. The optional version of the 1st gen function whose details should + // be obtained. The version of a 1st gen function is an integer that starts + // from 1 and gets incremented on redeployments. GCF may keep historical + // configs for old versions of 1st gen function. This field can be specified + // to fetch the historical configs. This field is valid only for GCF 1st gen + // function. + string revision = 2 [(google.api.field_behavior) = OPTIONAL]; } // Request for the `ListFunctions` method. @@ -897,8 +968,7 @@ message UpdateFunctionRequest { 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. + // If no field mask is provided, all fields will be updated. google.protobuf.FieldMask update_mask = 2; } @@ -942,6 +1012,12 @@ message GenerateUploadUrlRequest { string kms_key_name = 2 [(google.api.resource_reference) = { type: "cloudkms.googleapis.com/CryptoKey" }]; + + // The function environment the generated upload url will be used for. + // The upload url for 2nd Gen functions can also be used for 1st gen + // functions, but not vice versa. If not specified, 2nd generation-style + // upload URLs are generated. + Environment environment = 3; } // Response of `GenerateSourceUploadUrl` method. @@ -1016,6 +1092,12 @@ message ListRuntimesResponse { // The environment for the runtime. Environment environment = 4; + + // Deprecation date for the runtime. + google.type.Date deprecation_date = 6; + + // Decommission date for the runtime. + google.type.Date decommission_date = 7; } // The various stages that a runtime can be in. @@ -1046,6 +1128,17 @@ message ListRuntimesResponse { repeated Runtime runtimes = 1; } +// Security patches are applied automatically to the runtime without requiring +// the function to be redeployed. +message AutomaticUpdatePolicy {} + +// Security patches are only applied when a function is redeployed. +message OnDeployUpdatePolicy { + // Output only. contains the runtime version which was used during latest + // function deployment. + string runtime_version = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + // Represents the metadata of the long-running operation. message OperationMetadata { // The time the operation was created. @@ -1065,9 +1158,10 @@ message OperationMetadata { // Identifies whether the user has requested cancellation // of the operation. Operations that have successfully been cancelled - // have [Operation.error][] value with a - // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to - // `Code.CANCELLED`. + // have + // [google.longrunning.Operation.error][google.longrunning.Operation.error] + // value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, + // corresponding to `Code.CANCELLED`. bool cancel_requested = 6; // API version used to start the operation. @@ -1078,6 +1172,12 @@ message OperationMetadata { // Mechanism for reporting in-progress stages repeated Stage stages = 9; + + // The build name of the function for create and update operations. + string build_name = 13; + + // The operation type. + OperationType operation_type = 11; } // Extra GCF specific location information. diff --git a/google/cloud/functions/v2beta/BUILD.bazel b/google/cloud/functions/v2beta/BUILD.bazel index bf423e2de..a945819b6 100644 --- a/google/cloud/functions/v2beta/BUILD.bazel +++ b/google/cloud/functions/v2beta/BUILD.bazel @@ -9,10 +9,6 @@ # * 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", @@ -44,6 +40,11 @@ load( "ruby_proto_library", ) +############################################################################## +# Common +############################################################################## +load("@rules_proto//proto:defs.bzl", "proto_library") + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) @@ -58,6 +59,7 @@ proto_library( "//google/api:field_behavior_proto", "//google/api:resource_proto", "//google/longrunning:operations_proto", + "//google/type:date_proto", "@com_google_protobuf//:any_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", @@ -137,6 +139,7 @@ go_proto_library( deps = [ "//google/api:annotations_go_proto", "//google/longrunning:longrunning_go_proto", + "//google/type:date_go_proto", ], ) diff --git a/google/cloud/functions/v2beta/functions.proto b/google/cloud/functions/v2beta/functions.proto index aaadace26..7427075b7 100644 --- a/google/cloud/functions/v2beta/functions.proto +++ b/google/cloud/functions/v2beta/functions.proto @@ -25,6 +25,7 @@ import "google/protobuf/any.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; +import "google/type/date.proto"; option go_package = "cloud.google.com/go/functions/apiv2beta/functionspb;functionspb"; option java_multiple_files = true; @@ -156,11 +157,11 @@ service FunctionService { // 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: + // When making a HTTP PUT request, specify this header: // // * `content-type: application/zip` // - // And this header SHOULD NOT be specified: + // Do not specify this header: // // * `Authorization: Bearer YOUR_TOKEN` rpc GenerateUploadUrl(GenerateUploadUrlRequest) @@ -193,6 +194,21 @@ service FunctionService { } } +// The type of the long running operation. +enum OperationType { + // Unspecified + OPERATIONTYPE_UNSPECIFIED = 0; + + // CreateFunction + CREATE_FUNCTION = 1; + + // UpdateFunction + UPDATE_FUNCTION = 2; + + // DeleteFunction + DELETE_FUNCTION = 3; +} + // The environment the function is hosted on. enum Environment { // Unspecified @@ -284,6 +300,14 @@ message Function { string kms_key_name = 25 [(google.api.resource_reference) = { type: "cloudkms.googleapis.com/CryptoKey" }]; + + // Output only. Reserved for future use. + bool satisfies_pzs = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The create timestamp of a Cloud Function. This is only + // applicable to 2nd Gen functions. + google.protobuf.Timestamp create_time = 28 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Informational messages about the state of the Cloud Function or Operation. @@ -329,6 +353,11 @@ message StorageSource { // Google Cloud Storage generation for the object. If the generation is // omitted, the latest generation will be used. int64 generation = 3; + + // When the specified storage bucket is a 1st gen function uploard url bucket, + // this field should be set as the generated upload url for 1st gen + // deployment. + string source_upload_url = 4; } // Location of the source in a Google Cloud Source Repository. @@ -382,6 +411,11 @@ message Source { // If provided, get the source from this location in a Cloud Source // Repository. RepoSource repo_source = 2; + + // If provided, get the source from GitHub repository. This option is valid + // only for GCF 1st Gen function. + // Example: https://github.com/<user>/<repo>/blob/<commit>/<path-to-code> + string git_uri = 3; } } @@ -395,6 +429,10 @@ message SourceProvenance { // A copy of the build's `source.repo_source`, if exists, with any // revisions resolved. RepoSource resolved_repo_source = 2; + + // A copy of the build's `source.git_uri`, if exists, with any commits + // resolved. + string git_uri = 3; } // Describes the Build step of the function that builds a container from the @@ -417,6 +455,13 @@ message BuildConfig { ARTIFACT_REGISTRY = 2; } + // This controls when security patches are applied to the runtime environment. + oneof runtime_update_policy { + AutomaticUpdatePolicy automatic_update_policy = 40; + + OnDeployUpdatePolicy on_deploy_update_policy = 41; + } + // Output only. The Cloud Build name of the latest successful deployment of // the function. string build = 1 [ @@ -471,16 +516,15 @@ message BuildConfig { // applicable to 1st Gen functions, 2nd Gen functions can only use Artifact // Registry. // - // 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. + // If unspecified, it defaults to `ARTIFACT_REGISTRY`. + // If `docker_repository` field is specified, this field should either be left + // unspecified or set to `ARTIFACT_REGISTRY`. DockerRegistry docker_registry = 10; - // 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' + // Repository in Artifact Registry to which the function docker image will be + // pushed after it is built by Cloud Build. If specified by user, it is + // created and managed by user with a customer managed encryption key. + // Otherwise, GCF will create and use a repository named 'gcf-artifacts' // for every deployed region. // // It must match the pattern @@ -492,6 +536,10 @@ message BuildConfig { string docker_repository = 7 [(google.api.resource_reference) = { type: "artifactregistry.googleapis.com/Repository" }]; + + // Service account to be used for building the container. The format of this + // field is `projects/{projectId}/serviceAccounts/{serviceAccountEmail}`. + string service_account = 27; } // Describes the Service being deployed. @@ -574,7 +622,7 @@ message ServiceConfig { // a full description. string available_memory = 13; - // [Preview] The number of CPUs used in a single container instance. + // The number of CPUs used in a single container instance. // Default value is calculated from available memory. // Supports the same values as Cloud Run, see // https://cloud.google.com/run/docs/reference/rest/v1/Container#resourcerequirements @@ -646,7 +694,7 @@ message ServiceConfig { // Output only. The name of service revision. string revision = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Preview] Sets the maximum number of concurrent requests that each instance + // Sets the maximum number of concurrent requests that each instance // can receive. Defaults to 1. int32 max_instance_request_concurrency = 20; @@ -655,6 +703,11 @@ message ServiceConfig { // trigger. By default https is optional for 1st Gen functions; 2nd Gen // functions are https ONLY. SecurityLevel security_level = 21; + + // Optional. The binary authorization policy to be checked when deploying the + // Cloud Run service. + string binary_authorization_policy = 23 + [(google.api.field_behavior) = OPTIONAL]; } // Configuration for a secret environment variable. It has the information @@ -790,6 +843,16 @@ message EventTrigger { type: "eventarc.googleapis.com/Channel" } ]; + + // Optional. The hostname of the service that 1st Gen function should be + // observed. + // + // If no string is provided, the default service implementing the API will + // be used. For example, `storage.googleapis.com` is the default for all + // event types in the `google.storage` namespace. + // + // The field is only applicable to 1st Gen functions. + string service = 9 [(google.api.field_behavior) = OPTIONAL]; } // Filters events based on exact matches on the CloudEvents attributes. @@ -816,6 +879,14 @@ message GetFunctionRequest { type: "cloudfunctions.googleapis.com/Function" } ]; + + // Optional. The optional version of the 1st gen function whose details should + // be obtained. The version of a 1st gen function is an integer that starts + // from 1 and gets incremented on redeployments. GCF may keep historical + // configs for old versions of 1st gen function. This field can be specified + // to fetch the historical configs. This field is valid only for GCF 1st gen + // function. + string revision = 2 [(google.api.field_behavior) = OPTIONAL]; } // Request for the `ListFunctions` method. @@ -897,8 +968,7 @@ message UpdateFunctionRequest { 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. + // If no field mask is provided, all fields will be updated. google.protobuf.FieldMask update_mask = 2; } @@ -942,6 +1012,12 @@ message GenerateUploadUrlRequest { string kms_key_name = 2 [(google.api.resource_reference) = { type: "cloudkms.googleapis.com/CryptoKey" }]; + + // The function environment the generated upload url will be used for. + // The upload url for 2nd Gen functions can also be used for 1st gen + // functions, but not vice versa. If not specified, 2nd generation-style + // upload URLs are generated. + Environment environment = 3; } // Response of `GenerateSourceUploadUrl` method. @@ -1016,6 +1092,12 @@ message ListRuntimesResponse { // The environment for the runtime. Environment environment = 4; + + // Deprecation date for the runtime. + google.type.Date deprecation_date = 6; + + // Decommission date for the runtime. + google.type.Date decommission_date = 7; } // The various stages that a runtime can be in. @@ -1046,6 +1128,17 @@ message ListRuntimesResponse { repeated Runtime runtimes = 1; } +// Security patches are applied automatically to the runtime without requiring +// the function to be redeployed. +message AutomaticUpdatePolicy {} + +// Security patches are only applied when a function is redeployed. +message OnDeployUpdatePolicy { + // Output only. contains the runtime version which was used during latest + // function deployment. + string runtime_version = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + // Represents the metadata of the long-running operation. message OperationMetadata { // The time the operation was created. @@ -1065,9 +1158,10 @@ message OperationMetadata { // Identifies whether the user has requested cancellation // of the operation. Operations that have successfully been cancelled - // have [Operation.error][] value with a - // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to - // `Code.CANCELLED`. + // have + // [google.longrunning.Operation.error][google.longrunning.Operation.error] + // value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, + // corresponding to `Code.CANCELLED`. bool cancel_requested = 6; // API version used to start the operation. @@ -1078,6 +1172,12 @@ message OperationMetadata { // Mechanism for reporting in-progress stages repeated Stage stages = 9; + + // The build name of the function for create and update operations. + string build_name = 13; + + // The operation type. + OperationType operation_type = 11; } // Extra GCF specific location information. diff --git a/google/cloud/gdchardwaremanagement/v1alpha/gdchardwaremanagement_v1alpha_grpc_service_config.json b/google/cloud/gdchardwaremanagement/v1alpha/gdchardwaremanagement_v1alpha_grpc_service_config.json index ded97410c..71828d1bb 100644 --- a/google/cloud/gdchardwaremanagement/v1alpha/gdchardwaremanagement_v1alpha_grpc_service_config.json +++ b/google/cloud/gdchardwaremanagement/v1alpha/gdchardwaremanagement_v1alpha_grpc_service_config.json @@ -4,6 +4,7 @@ { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "DeleteHardware" }, { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "DeleteHardwareGroup" }, { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "DeleteOrder" }, + { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "DeleteSite" }, { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "DeleteZone" }, { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "GetChangeLogEntry" }, { "service": "google.cloud.gdchardwaremanagement.v1alpha.GDCHardwareManagement", "method": "GetComment" }, diff --git a/google/cloud/gdchardwaremanagement/v1alpha/resources.proto b/google/cloud/gdchardwaremanagement/v1alpha/resources.proto index 86ff44fea..9110689a0 100644 --- a/google/cloud/gdchardwaremanagement/v1alpha/resources.proto +++ b/google/cloud/gdchardwaremanagement/v1alpha/resources.proto @@ -46,6 +46,21 @@ enum PowerSupply { POWER_SUPPLY_DC = 2; } +// Entity is used to denote an organization or party. +enum Entity { + // Entity is unspecified. + ENTITY_UNSPECIFIED = 0; + + // Google. + GOOGLE = 1; + + // Customer. + CUSTOMER = 2; + + // Vendor. + VENDOR = 3; +} + // An order for GDC hardware. message Order { option (google.api.resource) = { @@ -66,6 +81,10 @@ message Order { // Order has been submitted to Google. SUBMITTED = 2; + // All information required from the customer for fulfillment of the order + // is complete. + INFO_COMPLETE = 12; + // Order has been accepted by Google. ACCEPTED = 3; @@ -212,12 +231,18 @@ message Site { OrganizationContact organization_contact = 5 [(google.api.field_behavior) = REQUIRED]; - // Required. A URL to the Google Maps address location of the site. + // Optional. A URL to the Google Maps address location of the site. // An example value is `https://goo.gl/maps/xxxxxxxxx`. - string google_maps_pin_uri = 6 [(google.api.field_behavior) = REQUIRED]; + string google_maps_pin_uri = 6 [(google.api.field_behavior) = OPTIONAL]; // Optional. The time periods when the site is accessible. // If this field is empty, the site is accessible at all times. + // + // This field is used by Google to schedule the initial installation as well + // as any later hardware maintenance. You may update this at any time. For + // example, if the initial installation is requested during off-hours but + // maintenance should be performed during regular business hours, you should + // update the access times after initial installation is complete. repeated TimePeriod access_times = 26 [(google.api.field_behavior) = OPTIONAL]; @@ -228,6 +253,10 @@ message Site { // - any special process or approval required to move the equipment // - whether a representative will be available during site visits string notes = 27 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Customer defined identifier for this Site. This can be used to + // identify the site in the customer's own systems. + string customer_site_id = 28 [(google.api.field_behavior) = OPTIONAL]; } // A group of hardware that is part of the same order, has the same SKU, and is @@ -328,6 +357,68 @@ message Hardware { singular: "hardware" }; + // Message to describe the MAC address of a machine. + message MacAddress { + // Enum for the different types of MAC address. + enum AddressType { + // Unspecified address type. + ADDRESS_TYPE_UNSPECIFIED = 0; + + // Address of a network interface card. + NIC = 1; + + // Address of a baseboard management controller. + BMC = 2; + + // Address of a virtual interface. + VIRTUAL = 3; + } + + // Output only. Address string. + string address = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Address type for this MAC address. + AddressType type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Information about individual disks on a machine. + message DiskInfo { + // Output only. Disk manufacturer. + string manufacturer = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Disk slot number. + int32 slot = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Disk serial number. + string serial_number = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Disk PSID. + string psid = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Disk part number. + string part_number = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Disk model number. + string model_number = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Information about individual machines vendors will provide during turnup. + message MachineInfo { + // Output only. Machine service tag. + string service_tag = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Each associated MAC address. + repeated MacAddress mac_addresses = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Machine name. + string name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Information for each disk installed. + repeated DiskInfo disk_infos = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + // Valid states for hardware. enum State { // State of the Hardware is unspecified. @@ -431,9 +522,9 @@ message Hardware { } ]; - // Optional. Requested installation date for this hardware. This is - // auto-populated when the order is accepted, if the hardware's HardwareGroup - // specifies this. It can also be filled in by the customer. + // Optional. Requested installation date for this hardware. If not specified, + // this is auto-populated from the order's fulfillment_time upon submission or + // from the HardwareGroup's requested_installation_date upon order acceptance. google.type.Date requested_installation_date = 16 [(google.api.field_behavior) = OPTIONAL]; @@ -441,6 +532,10 @@ message Hardware { // Google. google.type.Date actual_installation_date = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Per machine asset information needed for turnup. + repeated MachineInfo machine_infos = 20 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // A comment on an order. @@ -473,6 +568,14 @@ message Comment { // Required. Text of this comment. The length of text must be <= 1000 // characters. string text = 5 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Timestamp of the first time this comment was viewed by the + // customer. If the comment wasn't viewed then this timestamp will be unset. + google.protobuf.Timestamp customer_viewed_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The entity the author belongs to. + Entity author_entity = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; } // A log entry of a change made to an order. @@ -637,6 +740,10 @@ message Zone { // Output only. Globally unique identifier generated for this Edge Zone. string globally_unique_id = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Subscription configurations for this zone. + repeated SubscriptionConfig subscription_configs = 13 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Contact information of the customer organization. @@ -813,9 +920,9 @@ message HardwareInstallationInfo { FOUR_POST = 2; } - // Optional. Location of the rack in the site e.g. Floor 2, Room 201, Row 7, + // Required. Location of the rack in the site e.g. Floor 2, Room 201, Row 7, // Rack 3. - string rack_location = 1 [(google.api.field_behavior) = OPTIONAL]; + string rack_location = 1 [(google.api.field_behavior) = REQUIRED]; // Required. Distance from the power outlet in meters. int32 power_distance_meters = 2 [(google.api.field_behavior) = REQUIRED]; @@ -942,3 +1049,40 @@ message HardwareLocation { // If unset, this location is assumed to be the entire rack. repeated RackSpace rack_space = 3 [(google.api.field_behavior) = OPTIONAL]; } + +// A message to store a subscription configuration. +message SubscriptionConfig { + // Enum to represent the state of the subscription. + enum SubscriptionState { + // State is unspecified. + SUBSCRIPTION_STATE_UNSPECIFIED = 0; + + // Active state means that the subscription has been created successfully + // and billing is happening. + ACTIVE = 1; + + // Inactive means that the subscription has been created successfully, but + // billing has not started yet. + INACTIVE = 2; + + // The subscription is in an erroneous state. + ERROR = 3; + + // The subscription state failed to be retrieved. This may be a transient + // issue. The user should retry the request. + FAILED_TO_RETRIEVE = 4; + + // The subscription has been completed, because it has reached the end date. + COMPLETED = 5; + } + + // Output only. The unique identifier of the subscription. + string subscription_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Google Cloud Billing ID that the subscription is created + // under. + string billing_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The current state of the subscription. + SubscriptionState state = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/gdchardwaremanagement/v1alpha/service.proto b/google/cloud/gdchardwaremanagement/v1alpha/service.proto index 572436ccf..6a2cd9d79 100644 --- a/google/cloud/gdchardwaremanagement/v1alpha/service.proto +++ b/google/cloud/gdchardwaremanagement/v1alpha/service.proto @@ -150,6 +150,18 @@ service GDCHardwareManagement { }; } + // Deletes a site. + rpc DeleteSite(DeleteSiteRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1alpha/{name=projects/*/locations/*/sites/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + // Lists hardware groups in a given order. rpc ListHardwareGroups(ListHardwareGroupsRequest) returns (ListHardwareGroupsResponse) { @@ -296,6 +308,18 @@ service GDCHardwareManagement { }; } + // Record Action on a Comment. If the Action specified in the request is READ, + // the viewed time in the comment is set to the time the request was received. + // If the comment is already marked as read, subsequent calls will be ignored. + // If the Action is UNREAD, the viewed time is cleared from the comment. + rpc RecordActionOnComment(RecordActionOnCommentRequest) returns (Comment) { + option (google.api.http) = { + post: "/v1alpha/{name=projects/*/locations/*/orders/*/comments/*}:recordAction" + body: "*" + }; + option (google.api.method_signature) = "name,action_type"; + } + // Lists the changes made to an order. rpc ListChangeLogEntries(ListChangeLogEntriesRequest) returns (ListChangeLogEntriesResponse) { @@ -402,6 +426,10 @@ service GDCHardwareManagement { message ListOrdersRequest { // Required. The project and location to list orders in. // Format: `projects/{project}/locations/{location}` + // + // To list orders across all locations, substitute `-` (the hyphen or + // dash character) for the location and check the unreachable field in + // the response message. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -431,7 +459,8 @@ message ListOrdersResponse { // A token identifying a page of results the server should return. string next_page_token = 2; - // Locations that could not be reached. + // Locations that could not be reached. Only used for queries to the wildcard + // location `-`. If non-empty, it indicates that the results are incomplete. repeated string unreachable = 3; } @@ -516,6 +545,30 @@ message DeleteOrderRequest { // A request to submit an order. message SubmitOrderRequest { + // Valid types of submit order request. + enum Type { + // Request type is unspecified. This should not be used. + TYPE_UNSPECIFIED = 0; + + // Use this request type to submit your order and initiate conversation with + // Google. After this submission, you will not be able to modify the number + // or SKU of your ordered hardware. Please note that this order will not be + // ready for fulfillment yet until you provide more information, such as + // zone network configuration, hardware physical and installation + // information, etc. + // If you are submitting an order for a SKU type of RACK, please use this + // request type, as additional information will be required outside of the + // API. + INFO_PENDING = 1; + + // Use this request type if and when you are ready to submit your order for + // fulfillment. In addition to the information required for `INFO_PENDING`, + // the order must contain all required information, such as zone network + // configuration, hardware physical and installation information, etc. + // Further changes to any order information will no longer be allowed. + INFO_COMPLETE = 2; + } + // Required. The name of the order. // Format: `projects/{project}/locations/{location}/orders/{order}` string name = 1 [ @@ -528,12 +581,20 @@ message SubmitOrderRequest { // Optional. An optional unique identifier for this request. See // [AIP-155](https://google.aip.dev/155). string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Type of this request. If unset, the request type is assumed to be + // `INFO_PENDING`. + Type type = 3 [(google.api.field_behavior) = OPTIONAL]; } // A request to list sites. message ListSitesRequest { // Required. The project and location to list sites in. // Format: `projects/{project}/locations/{location}` + // + // To list sites across all locations, substitute `-` (the hyphen or + // dash character) for the location and check the unreachable field in + // the response message. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -563,7 +624,8 @@ message ListSitesResponse { // A token identifying a page of results the server should return. string next_page_token = 2; - // Locations that could not be reached. + // Locations that could not be reached. Only used for queries to the wildcard + // location `-`. If non-empty, it indicates that the results are incomplete. repeated string unreachable = 3; } @@ -625,6 +687,25 @@ message UpdateSiteRequest { string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; } +// A request to delete a site. +message DeleteSiteRequest { + // Required. The name of the site. + // Format: `projects/{project}/locations/{location}/sites/{site}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gdchardwaremanagement.googleapis.com/Site" + } + ]; + + // Optional. An optional unique identifier for this request. See + // [AIP-155](https://google.aip.dev/155). + string request_id = 2 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + // A request to list hardware groups. message ListHardwareGroupsRequest { // Required. The order to list hardware groups in. @@ -743,6 +824,10 @@ message DeleteHardwareGroupRequest { message ListHardwareRequest { // Required. The project and location to list hardware in. // Format: `projects/{project}/locations/{location}` + // + // To list hardware across all locations, substitute `-` (the hyphen or + // dash character) for the location and check the unreachable field in + // the response message. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -772,7 +857,8 @@ message ListHardwareResponse { // A token identifying a page of results the server should return. string next_page_token = 2; - // Locations that could not be reached. + // Locations that could not be reached. Only used for queries to the wildcard + // location `-`. If non-empty, it indicates that the results are incomplete. repeated string unreachable = 3; } @@ -928,6 +1014,34 @@ message CreateCommentRequest { string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; } +// A request to record an action on a comment. +message RecordActionOnCommentRequest { + // Valid action types of Comment. + enum ActionType { + // Action is unspecified. + ACTION_TYPE_UNSPECIFIED = 0; + + // Mark comment as read. + READ = 1; + + // Mark comment as unread. + UNREAD = 2; + } + + // Required. The name of the comment. + // Format: + // `projects/{project}/locations/{location}/orders/{order}/comments/{comment}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "gdchardwaremanagement.googleapis.com/Comment" + } + ]; + + // Required. The action type of the recorded action. + ActionType action_type = 2 [(google.api.field_behavior) = REQUIRED]; +} + // A request to list change log entries. message ListChangeLogEntriesRequest { // Required. The order to list change log entries for. @@ -982,6 +1096,10 @@ message GetChangeLogEntryRequest { message ListSkusRequest { // Required. The project and location to list SKUs in. // Format: `projects/{project}/locations/{location}` + // + // To list SKUs across all locations, substitute `-` (the hyphen or + // dash character) for the location and check the unreachable field in + // the response message. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1011,7 +1129,8 @@ message ListSkusResponse { // A token identifying a page of results the server should return. string next_page_token = 2; - // Locations that could not be reached. + // Locations that could not be reached. Only used for queries to the wildcard + // location `-`. If non-empty, it indicates that the results are incomplete. repeated string unreachable = 3; } @@ -1031,6 +1150,10 @@ message GetSkuRequest { message ListZonesRequest { // Required. The project and location to list zones in. // Format: `projects/{project}/locations/{location}` + // + // To list zones across all locations, substitute `-` (the hyphen or + // dash character) for the location and check the unreachable field in + // the response message. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1060,7 +1183,8 @@ message ListZonesResponse { // A token identifying a page of results the server should return. string next_page_token = 2; - // Locations that could not be reached. + // Locations that could not be reached. Only used for queries to the wildcard + // location `-`. If non-empty, it indicates that the results are incomplete. repeated string unreachable = 3; } @@ -1151,11 +1275,16 @@ message DeleteZoneRequest { message SignalZoneStateRequest { // Valid state signals for a zone. enum StateSignal { + option allow_alias = true; + // State signal of the zone is unspecified. STATE_SIGNAL_UNSPECIFIED = 0; // The Zone is ready for site turnup. - READY_FOR_SITE_TURNUP = 1; + FACTORY_TURNUP_CHECKS_PASSED = 1; + + // The Zone is ready for site turnup. Deprecated, but not deleted. + READY_FOR_SITE_TURNUP = 1 [deprecated = true]; // The Zone failed in factory turnup checks. FACTORY_TURNUP_CHECKS_FAILED = 2; diff --git a/google/cloud/gkeconnect/gateway/v1/BUILD.bazel b/google/cloud/gkeconnect/gateway/v1/BUILD.bazel index 94bca53f4..2b5b3a7d5 100644 --- a/google/cloud/gkeconnect/gateway/v1/BUILD.bazel +++ b/google/cloud/gkeconnect/gateway/v1/BUILD.bazel @@ -9,31 +9,47 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "gateway_proto", srcs = [ - "gateway.proto", + "control.proto", ], deps = [ "//google/api:annotations_proto", "//google/api:client_proto", - "//google/api:httpbody_proto", + "//google/api:field_behavior_proto", + ], +) + +proto_library_with_info( + name = "gateway_proto_with_info", + deps = [ + ":gateway_proto", + "//google/cloud:common_resources_proto", ], ) ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", "java_grpc_library", "java_proto_library", ) @@ -49,11 +65,53 @@ java_grpc_library( deps = [":gateway_java_proto"], ) +java_gapic_library( + name = "gateway_java_gapic", + srcs = [":gateway_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "connectgateway_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "connectgateway_v1.yaml", + test_deps = [ + ":gateway_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":gateway_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "gateway_java_gapic_test_suite", + test_classes = [ + "com.google.cloud.gkeconnect.gateway.v1.GatewayControlClientHttpJsonTest", + "com.google.cloud.gkeconnect.gateway.v1.GatewayControlClientTest", + ], + runtime_deps = [":gateway_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-gkeconnect-gateway-v1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":gateway_java_gapic", + ":gateway_java_grpc", + ":gateway_java_proto", + ":gateway_proto", + ], +) + ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", "go_proto_library", ) @@ -64,46 +122,84 @@ go_proto_library( protos = [":gateway_proto"], deps = [ "//google/api:annotations_go_proto", - "//google/api:httpbody_go_proto", + ], +) + +go_gapic_library( + name = "gateway_go_gapic", + srcs = [":gateway_proto_with_info"], + grpc_service_config = "connectgateway_v1_grpc_service_config.json", + importpath = "cloud.google.com/go/gkeconnect/gateway/apiv1;gateway", + metadata = True, + release_level = "beta", + rest_numeric_enums = True, + service_yaml = "connectgateway_v1.yaml", + transport = "grpc+rest", + deps = [ + ":gateway_go_proto", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-gkeconnect-gateway-v1-go", + deps = [ + ":gateway_go_gapic", + ":gateway_go_gapic_srcjar-metadata.srcjar", + ":gateway_go_gapic_srcjar-snippets.srcjar", + ":gateway_go_gapic_srcjar-test.srcjar", + ":gateway_go_proto", ], ) ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", - "moved_proto_library", - "py_grpc_library", - "py_proto_library", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", ) -moved_proto_library( - name = "gateway_moved_proto", +py_gapic_library( + name = "gateway_py_gapic", srcs = [":gateway_proto"], - deps = [ - "//google/api:annotations_proto", - "//google/api:client_proto", - "//google/api:httpbody_proto", - ], + grpc_service_config = "connectgateway_v1_grpc_service_config.json", + opt_args = ["warehouse-package-name=google-cloud-gke-connect-gateway"], + rest_numeric_enums = True, + service_yaml = "connectgateway_v1.yaml", + transport = "grpc+rest", + deps = [], ) -py_proto_library( - name = "gateway_py_proto", - deps = [":gateway_moved_proto"], +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"], ) -py_grpc_library( - name = "gateway_py_grpc", - srcs = [":gateway_moved_proto"], - deps = [":gateway_py_proto"], +# Open Source Packages +py_gapic_assembly_pkg( + name = "gkeconnect-gateway-v1-py", + deps = [ + ":gateway_py_gapic", + ], ) ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", "php_proto_library", ) @@ -112,15 +208,67 @@ php_proto_library( deps = [":gateway_proto"], ) +php_gapic_library( + name = "gateway_php_gapic", + srcs = [":gateway_proto_with_info"], + grpc_service_config = "connectgateway_v1_grpc_service_config.json", + migration_mode = "NEW_SURFACE_ONLY", + rest_numeric_enums = True, + service_yaml = "connectgateway_v1.yaml", + transport = "grpc+rest", + deps = [ + ":gateway_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-gkeconnect-gateway-v1-php", + deps = [ + ":gateway_php_gapic", + ":gateway_php_proto", + ], +) + ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "gateway_nodejs_gapic", + package_name = "@google-cloud/gateway", + src = ":gateway_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "connectgateway_v1_grpc_service_config.json", + package = "google.cloud.gkeconnect.gateway.v1", + rest_numeric_enums = True, + service_yaml = "connectgateway_v1.yaml", + transport = "grpc+rest", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "gkeconnect-gateway-v1-nodejs", + deps = [ + ":gateway_nodejs_gapic", + ":gateway_proto", + ], +) ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", "ruby_grpc_library", "ruby_proto_library", ) @@ -136,17 +284,47 @@ ruby_grpc_library( deps = [":gateway_ruby_proto"], ) +ruby_cloud_gapic_library( + name = "gateway_ruby_gapic", + srcs = [":gateway_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-gke_connect-gateway-v1", + ], + grpc_service_config = "connectgateway_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "connectgateway_v1.yaml", + transport = "grpc+rest", + deps = [ + ":gateway_ruby_grpc", + ":gateway_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-gkeconnect-gateway-v1-ruby", + deps = [ + ":gateway_ruby_gapic", + ":gateway_ruby_grpc", + ":gateway_ruby_proto", + ], +) + ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", "csharp_grpc_library", "csharp_proto_library", ) csharp_proto_library( name = "gateway_csharp_proto", + extra_opts = [], deps = [":gateway_proto"], ) @@ -156,9 +334,34 @@ csharp_grpc_library( deps = [":gateway_csharp_proto"], ) +csharp_gapic_library( + name = "gateway_csharp_gapic", + srcs = [":gateway_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "connectgateway_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "connectgateway_v1.yaml", + transport = "grpc+rest", + deps = [ + ":gateway_csharp_grpc", + ":gateway_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-gkeconnect-gateway-v1-csharp", + deps = [ + ":gateway_csharp_gapic", + ":gateway_csharp_grpc", + ":gateway_csharp_proto", + ], +) + ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/google/cloud/gkeconnect/gateway/v1/connectgateway_v1.yaml b/google/cloud/gkeconnect/gateway/v1/connectgateway_v1.yaml index d7084e76c..cc9eb02d9 100644 --- a/google/cloud/gkeconnect/gateway/v1/connectgateway_v1.yaml +++ b/google/cloud/gkeconnect/gateway/v1/connectgateway_v1.yaml @@ -4,9 +4,59 @@ name: connectgateway.googleapis.com title: Connect Gateway API apis: -- name: google.cloud.gkeconnect.gateway.v1.GatewayService +- name: google.cloud.gkeconnect.gateway.v1.GatewayControl documentation: summary: |- The Connect Gateway service allows connectivity from external parties to connected Kubernetes clusters. + +authentication: + rules: + - selector: google.cloud.gkeconnect.gateway.v1.GatewayControl.GenerateCredentials + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=1618911 + documentation_uri: https://cloud.google.com/kubernetes-engine/enterprise/multicluster-management/gateway + api_short_name: connectgateway + github_label: 'api: connectgateway' + doc_tag_prefix: connectgateway + organization: CLOUD + library_settings: + - version: google.cloud.gkeconnect.gateway.v1 + launch_stage: GA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + cpp_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER diff --git a/google/cloud/gkeconnect/gateway/v1beta1/connectgw_grpc_service_config.json b/google/cloud/gkeconnect/gateway/v1/connectgateway_v1_grpc_service_config.json similarity index 70% rename from google/cloud/gkeconnect/gateway/v1beta1/connectgw_grpc_service_config.json rename to google/cloud/gkeconnect/gateway/v1/connectgateway_v1_grpc_service_config.json index 4d4c208db..06f31582c 100644 --- a/google/cloud/gkeconnect/gateway/v1beta1/connectgw_grpc_service_config.json +++ b/google/cloud/gkeconnect/gateway/v1/connectgateway_v1_grpc_service_config.json @@ -1,7 +1,7 @@ { "methodConfig": [{ "name": [ - { "service": "google.cloud/gkeconnect.gateway.v1beta1.GatewayService" } + { "service": "google.cloud.gkeconnect.gateway.v1.GatewayControl", "method": "GenerateCredentials" } ], "timeout": "60s", "retryPolicy": { diff --git a/google/cloud/gkeconnect/gateway/v1/control.proto b/google/cloud/gkeconnect/gateway/v1/control.proto new file mode 100644 index 000000000..cef058441 --- /dev/null +++ b/google/cloud/gkeconnect/gateway/v1/control.proto @@ -0,0 +1,95 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.gkeconnect.gateway.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Cloud.GkeConnect.Gateway.V1"; +option go_package = "cloud.google.com/go/gkeconnect/gateway/apiv1/gatewaypb;gatewaypb"; +option java_multiple_files = true; +option java_outer_classname = "ControlProto"; +option java_package = "com.google.cloud.gkeconnect.gateway.v1"; +option php_namespace = "Google\\Cloud\\GkeConnect\\Gateway\\V1"; +option ruby_package = "Google::Cloud::GkeConnect::Gateway::V1"; + +// GatewayControl is the control plane API for Connect Gateway. +service GatewayControl { + option (google.api.default_host) = "connectgateway.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // GenerateCredentials provides connection information that allows a user to + // access the specified membership using Connect Gateway. + rpc GenerateCredentials(GenerateCredentialsRequest) + returns (GenerateCredentialsResponse) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/memberships/*}:generateCredentials" + }; + } +} + +// A request for connection information for a particular membership. +message GenerateCredentialsRequest { + // Operating systems requiring specialized kubeconfigs. + enum OperatingSystem { + // Generates a kubeconfig that works for all operating systems not defined + // below. + OPERATING_SYSTEM_UNSPECIFIED = 0; + + // Generates a kubeconfig that is specifically designed to work with + // Windows. + OPERATING_SYSTEM_WINDOWS = 1; + } + + // Required. The Fleet membership resource. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Whether to force the use of Connect Agent-based transport. + // + // This will return a configuration that uses Connect Agent as the underlying + // transport mechanism for cluster types that would otherwise have used a + // different transport. Requires that Connect Agent be installed on the + // cluster. Setting this field to false is equivalent to not setting it. + bool force_use_agent = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Connect Gateway version to be used in the resulting + // configuration. + // + // Leave this field blank to let the server choose the version (recommended). + string version = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The namespace to use in the kubeconfig context. + // + // If this field is specified, the server will set the `namespace` field in + // kubeconfig context. If not specified, the `namespace` field is omitted. + string kubernetes_namespace = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The operating system where the kubeconfig will be used. + OperatingSystem operating_system = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Connection information for a particular membership. +message GenerateCredentialsResponse { + // A full YAML kubeconfig in serialized format. + bytes kubeconfig = 1; + + // The generated URI of the cluster as accessed through the Connect Gateway + // API. + string endpoint = 2; +} diff --git a/google/cloud/gkeconnect/gateway/v1/gateway.proto b/google/cloud/gkeconnect/gateway/v1/gateway.proto deleted file mode 100644 index 71dab3db2..000000000 --- a/google/cloud/gkeconnect/gateway/v1/gateway.proto +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2024 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.cloud.gkeconnect.gateway.v1; - -import "google/api/client.proto"; - -option csharp_namespace = "Google.Cloud.GkeConnect.Gateway.V1"; -option go_package = "cloud.google.com/go/gkeconnect/gateway/apiv1/gatewaypb;gatewaypb"; -option java_multiple_files = true; -option java_outer_classname = "GatewayProto"; -option java_package = "com.google.cloud.gkeconnect.gateway.v1"; -option php_namespace = "Google\\Cloud\\GkeConnect\\Gateway\\V1"; -option ruby_package = "Google::Cloud::GkeConnect::Gateway::V1"; - -// Gateway service is a public API which works as a Kubernetes resource model -// proxy between end users and registered Kubernetes clusters. Each RPC in this -// service matches with an HTTP verb. End user will initiate kubectl commands -// against the Gateway service, and Gateway service will forward user requests -// to clusters. -service GatewayService { - option (google.api.default_host) = "connectgateway.googleapis.com"; -} diff --git a/google/cloud/gkeconnect/gateway/v1alpha1/connectgateway_v1alpha1.yaml b/google/cloud/gkeconnect/gateway/v1alpha1/connectgateway_v1alpha1.yaml deleted file mode 100644 index 6b202823c..000000000 --- a/google/cloud/gkeconnect/gateway/v1alpha1/connectgateway_v1alpha1.yaml +++ /dev/null @@ -1,12 +0,0 @@ -type: google.api.Service -config_version: 3 -name: connectgateway.googleapis.com -title: Connect Gateway API - -apis: -- name: google.cloud.gkeconnect.gateway.v1alpha1.GatewayService - -documentation: - summary: |- - The Connect Gateway service allows connectivity from external parties to - connected Kubernetes clusters. diff --git a/google/cloud/gkeconnect/gateway/v1alpha1/gateway.proto b/google/cloud/gkeconnect/gateway/v1alpha1/gateway.proto deleted file mode 100644 index baab61205..000000000 --- a/google/cloud/gkeconnect/gateway/v1alpha1/gateway.proto +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2024 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.cloud.gkeconnect.gateway.v1alpha1; - -import "google/api/client.proto"; - -option csharp_namespace = "Google.Cloud.GkeConnect.Gateway.V1Alpha1"; -option go_package = "cloud.google.com/go/gkeconnect/gateway/apiv1alpha1/gatewaypb;gatewaypb"; -option java_multiple_files = true; -option java_outer_classname = "GatewayProto"; -option java_package = "com.google.cloud.gkeconnect.gateway.v1alpha1"; -option php_namespace = "Google\\Cloud\\GkeConnect\\Gateway\\V1alpha1"; -option ruby_package = "Google::Cloud::GkeConnect::Gateway::V1alpha1"; - -// Gateway service is a public API which works as a Kubernetes resource model -// proxy between end users and registered Kubernetes clusters. Each RPC in this -// service matches with an HTTP verb. End user will initiate kubectl commands -// against the Gateway service, and Gateway service will forward user requests -// to clusters. -service GatewayService { - option (google.api.default_host) = "connectgateway.googleapis.com"; -} diff --git a/google/cloud/gkeconnect/gateway/v1beta1/BUILD.bazel b/google/cloud/gkeconnect/gateway/v1beta1/BUILD.bazel index 0ea53379c..38f287d9c 100644 --- a/google/cloud/gkeconnect/gateway/v1beta1/BUILD.bazel +++ b/google/cloud/gkeconnect/gateway/v1beta1/BUILD.bazel @@ -9,24 +9,27 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "gateway_proto", srcs = [ - "gateway.proto", + "control.proto", ], deps = [ "//google/api:annotations_proto", "//google/api:client_proto", - "//google/api:httpbody_proto", + "//google/api:field_behavior_proto", ], ) @@ -41,6 +44,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -64,7 +68,8 @@ java_grpc_library( java_gapic_library( name = "gateway_java_gapic", srcs = [":gateway_proto_with_info"], - grpc_service_config = "connectgw_grpc_service_config.json", + gapic_yaml = None, + grpc_service_config = "connectgateway_v1beta1_grpc_service_config.json", rest_numeric_enums = False, service_yaml = "connectgateway_v1beta1.yaml", test_deps = [ @@ -80,7 +85,7 @@ java_gapic_library( java_gapic_test( name = "gateway_java_gapic_test_suite", test_classes = [ - "com.google.cloud.gkeconnect.gateway.v1beta1.GatewayServiceClientTest", + "com.google.cloud.gkeconnect.gateway.v1beta1.GatewayControlClientTest", ], runtime_deps = [":gateway_java_gapic_test"], ) @@ -101,6 +106,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -115,14 +121,13 @@ go_proto_library( protos = [":gateway_proto"], deps = [ "//google/api:annotations_go_proto", - "//google/api:httpbody_go_proto", ], ) go_gapic_library( name = "gateway_go_gapic", srcs = [":gateway_proto_with_info"], - grpc_service_config = "connectgw_grpc_service_config.json", + grpc_service_config = "connectgateway_v1beta1_grpc_service_config.json", importpath = "cloud.google.com/go/gkeconnect/gateway/apiv1beta1;gateway", metadata = True, release_level = "beta", @@ -131,7 +136,6 @@ go_gapic_library( transport = "grpc+rest", deps = [ ":gateway_go_proto", - "//google/api:httpbody_go_proto", ], ) @@ -150,6 +154,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -160,11 +165,13 @@ load( py_gapic_library( name = "gateway_py_gapic", srcs = [":gateway_proto"], - grpc_service_config = "connectgw_grpc_service_config.json", + grpc_service_config = "connectgateway_v1beta1_grpc_service_config.json", opt_args = ["warehouse-package-name=google-cloud-gke-connect-gateway"], rest_numeric_enums = False, service_yaml = "connectgateway_v1beta1.yaml", transport = "grpc", + deps = [ + ], ) py_test( @@ -188,6 +195,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -203,12 +211,14 @@ php_proto_library( php_gapic_library( name = "gateway_php_gapic", srcs = [":gateway_proto_with_info"], - grpc_service_config = "connectgw_grpc_service_config.json", + grpc_service_config = "connectgateway_v1beta1_grpc_service_config.json", migration_mode = "MIGRATING", rest_numeric_enums = False, service_yaml = "connectgateway_v1beta1.yaml", transport = "grpc+rest", - deps = [":gateway_php_proto"], + deps = [ + ":gateway_php_proto", + ], ) # Open Source Packages @@ -223,6 +233,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -234,7 +245,7 @@ nodejs_gapic_library( package_name = "@google-cloud/gke-connect-gateway", src = ":gateway_proto_with_info", extra_protoc_parameters = ["metadata"], - grpc_service_config = "connectgw_grpc_service_config.json", + grpc_service_config = "connectgateway_v1beta1_grpc_service_config.json", package = "google.cloud.gkeconnect.gateway.v1beta1", rest_numeric_enums = False, service_yaml = "connectgateway_v1beta1.yaml", @@ -253,6 +264,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -276,17 +288,18 @@ ruby_cloud_gapic_library( name = "gateway_ruby_gapic", srcs = [":gateway_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-gke_connect-gateway-v1beta1", - "ruby-cloud-env-prefix=GKE_CONNECT_GATEWAY", - "ruby-cloud-product-url=https://cloud.google.com/anthos/multicluster-management/gateway/", "ruby-cloud-api-id=connectgateway.googleapis.com", "ruby-cloud-api-shortname=connectgateway", + "ruby-cloud-env-prefix=GKE_CONNECT_GATEWAY", + "ruby-cloud-gem-name=google-cloud-gke_connect-gateway-v1beta1", + "ruby-cloud-product-url=https://cloud.google.com/anthos/multicluster-management/gateway/", ], - grpc_service_config = "connectgw_grpc_service_config.json", + grpc_service_config = "connectgateway_v1beta1_grpc_service_config.json", rest_numeric_enums = False, ruby_cloud_description = "The Connect gateway builds on the power of fleets to let Anthos users connect to and run commands against registered Anthos clusters in a simple, consistent, and secured way, whether the clusters are on Google Cloud, other public clouds, or on premises, and makes it easier to automate DevOps processes across all your clusters.", ruby_cloud_title = "Connect Gateway V1beta1", service_yaml = "connectgateway_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":gateway_ruby_grpc", ":gateway_ruby_proto", @@ -306,6 +319,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -329,9 +343,10 @@ csharp_gapic_library( name = "gateway_csharp_gapic", srcs = [":gateway_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", - grpc_service_config = "connectgw_grpc_service_config.json", + grpc_service_config = "connectgateway_v1beta1_grpc_service_config.json", rest_numeric_enums = False, service_yaml = "connectgateway_v1beta1.yaml", + transport = "grpc+rest", deps = [ ":gateway_csharp_grpc", ":gateway_csharp_proto", @@ -351,4 +366,21 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## -# Put your C++ rules here +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "gateway_cc_proto", + deps = [":gateway_proto"], +) + +cc_grpc_library( + name = "gateway_cc_grpc", + srcs = [":gateway_proto"], + grpc_only = True, + deps = [":gateway_cc_proto"], +) diff --git a/google/cloud/gkeconnect/gateway/v1beta1/connectgateway_v1beta1.yaml b/google/cloud/gkeconnect/gateway/v1beta1/connectgateway_v1beta1.yaml index 66d799508..dd4d7291b 100644 --- a/google/cloud/gkeconnect/gateway/v1beta1/connectgateway_v1beta1.yaml +++ b/google/cloud/gkeconnect/gateway/v1beta1/connectgateway_v1beta1.yaml @@ -4,21 +4,24 @@ name: connectgateway.googleapis.com title: Connect Gateway API apis: -- name: google.cloud.gkeconnect.gateway.v1beta1.GatewayService +- name: google.cloud.gkeconnect.gateway.v1beta1.GatewayControl documentation: summary: |- The Connect Gateway service allows connectivity from external parties to connected Kubernetes clusters. -backend: - rules: - - selector: 'google.cloud.gkeconnect.gateway.v1beta1.GatewayService.*' - deadline: 300.0 - authentication: rules: - - selector: 'google.cloud.gkeconnect.gateway.v1beta1.GatewayService.*' + - selector: google.cloud.gkeconnect.gateway.v1beta1.GatewayControl.GenerateCredentials oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=1618911 + documentation_uri: https://cloud.google.com/kubernetes-engine/enterprise/multicluster-management/gateway + api_short_name: connectgateway + github_label: 'api: connectgateway' + doc_tag_prefix: connectgateway + organization: CLOUD diff --git a/google/cloud/gkeconnect/gateway/v1/connectgw_grpc_service_config.json b/google/cloud/gkeconnect/gateway/v1beta1/connectgateway_v1beta1_grpc_service_config.json similarity index 70% rename from google/cloud/gkeconnect/gateway/v1/connectgw_grpc_service_config.json rename to google/cloud/gkeconnect/gateway/v1beta1/connectgateway_v1beta1_grpc_service_config.json index 56cd60be9..cdd5972b7 100644 --- a/google/cloud/gkeconnect/gateway/v1/connectgw_grpc_service_config.json +++ b/google/cloud/gkeconnect/gateway/v1beta1/connectgateway_v1beta1_grpc_service_config.json @@ -1,7 +1,7 @@ { "methodConfig": [{ "name": [ - { "service": "google.cloud/gkeconnect.gateway.v1.GatewayService" } + { "service": "google.cloud.gkeconnect.gateway.v1beta1.GatewayControl", "method": "GenerateCredentials" } ], "timeout": "60s", "retryPolicy": { diff --git a/google/cloud/gkeconnect/gateway/v1beta1/control.proto b/google/cloud/gkeconnect/gateway/v1beta1/control.proto new file mode 100644 index 000000000..3458153b2 --- /dev/null +++ b/google/cloud/gkeconnect/gateway/v1beta1/control.proto @@ -0,0 +1,95 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.gkeconnect.gateway.v1beta1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Cloud.GkeConnect.Gateway.V1Beta1"; +option go_package = "cloud.google.com/go/gkeconnect/gateway/apiv1beta1/gatewaypb;gatewaypb"; +option java_multiple_files = true; +option java_outer_classname = "ControlProto"; +option java_package = "com.google.cloud.gkeconnect.gateway.v1beta1"; +option php_namespace = "Google\\Cloud\\GkeConnect\\Gateway\\V1beta1"; +option ruby_package = "Google::Cloud::GkeConnect::Gateway::V1beta1"; + +// GatewayControl is the control plane API for Connect Gateway. +service GatewayControl { + option (google.api.default_host) = "connectgateway.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // GenerateCredentials provides connection information that allows a user to + // access the specified membership using Connect Gateway. + rpc GenerateCredentials(GenerateCredentialsRequest) + returns (GenerateCredentialsResponse) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/memberships/*}:generateCredentials" + }; + } +} + +// A request for connection information for a particular membership. +message GenerateCredentialsRequest { + // Operating systems requiring specialized kubeconfigs. + enum OperatingSystem { + // Generates a kubeconfig that works for all operating systems not defined + // below. + OPERATING_SYSTEM_UNSPECIFIED = 0; + + // Generates a kubeconfig that is specifically designed to work with + // Windows. + OPERATING_SYSTEM_WINDOWS = 1; + } + + // Required. The Fleet membership resource. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Whether to force the use of Connect Agent-based transport. + // + // This will return a configuration that uses Connect Agent as the underlying + // transport mechanism for cluster types that would otherwise have used a + // different transport. Requires that Connect Agent be installed on the + // cluster. Setting this field to false is equivalent to not setting it. + bool force_use_agent = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Connect Gateway version to be used in the resulting + // configuration. + // + // Leave this field blank to let the server choose the version (recommended). + string version = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The namespace to use in the kubeconfig context. + // + // If this field is specified, the server will set the `namespace` field in + // kubeconfig context. If not specified, the `namespace` field is omitted. + string kubernetes_namespace = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The operating system where the kubeconfig will be used. + OperatingSystem operating_system = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Connection information for a particular membership. +message GenerateCredentialsResponse { + // A full YAML kubeconfig in serialized format. + bytes kubeconfig = 1; + + // The generated URI of the cluster as accessed through the Connect Gateway + // API. + string endpoint = 2; +} diff --git a/google/cloud/gkeconnect/gateway/v1beta1/gateway.proto b/google/cloud/gkeconnect/gateway/v1beta1/gateway.proto deleted file mode 100644 index b1fd9dea0..000000000 --- a/google/cloud/gkeconnect/gateway/v1beta1/gateway.proto +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2024 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.cloud.gkeconnect.gateway.v1beta1; - -import "google/api/annotations.proto"; -import "google/api/client.proto"; -import "google/api/httpbody.proto"; - -option csharp_namespace = "Google.Cloud.GkeConnect.Gateway.V1Beta1"; -option go_package = "cloud.google.com/go/gkeconnect/gateway/apiv1beta1/gatewaypb;gatewaypb"; -option java_multiple_files = true; -option java_outer_classname = "GatewayProto"; -option java_package = "com.google.cloud.gkeconnect.gateway.v1beta1"; -option php_namespace = "Google\\Cloud\\GkeConnect\\Gateway\\V1beta1"; -option ruby_package = "Google::Cloud::GkeConnect::Gateway::V1beta1"; - -// Gateway service is a public API which works as a Kubernetes resource model -// proxy between end users and registered Kubernetes clusters. Each RPC in this -// service matches with an HTTP verb. End user will initiate kubectl commands -// against the Gateway service, and Gateway service will forward user requests -// to clusters. -service GatewayService { - option (google.api.default_host) = "connectgateway.googleapis.com"; - option (google.api.oauth_scopes) = - "https://www.googleapis.com/auth/cloud-platform"; - - // GetResource performs an HTTP GET request on the Kubernetes API Server. - rpc GetResource(google.api.HttpBody) returns (google.api.HttpBody) { - option (google.api.http) = { - get: "/v1beta1/**" - }; - } - - // PostResource performs an HTTP POST on the Kubernetes API Server. - rpc PostResource(google.api.HttpBody) returns (google.api.HttpBody) { - option (google.api.http) = { - post: "/v1beta1/**" - }; - } - - // DeleteResource performs an HTTP DELETE on the Kubernetes API Server. - rpc DeleteResource(google.api.HttpBody) returns (google.api.HttpBody) { - option (google.api.http) = { - delete: "/v1beta1/**" - }; - } - - // PutResource performs an HTTP PUT on the Kubernetes API Server. - rpc PutResource(google.api.HttpBody) returns (google.api.HttpBody) { - option (google.api.http) = { - put: "/v1beta1/**" - }; - } - - // PatchResource performs an HTTP PATCH on the Kubernetes API Server. - rpc PatchResource(google.api.HttpBody) returns (google.api.HttpBody) { - option (google.api.http) = { - patch: "/v1beta1/**" - }; - } -} diff --git a/google/cloud/gkemulticloud/v1/BUILD.bazel b/google/cloud/gkemulticloud/v1/BUILD.bazel index 757da15b6..805084033 100644 --- a/google/cloud/gkemulticloud/v1/BUILD.bazel +++ b/google/cloud/gkemulticloud/v1/BUILD.bazel @@ -355,6 +355,7 @@ load( csharp_proto_library( name = "gkemulticloud_csharp_proto", + extra_opts = [], deps = [":gkemulticloud_proto"], ) diff --git a/google/cloud/gkemulticloud/v1/attached_resources.proto b/google/cloud/gkemulticloud/v1/attached_resources.proto index 2dc635bc9..2f8b30065 100644 --- a/google/cloud/gkemulticloud/v1/attached_resources.proto +++ b/google/cloud/gkemulticloud/v1/attached_resources.proto @@ -165,6 +165,10 @@ message AttachedCluster { // Optional. Binary Authorization configuration for this cluster. BinaryAuthorization binary_authorization = 25 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Security Posture configuration for this cluster. + SecurityPostureConfig security_posture_config = 26 + [(google.api.field_behavior) = OPTIONAL]; } // Configuration related to the cluster RBAC settings. diff --git a/google/cloud/gkemulticloud/v1/attached_service.proto b/google/cloud/gkemulticloud/v1/attached_service.proto index 53092c70f..3c335ffde 100644 --- a/google/cloud/gkemulticloud/v1/attached_service.proto +++ b/google/cloud/gkemulticloud/v1/attached_service.proto @@ -291,7 +291,7 @@ message ImportAttachedClusterRequest { // Required. The Kubernetes distribution of the underlying attached cluster. // - // Supported values: ["eks", "aks"]. + // Supported values: ["eks", "aks", "generic"]. string distribution = 5 [(google.api.field_behavior) = REQUIRED]; // Optional. Proxy configuration for outbound HTTP(S) traffic. @@ -323,6 +323,7 @@ message UpdateAttachedClusterRequest { // * `platform_version`. // * `proxy_config.kubernetes_secret.name`. // * `proxy_config.kubernetes_secret.namespace`. + // * `security_posture_config.vulnerability_mode` google.protobuf.FieldMask update_mask = 3 [(google.api.field_behavior) = REQUIRED]; } diff --git a/google/cloud/gkemulticloud/v1/aws_resources.proto b/google/cloud/gkemulticloud/v1/aws_resources.proto index 0c5a923aa..dd407e1be 100644 --- a/google/cloud/gkemulticloud/v1/aws_resources.proto +++ b/google/cloud/gkemulticloud/v1/aws_resources.proto @@ -481,6 +481,10 @@ message AwsNodePool { // Optional. The Management configuration for this node pool. AwsNodeManagement management = 30 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Node kubelet configs. + NodeKubeletConfig kubelet_config = 31 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. Update settings control the speed and disruption of the update. UpdateSettings update_settings = 32 [(google.api.field_behavior) = OPTIONAL]; } @@ -714,7 +718,7 @@ message AwsProxyConfig { // // The secret must be a JSON encoded proxy configuration // as described in - // https://cloud.google.com/anthos/clusters/docs/multi-cloud/aws/how-to/use-a-proxy#create_a_proxy_configuration_file + // https://cloud.google.com/kubernetes-engine/multi-cloud/docs/aws/how-to/use-a-proxy#create_a_proxy_configuration_file string secret_arn = 1; // The version string of the AWS Secret Manager secret that contains the diff --git a/google/cloud/gkemulticloud/v1/azure_resources.proto b/google/cloud/gkemulticloud/v1/azure_resources.proto index 867505992..925f26803 100644 --- a/google/cloud/gkemulticloud/v1/azure_resources.proto +++ b/google/cloud/gkemulticloud/v1/azure_resources.proto @@ -335,7 +335,7 @@ message AzureProxyConfig { // // The secret must be a JSON encoded proxy configuration // as described in - // https://cloud.google.com/anthos/clusters/docs/multi-cloud/azure/how-to/use-a-proxy#create_a_proxy_configuration_file + // https://cloud.google.com/kubernetes-engine/multi-cloud/docs/azure/how-to/use-a-proxy#create_a_proxy_configuration_file // // Secret ids are formatted as // `https://<key-vault-name>.vault.azure.net/secrets/<secret-name>/<secret-version>`. diff --git a/google/cloud/gkemulticloud/v1/common_resources.proto b/google/cloud/gkemulticloud/v1/common_resources.proto index 3f84e4e73..ed4a485c7 100644 --- a/google/cloud/gkemulticloud/v1/common_resources.proto +++ b/google/cloud/gkemulticloud/v1/common_resources.proto @@ -141,6 +141,57 @@ message NodeTaint { Effect effect = 3 [(google.api.field_behavior) = REQUIRED]; } +// Configuration for node pool kubelet options. +message NodeKubeletConfig { + // Optional. Enable the insecure kubelet read only port. + bool insecure_kubelet_readonly_port_enabled = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Control the CPU management policy on the node. + // See + // https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/ + // + // The following values are allowed. + // * "none": the default, which represents the existing scheduling behavior. + // * "static": allows pods with certain resource characteristics to be granted + // increased CPU affinity and exclusivity on the node. + // The default value is 'none' if unspecified. + optional string cpu_manager_policy = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Enable CPU CFS quota enforcement for containers that specify CPU + // limits. + // + // This option is enabled by default which makes kubelet use CFS quota + // (https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt) to + // enforce container CPU limits. Otherwise, CPU limits will not be enforced at + // all. + // + // Disable this option to mitigate CPU throttling problems while still having + // your pods to be in Guaranteed QoS class by specifying the CPU limits. + // + // The default value is 'true' if unspecified. + optional bool cpu_cfs_quota = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Set the CPU CFS quota period value 'cpu.cfs_period_us'. + // + // The string must be a sequence of decimal numbers, each with optional + // fraction and a unit suffix, such as "300ms". + // Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". + // The value must be a positive duration. + // + // The default value is '100ms' if unspecified. + optional string cpu_cfs_quota_period = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. 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. + optional int64 pod_pids_limit = 5 [(google.api.field_behavior) = OPTIONAL]; +} + // Fleet related configuration. // // Fleets are a Google Cloud concept for logically organizing clusters, @@ -222,3 +273,23 @@ message BinaryAuthorization { // to DISABLED. EvaluationMode evaluation_mode = 1; } + +// SecurityPostureConfig defines the flags needed to enable/disable features for +// the Security Posture API. +message SecurityPostureConfig { + // VulnerabilityMode defines enablement mode for vulnerability scanning. + enum VulnerabilityMode { + // Default value not specified. + VULNERABILITY_MODE_UNSPECIFIED = 0; + + // Disables vulnerability scanning on the cluster. + VULNERABILITY_DISABLED = 1; + + // Applies the Security Posture's vulnerability on cluster Enterprise level + // features. + VULNERABILITY_ENTERPRISE = 2; + } + + // Sets which mode to use for vulnerability scanning. + VulnerabilityMode vulnerability_mode = 1; +} diff --git a/google/cloud/gkemulticloud/v1/gkemulticloud_v1.yaml b/google/cloud/gkemulticloud/v1/gkemulticloud_v1.yaml index b792c3c89..2043e8290 100644 --- a/google/cloud/gkemulticloud/v1/gkemulticloud_v1.yaml +++ b/google/cloud/gkemulticloud/v1/gkemulticloud_v1.yaml @@ -1,7 +1,7 @@ type: google.api.Service config_version: 3 name: gkemulticloud.googleapis.com -title: Anthos Multi-Cloud API +title: GKE Multi-Cloud API apis: - name: google.cloud.gkemulticloud.v1.AttachedClusters @@ -14,15 +14,15 @@ types: 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. + GKE Multi-Cloud provides a way to manage Kubernetes clusters that run on + AWS and Azure infrastructure using the GKE 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. + When you create a cluster with GKE Multi-Cloud, Google creates the + resources needed and brings up a cluster on your behalf. You can deploy + workloads with the GKE Multi-Cloud API or the gcloud and kubectl + command-line tools. http: rules: @@ -57,7 +57,7 @@ authentication: publishing: new_issue_uri: https://issuetracker.google.com/issues/new?component=997904&template=1807166 - documentation_uri: https://cloud.google.com/anthos/clusters/docs/multi-cloud + documentation_uri: https://cloud.google.com/kubernetes-engine/multi-cloud/docs api_short_name: gkemulticloud github_label: 'api: gkemulticloud' doc_tag_prefix: gkemulticloud @@ -97,4 +97,4 @@ publishing: common: destinations: - PACKAGE_MANAGER - proto_reference_documentation_uri: https://cloud.google.com/anthos/clusters/docs/multi-cloud/reference/rest/v1/projects.locations.awsClusters + proto_reference_documentation_uri: https://cloud.google.com/kubernetes-engine/multi-cloud/docs/reference/rest/v1/projects.locations.awsClusters diff --git a/google/cloud/iap/v1/BUILD.bazel b/google/cloud/iap/v1/BUILD.bazel index 131316c07..27aa5fba6 100644 --- a/google/cloud/iap/v1/BUILD.bazel +++ b/google/cloud/iap/v1/BUILD.bazel @@ -220,7 +220,7 @@ php_gapic_library( name = "iap_php_gapic", srcs = [":iap_proto_with_info"], grpc_service_config = "iap_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "iap_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/integrations/v1alpha/BUILD.bazel b/google/cloud/integrations/v1alpha/BUILD.bazel index 7473e4886..57b5083e7 100644 --- a/google/cloud/integrations/v1alpha/BUILD.bazel +++ b/google/cloud/integrations/v1alpha/BUILD.bazel @@ -1,5 +1,7 @@ # This file was automatically generated by BuildFileGenerator +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) @@ -30,6 +32,7 @@ proto_library( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_proto_library", @@ -53,6 +56,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_proto_library", @@ -79,6 +83,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "moved_proto_library", @@ -126,6 +131,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -147,6 +153,7 @@ php_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_grpc_library", @@ -167,6 +174,7 @@ ruby_grpc_library( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_proto_library", @@ -191,6 +199,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/google/cloud/integrations/v1alpha/log_entries.proto b/google/cloud/integrations/v1alpha/log_entries.proto index 79817caa3..209d3fc7b 100644 --- a/google/cloud/integrations/v1alpha/log_entries.proto +++ b/google/cloud/integrations/v1alpha/log_entries.proto @@ -47,6 +47,21 @@ message ExecutionInfo { POST_TO_QUEUE = 3; } + // Contains the details of the execution info: this includes the replay reason + // and replay tree connecting executions in a parent-child relationship + message ReplayInfo { + // If this execution is a replay of another execution, then this field + // contains the original execution id. + string original_execution_info_id = 1; + + // If this execution has been replayed, then this field contains the + // execution ids of the replayed executions. + repeated string replayed_execution_info_ids = 2; + + // reason for replay + string replay_reason = 3; + } + // Name of the integration. string integration = 2; @@ -102,6 +117,9 @@ message ExecutionInfo { // An increasing sequence that is set when a new snapshot (Integration // Version) is created. int64 integration_snapshot_number = 22; + + // Replay info for the execution + ReplayInfo replay_info = 23; } // Contains the details of the execution info: this includes the tasks execution @@ -154,6 +172,10 @@ message IntegrationExecutionDetails { // Indicates the number of times the execution has restarted from the // beginning. int32 execution_retries_count = 5; + + // If the execution is manually canceled, this field will contain the reason + // for cancellation. + string cancel_reason = 6; } // Contains the snapshot of the integration execution for a given checkpoint. diff --git a/google/cloud/integrations/v1alpha/task_config.proto b/google/cloud/integrations/v1alpha/task_config.proto index 42b60f335..0f436f405 100644 --- a/google/cloud/integrations/v1alpha/task_config.proto +++ b/google/cloud/integrations/v1alpha/task_config.proto @@ -101,6 +101,11 @@ message TaskConfig { FailurePolicy synchronous_call_failure_policy = 5 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The list of conditional failure policies that will be applied to + // the task in order. + ConditionalFailurePolicies conditional_failure_policies = 18 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. The set of tasks that are next in line to be executed as per the // execution graph defined for the parent event, specified by // `event_config_id`. Each of these next tasks are executed @@ -239,6 +244,10 @@ message FailurePolicy { // LINEAR/EXPONENTIAL_BACKOFF/RESTART_INTEGRATION_WITH_BACKOFF. Defines the // initial interval in seconds for backoff. google.protobuf.Timestamp interval_time = 3; + + // Optional. The string condition that will be evaluated to determine if the + // task should be retried with this failure policy. + string condition = 4; } // The task that is next in line to be executed, if the @@ -260,3 +269,13 @@ message NextTask { // about the task. string description = 5; } + +// Conditional task failur retry strategies +message ConditionalFailurePolicies { + // The list of failure policies that will be applied to the task in order. + repeated FailurePolicy failure_policies = 1; + + // The default failure policy to be applied if no conditional failure policy + // matches. + FailurePolicy default_failure_policy = 2; +} diff --git a/google/cloud/iot/v1/BUILD.bazel b/google/cloud/iot/v1/BUILD.bazel index 9ce8c126e..a7e3e61bd 100644 --- a/google/cloud/iot/v1/BUILD.bazel +++ b/google/cloud/iot/v1/BUILD.bazel @@ -206,7 +206,7 @@ php_gapic_library( name = "iot_php_gapic", srcs = [":iot_proto_with_info"], grpc_service_config = "cloudiot_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "cloudiot_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/kms/inventory/v1/BUILD.bazel b/google/cloud/kms/inventory/v1/BUILD.bazel index a832d4389..d21c7021f 100644 --- a/google/cloud/kms/inventory/v1/BUILD.bazel +++ b/google/cloud/kms/inventory/v1/BUILD.bazel @@ -231,7 +231,7 @@ php_gapic_library( name = "inventory_php_gapic", srcs = [":inventory_proto_with_info"], grpc_service_config = "kmsinventory_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "kmsinventory_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/kms/v1/BUILD.bazel b/google/cloud/kms/v1/BUILD.bazel index bb03b727b..7f23d2f7f 100644 --- a/google/cloud/kms/v1/BUILD.bazel +++ b/google/cloud/kms/v1/BUILD.bazel @@ -250,7 +250,7 @@ php_gapic_library( name = "kms_php_gapic", srcs = [":kms_proto_with_info"], grpc_service_config = "cloudkms_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "cloudkms_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/kms/v1/autokey.proto b/google/cloud/kms/v1/autokey.proto index e13c2441d..4065535e1 100644 --- a/google/cloud/kms/v1/autokey.proto +++ b/google/cloud/kms/v1/autokey.proto @@ -27,7 +27,8 @@ option java_multiple_files = true; option java_outer_classname = "AutokeyProto"; option java_package = "com.google.cloud.kms.v1"; -// Provides interfaces for using Cloud KMS Autokey to provision new +// Provides interfaces for using [Cloud KMS +// Autokey](https://cloud.google.com/kms/help/autokey) to provision new // [CryptoKeys][google.cloud.kms.v1.CryptoKey], ready for Customer Managed // Encryption Key (CMEK) use, on-demand. To support certain client tooling, this // feature is modeled around a [KeyHandle][google.cloud.kms.v1.KeyHandle] @@ -180,6 +181,20 @@ message ListKeyHandlesRequest { } ]; + // Optional. Optional limit on the number of + // [KeyHandles][google.cloud.kms.v1.KeyHandle] to include in the response. The + // service may return fewer than this value. Further + // [KeyHandles][google.cloud.kms.v1.KeyHandle] can subsequently be obtained by + // including the + // [ListKeyHandlesResponse.next_page_token][google.cloud.kms.v1.ListKeyHandlesResponse.next_page_token] + // in a subsequent request. If unspecified, at most + // 100 [KeyHandles][google.cloud.kms.v1.KeyHandle] will be returned. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Optional pagination token, returned earlier via + // [ListKeyHandlesResponse.next_page_token][google.cloud.kms.v1.ListKeyHandlesResponse.next_page_token]. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Filter to apply when listing // [KeyHandles][google.cloud.kms.v1.KeyHandle], e.g. // `resource_type_selector="{SERVICE}.googleapis.com/{TYPE}"`. @@ -191,4 +206,9 @@ message ListKeyHandlesRequest { message ListKeyHandlesResponse { // Resulting [KeyHandles][google.cloud.kms.v1.KeyHandle]. repeated KeyHandle key_handles = 1; + + // A token to retrieve next page of results. Pass this value in + // [ListKeyHandlesRequest.page_token][google.cloud.kms.v1.ListKeyHandlesRequest.page_token] + // to retrieve the next page of results. + string next_page_token = 2; } diff --git a/google/cloud/kms/v1/autokey_admin.proto b/google/cloud/kms/v1/autokey_admin.proto index fdbe170b9..c31f7c929 100644 --- a/google/cloud/kms/v1/autokey_admin.proto +++ b/google/cloud/kms/v1/autokey_admin.proto @@ -27,7 +27,8 @@ option java_multiple_files = true; option java_outer_classname = "AutokeyAdminProto"; option java_package = "com.google.cloud.kms.v1"; -// Provides interfaces for managing Cloud KMS Autokey folder-level +// Provides interfaces for managing [Cloud KMS +// Autokey](https://cloud.google.com/kms/help/autokey) folder-level // configurations. A configuration is inherited by all descendent projects. A // configuration at one folder overrides any other configurations in its // ancestry. Setting a configuration on a folder is a prerequisite for Cloud KMS @@ -110,6 +111,23 @@ message AutokeyConfig { singular: "autokeyConfig" }; + // The states AutokeyConfig can be in. + enum State { + // The state of the AutokeyConfig is unspecified. + STATE_UNSPECIFIED = 0; + + // The AutokeyConfig is currently active. + ACTIVE = 1; + + // A previously configured key project has been deleted and the current + // AutokeyConfig is unusable. + KEY_PROJECT_DELETED = 2; + + // The AutokeyConfig is not yet initialized or has been reset to its default + // uninitialized state. + UNINITIALIZED = 3; + } + // Identifier. Name of the [AutokeyConfig][google.cloud.kms.v1.AutokeyConfig] // resource, e.g. `folders/{FOLDER_NUMBER}/autokeyConfig`. string name = 1 [(google.api.field_behavior) = IDENTIFIER]; @@ -126,6 +144,9 @@ message AutokeyConfig { // `cloudkms.admin` role (or pertinent permissions). A request with an empty // key project field will clear the configuration. string key_project = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The state for the AutokeyConfig. + State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Request message for diff --git a/google/cloud/kms/v1/ekm_service.proto b/google/cloud/kms/v1/ekm_service.proto index f14915385..f5130ced1 100644 --- a/google/cloud/kms/v1/ekm_service.proto +++ b/google/cloud/kms/v1/ekm_service.proto @@ -378,13 +378,14 @@ message EkmConnection { google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - // A list of + // Optional. 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; + repeated ServiceResolver service_resolvers = 3 + [(google.api.field_behavior) = OPTIONAL]; // Optional. Etag of the currently stored // [EkmConnection][google.cloud.kms.v1.EkmConnection]. diff --git a/google/cloud/kms/v1/resources.proto b/google/cloud/kms/v1/resources.proto index 1995b8b50..7a47cc544 100644 --- a/google/cloud/kms/v1/resources.proto +++ b/google/cloud/kms/v1/resources.proto @@ -184,7 +184,7 @@ message CryptoKey { // [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. + // If not specified at creation time, the default duration is 30 days. google.protobuf.Duration destroy_scheduled_duration = 14 [(google.api.field_behavior) = IMMUTABLE]; diff --git a/google/cloud/language/v2/language_service.proto b/google/cloud/language/v2/language_service.proto index 826fee68e..b8d735d19 100644 --- a/google/cloud/language/v2/language_service.proto +++ b/google/cloud/language/v2/language_service.proto @@ -170,8 +170,7 @@ enum EncodingType { // a person, an organization, or location. The API associates information, such // as probability and mentions, with entities. message Entity { - // The type of the entity. For most entity types, the associated metadata is a - // Wikipedia URL (`wikipedia_url`) and Knowledge Graph MID (`mid`). The table + // The type of the entity. The table // below lists the associated fields for entities that have different // metadata. enum Type { @@ -221,7 +220,7 @@ message Entity { // * `locality` - city or town // * `street_name` - street/route name, if detected // * `postal_code` - postal code, if detected - // * `country` - country, 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 @@ -257,8 +256,7 @@ message Entity { // Metadata associated with the entity. // - // For most entity types, the metadata is a Wikipedia URL (`wikipedia_url`) - // and Knowledge Graph MID (`mid`), if they are available. For the metadata + // For the metadata // associated with other entity types, see the Type table below. map<string, string> metadata = 3; @@ -340,6 +338,11 @@ message ClassificationCategory { // The classifier's confidence of the category. Number represents how certain // the classifier is that this category represents the given text. float confidence = 2; + + // Optional. The classifier's severity of the category. This is only present + // when the ModerateTextRequest.ModelVersion is set to MODEL_VERSION_2, and + // the corresponding category has a severity score. + float severity = 3 [(google.api.field_behavior) = OPTIONAL]; } // The sentiment analysis request message. @@ -419,8 +422,27 @@ message ClassifyTextResponse { // The document moderation request message. message ModerateTextRequest { + // The model version to use for ModerateText. + enum ModelVersion { + // The default model version. + MODEL_VERSION_UNSPECIFIED = 0; + + // Use the v1 model, this model is used by default when not provided. + // The v1 model only returns probability (confidence) score for each + // category. + MODEL_VERSION_1 = 1; + + // Use the v2 model. + // The v2 model only returns probability (confidence) score for each + // category, and returns severity score for a subset of the categories. + MODEL_VERSION_2 = 2; + } + // Required. Input document. Document document = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The model version to use for ModerateText. + ModelVersion model_version = 2 [(google.api.field_behavior) = OPTIONAL]; } // The document moderation response message. diff --git a/google/cloud/language/v2/language_v2.yaml b/google/cloud/language/v2/language_v2.yaml index 03718123a..5f18f2872 100644 --- a/google/cloud/language/v2/language_v2.yaml +++ b/google/cloud/language/v2/language_v2.yaml @@ -28,14 +28,6 @@ publishing: doc_tag_prefix: language organization: CLOUD library_settings: - - version: google.cloud.language.v1 - launch_stage: GA - dotnet_settings: - handwritten_signatures: - - LanguageService.AnalyzeEntities(document) - - LanguageService.AnalyzeSyntax(document) - - LanguageService.AnnotateText(document,features) - - LanguageService.AnalyzeEntitySentiment(document) - version: google.cloud.language.v2 launch_stage: BETA java_settings: diff --git a/google/cloud/managedidentities/v1/BUILD.bazel b/google/cloud/managedidentities/v1/BUILD.bazel index 4dae607de..db3b8b56b 100644 --- a/google/cloud/managedidentities/v1/BUILD.bazel +++ b/google/cloud/managedidentities/v1/BUILD.bazel @@ -211,7 +211,7 @@ php_gapic_library( name = "managedidentities_php_gapic", srcs = [":managedidentities_proto_with_info"], grpc_service_config = "managedidentities_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "managedidentities_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/managedkafka/v1/managedkafka_v1.yaml b/google/cloud/managedkafka/v1/managedkafka_v1.yaml index 733c86a37..8b021d996 100644 --- a/google/cloud/managedkafka/v1/managedkafka_v1.yaml +++ b/google/cloud/managedkafka/v1/managedkafka_v1.yaml @@ -1,7 +1,7 @@ type: google.api.Service config_version: 3 name: managedkafka.googleapis.com -title: Apache Kafka for BigQuery API +title: Managed Service for Apache Kafka API apis: - name: google.cloud.location.Locations @@ -57,7 +57,7 @@ authentication: publishing: new_issue_uri: https://issuetracker.google.com/issues/new?component=1376234 - documentation_uri: https://cloud.google.com/managed-kafka + documentation_uri: https://cloud.google.com/managed-service-for-apache-kafka/docs api_short_name: managedkafka github_label: 'api: managedkafka' doc_tag_prefix: managedkafka @@ -97,3 +97,4 @@ publishing: common: destinations: - PACKAGE_MANAGER + proto_reference_documentation_uri: https://cloud.google.com/managed-service-for-apache-kafka/docs/reference/rpc diff --git a/google/cloud/managedkafka/v1/resources.proto b/google/cloud/managedkafka/v1/resources.proto index 321391380..460ef20a3 100644 --- a/google/cloud/managedkafka/v1/resources.proto +++ b/google/cloud/managedkafka/v1/resources.proto @@ -154,8 +154,6 @@ message GcpConfig { // must be located in the same region as the cluster and cannot be changed. // Structured like: // projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}. - // Note that the project component only accepts a project ID, and not a - // project number. string kms_key = 2 [ (google.api.field_behavior) = OPTIONAL, (google.api.field_behavior) = IMMUTABLE, @@ -208,7 +206,7 @@ message ConsumerTopicMetadata { // Metadata for a consumer group corresponding to a specific partition. message ConsumerPartitionMetadata { - // Required. The offset for this partition, or 0 if no offset has been + // Required. The current offset for this partition, or 0 if no offset has been // committed. int64 offset = 1 [(google.api.field_behavior) = REQUIRED]; diff --git a/google/cloud/memcache/v1/BUILD.bazel b/google/cloud/memcache/v1/BUILD.bazel index a846079b5..dff7a782f 100644 --- a/google/cloud/memcache/v1/BUILD.bazel +++ b/google/cloud/memcache/v1/BUILD.bazel @@ -224,7 +224,7 @@ php_gapic_library( name = "memcache_php_gapic", srcs = [":memcache_proto_with_info"], grpc_service_config = "memcache_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "memcache_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/netapp/v1/active_directory.proto b/google/cloud/netapp/v1/active_directory.proto index 5877d2145..9f3d30273 100644 --- a/google/cloud/netapp/v1/active_directory.proto +++ b/google/cloud/netapp/v1/active_directory.proto @@ -89,7 +89,10 @@ message CreateActiveDirectoryRequest { // Required. Fields of the to be created active directory. ActiveDirectory active_directory = 2 [(google.api.field_behavior) = REQUIRED]; - // Required. ID of the active directory to create. + // Required. ID of the active directory to create. Must be unique within the + // parent resource. Must contain only letters, numbers, underscore and hyphen, + // with the first character a letter or underscore, the last a letter or + // underscore or a number, and a 63 character maximum. string active_directory_id = 3 [(google.api.field_behavior) = REQUIRED]; } @@ -195,6 +198,9 @@ message ActiveDirectory { repeated string backup_operators = 12 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Users to be added to the Built-in Admininstrators group. + repeated string administrators = 22 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Domain users to be given the SeSecurityPrivilege. repeated string security_operators = 13 [(google.api.field_behavior) = OPTIONAL]; diff --git a/google/cloud/netapp/v1/backup.proto b/google/cloud/netapp/v1/backup.proto index 222f650c9..4ee25fbb3 100644 --- a/google/cloud/netapp/v1/backup.proto +++ b/google/cloud/netapp/v1/backup.proto @@ -199,10 +199,9 @@ message CreateBackupRequest { // Required. The ID to use for the backup. // The ID must be unique within the specified backupVault. - // This value must start with a lowercase letter followed by up to 62 - // lowercase letters, numbers, or hyphens, and cannot end with a hyphen. - // Values that do not match this pattern will trigger an INVALID_ARGUMENT - // error. + // Must contain only letters, numbers, underscore and hyphen, with the first + // character a letter or underscore, the last a letter or underscore or a + // number, and a 63 character maximum. string backup_id = 2 [(google.api.field_behavior) = REQUIRED]; // Required. A backup resource diff --git a/google/cloud/netapp/v1/backup_policy.proto b/google/cloud/netapp/v1/backup_policy.proto index 0e235fc74..3bba8049a 100644 --- a/google/cloud/netapp/v1/backup_policy.proto +++ b/google/cloud/netapp/v1/backup_policy.proto @@ -114,8 +114,9 @@ message CreateBackupPolicyRequest { // Required. The ID to use for the backup policy. // The ID must be unique within the specified location. - // This value must start with a lowercase letter followed by up to 62 - // lowercase letters, numbers, or hyphens, and cannot end with a hyphen. + // Must contain only letters, numbers, underscore and hyphen, with the first + // character a letter or underscore, the last a letter or underscore or a + // number, and a 63 character maximum. string backup_policy_id = 3 [(google.api.field_behavior) = REQUIRED]; } diff --git a/google/cloud/netapp/v1/backup_vault.proto b/google/cloud/netapp/v1/backup_vault.proto index cb66f5060..b59464908 100644 --- a/google/cloud/netapp/v1/backup_vault.proto +++ b/google/cloud/netapp/v1/backup_vault.proto @@ -142,11 +142,9 @@ message CreateBackupVaultRequest { // Required. The ID to use for the backupVault. // The ID must be unique within the specified location. - // The max supported length is 63 characters. - // This value must start with a lowercase letter followed by up to 62 - // lowercase letters, numbers, or hyphens, and cannot end with a hyphen. - // Values that do not match this pattern will trigger an INVALID_ARGUMENT - // error. + // Must contain only letters, numbers, underscore and hyphen, with the first + // character a letter or underscore, the last a letter or underscore or a + // number, and a 63 character maximum. string backup_vault_id = 2 [(google.api.field_behavior) = REQUIRED]; // Required. A backupVault resource diff --git a/google/cloud/netapp/v1/cloud_netapp_service.proto b/google/cloud/netapp/v1/cloud_netapp_service.proto index 51a0ad088..c542669a8 100644 --- a/google/cloud/netapp/v1/cloud_netapp_service.proto +++ b/google/cloud/netapp/v1/cloud_netapp_service.proto @@ -110,6 +110,20 @@ service NetApp { }; } + // This operation will switch the active/replica zone for a regional + // storagePool. + rpc SwitchActiveReplicaZone(SwitchActiveReplicaZoneRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/storagePools/*}:switch" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "StoragePool" + metadata_type: "OperationMetadata" + }; + } + // Lists Volumes in a given project. rpc ListVolumes(ListVolumesRequest) returns (ListVolumesResponse) { option (google.api.http) = { diff --git a/google/cloud/netapp/v1/kms.proto b/google/cloud/netapp/v1/kms.proto index be50b5661..dc993d891 100644 --- a/google/cloud/netapp/v1/kms.proto +++ b/google/cloud/netapp/v1/kms.proto @@ -86,9 +86,10 @@ message CreateKmsConfigRequest { } ]; - // Required. Id of the requesting KmsConfig - // If auto-generating Id server-side, remove this field and - // id from the method_signature of Create RPC + // Required. Id of the requesting KmsConfig. Must be unique within the parent + // resource. Must contain only letters, numbers, underscore and hyphen, with + // the first character a letter or underscore, the last a letter or underscore + // or a number, and a 63 character maximum. string kms_config_id = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The required parameters to create a new KmsConfig. diff --git a/google/cloud/netapp/v1/replication.proto b/google/cloud/netapp/v1/replication.proto index a8b626d68..ea5be5f73 100644 --- a/google/cloud/netapp/v1/replication.proto +++ b/google/cloud/netapp/v1/replication.proto @@ -32,10 +32,11 @@ option ruby_package = "Google::Cloud::NetApp::V1"; // TransferStats reports all statistics related to replication transfer. message TransferStats { - // bytes trasferred so far in current transfer. + // Cumulative bytes trasferred so far for the replication relatinonship. optional int64 transfer_bytes = 1; - // Total time taken during transfer. + // Cumulative time taken across all transfers for the replication + // relationship. optional google.protobuf.Duration total_transfer_duration = 2; // Last transfer size in bytes. @@ -137,7 +138,7 @@ message Replication { // Destination volume is not receiving replication transfers. STOPPED = 3; - // Replication is in progress. + // Incremental replication is in progress. TRANSFERRING = 4; } @@ -293,9 +294,10 @@ message CreateReplicationRequest { // Required. A replication resource Replication replication = 2 [(google.api.field_behavior) = REQUIRED]; - // Required. ID of the replication to create. - // This value must start with a lowercase letter followed by up to 62 - // lowercase letters, numbers, or hyphens, and cannot end with a hyphen. + // Required. ID of the replication to create. Must be unique within the parent + // resource. Must contain only letters, numbers, underscore and hyphen, with + // the first character a letter or underscore, the last a letter or underscore + // or a number, and a 63 character maximum. string replication_id = 3 [(google.api.field_behavior) = REQUIRED]; } diff --git a/google/cloud/netapp/v1/snapshot.proto b/google/cloud/netapp/v1/snapshot.proto index 1c94af37a..9cdfa5a09 100644 --- a/google/cloud/netapp/v1/snapshot.proto +++ b/google/cloud/netapp/v1/snapshot.proto @@ -92,9 +92,10 @@ message CreateSnapshotRequest { // Required. A snapshot resource Snapshot snapshot = 2 [(google.api.field_behavior) = REQUIRED]; - // Required. ID of the snapshot to create. - // This value must start with a lowercase letter followed by up to 62 - // lowercase letters, numbers, or hyphens, and cannot end with a hyphen. + // Required. ID of the snapshot to create. Must be unique within the parent + // resource. Must contain only letters, numbers, underscore and hyphen, with + // the first character a letter or underscore, the last a letter or underscore + // or a number, and a 63 character maximum. string snapshot_id = 3 [(google.api.field_behavior) = REQUIRED]; } diff --git a/google/cloud/netapp/v1/storage_pool.proto b/google/cloud/netapp/v1/storage_pool.proto index 6e12eeb7f..7dfcf9577 100644 --- a/google/cloud/netapp/v1/storage_pool.proto +++ b/google/cloud/netapp/v1/storage_pool.proto @@ -88,9 +88,10 @@ message CreateStoragePoolRequest { } ]; - // Required. Id of the requesting storage pool - // If auto-generating Id server-side, remove this field and - // id from the method_signature of Create RPC + // Required. Id of the requesting storage pool. Must be unique within the + // parent resource. Must contain only letters, numbers, underscore and hyphen, + // with the first character a letter or underscore, the last a letter or + // underscore or a number, and a 63 character maximum. string storage_pool_id = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The required parameters to create a new storage pool. @@ -122,6 +123,18 @@ message DeleteStoragePoolRequest { ]; } +// SwitchActiveReplicaZoneRequest switch the active/replica zone for a regional +// storagePool. +message SwitchActiveReplicaZoneRequest { + // Required. Name of the storage pool + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "netapp.googleapis.com/StoragePool" + } + ]; +} + // StoragePool is a container for volumes with a service level and capacity. // Volumes can be created in a pool of sufficient available capacity. // StoragePool capacity is what you are billed for. @@ -229,4 +242,15 @@ message StoragePool { // Deprecated. Used to allow SO pool to access AD or DNS server from other // regions. optional bool global_access_allowed = 17 [deprecated = true]; + + // Optional. True if the storage pool supports Auto Tiering enabled volumes. + // Default is false. Auto-tiering can be enabled after storage pool creation + // but it can't be disabled once enabled. + bool allow_auto_tiering = 18 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the replica zone for regional storagePool. + string replica_zone = 20 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies the active zone for regional storagePool. + string zone = 21 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/google/cloud/netapp/v1/volume.proto b/google/cloud/netapp/v1/volume.proto index 49f3b11bf..bbea78027 100644 --- a/google/cloud/netapp/v1/volume.proto +++ b/google/cloud/netapp/v1/volume.proto @@ -170,9 +170,10 @@ message CreateVolumeRequest { } ]; - // Required. Id of the requesting volume - // If auto-generating Id server-side, remove this field and - // Id from the method_signature of Create RPC + // Required. Id of the requesting volume. Must be unique within the parent + // resource. Must contain only letters, numbers, underscore and hyphen, with + // the first character a letter or underscore, the last a letter or underscore + // or a number, and a 63 character maximum. string volume_id = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The volume being created. @@ -384,8 +385,26 @@ message Volume { repeated RestrictedAction restricted_actions = 31 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Flag indicating if the volume will be a large capacity volume or + // a regular volume. + bool large_capacity = 32 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Flag indicating if the volume will have an IP address per node + // for volumes supporting multiple IP endpoints. Only the volume with + // large_capacity will be allowed to have multiple endpoints. + bool multiple_endpoints = 33 [(google.api.field_behavior) = OPTIONAL]; + // Tiering policy for the volume. optional TieringPolicy tiering_policy = 34; + + // Output only. Specifies the replica zone for regional volume. + string replica_zone = 36 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Specifies the active zone for regional volume. + string zone = 37 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Size of the volume cold tier data in GiB. + int64 cold_tier_size_gib = 39 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Defines the export policy for the volume. diff --git a/google/cloud/networkconnectivity/v1/BUILD.bazel b/google/cloud/networkconnectivity/v1/BUILD.bazel index 24734f4a3..abf67ab09 100644 --- a/google/cloud/networkconnectivity/v1/BUILD.bazel +++ b/google/cloud/networkconnectivity/v1/BUILD.bazel @@ -226,7 +226,7 @@ php_gapic_library( name = "networkconnectivity_php_gapic", srcs = [":networkconnectivity_proto_with_info"], grpc_service_config = "networkconnectivity_v1_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "networkconnectivity_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/networkmanagement/v1/BUILD.bazel b/google/cloud/networkmanagement/v1/BUILD.bazel index 12e4cac64..02a6d87fd 100644 --- a/google/cloud/networkmanagement/v1/BUILD.bazel +++ b/google/cloud/networkmanagement/v1/BUILD.bazel @@ -242,7 +242,7 @@ php_gapic_library( name = "networkmanagement_php_gapic", srcs = [":networkmanagement_proto_with_info"], grpc_service_config = "networkmanagement_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "networkmanagement_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/networkmanagement/v1/connectivity_test.proto b/google/cloud/networkmanagement/v1/connectivity_test.proto index 8fe340aeb..0759773e2 100644 --- a/google/cloud/networkmanagement/v1/connectivity_test.proto +++ b/google/cloud/networkmanagement/v1/connectivity_test.proto @@ -37,9 +37,9 @@ message ConnectivityTest { pattern: "projects/{project}/locations/global/connectivityTests/{test}" }; - // Required. Unique name of the resource using the form: + // Identifier. Unique name of the resource using the form: // `projects/{project_id}/locations/global/connectivityTests/{test_id}` - string name = 1 [(google.api.field_behavior) = REQUIRED]; + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // The user-supplied description of the Connectivity Test. // Maximum of 512 characters. @@ -227,6 +227,14 @@ message Endpoint { // A [Cloud SQL](https://cloud.google.com/sql) instance URI. string cloud_sql_instance = 8; + // A [Redis Instance](https://cloud.google.com/memorystore/docs/redis) + // URI. + string redis_instance = 17; + + // A [Redis Cluster](https://cloud.google.com/memorystore/docs/cluster) + // URI. + string redis_cluster = 18; + // A [Cloud Function](https://cloud.google.com/functions). CloudFunctionEndpoint cloud_function = 10; diff --git a/google/cloud/networkmanagement/v1/reachability.proto b/google/cloud/networkmanagement/v1/reachability.proto index 2ae3caa91..e6ece7d33 100644 --- a/google/cloud/networkmanagement/v1/reachability.proto +++ b/google/cloud/networkmanagement/v1/reachability.proto @@ -106,7 +106,7 @@ service ReachabilityService { // // If the endpoint specifications in `ConnectivityTest` are incomplete, the // reachability result returns a value of `AMBIGUOUS`. See the documentation - // in `ConnectivityTest` for for more details. + // in `ConnectivityTest` for more details. rpc UpdateConnectivityTest(UpdateConnectivityTestRequest) returns (google.longrunning.Operation) { option (google.api.http) = { @@ -162,7 +162,12 @@ service ReachabilityService { message ListConnectivityTestsRequest { // Required. The parent resource of the Connectivity Tests: // `projects/{project_id}/locations/global` - string parent = 1 [(google.api.field_behavior) = REQUIRED]; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; // Number of `ConnectivityTests` to return. int32 page_size = 2; @@ -210,14 +215,24 @@ message ListConnectivityTestsResponse { message GetConnectivityTestRequest { // Required. `ConnectivityTest` resource name using the form: // `projects/{project_id}/locations/global/connectivityTests/{test_id}` - string name = 1 [(google.api.field_behavior) = REQUIRED]; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkmanagement.googleapis.com/ConnectivityTest" + } + ]; } // Request for the `CreateConnectivityTest` method. message CreateConnectivityTestRequest { // Required. The parent resource of the Connectivity Test to create: // `projects/{project_id}/locations/global` - string parent = 1 [(google.api.field_behavior) = REQUIRED]; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; // Required. The logical name of the Connectivity Test in your project // with the following restrictions: @@ -248,14 +263,24 @@ message UpdateConnectivityTestRequest { message DeleteConnectivityTestRequest { // Required. Connectivity Test resource name using the form: // `projects/{project_id}/locations/global/connectivityTests/{test_id}` - string name = 1 [(google.api.field_behavior) = REQUIRED]; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkmanagement.googleapis.com/ConnectivityTest" + } + ]; } // Request for the `RerunConnectivityTest` method. message RerunConnectivityTestRequest { // Required. Connectivity Test resource name using the form: // `projects/{project_id}/locations/global/connectivityTests/{test_id}` - string name = 1 [(google.api.field_behavior) = REQUIRED]; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkmanagement.googleapis.com/ConnectivityTest" + } + ]; } // Metadata describing an [Operation][google.longrunning.Operation] diff --git a/google/cloud/networkmanagement/v1/trace.proto b/google/cloud/networkmanagement/v1/trace.proto index de0bbfa48..0a39fc3ff 100644 --- a/google/cloud/networkmanagement/v1/trace.proto +++ b/google/cloud/networkmanagement/v1/trace.proto @@ -94,6 +94,14 @@ message Step { // A CloudSQLInstanceInfo is populated with starting instance information. START_FROM_CLOUD_SQL_INSTANCE = 22; + // Initial state: packet originating from a Redis instance. + // A RedisInstanceInfo is populated with starting instance information. + START_FROM_REDIS_INSTANCE = 32; + + // Initial state: packet originating from a Redis Cluster. + // A RedisClusterInfo is populated with starting Cluster information. + START_FROM_REDIS_CLUSTER = 33; + // Initial state: packet originating from a Cloud Function. // A CloudFunctionInfo is populated with starting function information. START_FROM_CLOUD_FUNCTION = 23; @@ -115,6 +123,11 @@ message Step { // Private Service Connect. Used only for return traces. START_FROM_PSC_PUBLISHED_SERVICE = 30; + // Initial state: packet originating from a serverless network endpoint + // group backend. Used only for return traces. + // The serverless_neg information is populated. + START_FROM_SERVERLESS_NEG = 31; + // Config checking state: verify ingress firewall rule. APPLY_INGRESS_FIREWALL_RULE = 4; @@ -250,6 +263,12 @@ message Step { // Display information of a Cloud SQL instance. CloudSQLInstanceInfo cloud_sql_instance = 19; + // Display information of a Redis Instance. + RedisInstanceInfo redis_instance = 30; + + // Display information of a Redis Cluster. + RedisClusterInfo redis_cluster = 31; + // Display information of a Cloud Function. CloudFunctionInfo cloud_function = 20; @@ -270,6 +289,10 @@ message Step { // Display information of a Storage Bucket. Used only for return traces. StorageBucketInfo storage_bucket = 28; + + // Display information of a Serverless network endpoint group backend. Used + // only for return traces. + ServerlessNegInfo serverless_neg = 29; } } @@ -298,9 +321,13 @@ message InstanceInfo { // Service account authorized for the instance. string service_account = 8 [deprecated = true]; + + // URI of the PSC network attachment the NIC is attached to (if relevant). + string psc_network_attachment_uri = 9; } // For display only. Metadata associated with a Compute Engine network. +// Next ID: 7 message NetworkInfo { // Name of a Compute Engine network. string display_name = 1; @@ -308,12 +335,18 @@ message NetworkInfo { // URI of a Compute Engine network. string uri = 2; - // The IP range that matches the test. + // URI of the subnet matching the source IP address of the test. + string matched_subnet_uri = 5; + + // The IP range of the subnet matching the source IP address of the test. string matched_ip_range = 4; + + // The region of the subnet matching the source IP address of the test. + string region = 6; } // For display only. Metadata associated with a VPC firewall rule, an implied -// VPC firewall rule, or a hierarchical firewall policy rule. +// VPC firewall rule, or a firewall policy rule. message FirewallInfo { // The firewall rule's type. enum FirewallRuleType { @@ -364,12 +397,12 @@ message FirewallInfo { TRACKING_STATE = 101; } - // The display name of the VPC firewall rule. This field is not applicable - // to hierarchical firewall policy rules. + // The display name of the firewall rule. This field might be empty for + // firewall policy rules. string display_name = 1; - // The URI of the VPC firewall rule. This field is not applicable to - // implied firewall rules or hierarchical firewall policy rules. + // The URI of the firewall rule. This field is not applicable to implied + // VPC firewall rules. string uri = 2; // Possible values: INGRESS, EGRESS @@ -386,16 +419,22 @@ message FirewallInfo { string network_uri = 6; // The target tags defined by the VPC firewall rule. This field is not - // applicable to hierarchical firewall policy rules. + // applicable to firewall policy rules. repeated string target_tags = 7; // The target service accounts specified by the firewall rule. repeated string target_service_accounts = 8; - // The hierarchical firewall policy that this rule is associated with. - // This field is not applicable to VPC firewall rules. + // The name of the firewall policy that this rule is associated with. + // This field is not applicable to VPC firewall rules and implied VPC firewall + // rules. string policy = 9; + // The URI of the firewall policy that this rule is associated with. + // This field is not applicable to VPC firewall rules and implied VPC firewall + // rules. + string policy_uri = 11; + // The firewall rule's type. FirewallRuleType firewall_rule_type = 10; } @@ -428,6 +467,10 @@ message RouteInfo { // Policy based route. POLICY_BASED = 7; + + // Advertised route. Synthetic route which is used to transition from the + // StartFromPrivateNetwork state in Connectivity tests. + ADVERTISED = 101; } // Type of next hop: @@ -502,12 +545,12 @@ message RouteInfo { // Name of a route. string display_name = 1; - // URI of a route. - // Dynamic, peering static and peering dynamic routes do not have an URI. - // Advertised route from Google Cloud VPC to on-premises network also does - // not have an URI. + // URI of a route (if applicable). string uri = 2; + // Region of the route (if applicable). + string region = 19; + // Destination IP range of the route. string dest_ip_range = 3; @@ -540,6 +583,16 @@ message RouteInfo { // URI of a NCC Spoke. NCC_HUB routes only. optional string ncc_spoke_uri = 16; + + // For advertised dynamic routes, the URI of the Cloud Router that advertised + // the corresponding IP prefix. + optional string advertised_route_source_router_uri = 17; + + // For advertised routes, the URI of their next hop, i.e. the URI of the + // hybrid endpoint (VPN tunnel, Interconnect attachment, NCC router appliance) + // the advertised prefix is advertised through, or URI of the source peered + // network. + optional string advertised_route_next_hop_uri = 18; } // For display only. Details of a Google Service sending packets to a @@ -590,16 +643,16 @@ message GoogleServiceInfo { // For display only. Metadata associated with a Compute Engine forwarding rule. message ForwardingRuleInfo { - // Name of a Compute Engine forwarding rule. + // Name of the forwarding rule. string display_name = 1; - // URI of a Compute Engine forwarding rule. + // URI of the forwarding rule. string uri = 2; - // Protocol defined in the forwarding rule that matches the test. + // Protocol defined in the forwarding rule that matches the packet. string matched_protocol = 3; - // Port range defined in the forwarding rule that matches the test. + // Port range defined in the forwarding rule that matches the packet. string matched_port_range = 6; // VIP of the forwarding rule. @@ -608,8 +661,22 @@ message ForwardingRuleInfo { // Target type of the forwarding rule. string target = 5; - // Network URI. Only valid for Internal Load Balancer. + // Network URI. string network_uri = 7; + + // Region of the forwarding rule. Set only for regional forwarding rules. + string region = 8; + + // Name of the load balancer the forwarding rule belongs to. Empty for + // forwarding rules not related to load balancers (like PSC forwarding rules). + string load_balancer_name = 9; + + // URI of the PSC service attachment this forwarding rule targets (if + // applicable). + string psc_service_attachment_uri = 10; + + // PSC Google API target this forwarding rule targets (if applicable). + string psc_google_api_target = 11; } // For display only. Metadata associated with a load balancer. @@ -827,7 +894,7 @@ message DeliverInfo { // Connect](https://cloud.google.com/vpc/docs/configure-private-service-connect-services). PSC_PUBLISHED_SERVICE = 6; - // Target is all Google APIs that use [Private Service + // Target is Google APIs that use [Private Service // Connect](https://cloud.google.com/vpc/docs/configure-private-service-connect-apis). PSC_GOOGLE_API = 7; @@ -852,6 +919,15 @@ message DeliverInfo { // Target is a Cloud Run revision. Used only for return traces. CLOUD_RUN_REVISION = 14; + + // Target is a Google-managed service. Used only for return traces. + GOOGLE_MANAGED_SERVICE = 15; + + // Target is a Redis Instance. + REDIS_INSTANCE = 16; + + // Target is a Redis Cluster. + REDIS_CLUSTER = 17; } // Target type where the packet is delivered to. @@ -862,6 +938,13 @@ message DeliverInfo { // IP address of the target (if applicable). string ip_address = 3 [(google.api.field_info).format = IPV4_OR_IPV6]; + + // Name of the Cloud Storage Bucket the packet is delivered to (if + // applicable). + string storage_bucket = 4; + + // PSC Google API target the packet is delivered to (if applicable). + string psc_google_api_target = 5; } // Details of the final state "forward" and associated resource. @@ -952,6 +1035,10 @@ message AbortInfo { // found. UNKNOWN_IP = 2; + // Aborted because no endpoint with the packet's destination IP is found in + // the Google-managed project. + GOOGLE_MANAGED_SERVICE_UNKNOWN_IP = 32; + // Aborted because the source IP address doesn't belong to any of the // subnets of the source VPC network. SOURCE_IP_ADDRESS_NOT_IN_SOURCE_NETWORK = 23; @@ -968,6 +1055,10 @@ message AbortInfo { // endpoint configs required to run the test. PERMISSION_DENIED_NO_NEG_ENDPOINT_CONFIGS = 29; + // Aborted because user lacks permission to access Cloud Router configs + // required to run the test. + PERMISSION_DENIED_NO_CLOUD_ROUTER_CONFIGS = 36; + // Aborted because no valid source or destination endpoint is derived from // the input test request. NO_SOURCE_LOCATION = 5; @@ -1023,6 +1114,13 @@ message AbortInfo { // not supported. SOURCE_PSC_CLOUD_SQL_UNSUPPORTED = 20; + // Aborted because tests with a Redis Cluster as a source are not supported. + SOURCE_REDIS_CLUSTER_UNSUPPORTED = 34; + + // Aborted because tests with a Redis Instance as a source are not + // supported. + SOURCE_REDIS_INSTANCE_UNSUPPORTED = 35; + // Aborted because tests with a forwarding rule as a source are not // supported. SOURCE_FORWARDING_RULE_UNSUPPORTED = 21; @@ -1161,6 +1259,12 @@ message DropInfo { // Packet sent from or to a Cloud SQL instance that is not in running state. CLOUD_SQL_INSTANCE_NOT_RUNNING = 28; + // Packet sent from or to a Redis Instance that is not in running state. + REDIS_INSTANCE_NOT_RUNNING = 68; + + // Packet sent from or to a Redis Cluster that is not in running state. + REDIS_CLUSTER_NOT_RUNNING = 69; + // The type of traffic is blocked and the user cannot configure a firewall // rule to enable it. See [Always blocked // traffic](https://cloud.google.com/vpc/docs/firewalls#blockedtraffic) for @@ -1226,6 +1330,11 @@ message DropInfo { // instance to a destination network. CLOUD_SQL_INSTANCE_NO_ROUTE = 35; + // Packet was dropped because the Cloud SQL instance requires all + // connections to use Cloud SQL connectors and to target the Cloud SQL proxy + // port (3307). + CLOUD_SQL_CONNECTOR_REQUIRED = 63; + // Packet could be dropped because the Cloud Function is not in an active // status. CLOUD_FUNCTION_NOT_ACTIVE = 22; @@ -1237,6 +1346,14 @@ message DropInfo { // state. VPC_CONNECTOR_NOT_RUNNING = 24; + // Packet could be dropped because the traffic from the serverless service + // to the VPC connector is not allowed. + VPC_CONNECTOR_SERVERLESS_TRAFFIC_BLOCKED = 60; + + // Packet could be dropped because the health check traffic to the VPC + // connector is not allowed. + VPC_CONNECTOR_HEALTH_CHECK_TRAFFIC_BLOCKED = 61; + // Packet could be dropped because it was sent from a different region // to a regional forwarding without global access. FORWARDING_RULE_REGION_MISMATCH = 25; @@ -1268,6 +1385,10 @@ message DropInfo { // No NAT subnets are defined for the PSC service attachment. NO_NAT_SUBNETS_FOR_PSC_SERVICE_ATTACHMENT = 57; + // PSC endpoint is accessed via NCC, but PSC transitivity configuration is + // not yet propagated. + PSC_TRANSITIVITY_NOT_PROPAGATED = 64; + // The packet sent from the hybrid NEG proxy matches a non-dynamic route, // but such a configuration is not supported. HYBRID_NEG_NON_DYNAMIC_ROUTE_MATCHED = 55; @@ -1292,6 +1413,75 @@ message DropInfo { // Packet is stuck in a routing loop. ROUTING_LOOP = 59; + + // Packet is dropped inside a Google-managed service due to being delivered + // in return trace to an endpoint that doesn't match the endpoint the packet + // was sent from in forward trace. Used only for return traces. + DROPPED_INSIDE_GOOGLE_MANAGED_SERVICE = 62; + + // Packet is dropped due to a load balancer backend instance not having a + // network interface in the network expected by the load balancer. + LOAD_BALANCER_BACKEND_INVALID_NETWORK = 65; + + // Packet is dropped due to a backend service named port not being defined + // on the instance group level. + BACKEND_SERVICE_NAMED_PORT_NOT_DEFINED = 66; + + // Packet is dropped due to a destination IP range being part of a Private + // NAT IP range. + DESTINATION_IS_PRIVATE_NAT_IP_RANGE = 67; + + // Generic drop cause for a packet being dropped inside a Redis Instance + // service project. + DROPPED_INSIDE_REDIS_INSTANCE_SERVICE = 70; + + // Packet is dropped due to an unsupported port being used to connect to a + // Redis Instance. Port 6379 should be used to connect to a Redis Instance. + REDIS_INSTANCE_UNSUPPORTED_PORT = 71; + + // Packet is dropped due to connecting from PUPI address to a PSA based + // Redis Instance. + REDIS_INSTANCE_CONNECTING_FROM_PUPI_ADDRESS = 72; + + // Packet is dropped due to no route to the destination network. + REDIS_INSTANCE_NO_ROUTE_TO_DESTINATION_NETWORK = 73; + + // Redis Instance does not have an external IP address. + REDIS_INSTANCE_NO_EXTERNAL_IP = 74; + + // Packet is dropped due to an unsupported protocol being used to connect to + // a Redis Instance. Only TCP connections are accepted by a Redis Instance. + REDIS_INSTANCE_UNSUPPORTED_PROTOCOL = 78; + + // Generic drop cause for a packet being dropped inside a Redis Cluster + // service project. + DROPPED_INSIDE_REDIS_CLUSTER_SERVICE = 75; + + // Packet is dropped due to an unsupported port being used to connect to a + // Redis Cluster. Ports 6379 and 11000 to 13047 should be used to connect to + // a Redis Cluster. + REDIS_CLUSTER_UNSUPPORTED_PORT = 76; + + // Redis Cluster does not have an external IP address. + REDIS_CLUSTER_NO_EXTERNAL_IP = 77; + + // Packet is dropped due to an unsupported protocol being used to connect to + // a Redis Cluster. Only TCP connections are accepted by a Redis Cluster. + REDIS_CLUSTER_UNSUPPORTED_PROTOCOL = 79; + + // Packet from the non-GCP (on-prem) or unknown GCP network is dropped due + // to the destination IP address not belonging to any IP prefix advertised + // via BGP by the Cloud Router. + NO_ADVERTISED_ROUTE_TO_GCP_DESTINATION = 80; + + // Packet from the non-GCP (on-prem) or unknown GCP network is dropped due + // to the destination IP address not belonging to any IP prefix included to + // the local traffic selector of the VPN tunnel. + NO_TRAFFIC_SELECTOR_TO_GCP_DESTINATION = 81; + + // Packet from the unknown peered network is dropped due to no known route + // from the source network to the destination IP address. + NO_KNOWN_ROUTE_FROM_PEERED_NETWORK_TO_DESTINATION = 82; } // Cause that the packet is dropped. @@ -1348,6 +1538,53 @@ message CloudSQLInstanceInfo { string region = 7; } +// For display only. Metadata associated with a Cloud Redis Instance. +message RedisInstanceInfo { + // Name of a Cloud Redis Instance. + string display_name = 1; + + // URI of a Cloud Redis Instance. + string uri = 2; + + // URI of a Cloud Redis Instance network. + string network_uri = 3; + + // Primary endpoint IP address of a Cloud Redis Instance. + string primary_endpoint_ip = 4; + + // Read endpoint IP address of a Cloud Redis Instance (if applicable). + string read_endpoint_ip = 5; + + // Region in which the Cloud Redis Instance is defined. + string region = 6; +} + +// For display only. Metadata associated with a Redis Cluster. +message RedisClusterInfo { + // Name of a Redis Cluster. + string display_name = 1; + + // URI of a Redis Cluster in format + // "projects/{project_id}/locations/{location}/clusters/{cluster_id}" + string uri = 2; + + // URI of a Redis Cluster network in format + // "projects/{project_id}/global/networks/{network_id}". + string network_uri = 3; + + // Discovery endpoint IP address of a Redis Cluster. + string discovery_endpoint_ip_address = 4 + [(google.api.field_info).format = IPV4_OR_IPV6]; + + // Secondary endpoint IP address of a Redis Cluster. + string secondary_endpoint_ip_address = 5 + [(google.api.field_info).format = IPV4_OR_IPV6]; + + // Name of the region in which the Redis Cluster is defined. For example, + // "us-central1". + string location = 6; +} + // For display only. Metadata associated with a Cloud Function. message CloudFunctionInfo { // Name of a Cloud Function. @@ -1619,3 +1856,10 @@ message StorageBucketInfo { // Cloud Storage Bucket name. string bucket = 1; } + +// For display only. Metadata associated with the serverless network endpoint +// group backend. +message ServerlessNegInfo { + // URI of the serverless network endpoint group. + string neg_uri = 1; +} diff --git a/google/cloud/networkmanagement/v1beta1/BUILD.bazel b/google/cloud/networkmanagement/v1beta1/BUILD.bazel index 0ef6462dd..3ea68685b 100644 --- a/google/cloud/networkmanagement/v1beta1/BUILD.bazel +++ b/google/cloud/networkmanagement/v1beta1/BUILD.bazel @@ -27,6 +27,8 @@ proto_library( "connectivity_test.proto", "reachability.proto", "trace.proto", + "vpc_flow_logs.proto", + "vpc_flow_logs_config.proto", ], deps = [ "//google/api:annotations_proto", @@ -104,6 +106,10 @@ java_gapic_test( # https://github.com/googleapis/sdk-platform-java/issues/1839 # "com.google.cloud.networkmanagement.v1beta1.ReachabilityServiceClientHttpJsonTest", "com.google.cloud.networkmanagement.v1beta1.ReachabilityServiceClientTest", + # This test is temporarily disabled due to the issue: + # https://github.com/googleapis/sdk-platform-java/issues/1839 + # "com.google.cloud.networkmanagement.v1beta1.VpcFlowLogsServiceClientHttpJsonTest", + "com.google.cloud.networkmanagement.v1beta1.VpcFlowLogsServiceClientTest", ], runtime_deps = [":networkmanagement_java_gapic_test"], ) diff --git a/google/cloud/networkmanagement/v1beta1/connectivity_test.proto b/google/cloud/networkmanagement/v1beta1/connectivity_test.proto index 3ba30550e..f19aa2940 100644 --- a/google/cloud/networkmanagement/v1beta1/connectivity_test.proto +++ b/google/cloud/networkmanagement/v1beta1/connectivity_test.proto @@ -37,9 +37,9 @@ message ConnectivityTest { pattern: "projects/{project}/locations/global/connectivityTests/{test}" }; - // Required. Unique name of the resource using the form: + // Identifier. Unique name of the resource using the form: // `projects/{project_id}/locations/global/connectivityTests/{test}` - string name = 1 [(google.api.field_behavior) = REQUIRED]; + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // The user-supplied description of the Connectivity Test. // Maximum of 512 characters. @@ -227,6 +227,14 @@ message Endpoint { // A [Cloud SQL](https://cloud.google.com/sql) instance URI. string cloud_sql_instance = 8; + // A [Redis Instance](https://cloud.google.com/memorystore/docs/redis) + // URI. + string redis_instance = 17; + + // A [Redis Cluster](https://cloud.google.com/memorystore/docs/cluster) + // URI. + string redis_cluster = 18; + // A [Cloud Function](https://cloud.google.com/functions). CloudFunctionEndpoint cloud_function = 10; diff --git a/google/cloud/networkmanagement/v1beta1/networkmanagement_v1beta1.yaml b/google/cloud/networkmanagement/v1beta1/networkmanagement_v1beta1.yaml index 813c89cef..7d4792104 100644 --- a/google/cloud/networkmanagement/v1beta1/networkmanagement_v1beta1.yaml +++ b/google/cloud/networkmanagement/v1beta1/networkmanagement_v1beta1.yaml @@ -6,6 +6,7 @@ title: Network Management API apis: - name: google.cloud.location.Locations - name: google.cloud.networkmanagement.v1beta1.ReachabilityService +- name: google.cloud.networkmanagement.v1beta1.VpcFlowLogsService - name: google.iam.v1.IAMPolicy - name: google.longrunning.Operations @@ -84,6 +85,10 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.networkmanagement.v1beta1.VpcFlowLogsService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.iam.v1.IAMPolicy.*' oauth: canonical_scopes: |- diff --git a/google/cloud/networkmanagement/v1beta1/reachability.proto b/google/cloud/networkmanagement/v1beta1/reachability.proto index 8fbb70c48..d88869654 100644 --- a/google/cloud/networkmanagement/v1beta1/reachability.proto +++ b/google/cloud/networkmanagement/v1beta1/reachability.proto @@ -103,7 +103,7 @@ service ReachabilityService { // // If the endpoint specifications in `ConnectivityTest` are incomplete, the // reachability result returns a value of `AMBIGUOUS`. See the documentation - // in `ConnectivityTest` for for more details. + // in `ConnectivityTest` for more details. rpc UpdateConnectivityTest(UpdateConnectivityTestRequest) returns (google.longrunning.Operation) { option (google.api.http) = { @@ -157,7 +157,12 @@ service ReachabilityService { message ListConnectivityTestsRequest { // Required. The parent resource of the Connectivity Tests: // `projects/{project_id}/locations/global` - string parent = 1 [(google.api.field_behavior) = REQUIRED]; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; // Number of `ConnectivityTests` to return. int32 page_size = 2; @@ -205,14 +210,24 @@ message ListConnectivityTestsResponse { message GetConnectivityTestRequest { // Required. `ConnectivityTest` resource name using the form: // `projects/{project_id}/locations/global/connectivityTests/{test_id}` - string name = 1 [(google.api.field_behavior) = REQUIRED]; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkmanagement.googleapis.com/ConnectivityTest" + } + ]; } // Request for the `CreateConnectivityTest` method. message CreateConnectivityTestRequest { // Required. The parent resource of the Connectivity Test to create: // `projects/{project_id}/locations/global` - string parent = 1 [(google.api.field_behavior) = REQUIRED]; + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "cloudresourcemanager.googleapis.com/Project" + } + ]; // Required. The logical name of the Connectivity Test in your project // with the following restrictions: @@ -243,14 +258,24 @@ message UpdateConnectivityTestRequest { message DeleteConnectivityTestRequest { // Required. Connectivity Test resource name using the form: // `projects/{project_id}/locations/global/connectivityTests/{test_id}` - string name = 1 [(google.api.field_behavior) = REQUIRED]; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkmanagement.googleapis.com/ConnectivityTest" + } + ]; } // Request for the `RerunConnectivityTest` method. message RerunConnectivityTestRequest { // Required. Connectivity Test resource name using the form: // `projects/{project_id}/locations/global/connectivityTests/{test_id}` - string name = 1 [(google.api.field_behavior) = REQUIRED]; + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkmanagement.googleapis.com/ConnectivityTest" + } + ]; } // Metadata describing an [Operation][google.longrunning.Operation] diff --git a/google/cloud/networkmanagement/v1beta1/trace.proto b/google/cloud/networkmanagement/v1beta1/trace.proto index 33f76c55a..8c772c7f0 100644 --- a/google/cloud/networkmanagement/v1beta1/trace.proto +++ b/google/cloud/networkmanagement/v1beta1/trace.proto @@ -94,6 +94,14 @@ message Step { // A CloudSQLInstanceInfo is populated with starting instance information. START_FROM_CLOUD_SQL_INSTANCE = 22; + // Initial state: packet originating from a Redis instance. + // A RedisInstanceInfo is populated with starting instance information. + START_FROM_REDIS_INSTANCE = 32; + + // Initial state: packet originating from a Redis Cluster. + // A RedisClusterInfo is populated with starting Cluster information. + START_FROM_REDIS_CLUSTER = 33; + // Initial state: packet originating from a Cloud Function. // A CloudFunctionInfo is populated with starting function information. START_FROM_CLOUD_FUNCTION = 23; @@ -115,6 +123,11 @@ message Step { // Private Service Connect. Used only for return traces. START_FROM_PSC_PUBLISHED_SERVICE = 30; + // Initial state: packet originating from a serverless network endpoint + // group backend. Used only for return traces. + // The serverless_neg information is populated. + START_FROM_SERVERLESS_NEG = 31; + // Config checking state: verify ingress firewall rule. APPLY_INGRESS_FIREWALL_RULE = 4; @@ -254,6 +267,12 @@ message Step { // Display information of a Cloud SQL instance. CloudSQLInstanceInfo cloud_sql_instance = 19; + // Display information of a Redis Instance. + RedisInstanceInfo redis_instance = 30; + + // Display information of a Redis Cluster. + RedisClusterInfo redis_cluster = 31; + // Display information of a Cloud Function. CloudFunctionInfo cloud_function = 20; @@ -274,6 +293,10 @@ message Step { // Display information of a Storage Bucket. Used only for return traces. StorageBucketInfo storage_bucket = 28; + + // Display information of a Serverless network endpoint group backend. Used + // only for return traces. + ServerlessNegInfo serverless_neg = 29; } } @@ -302,9 +325,13 @@ message InstanceInfo { // Service account authorized for the instance. string service_account = 8 [deprecated = true]; + + // URI of the PSC network attachment the NIC is attached to (if relevant). + string psc_network_attachment_uri = 9; } // For display only. Metadata associated with a Compute Engine network. +// Next ID: 7 message NetworkInfo { // Name of a Compute Engine network. string display_name = 1; @@ -312,12 +339,18 @@ message NetworkInfo { // URI of a Compute Engine network. string uri = 2; - // The IP range that matches the test. + // URI of the subnet matching the source IP address of the test. + string matched_subnet_uri = 5; + + // The IP range of the subnet matching the source IP address of the test. string matched_ip_range = 4; + + // The region of the subnet matching the source IP address of the test. + string region = 6; } // For display only. Metadata associated with a VPC firewall rule, an implied -// VPC firewall rule, or a hierarchical firewall policy rule. +// VPC firewall rule, or a firewall policy rule. message FirewallInfo { // The firewall rule's type. enum FirewallRuleType { @@ -368,12 +401,12 @@ message FirewallInfo { TRACKING_STATE = 101; } - // The display name of the VPC firewall rule. This field is not applicable - // to hierarchical firewall policy rules. + // The display name of the firewall rule. This field might be empty for + // firewall policy rules. string display_name = 1; - // The URI of the VPC firewall rule. This field is not applicable to - // implied firewall rules or hierarchical firewall policy rules. + // The URI of the firewall rule. This field is not applicable to implied + // VPC firewall rules. string uri = 2; // Possible values: INGRESS, EGRESS @@ -390,16 +423,22 @@ message FirewallInfo { string network_uri = 6; // The target tags defined by the VPC firewall rule. This field is not - // applicable to hierarchical firewall policy rules. + // applicable to firewall policy rules. repeated string target_tags = 7; // The target service accounts specified by the firewall rule. repeated string target_service_accounts = 8; - // The hierarchical firewall policy that this rule is associated with. - // This field is not applicable to VPC firewall rules. + // The name of the firewall policy that this rule is associated with. + // This field is not applicable to VPC firewall rules and implied VPC firewall + // rules. string policy = 9; + // The URI of the firewall policy that this rule is associated with. + // This field is not applicable to VPC firewall rules and implied VPC firewall + // rules. + string policy_uri = 11; + // The firewall rule's type. FirewallRuleType firewall_rule_type = 10; } @@ -432,6 +471,10 @@ message RouteInfo { // Policy based route. POLICY_BASED = 7; + + // Advertised route. Synthetic route which is used to transition from the + // StartFromPrivateNetwork state in Connectivity tests. + ADVERTISED = 101; } // Type of next hop: @@ -506,12 +549,12 @@ message RouteInfo { // Name of a route. string display_name = 1; - // URI of a route. - // Dynamic, peering static and peering dynamic routes do not have an URI. - // Advertised route from Google Cloud VPC to on-premises network also does - // not have an URI. + // URI of a route (if applicable). string uri = 2; + // Region of the route (if applicable). + string region = 19; + // Destination IP range of the route. string dest_ip_range = 3; @@ -544,6 +587,16 @@ message RouteInfo { // URI of a NCC Spoke. NCC_HUB routes only. optional string ncc_spoke_uri = 16; + + // For advertised dynamic routes, the URI of the Cloud Router that advertised + // the corresponding IP prefix. + optional string advertised_route_source_router_uri = 17; + + // For advertised routes, the URI of their next hop, i.e. the URI of the + // hybrid endpoint (VPN tunnel, Interconnect attachment, NCC router appliance) + // the advertised prefix is advertised through, or URI of the source peered + // network. + optional string advertised_route_next_hop_uri = 18; } // For display only. Details of a Google Service sending packets to a @@ -594,16 +647,16 @@ message GoogleServiceInfo { // For display only. Metadata associated with a Compute Engine forwarding rule. message ForwardingRuleInfo { - // Name of a Compute Engine forwarding rule. + // Name of the forwarding rule. string display_name = 1; - // URI of a Compute Engine forwarding rule. + // URI of the forwarding rule. string uri = 2; - // Protocol defined in the forwarding rule that matches the test. + // Protocol defined in the forwarding rule that matches the packet. string matched_protocol = 3; - // Port range defined in the forwarding rule that matches the test. + // Port range defined in the forwarding rule that matches the packet. string matched_port_range = 6; // VIP of the forwarding rule. @@ -612,8 +665,22 @@ message ForwardingRuleInfo { // Target type of the forwarding rule. string target = 5; - // Network URI. Only valid for Internal Load Balancer. + // Network URI. string network_uri = 7; + + // Region of the forwarding rule. Set only for regional forwarding rules. + string region = 8; + + // Name of the load balancer the forwarding rule belongs to. Empty for + // forwarding rules not related to load balancers (like PSC forwarding rules). + string load_balancer_name = 9; + + // URI of the PSC service attachment this forwarding rule targets (if + // applicable). + string psc_service_attachment_uri = 10; + + // PSC Google API target this forwarding rule targets (if applicable). + string psc_google_api_target = 11; } // For display only. Metadata associated with a load balancer. @@ -831,7 +898,7 @@ message DeliverInfo { // Connect](https://cloud.google.com/vpc/docs/configure-private-service-connect-services). PSC_PUBLISHED_SERVICE = 6; - // Target is all Google APIs that use [Private Service + // Target is Google APIs that use [Private Service // Connect](https://cloud.google.com/vpc/docs/configure-private-service-connect-apis). PSC_GOOGLE_API = 7; @@ -856,6 +923,15 @@ message DeliverInfo { // Target is a Cloud Run revision. Used only for return traces. CLOUD_RUN_REVISION = 14; + + // Target is a Google-managed service. Used only for return traces. + GOOGLE_MANAGED_SERVICE = 15; + + // Target is a Redis Instance. + REDIS_INSTANCE = 16; + + // Target is a Redis Cluster. + REDIS_CLUSTER = 17; } // Target type where the packet is delivered to. @@ -866,6 +942,13 @@ message DeliverInfo { // IP address of the target (if applicable). string ip_address = 3 [(google.api.field_info).format = IPV4_OR_IPV6]; + + // Name of the Cloud Storage Bucket the packet is delivered to (if + // applicable). + string storage_bucket = 4; + + // PSC Google API target the packet is delivered to (if applicable). + string psc_google_api_target = 5; } // Details of the final state "forward" and associated resource. @@ -956,6 +1039,10 @@ message AbortInfo { // found. UNKNOWN_IP = 2; + // Aborted because no endpoint with the packet's destination IP is found in + // the Google-managed project. + GOOGLE_MANAGED_SERVICE_UNKNOWN_IP = 32; + // Aborted because the source IP address doesn't belong to any of the // subnets of the source VPC network. SOURCE_IP_ADDRESS_NOT_IN_SOURCE_NETWORK = 23; @@ -972,6 +1059,10 @@ message AbortInfo { // endpoint configs required to run the test. PERMISSION_DENIED_NO_NEG_ENDPOINT_CONFIGS = 29; + // Aborted because user lacks permission to access Cloud Router configs + // required to run the test. + PERMISSION_DENIED_NO_CLOUD_ROUTER_CONFIGS = 36; + // Aborted because no valid source or destination endpoint is derived from // the input test request. NO_SOURCE_LOCATION = 5; @@ -1027,6 +1118,13 @@ message AbortInfo { // not supported. SOURCE_PSC_CLOUD_SQL_UNSUPPORTED = 20; + // Aborted because tests with a Redis Cluster as a source are not supported. + SOURCE_REDIS_CLUSTER_UNSUPPORTED = 34; + + // Aborted because tests with a Redis Instance as a source are not + // supported. + SOURCE_REDIS_INSTANCE_UNSUPPORTED = 35; + // Aborted because tests with a forwarding rule as a source are not // supported. SOURCE_FORWARDING_RULE_UNSUPPORTED = 21; @@ -1165,6 +1263,12 @@ message DropInfo { // Packet sent from or to a Cloud SQL instance that is not in running state. CLOUD_SQL_INSTANCE_NOT_RUNNING = 28; + // Packet sent from or to a Redis Instance that is not in running state. + REDIS_INSTANCE_NOT_RUNNING = 68; + + // Packet sent from or to a Redis Cluster that is not in running state. + REDIS_CLUSTER_NOT_RUNNING = 69; + // The type of traffic is blocked and the user cannot configure a firewall // rule to enable it. See [Always blocked // traffic](https://cloud.google.com/vpc/docs/firewalls#blockedtraffic) for @@ -1230,6 +1334,11 @@ message DropInfo { // instance to a destination network. CLOUD_SQL_INSTANCE_NO_ROUTE = 35; + // Packet was dropped because the Cloud SQL instance requires all + // connections to use Cloud SQL connectors and to target the Cloud SQL proxy + // port (3307). + CLOUD_SQL_CONNECTOR_REQUIRED = 63; + // Packet could be dropped because the Cloud Function is not in an active // status. CLOUD_FUNCTION_NOT_ACTIVE = 22; @@ -1241,6 +1350,14 @@ message DropInfo { // state. VPC_CONNECTOR_NOT_RUNNING = 24; + // Packet could be dropped because the traffic from the serverless service + // to the VPC connector is not allowed. + VPC_CONNECTOR_SERVERLESS_TRAFFIC_BLOCKED = 60; + + // Packet could be dropped because the health check traffic to the VPC + // connector is not allowed. + VPC_CONNECTOR_HEALTH_CHECK_TRAFFIC_BLOCKED = 61; + // Packet could be dropped because it was sent from a different region // to a regional forwarding without global access. FORWARDING_RULE_REGION_MISMATCH = 25; @@ -1272,6 +1389,10 @@ message DropInfo { // No NAT subnets are defined for the PSC service attachment. NO_NAT_SUBNETS_FOR_PSC_SERVICE_ATTACHMENT = 57; + // PSC endpoint is accessed via NCC, but PSC transitivity configuration is + // not yet propagated. + PSC_TRANSITIVITY_NOT_PROPAGATED = 64; + // The packet sent from the hybrid NEG proxy matches a non-dynamic route, // but such a configuration is not supported. HYBRID_NEG_NON_DYNAMIC_ROUTE_MATCHED = 55; @@ -1296,6 +1417,75 @@ message DropInfo { // Packet is stuck in a routing loop. ROUTING_LOOP = 59; + + // Packet is dropped inside a Google-managed service due to being delivered + // in return trace to an endpoint that doesn't match the endpoint the packet + // was sent from in forward trace. Used only for return traces. + DROPPED_INSIDE_GOOGLE_MANAGED_SERVICE = 62; + + // Packet is dropped due to a load balancer backend instance not having a + // network interface in the network expected by the load balancer. + LOAD_BALANCER_BACKEND_INVALID_NETWORK = 65; + + // Packet is dropped due to a backend service named port not being defined + // on the instance group level. + BACKEND_SERVICE_NAMED_PORT_NOT_DEFINED = 66; + + // Packet is dropped due to a destination IP range being part of a Private + // NAT IP range. + DESTINATION_IS_PRIVATE_NAT_IP_RANGE = 67; + + // Generic drop cause for a packet being dropped inside a Redis Instance + // service project. + DROPPED_INSIDE_REDIS_INSTANCE_SERVICE = 70; + + // Packet is dropped due to an unsupported port being used to connect to a + // Redis Instance. Port 6379 should be used to connect to a Redis Instance. + REDIS_INSTANCE_UNSUPPORTED_PORT = 71; + + // Packet is dropped due to connecting from PUPI address to a PSA based + // Redis Instance. + REDIS_INSTANCE_CONNECTING_FROM_PUPI_ADDRESS = 72; + + // Packet is dropped due to no route to the destination network. + REDIS_INSTANCE_NO_ROUTE_TO_DESTINATION_NETWORK = 73; + + // Redis Instance does not have an external IP address. + REDIS_INSTANCE_NO_EXTERNAL_IP = 74; + + // Packet is dropped due to an unsupported protocol being used to connect to + // a Redis Instance. Only TCP connections are accepted by a Redis Instance. + REDIS_INSTANCE_UNSUPPORTED_PROTOCOL = 78; + + // Generic drop cause for a packet being dropped inside a Redis Cluster + // service project. + DROPPED_INSIDE_REDIS_CLUSTER_SERVICE = 75; + + // Packet is dropped due to an unsupported port being used to connect to a + // Redis Cluster. Ports 6379 and 11000 to 13047 should be used to connect to + // a Redis Cluster. + REDIS_CLUSTER_UNSUPPORTED_PORT = 76; + + // Redis Cluster does not have an external IP address. + REDIS_CLUSTER_NO_EXTERNAL_IP = 77; + + // Packet is dropped due to an unsupported protocol being used to connect to + // a Redis Cluster. Only TCP connections are accepted by a Redis Cluster. + REDIS_CLUSTER_UNSUPPORTED_PROTOCOL = 79; + + // Packet from the non-GCP (on-prem) or unknown GCP network is dropped due + // to the destination IP address not belonging to any IP prefix advertised + // via BGP by the Cloud Router. + NO_ADVERTISED_ROUTE_TO_GCP_DESTINATION = 80; + + // Packet from the non-GCP (on-prem) or unknown GCP network is dropped due + // to the destination IP address not belonging to any IP prefix included to + // the local traffic selector of the VPN tunnel. + NO_TRAFFIC_SELECTOR_TO_GCP_DESTINATION = 81; + + // Packet from the unknown peered network is dropped due to no known route + // from the source network to the destination IP address. + NO_KNOWN_ROUTE_FROM_PEERED_NETWORK_TO_DESTINATION = 82; } // Cause that the packet is dropped. @@ -1352,6 +1542,53 @@ message CloudSQLInstanceInfo { string region = 7; } +// For display only. Metadata associated with a Cloud Redis Instance. +message RedisInstanceInfo { + // Name of a Cloud Redis Instance. + string display_name = 1; + + // URI of a Cloud Redis Instance. + string uri = 2; + + // URI of a Cloud Redis Instance network. + string network_uri = 3; + + // Primary endpoint IP address of a Cloud Redis Instance. + string primary_endpoint_ip = 4; + + // Read endpoint IP address of a Cloud Redis Instance (if applicable). + string read_endpoint_ip = 5; + + // Region in which the Cloud Redis Instance is defined. + string region = 6; +} + +// For display only. Metadata associated with a Redis Cluster. +message RedisClusterInfo { + // Name of a Redis Cluster. + string display_name = 1; + + // URI of a Redis Cluster in format + // "projects/{project_id}/locations/{location}/clusters/{cluster_id}" + string uri = 2; + + // URI of a Redis Cluster network in format + // "projects/{project_id}/global/networks/{network_id}". + string network_uri = 3; + + // Discovery endpoint IP address of a Redis Cluster. + string discovery_endpoint_ip_address = 4 + [(google.api.field_info).format = IPV4_OR_IPV6]; + + // Secondary endpoint IP address of a Redis Cluster. + string secondary_endpoint_ip_address = 5 + [(google.api.field_info).format = IPV4_OR_IPV6]; + + // Name of the region in which the Redis Cluster is defined. For example, + // "us-central1". + string location = 6; +} + // For display only. Metadata associated with a Cloud Function. message CloudFunctionInfo { // Name of a Cloud Function. @@ -1623,3 +1860,10 @@ message StorageBucketInfo { // Cloud Storage Bucket name. string bucket = 1; } + +// For display only. Metadata associated with the serverless network endpoint +// group backend. +message ServerlessNegInfo { + // URI of the serverless network endpoint group. + string neg_uri = 1; +} diff --git a/google/cloud/networkmanagement/v1beta1/vpc_flow_logs.proto b/google/cloud/networkmanagement/v1beta1/vpc_flow_logs.proto new file mode 100644 index 000000000..bb6d06d3a --- /dev/null +++ b/google/cloud/networkmanagement/v1beta1/vpc_flow_logs.proto @@ -0,0 +1,228 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +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/reachability.proto"; +import "google/cloud/networkmanagement/v1beta1/vpc_flow_logs_config.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.NetworkManagement.V1Beta1"; +option go_package = "cloud.google.com/go/networkmanagement/apiv1beta1/networkmanagementpb;networkmanagementpb"; +option java_multiple_files = true; +option java_outer_classname = "VpcFlowLogsProto"; +option java_package = "com.google.cloud.networkmanagement.v1beta1"; +option php_namespace = "Google\\Cloud\\NetworkManagement\\V1beta1"; +option ruby_package = "Google::Cloud::NetworkManagement::V1beta1"; + +// The VPC Flow Logs service in the Google Cloud Network Management API provides +// configurations that generate Flow Logs. The service and the configuration +// resources created using this service are global. +service VpcFlowLogsService { + option (google.api.default_host) = "networkmanagement.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Lists all `VpcFlowLogsConfigs` in a given project. + rpc ListVpcFlowLogsConfigs(ListVpcFlowLogsConfigsRequest) + returns (ListVpcFlowLogsConfigsResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*}/vpcFlowLogsConfigs" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets the details of a specific `VpcFlowLogsConfig`. + rpc GetVpcFlowLogsConfig(GetVpcFlowLogsConfigRequest) + returns (VpcFlowLogsConfig) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/vpcFlowLogsConfigs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new `VpcFlowLogsConfig`. + // If a configuration with the exact same settings already exists (even if the + // ID is different), the creation fails. + // Notes: + // 1. Creating a configuration with state=DISABLED will fail. + // 2. The following fields are not considrered as `settings` for the purpose + // of the check mentioned above, therefore - creating another configuration + // with the same fields but different values for the following fields will + // fail as well: + // - name + // - create_time + // - update_time + // - labels + // - description + rpc CreateVpcFlowLogsConfig(CreateVpcFlowLogsConfigRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*}/vpcFlowLogsConfigs" + body: "vpc_flow_logs_config" + }; + option (google.api.method_signature) = + "parent,vpc_flow_logs_config,vpc_flow_logs_config_id"; + option (google.longrunning.operation_info) = { + response_type: "VpcFlowLogsConfig" + metadata_type: "google.cloud.networkmanagement.v1beta1.OperationMetadata" + }; + } + + // Updates an existing `VpcFlowLogsConfig`. + // If a configuration with the exact same settings already exists (even if the + // ID is different), the creation fails. + // Notes: + // 1. The following fields are not considrered as `settings` for the purpose + // of the check mentioned above, therefore - updating another configuration + // with the same fields but different values for the following fields will + // fail as well: + // - name + // - create_time + // - update_time + // - labels + // - description + rpc UpdateVpcFlowLogsConfig(UpdateVpcFlowLogsConfigRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1beta1/{vpc_flow_logs_config.name=projects/*/locations/*/vpcFlowLogsConfigs/*}" + body: "vpc_flow_logs_config" + }; + option (google.api.method_signature) = "vpc_flow_logs_config,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "VpcFlowLogsConfig" + metadata_type: "google.cloud.networkmanagement.v1beta1.OperationMetadata" + }; + } + + // Deletes a specific `VpcFlowLogsConfig`. + rpc DeleteVpcFlowLogsConfig(DeleteVpcFlowLogsConfigRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1beta1/{name=projects/*/locations/*/vpcFlowLogsConfigs/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.cloud.networkmanagement.v1beta1.OperationMetadata" + }; + } +} + +// Request for the `ListVpcFlowLogsConfigs` method. +message ListVpcFlowLogsConfigsRequest { + // Required. The parent resource of the VpcFlowLogsConfig: + // `projects/{project_id}/locations/global` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networkmanagement.googleapis.com/VpcFlowLogsConfig" + } + ]; + + // Optional. Number of `VpcFlowLogsConfigs` to return. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Page token from an earlier query, as returned in + // `next_page_token`. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Lists the `VpcFlowLogsConfigs` that match the filter expression. + // A filter expression must use the supported [CEL logic operators] + // (https://cloud.google.com/vpc/docs/about-flow-logs-records#supported_cel_logic_operators). + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Field to use to sort the list. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response for the `ListVpcFlowLogsConfigs` method. +message ListVpcFlowLogsConfigsResponse { + // List of VPC Flow Log configurations. + repeated VpcFlowLogsConfig vpc_flow_logs_configs = 1; + + // Page token to fetch the next set of configurations. + string next_page_token = 2; + + // Locations that could not be reached (when querying all locations with `-`). + repeated string unreachable = 3; +} + +// Request for the `GetVpcFlowLogsConfig` method. +message GetVpcFlowLogsConfigRequest { + // Required. `VpcFlowLogsConfig` resource name using the form: + // `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkmanagement.googleapis.com/VpcFlowLogsConfig" + } + ]; +} + +// Request for the `CreateVpcFlowLogsConfig` method. +message CreateVpcFlowLogsConfigRequest { + // Required. The parent resource of the VPC Flow Logs configuration to create: + // `projects/{project_id}/locations/global` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "networkmanagement.googleapis.com/VpcFlowLogsConfig" + } + ]; + + // Required. ID of the `VpcFlowLogsConfig`. + string vpc_flow_logs_config_id = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkmanagement.googleapis.com/VpcFlowLogsConfig" + } + ]; + + // Required. A `VpcFlowLogsConfig` resource + VpcFlowLogsConfig vpc_flow_logs_config = 3 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request for the `UpdateVpcFlowLogsConfig` method. +message UpdateVpcFlowLogsConfigRequest { + // Required. Mask of fields to update. At least one path must be supplied in + // this field. + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Only fields specified in update_mask are updated. + VpcFlowLogsConfig vpc_flow_logs_config = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Request for the `DeleteVpcFlowLogsConfig` method. +message DeleteVpcFlowLogsConfigRequest { + // Required. `VpcFlowLogsConfig` resource name using the form: + // `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "networkmanagement.googleapis.com/VpcFlowLogsConfig" + } + ]; +} diff --git a/google/cloud/networkmanagement/v1beta1/vpc_flow_logs_config.proto b/google/cloud/networkmanagement/v1beta1/vpc_flow_logs_config.proto new file mode 100644 index 000000000..03137065a --- /dev/null +++ b/google/cloud/networkmanagement/v1beta1/vpc_flow_logs_config.proto @@ -0,0 +1,152 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.networkmanagement.v1beta1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.NetworkManagement.V1Beta1"; +option go_package = "cloud.google.com/go/networkmanagement/apiv1beta1/networkmanagementpb;networkmanagementpb"; +option java_multiple_files = true; +option java_outer_classname = "VpcFlowLogsConfigProto"; +option java_package = "com.google.cloud.networkmanagement.v1beta1"; +option php_namespace = "Google\\Cloud\\NetworkManagement\\V1beta1"; +option ruby_package = "Google::Cloud::NetworkManagement::V1beta1"; + +// A configuration to generate VPC Flow Logs. +message VpcFlowLogsConfig { + option (google.api.resource) = { + type: "networkmanagement.googleapis.com/VpcFlowLogsConfig" + pattern: "projects/{project}/locations/{location}/vpcFlowLogsConfigs/{vpc_flow_logs_config}" + plural: "vpcFlowLogsConfigs" + singular: "vpcFlowLogsConfig" + }; + + // Determines whether this configuration will be generating logs. + // Setting state=DISABLED will pause the log generation for this config. + enum State { + // If not specified, will default to ENABLED. + STATE_UNSPECIFIED = 0; + + // When ENABLED, this configuration will generate logs. + ENABLED = 1; + + // When DISABLED, this configuration will not generate logs. + DISABLED = 2; + } + + // Toggles the aggregation interval for collecting flow logs by 5-tuple. + enum AggregationInterval { + // If not specified, will default to INTERVAL_5_SEC. + AGGREGATION_INTERVAL_UNSPECIFIED = 0; + + // Aggregate logs in 5s intervals. + INTERVAL_5_SEC = 1; + + // Aggregate logs in 30s intervals. + INTERVAL_30_SEC = 2; + + // Aggregate logs in 1m intervals. + INTERVAL_1_MIN = 3; + + // Aggregate logs in 5m intervals. + INTERVAL_5_MIN = 4; + + // Aggregate logs in 10m intervals. + INTERVAL_10_MIN = 5; + + // Aggregate logs in 15m intervals. + INTERVAL_15_MIN = 6; + } + + // Configures which log fields would be included. + enum Metadata { + // If not specified, will default to INCLUDE_ALL_METADATA. + METADATA_UNSPECIFIED = 0; + + // Include all metadata fields. + INCLUDE_ALL_METADATA = 1; + + // Exclude all metadata fields. + EXCLUDE_ALL_METADATA = 2; + + // Include only custom fields (specified in metadata_fields). + CUSTOM_METADATA = 3; + } + + // Identifier. Unique name of the configuration using the form: + // `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config_id}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. The user-supplied description of the VPC Flow Logs configuration. + // Maximum of 512 characters. + optional string description = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The state of the VPC Flow Log configuration. Default value is + // ENABLED. When creating a new configuration, it must be enabled. + optional State state = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The aggregation interval for the logs. Default value is + // INTERVAL_5_SEC. + optional AggregationInterval aggregation_interval = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The value of the field must be in (0, 1]. The sampling rate of + // VPC Flow Logs where 1.0 means all collected logs are reported. Setting the + // sampling rate to 0.0 is not allowed. If you want to disable VPC Flow Logs, + // use the state field instead. Default value is 1.0. + optional float flow_sampling = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Configures whether all, none or a subset of metadata fields + // should be added to the reported VPC flow logs. Default value is + // INCLUDE_ALL_METADATA. + optional Metadata metadata = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Custom metadata fields to include in the reported VPC flow logs. + // Can only be specified if "metadata" was set to CUSTOM_METADATA. + repeated string metadata_fields = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Export filter used to define which VPC Flow Logs should be + // logged. + optional string filter_expr = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Reference to the resource of the config scope. That is, the scope from + // which traffic is logged. The target resource must belong to the same + // project as the configuration. + oneof target_resource { + // Traffic will be logged from the Interconnect Attachment. + // Format: + // projects/{project_id}/regions/{region}/interconnectAttachments/{name} + string interconnect_attachment = 102; + + // Traffic will be logged from the VPN Tunnel. + // Format: projects/{project_id}/regions/{region}/vpnTunnels/{name} + string vpn_tunnel = 103; + } + + // Optional. Resource labels to represent user-provided metadata. + map<string, string> labels = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The time the config was created. + google.protobuf.Timestamp create_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time the config was updated. + google.protobuf.Timestamp update_time = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/networkservices/v1/BUILD.bazel b/google/cloud/networkservices/v1/BUILD.bazel index 254eacb51..adde8c03e 100644 --- a/google/cloud/networkservices/v1/BUILD.bazel +++ b/google/cloud/networkservices/v1/BUILD.bazel @@ -252,7 +252,7 @@ php_gapic_library( name = "networkservices_php_gapic", srcs = [":networkservices_proto_with_info"], grpc_service_config = "networkservices_grpc_service_config.json", - migration_mode = "PRE_MIGRATION_SURFACE_ONLY", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "networkservices_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/oracledatabase/BUILD.bazel b/google/cloud/oracledatabase/BUILD.bazel new file mode 100644 index 000000000..1db37ce13 --- /dev/null +++ b/google/cloud/oracledatabase/BUILD.bazel @@ -0,0 +1,36 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-oracle_database. + +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", +) + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +# Generates a Ruby wrapper client for oracledatabase. +# 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 = "oracledatabase_ruby_wrapper", + srcs = ["//google/cloud/oracledatabase/v1:oracledatabase_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-oracle_database", + "ruby-cloud-wrapper-of=v1:0.0", + ], + service_yaml = "//google/cloud/oracledatabase/v1:oracledatabase_v1.yaml", + transport = "rest", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-oracle_database-ruby", + deps = [ + ":oracledatabase_ruby_wrapper", + ], +) diff --git a/google/cloud/oracledatabase/v1/BUILD.bazel b/google/cloud/oracledatabase/v1/BUILD.bazel new file mode 100644 index 000000000..3cc50232d --- /dev/null +++ b/google/cloud/oracledatabase/v1/BUILD.bazel @@ -0,0 +1,415 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +# * extra_protoc_parameters +# * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "oracledatabase_proto", + srcs = [ + "autonomous_database.proto", + "autonomous_database_character_set.proto", + "autonomous_db_backup.proto", + "autonomous_db_version.proto", + "common.proto", + "db_node.proto", + "db_server.proto", + "db_system_shape.proto", + "entitlement.proto", + "exadata_infra.proto", + "gi_version.proto", + "location_metadata.proto", + "oracledatabase.proto", + "vm_cluster.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:field_info_proto", + "//google/api:resource_proto", + "//google/longrunning:operations_proto", + "//google/type:datetime_proto", + "//google/type:dayofweek_proto", + "//google/type:month_proto", + "//google/type:timeofday_proto", + "@com_google_protobuf//:duration_proto", + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:timestamp_proto", + ], +) + +proto_library_with_info( + name = "oracledatabase_proto_with_info", + deps = [ + ":oracledatabase_proto", + "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "oracledatabase_java_proto", + deps = [":oracledatabase_proto"], +) + +java_grpc_library( + name = "oracledatabase_java_grpc", + srcs = [":oracledatabase_proto"], + deps = [":oracledatabase_java_proto"], +) + +java_gapic_library( + name = "oracledatabase_java_gapic", + srcs = [":oracledatabase_proto_with_info"], + gapic_yaml = "oracledatabase_gapic.yaml", + grpc_service_config = "oracledatabase_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "oracledatabase_v1.yaml", + test_deps = [ + ":oracledatabase_java_grpc", + "//google/cloud/location:location_java_grpc", + ], + transport = "rest", + deps = [ + ":oracledatabase_java_proto", + "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", + ], +) + +java_gapic_test( + name = "oracledatabase_java_gapic_test_suite", + test_classes = [ + # "com.google.cloud.oracledatabase.v1.OracleDatabaseClientHttpJsonTest", + "com.google.cloud.oracledatabase.v1.OracleDatabaseClientTest", + ], + runtime_deps = [":oracledatabase_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-oracledatabase-v1-java", + include_samples = True, + transport = "rest", + deps = [ + ":oracledatabase_java_gapic", + ":oracledatabase_java_grpc", + ":oracledatabase_java_proto", + ":oracledatabase_proto", + ], +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "oracledatabase_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/oracledatabase/apiv1/oracledatabasepb", + protos = [":oracledatabase_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/longrunning:longrunning_go_proto", + "//google/type:datetime_go_proto", + "//google/type:dayofweek_go_proto", + "//google/type:month_go_proto", + "//google/type:timeofday_go_proto", + ], +) + +go_gapic_library( + name = "oracledatabase_go_gapic", + srcs = [":oracledatabase_proto_with_info"], + grpc_service_config = "oracledatabase_v1_grpc_service_config.json", + importpath = "cloud.google.com/go/oracledatabase/apiv1;oracledatabase", + metadata = True, + release_level = "beta", + rest_numeric_enums = True, + service_yaml = "oracledatabase_v1.yaml", + transport = "rest", + deps = [ + ":oracledatabase_go_proto", + "//google/cloud/location:location_go_proto", + "//google/longrunning:longrunning_go_proto", + "@com_google_cloud_go_longrunning//:go_default_library", + "@com_google_cloud_go_longrunning//autogen:go_default_library", + "@io_bazel_rules_go//proto/wkt:duration_go_proto", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-oracledatabase-v1-go", + deps = [ + ":oracledatabase_go_gapic", + ":oracledatabase_go_gapic_srcjar-metadata.srcjar", + ":oracledatabase_go_gapic_srcjar-snippets.srcjar", + ":oracledatabase_go_gapic_srcjar-test.srcjar", + ":oracledatabase_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "oracledatabase_py_gapic", + srcs = [":oracledatabase_proto"], + grpc_service_config = "oracledatabase_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "oracledatabase_v1.yaml", + transport = "rest", + deps = [ + ], +) + +py_test( + name = "oracledatabase_py_gapic_test", + srcs = [ + "oracledatabase_py_gapic_pytest.py", + "oracledatabase_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":oracledatabase_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "oracledatabase-v1-py", + deps = [ + ":oracledatabase_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + +php_proto_library( + name = "oracledatabase_php_proto", + deps = [":oracledatabase_proto"], +) + +php_gapic_library( + name = "oracledatabase_php_gapic", + srcs = [":oracledatabase_proto_with_info"], + grpc_service_config = "oracledatabase_v1_grpc_service_config.json", + migration_mode = "NEW_SURFACE_ONLY", + rest_numeric_enums = True, + service_yaml = "oracledatabase_v1.yaml", + gapic_yaml = "oracledatabase_gapic.yaml", + transport = "rest", + deps = [ + ":oracledatabase_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-oracledatabase-v1-php", + deps = [ + ":oracledatabase_php_gapic", + ":oracledatabase_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "oracledatabase_nodejs_gapic", + package_name = "@google-cloud/oracledatabase", + src = ":oracledatabase_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "oracledatabase_v1_grpc_service_config.json", + package = "google.cloud.oracledatabase.v1", + rest_numeric_enums = True, + service_yaml = "oracledatabase_v1.yaml", + transport = "rest", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "oracledatabase-v1-nodejs", + deps = [ + ":oracledatabase_nodejs_gapic", + ":oracledatabase_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "oracledatabase_ruby_proto", + deps = [":oracledatabase_proto"], +) + +ruby_grpc_library( + name = "oracledatabase_ruby_grpc", + srcs = [":oracledatabase_proto"], + deps = [":oracledatabase_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "oracledatabase_ruby_gapic", + srcs = [":oracledatabase_proto_with_info"], + extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-oracle_database-v1"], + grpc_service_config = "oracledatabase_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "oracledatabase_v1.yaml", + transport = "rest", + deps = [ + ":oracledatabase_ruby_grpc", + ":oracledatabase_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-oracledatabase-v1-ruby", + deps = [ + ":oracledatabase_ruby_gapic", + ":oracledatabase_ruby_grpc", + ":oracledatabase_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "oracledatabase_csharp_proto", + deps = [":oracledatabase_proto"], +) + +csharp_grpc_library( + name = "oracledatabase_csharp_grpc", + srcs = [":oracledatabase_proto"], + deps = [":oracledatabase_csharp_proto"], +) + +csharp_gapic_library( + name = "oracledatabase_csharp_gapic", + srcs = [":oracledatabase_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "oracledatabase_v1_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "oracledatabase_v1.yaml", + transport = "rest", + deps = [ + ":oracledatabase_csharp_grpc", + ":oracledatabase_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-oracledatabase-v1-csharp", + deps = [ + ":oracledatabase_csharp_gapic", + ":oracledatabase_csharp_grpc", + ":oracledatabase_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "oracledatabase_cc_proto", + deps = [":oracledatabase_proto"], +) + +cc_grpc_library( + name = "oracledatabase_cc_grpc", + srcs = [":oracledatabase_proto"], + grpc_only = True, + deps = [":oracledatabase_cc_proto"], +) diff --git a/google/cloud/oracledatabase/v1/autonomous_database.proto b/google/cloud/oracledatabase/v1/autonomous_database.proto new file mode 100644 index 000000000..3090a89f2 --- /dev/null +++ b/google/cloud/oracledatabase/v1/autonomous_database.proto @@ -0,0 +1,870 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.oracledatabase.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/oracledatabase/v1/common.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; +import "google/type/dayofweek.proto"; +import "google/type/timeofday.proto"; + +option csharp_namespace = "Google.Cloud.OracleDatabase.V1"; +option go_package = "cloud.google.com/go/oracledatabase/apiv1/oracledatabasepb;oracledatabasepb"; +option java_multiple_files = true; +option java_outer_classname = "AutonomousDatabaseProto"; +option java_package = "com.google.cloud.oracledatabase.v1"; +option php_namespace = "Google\\Cloud\\OracleDatabase\\V1"; +option ruby_package = "Google::Cloud::OracleDatabase::V1"; + +// The type of wallet generation. +enum GenerateType { + // Default unspecified value. + GENERATE_TYPE_UNSPECIFIED = 0; + + // Used to generate wallet for all databases in the region. + ALL = 1; + + // Used to generate wallet for a single database. + SINGLE = 2; +} + +// The various lifecycle states of the Autonomous Database. +enum State { + // Default unspecified value. + STATE_UNSPECIFIED = 0; + + // Indicates that the Autonomous Database is in provisioning state. + PROVISIONING = 1; + + // Indicates that the Autonomous Database is in available state. + AVAILABLE = 2; + + // Indicates that the Autonomous Database is in stopping state. + STOPPING = 3; + + // Indicates that the Autonomous Database is in stopped state. + STOPPED = 4; + + // Indicates that the Autonomous Database is in starting state. + STARTING = 5; + + // Indicates that the Autonomous Database is in terminating state. + TERMINATING = 6; + + // Indicates that the Autonomous Database is in terminated state. + TERMINATED = 7; + + // Indicates that the Autonomous Database is in unavailable state. + UNAVAILABLE = 8; + + // Indicates that the Autonomous Database restore is in progress. + RESTORE_IN_PROGRESS = 9; + + // Indicates that the Autonomous Database failed to restore. + RESTORE_FAILED = 10; + + // Indicates that the Autonomous Database backup is in progress. + BACKUP_IN_PROGRESS = 11; + + // Indicates that the Autonomous Database scale is in progress. + SCALE_IN_PROGRESS = 12; + + // Indicates that the Autonomous Database is available but needs attention + // state. + AVAILABLE_NEEDS_ATTENTION = 13; + + // Indicates that the Autonomous Database is in updating state. + UPDATING = 14; + + // Indicates that the Autonomous Database's maintenance is in progress state. + MAINTENANCE_IN_PROGRESS = 15; + + // Indicates that the Autonomous Database is in restarting state. + RESTARTING = 16; + + // Indicates that the Autonomous Database is in recreating state. + RECREATING = 17; + + // Indicates that the Autonomous Database's role change is in progress state. + ROLE_CHANGE_IN_PROGRESS = 18; + + // Indicates that the Autonomous Database is in upgrading state. + UPGRADING = 19; + + // Indicates that the Autonomous Database is in inaccessible state. + INACCESSIBLE = 20; + + // Indicates that the Autonomous Database is in standby state. + STANDBY = 21; +} + +// The state of the Operations Insights for this Autonomous Database. +enum OperationsInsightsState { + // Default unspecified value. + OPERATIONS_INSIGHTS_STATE_UNSPECIFIED = 0; + + // Enabling status for operation insights. + ENABLING = 1; + + // Enabled status for operation insights. + ENABLED = 2; + + // Disabling status for operation insights. + DISABLING = 3; + + // Not Enabled status for operation insights. + NOT_ENABLED = 4; + + // Failed enabling status for operation insights. + FAILED_ENABLING = 5; + + // Failed disabling status for operation insights. + FAILED_DISABLING = 6; +} + +// The various states available for the Autonomous Database workload type. +enum DBWorkload { + // Default unspecified value. + DB_WORKLOAD_UNSPECIFIED = 0; + + // Autonomous Transaction Processing database. + OLTP = 1; + + // Autonomous Data Warehouse database. + DW = 2; + + // Autonomous JSON Database. + AJD = 3; + + // Autonomous Database with the Oracle APEX Application Development workload + // type. + APEX = 4; +} + +// Details of the Autonomous Database resource. +// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/AutonomousDatabase/ +message AutonomousDatabase { + option (google.api.resource) = { + type: "oracledatabase.googleapis.com/AutonomousDatabase" + pattern: "projects/{project}/locations/{location}/autonomousDatabases/{autonomous_database}" + plural: "autonomousDatabases" + singular: "autonomousDatabase" + }; + + // Identifier. The name of the Autonomous Database resource in the following + // format: + // projects/{project}/locations/{region}/autonomousDatabases/{autonomous_database} + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. The name of the Autonomous Database. The database name must be + // unique in the project. The name must begin with a letter and can contain a + // maximum of 30 alphanumeric characters. + string database = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The display name for the Autonomous Database. The name does not + // have to be unique within your project. + string display_name = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The ID of the subscription entitlement associated with the + // Autonomous Database. + string entitlement_id = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The password for the default ADMIN user. + string admin_password = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The properties of the Autonomous Database. + AutonomousDatabaseProperties properties = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The labels or tags associated with the Autonomous Database. + map<string, string> labels = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The name of the VPC network used by the Autonomous Database in + // the following format: projects/{project}/global/networks/{network} + string network = 9 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "compute.googleapis.com/Network" } + ]; + + // Required. The subnet CIDR range for the Autonmous Database. + string cidr = 10 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The date and time that the Autonomous Database was created. + google.protobuf.Timestamp create_time = 13 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The properties of an Autonomous Database. +message AutonomousDatabaseProperties { + // The editions available for the Autonomous Database. + enum DatabaseEdition { + // Default unspecified value. + DATABASE_EDITION_UNSPECIFIED = 0; + + // Standard Database Edition + STANDARD_EDITION = 1; + + // Enterprise Database Edition + ENTERPRISE_EDITION = 2; + } + + // The license types available for the Autonomous Database. + enum LicenseType { + // Unspecified + LICENSE_TYPE_UNSPECIFIED = 0; + + // License included part of offer + LICENSE_INCLUDED = 1; + + // Bring your own license + BRING_YOUR_OWN_LICENSE = 2; + } + + // The available maintenance schedules for the Autonomous Database. + enum MaintenanceScheduleType { + // Default unspecified value. + MAINTENANCE_SCHEDULE_TYPE_UNSPECIFIED = 0; + + // An EARLY maintenance schedule patches the database before + // the regular scheduled maintenance. + EARLY = 1; + + // A REGULAR maintenance schedule follows the normal maintenance cycle. + REGULAR = 2; + } + + // The types of local disaster recovery available for an Autonomous Database. + enum LocalDisasterRecoveryType { + // Default unspecified value. + LOCAL_DISASTER_RECOVERY_TYPE_UNSPECIFIED = 0; + + // Autonomous Data Guard recovery. + ADG = 1; + + // Backup based recovery. + BACKUP_BASED = 2; + } + + // Varies states of the Data Safe registration for the Autonomous Database. + enum DataSafeState { + // Default unspecified value. + DATA_SAFE_STATE_UNSPECIFIED = 0; + + // Registering data safe state. + REGISTERING = 1; + + // Registered data safe state. + REGISTERED = 2; + + // Deregistering data safe state. + DEREGISTERING = 3; + + // Not registered data safe state. + NOT_REGISTERED = 4; + + // Failed data safe state. + FAILED = 5; + } + + // The different states of database management for an Autonomous Database. + enum DatabaseManagementState { + // Default unspecified value. + DATABASE_MANAGEMENT_STATE_UNSPECIFIED = 0; + + // Enabling Database Management state + ENABLING = 1; + + // Enabled Database Management state + ENABLED = 2; + + // Disabling Database Management state + DISABLING = 3; + + // Not Enabled Database Management state + NOT_ENABLED = 4; + + // Failed enabling Database Management state + FAILED_ENABLING = 5; + + // Failed disabling Database Management state + FAILED_DISABLING = 6; + } + + // This field indicates the modes of an Autonomous Database. + enum OpenMode { + // Default unspecified value. + OPEN_MODE_UNSPECIFIED = 0; + + // Read Only Mode + READ_ONLY = 1; + + // Read Write Mode + READ_WRITE = 2; + } + + // The types of permission levels for an Autonomous Database. + enum PermissionLevel { + // Default unspecified value. + PERMISSION_LEVEL_UNSPECIFIED = 0; + + // Restricted mode allows access only by admin users. + RESTRICTED = 1; + + // Normal access. + UNRESTRICTED = 2; + } + + // The refresh mode of the cloned Autonomous Database. + enum RefreshableMode { + // The default unspecified value. + REFRESHABLE_MODE_UNSPECIFIED = 0; + + // AUTOMATIC indicates that the cloned database is automatically + // refreshed with data from the source Autonomous Database. + AUTOMATIC = 1; + + // MANUAL indicates that the cloned database is manually refreshed with + // data from the source Autonomous Database. + MANUAL = 2; + } + + // The refresh state of the cloned Autonomous Database. + enum RefreshableState { + // Default unspecified value. + REFRESHABLE_STATE_UNSPECIFIED = 0; + + // Refreshing + REFRESHING = 1; + + // Not refreshed + NOT_REFRESHING = 2; + } + + // The Data Guard role of the Autonomous Database. + enum Role { + // Default unspecified value. + ROLE_UNSPECIFIED = 0; + + // Primary role + PRIMARY = 1; + + // Standby role + STANDBY = 2; + + // Disabled standby role + DISABLED_STANDBY = 3; + + // Backup copy role + BACKUP_COPY = 4; + + // Snapshot standby role + SNAPSHOT_STANDBY = 5; + } + + // Output only. OCID of the Autonomous Database. + // https://docs.oracle.com/en-us/iaas/Content/General/Concepts/identifiers.htm#Oracle + string ocid = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The number of compute servers for the Autonomous Database. + float compute_count = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The number of CPU cores to be made available to the database. + int32 cpu_core_count = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The size of the data stored in the database, in terabytes. + int32 data_storage_size_tb = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The size of the data stored in the database, in gigabytes. + int32 data_storage_size_gb = 63 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The workload type of the Autonomous Database. + DBWorkload db_workload = 5 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The edition of the Autonomous Databases. + DatabaseEdition db_edition = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The character set for the Autonomous Database. The default is + // AL32UTF8. + string character_set = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The national character set for the Autonomous Database. The + // default is AL16UTF16. + string n_character_set = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The private endpoint IP address for the Autonomous Database. + string private_endpoint_ip = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The private endpoint label for the Autonomous Database. + string private_endpoint_label = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Oracle Database version for the Autonomous Database. + string db_version = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This field indicates if auto scaling is enabled for the + // Autonomous Database CPU core count. + bool is_auto_scaling_enabled = 14 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This field indicates if auto scaling is enabled for the + // Autonomous Database storage. + bool is_storage_auto_scaling_enabled = 15 + [(google.api.field_behavior) = OPTIONAL]; + + // Required. The license type used for the Autonomous Database. + LicenseType license_type = 16 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The list of customer contacts. + repeated CustomerContact customer_contacts = 17 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The ID of the Oracle Cloud Infrastructure vault secret. + string secret_id = 18 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The ID of the Oracle Cloud Infrastructure vault. + string vault_id = 19 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The maintenance schedule of the Autonomous Database. + MaintenanceScheduleType maintenance_schedule_type = 20 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This field specifies if the Autonomous Database requires mTLS + // connections. + bool mtls_connection_required = 34 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The retention period for the Autonomous Database. This field is + // specified in days, can range from 1 day to 60 days, and has a default value + // of 60 days. + int32 backup_retention_period_days = 57 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The amount of storage currently being used for user and system + // data, in terabytes. + double actual_used_data_storage_size_tb = 21 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The amount of storage currently allocated for the database + // tables and billed for, rounded up in terabytes. + double allocated_storage_size_tb = 22 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The details for the Oracle APEX Application Development. + AutonomousDatabaseApex apex_details = 23 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This field indicates the status of Data Guard and Access + // control for the Autonomous Database. The field's value is null if Data + // Guard is disabled or Access Control is disabled. The field's value is TRUE + // if both Data Guard and Access Control are enabled, and the Autonomous + // Database is using primary IP access control list (ACL) for standby. The + // field's value is FALSE if both Data Guard and Access Control are enabled, + // and the Autonomous Database is using a different IP access control list + // (ACL) for standby compared to primary. + optional bool are_primary_allowlisted_ips_used = 24 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The details of the current lifestyle state of the Autonomous + // Database. + string lifecycle_details = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The current lifecycle state of the Autonomous Database. + State state = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Autonomous Container Database OCID. + string autonomous_container_database_id = 27 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The list of available Oracle Database upgrade versions for an + // Autonomous Database. + repeated string available_upgrade_versions = 28 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The connection strings used to connect to an Autonomous + // Database. + AutonomousDatabaseConnectionStrings connection_strings = 29 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Oracle Connection URLs for an Autonomous Database. + AutonomousDatabaseConnectionUrls connection_urls = 30 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This field indicates the number of seconds of data loss during + // a Data Guard failover. + google.protobuf.Duration failed_data_recovery_duration = 31 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The memory assigned to in-memory tables in an Autonomous + // Database. + int32 memory_table_gbs = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This field indicates whether the Autonomous Database has local + // (in-region) Data Guard enabled. + bool is_local_data_guard_enabled = 33 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This field indicates the maximum data loss limit for an + // Autonomous Database, in seconds. + int32 local_adg_auto_failover_max_data_loss_limit = 35 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The details of the Autonomous Data Guard standby database. + AutonomousDatabaseStandbySummary local_standby_db = 36 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The amount of memory enabled per ECPU, in gigabytes. + int32 memory_per_oracle_compute_unit_gbs = 37 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This field indicates the local disaster recovery (DR) type of + // an Autonomous Database. + LocalDisasterRecoveryType local_disaster_recovery_type = 38 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The current state of the Data Safe registration for the + // Autonomous Database. + DataSafeState data_safe_state = 39 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The current state of database management for the Autonomous + // Database. + DatabaseManagementState database_management_state = 40 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This field indicates the current mode of the Autonomous + // Database. + OpenMode open_mode = 41 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This field indicates the state of Operations Insights for the + // Autonomous Database. + OperationsInsightsState operations_insights_state = 42 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The list of OCIDs of standby databases located in Autonomous + // Data Guard remote regions that are associated with the source database. + repeated string peer_db_ids = 43 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The permission level of the Autonomous Database. + PermissionLevel permission_level = 44 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The private endpoint for the Autonomous Database. + string private_endpoint = 45 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The refresh mode of the cloned Autonomous Database. + RefreshableMode refreshable_mode = 46 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The refresh State of the clone. + RefreshableState refreshable_state = 47 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Data Guard role of the Autonomous Database. + Role role = 48 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The list and details of the scheduled operations of the + // Autonomous Database. + repeated ScheduledOperationDetails scheduled_operation_details = 64 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The SQL Web Developer URL for the Autonomous Database. + string sql_web_developer_url = 50 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The list of available regions that can be used to create a + // clone for the Autonomous Database. + repeated string supported_clone_regions = 51 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The storage space used by Autonomous Database, in gigabytes. + int32 used_data_storage_size_tbs = 53 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Oracle Cloud Infrastructure link for the Autonomous + // Database. + string oci_url = 54 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The storage space used by automatic backups of Autonomous + // Database, in gigabytes. + float total_auto_backup_storage_size_gbs = 59 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The long term backup schedule of the Autonomous Database. + google.protobuf.Timestamp next_long_term_backup_time = 60 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The date and time when maintenance will begin. + google.protobuf.Timestamp maintenance_begin_time = 65 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The date and time when maintenance will end. + google.protobuf.Timestamp maintenance_end_time = 66 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Oracle APEX Application Development. +// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/AutonomousDatabaseApex +message AutonomousDatabaseApex { + // Output only. The Oracle APEX Application Development version. + string apex_version = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Oracle REST Data Services (ORDS) version. + string ords_version = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The connection string used to connect to the Autonomous Database. +// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/AutonomousDatabaseConnectionStrings +message AutonomousDatabaseConnectionStrings { + // Output only. Returns all connection strings that can be used to connect to + // the Autonomous Database. + AllConnectionStrings all_connection_strings = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The database service provides the least level of resources to + // each SQL statement, but supports the most number of concurrent SQL + // statements. + string dedicated = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The database service provides the highest level of resources + // to each SQL statement. + string high = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The database service provides the least level of resources to + // each SQL statement. + string low = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The database service provides a lower level of resources to + // each SQL statement. + string medium = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A list of connection string profiles to allow clients to + // group, filter, and select values based on the structured metadata. + repeated DatabaseConnectionStringProfile profiles = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The connection string profile to allow clients to group. +// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/DatabaseConnectionStringProfile +message DatabaseConnectionStringProfile { + // The various consumer groups available in the connection string profile. + enum ConsumerGroup { + // Default unspecified value. + CONSUMER_GROUP_UNSPECIFIED = 0; + + // High consumer group. + HIGH = 1; + + // Medium consumer group. + MEDIUM = 2; + + // Low consumer group. + LOW = 3; + + // TP consumer group. + TP = 4; + + // TPURGENT consumer group. + TPURGENT = 5; + } + + // The host name format being used in the connection string. + enum HostFormat { + // Default unspecified value. + HOST_FORMAT_UNSPECIFIED = 0; + + // FQDN + FQDN = 1; + + // IP + IP = 2; + } + + // The protocol being used by the connection. + enum Protocol { + // Default unspecified value. + PROTOCOL_UNSPECIFIED = 0; + + // Tcp + TCP = 1; + + // Tcps + TCPS = 2; + } + + // The session mode of the connection. + enum SessionMode { + // Default unspecified value. + SESSION_MODE_UNSPECIFIED = 0; + + // Direct + DIRECT = 1; + + // Indirect + INDIRECT = 2; + } + + // Specifies syntax of the connection string. + enum SyntaxFormat { + // Default unspecified value. + SYNTAX_FORMAT_UNSPECIFIED = 0; + + // Long + LONG = 1; + + // Ezconnect + EZCONNECT = 2; + + // Ezconnectplus + EZCONNECTPLUS = 3; + } + + // This field indicates the TLS authentication type of the connection. + enum TLSAuthentication { + // Default unspecified value. + TLS_AUTHENTICATION_UNSPECIFIED = 0; + + // Server + SERVER = 1; + + // Mutual + MUTUAL = 2; + } + + // Output only. The current consumer group being used by the connection. + ConsumerGroup consumer_group = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The display name for the database connection. + string display_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The host name format being currently used in connection + // string. + HostFormat host_format = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This field indicates if the connection string is regional and + // is only applicable for cross-region Data Guard. + bool is_regional = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The protocol being used by the connection. + Protocol protocol = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The current session mode of the connection. + SessionMode session_mode = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The syntax of the connection string. + SyntaxFormat syntax_format = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This field indicates the TLS authentication type of the + // connection. + TLSAuthentication tls_authentication = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The value of the connection string. + string value = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A list of all connection strings that can be used to connect to the +// Autonomous Database. +message AllConnectionStrings { + // Output only. The database service provides the highest level of resources + // to each SQL statement. + string high = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The database service provides the least level of resources to + // each SQL statement. + string low = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The database service provides a lower level of resources to + // each SQL statement. + string medium = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The URLs for accessing Oracle Application Express (APEX) and SQL Developer +// Web with a browser from a Compute instance. +// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/AutonomousDatabaseConnectionUrls +message AutonomousDatabaseConnectionUrls { + // Output only. Oracle Application Express (APEX) URL. + string apex_uri = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The URL of the Database Transforms for the Autonomous + // Database. + string database_transforms_uri = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The URL of the Graph Studio for the Autonomous Database. + string graph_studio_uri = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The URL of the Oracle Machine Learning (OML) Notebook for the + // Autonomous Database. + string machine_learning_notebook_uri = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The URL of Machine Learning user management the Autonomous + // Database. + string machine_learning_user_management_uri = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The URL of the MongoDB API for the Autonomous Database. + string mongo_db_uri = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Oracle REST Data Services (ORDS) URL of the Web Access for + // the Autonomous Database. + string ords_uri = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The URL of the Oracle SQL Developer Web for the Autonomous + // Database. + string sql_dev_web_uri = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Autonomous Data Guard standby database details. +// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/AutonomousDatabaseStandbySummary +message AutonomousDatabaseStandbySummary { + // Output only. The amount of time, in seconds, that the data of the standby + // database lags in comparison to the data of the primary database. + google.protobuf.Duration lag_time_duration = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The additional details about the current lifecycle state of + // the Autonomous Database. + string lifecycle_details = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The current lifecycle state of the Autonomous Database. + State state = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The date and time the Autonomous Data Guard role was switched + // for the standby Autonomous Database. + google.protobuf.Timestamp data_guard_role_changed_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The date and time the Disaster Recovery role was switched for + // the standby Autonomous Database. + google.protobuf.Timestamp disaster_recovery_role_changed_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Details of scheduled operation. +// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/ScheduledOperationDetails +message ScheduledOperationDetails { + // Output only. Day of week. + google.type.DayOfWeek day_of_week = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Auto start time. + google.type.TimeOfDay start_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Auto stop time. + google.type.TimeOfDay stop_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/oracledatabase/v1/autonomous_database_character_set.proto b/google/cloud/oracledatabase/v1/autonomous_database_character_set.proto new file mode 100644 index 000000000..4c71efdec --- /dev/null +++ b/google/cloud/oracledatabase/v1/autonomous_database_character_set.proto @@ -0,0 +1,64 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.oracledatabase.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.OracleDatabase.V1"; +option go_package = "cloud.google.com/go/oracledatabase/apiv1/oracledatabasepb;oracledatabasepb"; +option java_multiple_files = true; +option java_outer_classname = "AutonomousDatabaseCharacterSetProto"; +option java_package = "com.google.cloud.oracledatabase.v1"; +option php_namespace = "Google\\Cloud\\OracleDatabase\\V1"; +option ruby_package = "Google::Cloud::OracleDatabase::V1"; + +// Details of the Autonomous Database character set resource. +// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/AutonomousDatabaseCharacterSets/ +message AutonomousDatabaseCharacterSet { + option (google.api.resource) = { + type: "oracledatabase.googleapis.com/AutonomousDatabaseCharacterSet" + pattern: "projects/{project}/locations/{location}/autonomousDatabaseCharacterSets/{autonomous_database_character_set}" + plural: "autonomousDatabaseCharacterSets" + singular: "autonomousDatabaseCharacterSet" + }; + + // The type of character set an Autonomous Database can have. + enum CharacterSetType { + // Character set type is not specified. + CHARACTER_SET_TYPE_UNSPECIFIED = 0; + + // Character set type is set to database. + DATABASE = 1; + + // Character set type is set to national. + NATIONAL = 2; + } + + // Identifier. The name of the Autonomous Database Character Set resource in + // the following format: + // projects/{project}/locations/{region}/autonomousDatabaseCharacterSets/{autonomous_database_character_set} + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. The character set type for the Autonomous Database. + CharacterSetType character_set_type = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The character set name for the Autonomous Database which is + // the ID in the resource name. + string character_set = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/oracledatabase/v1/autonomous_db_backup.proto b/google/cloud/oracledatabase/v1/autonomous_db_backup.proto new file mode 100644 index 000000000..3abc5c021 --- /dev/null +++ b/google/cloud/oracledatabase/v1/autonomous_db_backup.proto @@ -0,0 +1,179 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.oracledatabase.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.OracleDatabase.V1"; +option go_package = "cloud.google.com/go/oracledatabase/apiv1/oracledatabasepb;oracledatabasepb"; +option java_multiple_files = true; +option java_outer_classname = "AutonomousDbBackupProto"; +option java_package = "com.google.cloud.oracledatabase.v1"; +option php_namespace = "Google\\Cloud\\OracleDatabase\\V1"; +option ruby_package = "Google::Cloud::OracleDatabase::V1"; + +// Details of the Autonomous Database Backup resource. +// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/AutonomousDatabaseBackup/ +message AutonomousDatabaseBackup { + option (google.api.resource) = { + type: "oracledatabase.googleapis.com/AutonomousDatabaseBackup" + pattern: "projects/{project}/locations/{location}/autonomousDatabaseBackups/{autonomous_database_backup}" + plural: "autonomousDatabaseBackups" + singular: "autonomousDatabaseBackup" + }; + + // Identifier. The name of the Autonomous Database Backup resource with the + // format: + // projects/{project}/locations/{region}/autonomousDatabaseBackups/{autonomous_database_backup} + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. The name of the Autonomous Database resource for which the backup + // is being created. Format: + // projects/{project}/locations/{region}/autonomousDatabases/{autonomous_database} + string autonomous_database = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "oracledatabase.googleapis.com/AutonomousDatabase" + } + ]; + + // Optional. User friendly name for the Backup. The name does not have to be + // unique. + string display_name = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Various properties of the backup. + AutonomousDatabaseBackupProperties properties = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. labels or tags associated with the resource. + map<string, string> labels = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Properties of the Autonomous Database Backup resource. +message AutonomousDatabaseBackupProperties { + // // The various lifecycle states of the Autonomous Database Backup. + enum State { + // Default unspecified value. + STATE_UNSPECIFIED = 0; + + // Indicates that the resource is in creating state. + CREATING = 1; + + // Indicates that the resource is in active state. + ACTIVE = 2; + + // Indicates that the resource is in deleting state. + DELETING = 3; + + // Indicates that the resource is in deleted state. + DELETED = 4; + + // Indicates that the resource is in failed state. + FAILED = 6; + + // Indicates that the resource is in updating state. + UPDATING = 7; + } + + // The type of the backup. + enum Type { + // Default unspecified value. + TYPE_UNSPECIFIED = 0; + + // Incremental backups. + INCREMENTAL = 1; + + // Full backups. + FULL = 2; + + // Long term backups. + LONG_TERM = 3; + } + + // Output only. OCID of the Autonomous Database backup. + // https://docs.oracle.com/en-us/iaas/Content/General/Concepts/identifiers.htm#Oracle + string ocid = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Retention period in days for the backup. + int32 retention_period_days = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The OCID of the compartment. + string compartment_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The quantity of data in the database, in terabytes. + float database_size_tb = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A valid Oracle Database version for Autonomous Database. + string db_version = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Indicates if the backup is long term backup. + bool is_long_term_backup = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Indicates if the backup is automatic or user initiated. + bool is_automatic_backup = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Indicates if the backup can be used to restore the Autonomous + // Database. + bool is_restorable = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The OCID of the key store of Oracle Vault. + string key_store_id = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The wallet name for Oracle Key Vault. + string key_store_wallet = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The OCID of the key container that is used as the master + // encryption key in database transparent data encryption (TDE) operations. + string kms_key_id = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The OCID of the key container version that is used in database + // transparent data encryption (TDE) operations KMS Key can have multiple key + // versions. If none is specified, the current key version (latest) of the Key + // Id is used for the operation. Autonomous Database Serverless does not use + // key versions, hence is not applicable for Autonomous Database Serverless + // instances. + string kms_key_version_id = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Additional information about the current lifecycle state. + string lifecycle_details = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The lifecycle state of the backup. + State lifecycle_state = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The backup size in terabytes. + float size_tb = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp until when the backup will be available. + google.protobuf.Timestamp available_till_time = 16 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The date and time the backup completed. + google.protobuf.Timestamp end_time = 17 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The date and time the backup started. + google.protobuf.Timestamp start_time = 18 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of the backup. + Type type = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The OCID of the vault. + string vault_id = 20 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/oracledatabase/v1/autonomous_db_version.proto b/google/cloud/oracledatabase/v1/autonomous_db_version.proto new file mode 100644 index 000000000..35d68fd60 --- /dev/null +++ b/google/cloud/oracledatabase/v1/autonomous_db_version.proto @@ -0,0 +1,55 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.oracledatabase.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/oracledatabase/v1/autonomous_database.proto"; + +option csharp_namespace = "Google.Cloud.OracleDatabase.V1"; +option go_package = "cloud.google.com/go/oracledatabase/apiv1/oracledatabasepb;oracledatabasepb"; +option java_multiple_files = true; +option java_outer_classname = "AutonomousDbVersionProto"; +option java_package = "com.google.cloud.oracledatabase.v1"; +option php_namespace = "Google\\Cloud\\OracleDatabase\\V1"; +option ruby_package = "Google::Cloud::OracleDatabase::V1"; + +// Details of the Autonomous Database version. +// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/AutonomousDbVersionSummary/ +message AutonomousDbVersion { + option (google.api.resource) = { + type: "oracledatabase.googleapis.com/AutonomousDbVersion" + pattern: "projects/{project}/locations/{location}/autonomousDbVersions/{autonomous_db_version}" + plural: "autonomousDbVersions" + singular: "autonomousDbVersion" + }; + + // Identifier. The name of the Autonomous Database Version resource with the + // format: + // projects/{project}/locations/{region}/autonomousDbVersions/{autonomous_db_version} + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. An Oracle Database version for Autonomous Database. + string version = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The Autonomous Database workload type. + DBWorkload db_workload = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A URL that points to a detailed description of the Autonomous + // Database version. + string workload_uri = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/oracledatabase/v1/common.proto b/google/cloud/oracledatabase/v1/common.proto new file mode 100644 index 000000000..4eefe90ef --- /dev/null +++ b/google/cloud/oracledatabase/v1/common.proto @@ -0,0 +1,35 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.oracledatabase.v1; + +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Cloud.OracleDatabase.V1"; +option go_package = "cloud.google.com/go/oracledatabase/apiv1/oracledatabasepb;oracledatabasepb"; +option java_multiple_files = true; +option java_outer_classname = "CommonProto"; +option java_package = "com.google.cloud.oracledatabase.v1"; +option php_namespace = "Google\\Cloud\\OracleDatabase\\V1"; +option ruby_package = "Google::Cloud::OracleDatabase::V1"; + +// The CustomerContact reference as defined by Oracle. +// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/CustomerContact +message CustomerContact { + // Required. The email address used by Oracle to send notifications regarding + // databases and infrastructure. + string email = 1 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/cloud/oracledatabase/v1/db_node.proto b/google/cloud/oracledatabase/v1/db_node.proto new file mode 100644 index 000000000..d49d99c75 --- /dev/null +++ b/google/cloud/oracledatabase/v1/db_node.proto @@ -0,0 +1,106 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.oracledatabase.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.OracleDatabase.V1"; +option go_package = "cloud.google.com/go/oracledatabase/apiv1/oracledatabasepb;oracledatabasepb"; +option java_multiple_files = true; +option java_outer_classname = "DbNodeProto"; +option java_package = "com.google.cloud.oracledatabase.v1"; +option php_namespace = "Google\\Cloud\\OracleDatabase\\V1"; +option ruby_package = "Google::Cloud::OracleDatabase::V1"; + +// Details of the database node resource. +// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/DbNode/ +message DbNode { + option (google.api.resource) = { + type: "oracledatabase.googleapis.com/DbNode" + pattern: "projects/{project}/locations/{location}/cloudVmClusters/{cloud_vm_cluster}/dbNodes/{db_node}" + plural: "dbNodes" + singular: "dbNode" + }; + + // Identifier. The name of the database node resource in the following format: + // projects/{project}/locations/{location}/cloudVmClusters/{cloud_vm_cluster}/dbNodes/{db_node} + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. Various properties of the database node. + DbNodeProperties properties = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Various properties and settings associated with Db node. +message DbNodeProperties { + // The various lifecycle states of the database node. + enum State { + // Default unspecified value. + STATE_UNSPECIFIED = 0; + + // Indicates that the resource is in provisioning state. + PROVISIONING = 1; + + // Indicates that the resource is in available state. + AVAILABLE = 2; + + // Indicates that the resource is in updating state. + UPDATING = 3; + + // Indicates that the resource is in stopping state. + STOPPING = 4; + + // Indicates that the resource is in stopped state. + STOPPED = 5; + + // Indicates that the resource is in starting state. + STARTING = 6; + + // Indicates that the resource is in terminating state. + TERMINATING = 7; + + // Indicates that the resource is in terminated state. + TERMINATED = 8; + + // Indicates that the resource is in failed state. + FAILED = 9; + } + + // Output only. OCID of database node. + string ocid = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. OCPU count per database node. + int32 ocpu_count = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Memory allocated in GBs. + int32 memory_size_gb = 3; + + // Optional. Local storage per database node. + int32 db_node_storage_size_gb = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Database server OCID. + string db_server_ocid = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. DNS + string hostname = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. State of the database node. + State state = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Total CPU core count of the database node. + int32 total_cpu_core_count = 10; +} diff --git a/google/cloud/oracledatabase/v1/db_server.proto b/google/cloud/oracledatabase/v1/db_server.proto new file mode 100644 index 000000000..e5cdcf33d --- /dev/null +++ b/google/cloud/oracledatabase/v1/db_server.proto @@ -0,0 +1,104 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.oracledatabase.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.OracleDatabase.V1"; +option go_package = "cloud.google.com/go/oracledatabase/apiv1/oracledatabasepb;oracledatabasepb"; +option java_multiple_files = true; +option java_outer_classname = "DbServerProto"; +option java_package = "com.google.cloud.oracledatabase.v1"; +option php_namespace = "Google\\Cloud\\OracleDatabase\\V1"; +option ruby_package = "Google::Cloud::OracleDatabase::V1"; + +// Details of the database server resource. +// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/DbServer/ +message DbServer { + option (google.api.resource) = { + type: "oracledatabase.googleapis.com/DbServer" + pattern: "projects/{project}/locations/{location}/cloudExadataInfrastructures/{cloud_exadata_infrastructure}/dbServers/{db_server}" + plural: "dbServers" + singular: "dbServer" + }; + + // Identifier. The name of the database server resource with the format: + // projects/{project}/locations/{location}/cloudExadataInfrastructures/{cloud_exadata_infrastructure}/dbServers/{db_server} + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. User friendly name for this resource. + string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Various properties of the database server. + DbServerProperties properties = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Various properties and settings associated with Exadata database server. +message DbServerProperties { + // The various lifecycle states of the database server. + enum State { + // Default unspecified value. + STATE_UNSPECIFIED = 0; + + // Indicates that the resource is in creating state. + CREATING = 1; + + // Indicates that the resource is in available state. + AVAILABLE = 2; + + // Indicates that the resource is in unavailable state. + UNAVAILABLE = 3; + + // Indicates that the resource is in deleting state. + DELETING = 4; + + // Indicates that the resource is in deleted state. + DELETED = 5; + } + + // Output only. OCID of database server. + string ocid = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. OCPU count per database. + int32 ocpu_count = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Maximum OCPU count per database. + int32 max_ocpu_count = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Memory allocated in GBs. + int32 memory_size_gb = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Maximum memory allocated in GBs. + int32 max_memory_size_gb = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Local storage per VM. + int32 db_node_storage_size_gb = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Maximum local storage per VM. + int32 max_db_node_storage_size_gb = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Vm count per database. + int32 vm_count = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. State of the database server. + State state = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. OCID of database nodes associated with the database server. + repeated string db_node_ids = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/oracledatabase/v1/db_system_shape.proto b/google/cloud/oracledatabase/v1/db_system_shape.proto new file mode 100644 index 000000000..79ae46d3c --- /dev/null +++ b/google/cloud/oracledatabase/v1/db_system_shape.proto @@ -0,0 +1,79 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.oracledatabase.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.OracleDatabase.V1"; +option go_package = "cloud.google.com/go/oracledatabase/apiv1/oracledatabasepb;oracledatabasepb"; +option java_multiple_files = true; +option java_outer_classname = "DbSystemShapeProto"; +option java_package = "com.google.cloud.oracledatabase.v1"; +option php_namespace = "Google\\Cloud\\OracleDatabase\\V1"; +option ruby_package = "Google::Cloud::OracleDatabase::V1"; + +// Details of the Database System Shapes resource. +// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/DbSystemShapeSummary/ +message DbSystemShape { + option (google.api.resource) = { + type: "oracledatabase.googleapis.com/DbSystemShape" + pattern: "projects/{project}/locations/{location}/dbSystemShapes/{db_system_shape}" + plural: "dbSystemShapes" + singular: "dbSystemShape" + }; + + // Identifier. The name of the Database System Shape resource with the format: + // projects/{project}/locations/{region}/dbSystemShapes/{db_system_shape} + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. shape + string shape = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Minimum number of database servers. + int32 min_node_count = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Maximum number of database servers. + int32 max_node_count = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Minimum number of storage servers. + int32 min_storage_count = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Maximum number of storage servers. + int32 max_storage_count = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Number of cores per node. + int32 available_core_count_per_node = 7 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Memory per database server node in gigabytes. + int32 available_memory_per_node_gb = 8 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Storage per storage server in terabytes. + int32 available_data_storage_tb = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Minimum core count per node. + int32 min_core_count_per_node = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Minimum memory per node in gigabytes. + int32 min_memory_per_node_gb = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Minimum node storage per database server in gigabytes. + int32 min_db_node_storage_per_node_gb = 12 + [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/oracledatabase/v1/entitlement.proto b/google/cloud/oracledatabase/v1/entitlement.proto new file mode 100644 index 000000000..d82762b65 --- /dev/null +++ b/google/cloud/oracledatabase/v1/entitlement.proto @@ -0,0 +1,84 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.oracledatabase.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.OracleDatabase.V1"; +option go_package = "cloud.google.com/go/oracledatabase/apiv1/oracledatabasepb;oracledatabasepb"; +option java_multiple_files = true; +option java_outer_classname = "EntitlementProto"; +option java_package = "com.google.cloud.oracledatabase.v1"; +option php_namespace = "Google\\Cloud\\OracleDatabase\\V1"; +option ruby_package = "Google::Cloud::OracleDatabase::V1"; + +// Details of the Entitlement resource. +message Entitlement { + option (google.api.resource) = { + type: "oracledatabase.googleapis.com/Entitlement" + pattern: "projects/{project}/locations/{location}/entitlements/{entitlement}" + plural: "entitlements" + singular: "entitlement" + }; + + // The various lifecycle states of the subscription. + enum State { + // Default unspecified value. + STATE_UNSPECIFIED = 0; + + // Account not linked. + ACCOUNT_NOT_LINKED = 1; + + // Account is linked but not active. + ACCOUNT_NOT_ACTIVE = 2; + + // Entitlement and Account are active. + ACTIVE = 3; + } + + // Identifier. The name of the Entitlement resource with the format: + // projects/{project}/locations/{region}/entitlements/{entitlement} + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Details of the OCI Cloud Account. + CloudAccountDetails cloud_account_details = 2; + + // Output only. Google Cloud Marketplace order ID (aka entitlement ID) + string entitlement_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Entitlement State. + State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Details of the OCI Cloud Account. +message CloudAccountDetails { + // Output only. OCI account name. + string cloud_account = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. OCI account home region. + string cloud_account_home_region = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. URL to link an existing account. + optional string link_existing_account_uri = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. URL to create a new account and link. + optional string account_creation_uri = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/oracledatabase/v1/exadata_infra.proto b/google/cloud/oracledatabase/v1/exadata_infra.proto new file mode 100644 index 000000000..7b10ebb46 --- /dev/null +++ b/google/cloud/oracledatabase/v1/exadata_infra.proto @@ -0,0 +1,279 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.oracledatabase.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/oracledatabase/v1/common.proto"; +import "google/protobuf/timestamp.proto"; +import "google/type/dayofweek.proto"; +import "google/type/month.proto"; + +option csharp_namespace = "Google.Cloud.OracleDatabase.V1"; +option go_package = "cloud.google.com/go/oracledatabase/apiv1/oracledatabasepb;oracledatabasepb"; +option java_multiple_files = true; +option java_outer_classname = "CloudExadataInfrastructureProto"; +option java_package = "com.google.cloud.oracledatabase.v1"; +option php_namespace = "Google\\Cloud\\OracleDatabase\\V1"; +option ruby_package = "Google::Cloud::OracleDatabase::V1"; + +// Represents CloudExadataInfrastructure resource. +// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/CloudExadataInfrastructure/ +message CloudExadataInfrastructure { + option (google.api.resource) = { + type: "oracledatabase.googleapis.com/CloudExadataInfrastructure" + pattern: "projects/{project}/locations/{location}/cloudExadataInfrastructures/{cloud_exadata_infrastructure}" + plural: "cloudExadataInfrastructures" + singular: "cloudExadataInfrastructure" + }; + + // Identifier. The name of the Exadata Infrastructure resource with the + // format: + // projects/{project}/locations/{region}/cloudExadataInfrastructures/{cloud_exadata_infrastructure} + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. User friendly name for this resource. + string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Google Cloud Platform location where Oracle Exadata is hosted. + string gcp_oracle_zone = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Entitlement ID of the private offer against which this + // infrastructure resource is provisioned. + string entitlement_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Various properties of the infra. + CloudExadataInfrastructureProperties properties = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Labels or tags associated with the resource. + map<string, string> labels = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The date and time that the Exadata Infrastructure was created. + google.protobuf.Timestamp create_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Various properties of Exadata Infrastructure. +message CloudExadataInfrastructureProperties { + // The various lifecycle states of the Exadata Infrastructure. + enum State { + // Default unspecified value. + STATE_UNSPECIFIED = 0; + + // The Exadata Infrastructure is being provisioned. + PROVISIONING = 1; + + // The Exadata Infrastructure is available for use. + AVAILABLE = 2; + + // The Exadata Infrastructure is being updated. + UPDATING = 3; + + // The Exadata Infrastructure is being terminated. + TERMINATING = 4; + + // The Exadata Infrastructure is terminated. + TERMINATED = 5; + + // The Exadata Infrastructure is in failed state. + FAILED = 6; + + // The Exadata Infrastructure is in maintenance. + MAINTENANCE_IN_PROGRESS = 7; + } + + // Output only. OCID of created infra. + // https://docs.oracle.com/en-us/iaas/Content/General/Concepts/identifiers.htm#Oracle + string ocid = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The number of compute servers for the Exadata Infrastructure. + int32 compute_count = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The number of Cloud Exadata storage servers for the Exadata + // Infrastructure. + int32 storage_count = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The total storage allocated to the Exadata Infrastructure + // resource, in gigabytes (GB). + int32 total_storage_size_gb = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The available storage can be allocated to the Exadata + // Infrastructure resource, in gigabytes (GB). + int32 available_storage_size_gb = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Maintenance window for repair. + MaintenanceWindow maintenance_window = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The current lifecycle state of the Exadata Infrastructure. + State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The shape of the Exadata Infrastructure. The shape determines the + // amount of CPU, storage, and memory resources allocated to the instance. + string shape = 8 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Deep link to the OCI console to view this resource. + string oci_url = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The number of enabled CPU cores. + int32 cpu_count = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The total number of CPU cores available. + int32 max_cpu_count = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The memory allocated in GBs. + int32 memory_size_gb = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The total memory available in GBs. + int32 max_memory_gb = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The local node storage allocated in GBs. + int32 db_node_storage_size_gb = 14 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The total local node storage available in GBs. + int32 max_db_node_storage_size_gb = 15 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Size, in terabytes, of the DATA disk group. + double data_storage_size_tb = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The total available DATA disk group size. + double max_data_storage_tb = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The requested number of additional storage servers activated + // for the Exadata Infrastructure. + int32 activated_storage_count = 18 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The requested number of additional storage servers for the + // Exadata Infrastructure. + int32 additional_storage_count = 19 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The software version of the database servers (dom0) in the + // Exadata Infrastructure. + string db_server_version = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The software version of the storage servers (cells) in the + // Exadata Infrastructure. + string storage_server_version = 21 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The OCID of the next maintenance run. + string next_maintenance_run_id = 22 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the next maintenance run will occur. + google.protobuf.Timestamp next_maintenance_run_time = 23 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the next security maintenance run will occur. + google.protobuf.Timestamp next_security_maintenance_run_time = 24 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The list of customer contacts. + repeated CustomerContact customer_contacts = 25 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The monthly software version of the storage servers (cells) + // in the Exadata Infrastructure. Example: 20.1.15 + string monthly_storage_server_version = 26 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The monthly software version of the database servers (dom0) + // in the Exadata Infrastructure. Example: 20.1.15 + string monthly_db_server_version = 27 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Maintenance window as defined by Oracle. +// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/datatypes/MaintenanceWindow +message MaintenanceWindow { + // Maintenance window preference. + enum MaintenanceWindowPreference { + // Default unspecified value. + MAINTENANCE_WINDOW_PREFERENCE_UNSPECIFIED = 0; + + // Custom preference. + CUSTOM_PREFERENCE = 1; + + // No preference. + NO_PREFERENCE = 2; + } + + // Patching mode. + enum PatchingMode { + // Default unspecified value. + PATCHING_MODE_UNSPECIFIED = 0; + + // Updates the Cloud Exadata database server hosts in a rolling fashion. + ROLLING = 1; + + // The non-rolling maintenance method first updates your storage servers at + // the same time, then your database servers at the same time. + NON_ROLLING = 2; + } + + // Optional. The maintenance window scheduling preference. + MaintenanceWindowPreference preference = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Months during the year when maintenance should be performed. + repeated google.type.Month months = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Weeks during the month when maintenance should be performed. + // Weeks start on the 1st, 8th, 15th, and 22nd days of the month, and have a + // duration of 7 days. Weeks start and end based on calendar dates, not days + // of the week. + repeated int32 weeks_of_month = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Days during the week when maintenance should be performed. + repeated google.type.DayOfWeek days_of_week = 4 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The window of hours during the day when maintenance should be + // performed. The window is a 4 hour slot. Valid values are: + // 0 - represents time slot 0:00 - 3:59 UTC + // 4 - represents time slot 4:00 - 7:59 UTC + // 8 - represents time slot 8:00 - 11:59 UTC + // 12 - represents time slot 12:00 - 15:59 UTC + // 16 - represents time slot 16:00 - 19:59 UTC + // 20 - represents time slot 20:00 - 23:59 UTC + repeated int32 hours_of_day = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Lead time window allows user to set a lead time to prepare for a + // down time. The lead time is in weeks and valid value is between 1 to 4. + int32 lead_time_week = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Cloud CloudExadataInfrastructure node patching method, either + // "ROLLING" + // or "NONROLLING". Default value is ROLLING. + PatchingMode patching_mode = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Determines the amount of time the system will wait before the + // start of each database server patching operation. Custom action timeout is + // in minutes and valid value is between 15 to 120 (inclusive). + int32 custom_action_timeout_mins = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If true, enables the configuration of a custom action timeout + // (waiting period) between database server patching operations. + bool is_custom_action_timeout_enabled = 9 + [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/oracledatabase/v1/gi_version.proto b/google/cloud/oracledatabase/v1/gi_version.proto new file mode 100644 index 000000000..67f1111a5 --- /dev/null +++ b/google/cloud/oracledatabase/v1/gi_version.proto @@ -0,0 +1,47 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.oracledatabase.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.OracleDatabase.V1"; +option go_package = "cloud.google.com/go/oracledatabase/apiv1/oracledatabasepb;oracledatabasepb"; +option java_multiple_files = true; +option java_outer_classname = "GiVersionProto"; +option java_package = "com.google.cloud.oracledatabase.v1"; +option php_namespace = "Google\\Cloud\\OracleDatabase\\V1"; +option ruby_package = "Google::Cloud::OracleDatabase::V1"; + +// Details of the Oracle Grid Infrastructure (GI) version resource. +// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/GiVersionSummary/ +message GiVersion { + option (google.api.resource) = { + type: "oracledatabase.googleapis.com/GiVersion" + pattern: "projects/{project}/locations/{location}/giVersions/{gi_version}" + plural: "giVersions" + singular: "giVersion" + }; + + // Identifier. The name of the Oracle Grid Infrastructure (GI) version + // resource with the format: + // projects/{project}/locations/{region}/giVersions/{gi_versions} + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. version + string version = 2 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/oracledatabase/v1/location_metadata.proto b/google/cloud/oracledatabase/v1/location_metadata.proto new file mode 100644 index 000000000..c0f96098b --- /dev/null +++ b/google/cloud/oracledatabase/v1/location_metadata.proto @@ -0,0 +1,34 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.oracledatabase.v1; + +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Cloud.OracleDatabase.V1"; +option go_package = "cloud.google.com/go/oracledatabase/apiv1/oracledatabasepb;oracledatabasepb"; +option java_multiple_files = true; +option java_outer_classname = "LocationMetadataProto"; +option java_package = "com.google.cloud.oracledatabase.v1"; +option php_namespace = "Google\\Cloud\\OracleDatabase\\V1"; +option ruby_package = "Google::Cloud::OracleDatabase::V1"; + +// Metadata for a given [Location][google.cloud.location.Location]. +message LocationMetadata { + // Output only. Google Cloud Platform Oracle zones in a location. + repeated string gcp_oracle_zones = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/oracledatabase/v1/oracledatabase.proto b/google/cloud/oracledatabase/v1/oracledatabase.proto new file mode 100644 index 000000000..bc9a82b6a --- /dev/null +++ b/google/cloud/oracledatabase/v1/oracledatabase.proto @@ -0,0 +1,942 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.oracledatabase.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; +import "google/api/resource.proto"; +import "google/cloud/oracledatabase/v1/autonomous_database.proto"; +import "google/cloud/oracledatabase/v1/autonomous_database_character_set.proto"; +import "google/cloud/oracledatabase/v1/autonomous_db_backup.proto"; +import "google/cloud/oracledatabase/v1/autonomous_db_version.proto"; +import "google/cloud/oracledatabase/v1/db_node.proto"; +import "google/cloud/oracledatabase/v1/db_server.proto"; +import "google/cloud/oracledatabase/v1/db_system_shape.proto"; +import "google/cloud/oracledatabase/v1/entitlement.proto"; +import "google/cloud/oracledatabase/v1/exadata_infra.proto"; +import "google/cloud/oracledatabase/v1/gi_version.proto"; +import "google/cloud/oracledatabase/v1/vm_cluster.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.OracleDatabase.V1"; +option go_package = "cloud.google.com/go/oracledatabase/apiv1/oracledatabasepb;oracledatabasepb"; +option java_multiple_files = true; +option java_outer_classname = "V1mainProto"; +option java_package = "com.google.cloud.oracledatabase.v1"; +option php_namespace = "Google\\Cloud\\OracleDatabase\\V1"; +option ruby_package = "Google::Cloud::OracleDatabase::V1"; +option (google.api.resource_definition) = { + type: "compute.googleapis.com/Network" + pattern: "projects/{project}/global/networks/{network}" +}; + +// Service describing handlers for resources +service OracleDatabase { + option (google.api.default_host) = "oracledatabase.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Lists Exadata Infrastructures in a given project and location. + rpc ListCloudExadataInfrastructures(ListCloudExadataInfrastructuresRequest) + returns (ListCloudExadataInfrastructuresResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/cloudExadataInfrastructures" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single Exadata Infrastructure. + rpc GetCloudExadataInfrastructure(GetCloudExadataInfrastructureRequest) + returns (CloudExadataInfrastructure) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/cloudExadataInfrastructures/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new Exadata Infrastructure in a given project and location. + rpc CreateCloudExadataInfrastructure(CreateCloudExadataInfrastructureRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/cloudExadataInfrastructures" + body: "cloud_exadata_infrastructure" + }; + option (google.api.method_signature) = + "parent,cloud_exadata_infrastructure,cloud_exadata_infrastructure_id"; + option (google.longrunning.operation_info) = { + response_type: "CloudExadataInfrastructure" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a single Exadata Infrastructure. + rpc DeleteCloudExadataInfrastructure(DeleteCloudExadataInfrastructureRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/cloudExadataInfrastructures/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists the VM Clusters in a given project and location. + rpc ListCloudVmClusters(ListCloudVmClustersRequest) + returns (ListCloudVmClustersResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/cloudVmClusters" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets details of a single VM Cluster. + rpc GetCloudVmCluster(GetCloudVmClusterRequest) returns (CloudVmCluster) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/cloudVmClusters/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new VM Cluster in a given project and location. + rpc CreateCloudVmCluster(CreateCloudVmClusterRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/cloudVmClusters" + body: "cloud_vm_cluster" + }; + option (google.api.method_signature) = + "parent,cloud_vm_cluster,cloud_vm_cluster_id"; + option (google.longrunning.operation_info) = { + response_type: "CloudVmCluster" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a single VM Cluster. + rpc DeleteCloudVmCluster(DeleteCloudVmClusterRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/cloudVmClusters/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Lists the entitlements in a given project. + rpc ListEntitlements(ListEntitlementsRequest) + returns (ListEntitlementsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/entitlements" + }; + option (google.api.method_signature) = "parent"; + } + + // Lists the database servers of an Exadata Infrastructure instance. + rpc ListDbServers(ListDbServersRequest) returns (ListDbServersResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/cloudExadataInfrastructures/*}/dbServers" + }; + option (google.api.method_signature) = "parent"; + } + + // Lists the database nodes of a VM Cluster. + rpc ListDbNodes(ListDbNodesRequest) returns (ListDbNodesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/cloudVmClusters/*}/dbNodes" + }; + option (google.api.method_signature) = "parent"; + } + + // Lists all the valid Oracle Grid Infrastructure (GI) versions for the given + // project and location. + rpc ListGiVersions(ListGiVersionsRequest) returns (ListGiVersionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/giVersions" + }; + option (google.api.method_signature) = "parent"; + } + + // Lists the database system shapes available for the project and location. + rpc ListDbSystemShapes(ListDbSystemShapesRequest) + returns (ListDbSystemShapesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/dbSystemShapes" + }; + option (google.api.method_signature) = "parent"; + } + + // Lists the Autonomous Databases in a given project and location. + rpc ListAutonomousDatabases(ListAutonomousDatabasesRequest) + returns (ListAutonomousDatabasesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/autonomousDatabases" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets the details of a single Autonomous Database. + rpc GetAutonomousDatabase(GetAutonomousDatabaseRequest) + returns (AutonomousDatabase) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/autonomousDatabases/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a new Autonomous Database in a given project and location. + rpc CreateAutonomousDatabase(CreateAutonomousDatabaseRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/autonomousDatabases" + body: "autonomous_database" + }; + option (google.api.method_signature) = + "parent,autonomous_database,autonomous_database_id"; + option (google.longrunning.operation_info) = { + response_type: "AutonomousDatabase" + metadata_type: "OperationMetadata" + }; + } + + // Deletes a single Autonomous Database. + rpc DeleteAutonomousDatabase(DeleteAutonomousDatabaseRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/autonomousDatabases/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } + + // Restores a single Autonomous Database. + rpc RestoreAutonomousDatabase(RestoreAutonomousDatabaseRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/autonomousDatabases/*}:restore" + body: "*" + }; + option (google.api.method_signature) = "name,restore_time"; + option (google.longrunning.operation_info) = { + response_type: "AutonomousDatabase" + metadata_type: "OperationMetadata" + }; + } + + // Generates a wallet for an Autonomous Database. + rpc GenerateAutonomousDatabaseWallet(GenerateAutonomousDatabaseWalletRequest) + returns (GenerateAutonomousDatabaseWalletResponse) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/autonomousDatabases/*}:generateWallet" + body: "*" + }; + option (google.api.method_signature) = "name,type,is_regional,password"; + } + + // Lists all the available Autonomous Database versions for a project and + // location. + rpc ListAutonomousDbVersions(ListAutonomousDbVersionsRequest) + returns (ListAutonomousDbVersionsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/autonomousDbVersions" + }; + option (google.api.method_signature) = "parent"; + } + + // Lists Autonomous Database Character Sets in a given project and location. + rpc ListAutonomousDatabaseCharacterSets( + ListAutonomousDatabaseCharacterSetsRequest) + returns (ListAutonomousDatabaseCharacterSetsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/autonomousDatabaseCharacterSets" + }; + option (google.api.method_signature) = "parent"; + } + + // Lists the long-term and automatic backups of an Autonomous Database. + rpc ListAutonomousDatabaseBackups(ListAutonomousDatabaseBackupsRequest) + returns (ListAutonomousDatabaseBackupsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/autonomousDatabaseBackups" + }; + option (google.api.method_signature) = "parent"; + } +} + +// The request for `CloudExadataInfrastructures.List`. +message ListCloudExadataInfrastructuresRequest { + // Required. The parent value for CloudExadataInfrastructure in the following + // format: projects/{project}/locations/{location}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "oracledatabase.googleapis.com/CloudExadataInfrastructure" + } + ]; + + // Optional. The maximum number of items to return. + // If unspecified, at most 50 Exadata infrastructures 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 token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response for `CloudExadataInfrastructures.list`. +message ListCloudExadataInfrastructuresResponse { + // The list of Exadata Infrastructures. + repeated CloudExadataInfrastructure cloud_exadata_infrastructures = 1; + + // A token for fetching next page of response. + string next_page_token = 2; +} + +// The request for `CloudExadataInfrastructure.Get`. +message GetCloudExadataInfrastructureRequest { + // Required. The name of the Cloud Exadata Infrastructure in the following + // format: + // projects/{project}/locations/{location}/cloudExadataInfrastructures/{cloud_exadata_infrastructure}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "oracledatabase.googleapis.com/CloudExadataInfrastructure" + } + ]; +} + +// The request for `CloudExadataInfrastructure.Create`. +message CreateCloudExadataInfrastructureRequest { + // Required. The parent value for CloudExadataInfrastructure in the following + // format: projects/{project}/locations/{location}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "oracledatabase.googleapis.com/CloudExadataInfrastructure" + } + ]; + + // Required. The ID of the Exadata Infrastructure to create. This value is + // restricted to (^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$) and must be a maximum of + // 63 characters in length. The value must start with a letter and end with a + // letter or a number. + string cloud_exadata_infrastructure_id = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Required. Details of the Exadata Infrastructure instance to create. + CloudExadataInfrastructure cloud_exadata_infrastructure = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional ID to identify the request. This value is used to + // identify duplicate requests. If you make a request with the same request ID + // and the original request is still in progress or completed, the server + // ignores the second request. This prevents clients from + // accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 4 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// The request for `CloudExadataInfrastructure.Delete`. +message DeleteCloudExadataInfrastructureRequest { + // Required. The name of the Cloud Exadata Infrastructure in the following + // format: + // projects/{project}/locations/{location}/cloudExadataInfrastructures/{cloud_exadata_infrastructure}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "oracledatabase.googleapis.com/CloudExadataInfrastructure" + } + ]; + + // Optional. An optional ID to identify the request. This value is used to + // identify duplicate requests. If you make a request with the same request ID + // and the original request is still in progress or completed, the server + // ignores the second request. This prevents clients from + // accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 2 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; + + // Optional. If set to true, all VM clusters for this Exadata Infrastructure + // will be deleted. An Exadata Infrastructure can only be deleted once all its + // VM clusters have been deleted. + bool force = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// The request for `CloudVmCluster.List`. +message ListCloudVmClustersRequest { + // Required. The name of the parent in the following format: + // projects/{project}/locations/{location}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "oracledatabase.googleapis.com/CloudVmCluster" + } + ]; + + // Optional. The number of VM clusters to return. + // If unspecified, at most 50 VM clusters will be returned. + // The maximum value is 1,000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying the page of results the server returns. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. An expression for filtering the results of the request. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response for `CloudVmCluster.List`. +message ListCloudVmClustersResponse { + // The list of VM Clusters. + repeated CloudVmCluster cloud_vm_clusters = 1; + + // A token to fetch the next page of results. + string next_page_token = 2; +} + +// The request for `CloudVmCluster.Get`. +message GetCloudVmClusterRequest { + // Required. The name of the Cloud VM Cluster in the following format: + // projects/{project}/locations/{location}/cloudVmClusters/{cloud_vm_cluster}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "oracledatabase.googleapis.com/CloudVmCluster" + } + ]; +} + +// The request for `CloudVmCluster.Create`. +message CreateCloudVmClusterRequest { + // Required. The name of the parent in the following format: + // projects/{project}/locations/{location}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "oracledatabase.googleapis.com/CloudVmCluster" + } + ]; + + // Required. The ID of the VM Cluster to create. This value is restricted + // to (^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$) and must be a maximum of 63 + // characters in length. The value must start with a letter and end with + // a letter or a number. + string cloud_vm_cluster_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The resource being created + CloudVmCluster cloud_vm_cluster = 3 [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional ID to identify the request. This value is used to + // identify duplicate requests. If you make a request with the same request ID + // and the original request is still in progress or completed, the server + // ignores the second request. This prevents clients from + // accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 4 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// The request for `CloudVmCluster.Delete`. +message DeleteCloudVmClusterRequest { + // Required. The name of the Cloud VM Cluster in the following format: + // projects/{project}/locations/{location}/cloudVmClusters/{cloud_vm_cluster}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "oracledatabase.googleapis.com/CloudVmCluster" + } + ]; + + // Optional. An optional ID to identify the request. This value is used to + // identify duplicate requests. If you make a request with the same request ID + // and the original request is still in progress or completed, the server + // ignores the second request. This prevents clients from + // accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 2 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; + + // Optional. If set to true, all child resources for the VM Cluster will be + // deleted. A VM Cluster can only be deleted once all its child resources have + // been deleted. + bool force = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// The request for `Entitlement.List`. +message ListEntitlementsRequest { + // Required. The parent value for the entitlement in the following format: + // projects/{project}/locations/{location}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "oracledatabase.googleapis.com/Entitlement" + } + ]; + + // Optional. The maximum number of items to return. + // If unspecified, a maximum of 50 entitlements will be returned. + // The maximum value is 1000. + 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]; +} + +// The response for `Entitlement.List`. +message ListEntitlementsResponse { + // The list of Entitlements + repeated Entitlement entitlements = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; +} + +// The request for `DbServer.List`. +message ListDbServersRequest { + // Required. The parent value for database server in the following format: + // projects/{project}/locations/{location}/cloudExadataInfrastructures/{cloudExadataInfrastructure}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "oracledatabase.googleapis.com/DbServer" + } + ]; + + // Optional. The maximum number of items to return. + // If unspecified, a maximum of 50 db servers will be returned. + // The maximum value is 1000; values above 1000 will be reset to 1000. + 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]; +} + +// The response for `DbServer.List`. +message ListDbServersResponse { + // The list of database servers. + repeated DbServer db_servers = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; +} + +// The request for `DbNode.List`. +message ListDbNodesRequest { + // Required. The parent value for database node in the following format: + // projects/{project}/locations/{location}/cloudVmClusters/{cloudVmCluster}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "oracledatabase.googleapis.com/DbNode" + } + ]; + + // Optional. The maximum number of items to return. + // If unspecified, at most 50 db nodes 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 token identifying a page of results the node should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response for `DbNode.List`. +message ListDbNodesResponse { + // The list of DB Nodes + repeated DbNode db_nodes = 1; + + // A token identifying a page of results the node should return. + string next_page_token = 2; +} + +// The request for `GiVersion.List`. +message ListGiVersionsRequest { + // Required. The parent value for Grid Infrastructure Version in the following + // format: Format: projects/{project}/locations/{location}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "oracledatabase.googleapis.com/GiVersion" + } + ]; + + // Optional. The maximum number of items to return. + // If unspecified, a maximum of 50 Oracle Grid Infrastructure (GI) versions + // will be returned. The maximum value is 1000; values above 1000 will be + // reset to 1000. + 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]; +} + +// The response for `GiVersion.List`. +message ListGiVersionsResponse { + // The list of Oracle Grid Infrastructure (GI) versions. + repeated GiVersion gi_versions = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; +} + +// The request for `DbSystemShape.List`. +message ListDbSystemShapesRequest { + // Required. The parent value for Database System Shapes in the following + // format: projects/{project}/locations/{location}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "oracledatabase.googleapis.com/DbSystemShape" + } + ]; + + // Optional. The maximum number of items to return. + // If unspecified, at most 50 database system shapes 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 token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response for `DbSystemShape.List`. +message ListDbSystemShapesResponse { + // The list of Database System shapes. + repeated DbSystemShape db_system_shapes = 1; + + // A token identifying a page of results the server should return. + 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. The status of the operation. + 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]; + + // Output only. An estimated percentage of the operation that has been + // completed at a given moment of time, between 0 and 100. + double percent_complete = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The request for `AutonomousDatabase.List`. +message ListAutonomousDatabasesRequest { + // Required. The parent value for the Autonomous Database in the following + // format: projects/{project}/locations/{location}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "oracledatabase.googleapis.com/AutonomousDatabase" + } + ]; + + // Optional. The maximum number of items to return. + // If unspecified, at most 50 Autonomous Database 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 token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. An expression for filtering the results of the request. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. An expression for ordering the results of the request. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response for `AutonomousDatabase.List`. +message ListAutonomousDatabasesResponse { + // The list of Autonomous Databases. + repeated AutonomousDatabase autonomous_databases = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; +} + +// The request for `AutonomousDatabase.Get`. +message GetAutonomousDatabaseRequest { + // Required. The name of the Autonomous Database in the following format: + // projects/{project}/locations/{location}/autonomousDatabases/{autonomous_database}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "oracledatabase.googleapis.com/AutonomousDatabase" + } + ]; +} + +// The request for `AutonomousDatabase.Create`. +message CreateAutonomousDatabaseRequest { + // Required. The name of the parent in the following format: + // projects/{project}/locations/{location}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "oracledatabase.googleapis.com/AutonomousDatabase" + } + ]; + + // Required. The ID of the Autonomous Database to create. This value is + // restricted to (^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$) and must be a maximum of + // 63 characters in length. The value must start with a letter and end with a + // letter or a number. + string autonomous_database_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Autonomous Database being created. + AutonomousDatabase autonomous_database = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. An optional ID to identify the request. This value is used to + // identify duplicate requests. If you make a request with the same request ID + // and the original request is still in progress or completed, the server + // ignores the second request. This prevents clients from + // accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 4 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// The request for `AutonomousDatabase.Delete`. +message DeleteAutonomousDatabaseRequest { + // Required. The name of the resource in the following format: + // projects/{project}/locations/{location}/autonomousDatabases/{autonomous_database}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "oracledatabase.googleapis.com/AutonomousDatabase" + } + ]; + + // Optional. An optional ID to identify the request. This value is used to + // identify duplicate requests. If you make a request with the same request ID + // and the original request is still in progress or completed, the server + // ignores the second request. This prevents clients from + // accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 2 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; +} + +// The request for `AutonomousDatabase.Restore`. +message RestoreAutonomousDatabaseRequest { + // Required. The name of the Autonomous Database in the following format: + // projects/{project}/locations/{location}/autonomousDatabases/{autonomous_database}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "oracledatabase.googleapis.com/AutonomousDatabase" + } + ]; + + // Required. The time and date to restore the database to. + google.protobuf.Timestamp restore_time = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// The request for `AutonomousDatabase.GenerateWallet`. +message GenerateAutonomousDatabaseWalletRequest { + // Required. The name of the Autonomous Database in the following format: + // projects/{project}/locations/{location}/autonomousDatabases/{autonomous_database}. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "oracledatabase.googleapis.com/AutonomousDatabase" + } + ]; + + // Optional. The type of wallet generation for the Autonomous Database. The + // default value is SINGLE. + GenerateType type = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. True when requesting regional connection strings in PDB connect + // info, applicable to cross-region Data Guard only. + bool is_regional = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The password used to encrypt the keys inside the wallet. The + // password must be a minimum of 8 characters. + string password = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// The response for `AutonomousDatabase.GenerateWallet`. +message GenerateAutonomousDatabaseWalletResponse { + // Output only. The base64 encoded wallet files. + bytes archive_content = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The request for `AutonomousDbVersion.List`. +message ListAutonomousDbVersionsRequest { + // Required. The parent value for the Autonomous Database in the following + // format: projects/{project}/locations/{location}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "oracledatabase.googleapis.com/AutonomousDbVersion" + } + ]; + + // Optional. The maximum number of items to return. + // If unspecified, at most 50 Autonomous DB Versions 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 token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response for `AutonomousDbVersion.List`. +message ListAutonomousDbVersionsResponse { + // The list of Autonomous Database versions. + repeated AutonomousDbVersion autonomous_db_versions = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; +} + +// The request for `AutonomousDatabaseCharacterSet.List`. +message ListAutonomousDatabaseCharacterSetsRequest { + // Required. The parent value for the Autonomous Database in the following + // format: projects/{project}/locations/{location}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "oracledatabase.googleapis.com/AutonomousDatabaseCharacterSet" + } + ]; + + // Optional. The maximum number of items to return. + // If unspecified, at most 50 Autonomous DB Character Sets 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 token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. An expression for filtering the results of the request. Only the + // **character_set_type** field is supported in the following format: + // `character_set_type="{characterSetType}"`. Accepted values include + // `DATABASE` and `NATIONAL`. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response for `AutonomousDatabaseCharacterSet.List`. +message ListAutonomousDatabaseCharacterSetsResponse { + // The list of Autonomous Database Character Sets. + repeated AutonomousDatabaseCharacterSet autonomous_database_character_sets = + 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; +} + +// The request for `AutonomousDatabaseBackup.List`. +message ListAutonomousDatabaseBackupsRequest { + // Required. The parent value for ListAutonomousDatabaseBackups in the + // following format: projects/{project}/locations/{location}. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "oracledatabase.googleapis.com/AutonomousDatabaseBackup" + } + ]; + + // Optional. An expression for filtering the results of the request. Only the + // **autonomous_database_id** field is supported in the following format: + // `autonomous_database_id="{autonomous_database_id}"`. The accepted values + // must be a valid Autonomous Database ID, limited to the naming + // restrictions of the ID: ^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$). + // The ID must start with a letter, end with a letter or a number, and be + // a maximum of 63 characters. + string filter = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The maximum number of items to return. + // If unspecified, at most 50 Autonomous DB Backups 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]; + + // Optional. A token identifying a page of results the server should return. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response for `AutonomousDatabaseBackup.List`. +message ListAutonomousDatabaseBackupsResponse { + // The list of Autonomous Database Backups. + repeated AutonomousDatabaseBackup autonomous_database_backups = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; +} diff --git a/google/cloud/oracledatabase/v1/oracledatabase_gapic.yaml b/google/cloud/oracledatabase/v1/oracledatabase_gapic.yaml new file mode 100644 index 000000000..9635d91f6 --- /dev/null +++ b/google/cloud/oracledatabase/v1/oracledatabase_gapic.yaml @@ -0,0 +1,63 @@ +type: com.google.api.codegen.ConfigProto +config_schema_version: 2.0.0 +language_settings: + python: + package_name: google.cloud.oracledatabase_v1.gapic + java: + package_name: com.google.cloud.oracledatabase.v1 + go: + package_name: cloud.google.com/go/cloud/oracledatabase/apiv1 + csharp: + package_name: Google.Cloud.OracleDatabase.V1 + ruby: + package_name: Google::Cloud::OracleDatabase::V1 + php: + package_name: Google\Cloud\OracleDatabase\V1 + nodejs: + package_name: oracledatabase.v1 + domain_layer_location: google-cloud +interfaces: +- name: google.cloud.oracledatabase.v1.OracleDatabase + methods: + - name: CreateCloudExadataInfrastructure + long_running: + initial_poll_delay_millis: 60000 # 1 minutes + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 600000 # 10 minutes + total_poll_timeout_millis: 432000000 # 5 days + - name: DeleteCloudExadataInfrastructure + long_running: + initial_poll_delay_millis: 60000 # 1 minutes + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 600000 # 10 minutes + total_poll_timeout_millis: 432000000 # 5 days + - name: CreateCloudVmCluster + long_running: + initial_poll_delay_millis: 60000 # 1 minutes + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 600000 # 10 minutes + total_poll_timeout_millis: 432000000 # 5 days + - name: DeleteCloudVmCluster + long_running: + initial_poll_delay_millis: 60000 # 1 minutes + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 600000 # 10 minutes + total_poll_timeout_millis: 432000000 # 5 days + - name: CreateAutonomousDatabase + long_running: + initial_poll_delay_millis: 60000 # 1 minutes + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 600000 # 10 minutes + total_poll_timeout_millis: 432000000 # 5 days + - name: DeleteAutonomousDatabase + long_running: + initial_poll_delay_millis: 60000 # 1 minutes + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 600000 # 10 minutes + total_poll_timeout_millis: 432000000 # 5 days + - name: RestoreAutonomousDatabase + long_running: + initial_poll_delay_millis: 60000 # 1 minutes + poll_delay_multiplier: 1.5 + max_poll_delay_millis: 600000 # 10 minutes + total_poll_timeout_millis: 432000000 # 5 days diff --git a/google/cloud/oracledatabase/v1/oracledatabase_v1.yaml b/google/cloud/oracledatabase/v1/oracledatabase_v1.yaml new file mode 100644 index 000000000..a5ebd3462 --- /dev/null +++ b/google/cloud/oracledatabase/v1/oracledatabase_v1.yaml @@ -0,0 +1,102 @@ +type: google.api.Service +config_version: 3 +name: oracledatabase.googleapis.com +title: Oracle Database@Google Cloud API + +apis: +- name: google.cloud.location.Locations +- name: google.cloud.oracledatabase.v1.OracleDatabase +- name: google.longrunning.Operations + +types: +- name: google.cloud.oracledatabase.v1.LocationMetadata +- name: google.cloud.oracledatabase.v1.OperationMetadata + +documentation: + summary: |- + The Oracle Database@Google Cloud API provides a set of APIs to manage + Oracle database services, such as Exadata and Autonomous Databases. + rules: + - selector: google.cloud.location.Locations.GetLocation + description: Gets information about a location. + + - selector: google.cloud.location.Locations.ListLocations + description: Lists information about the supported locations for this service. + +http: + rules: + - selector: google.cloud.location.Locations.GetLocation + get: '/v1/{name=projects/*/locations/*}' + - selector: google.cloud.location.Locations.ListLocations + get: '/v1/{name=projects/*}/locations' + - selector: google.longrunning.Operations.CancelOperation + post: '/v1/{name=projects/*/locations/*/operations/*}:cancel' + body: '*' + - selector: google.longrunning.Operations.DeleteOperation + delete: '/v1/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.GetOperation + get: '/v1/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v1/{name=projects/*/locations/*}/operations' + +authentication: + rules: + - selector: google.cloud.location.Locations.GetLocation + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.location.Locations.ListLocations + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.oracledatabase.v1.OracleDatabase.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.longrunning.Operations.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=1492565 + documentation_uri: https://cloud.google.com/oracle/database/docs + api_short_name: oracledatabase + github_label: 'api: oracledatabase' + doc_tag_prefix: oracledatabase + organization: CLOUD + library_settings: + - version: google.cloud.oracledatabase.v1 + launch_stage: GA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + cpp_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER diff --git a/google/cloud/oracledatabase/v1/oracledatabase_v1_grpc_service_config.json b/google/cloud/oracledatabase/v1/oracledatabase_v1_grpc_service_config.json new file mode 100644 index 000000000..d04de6cf4 --- /dev/null +++ b/google/cloud/oracledatabase/v1/oracledatabase_v1_grpc_service_config.json @@ -0,0 +1,39 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.cloud.oracledatabase.v1.OracleDatabase", "method": "ListCloudExadataInfrastructures" }, + { "service": "google.cloud.oracledatabase.v1.OracleDatabase", "method": "GetCloudExadataInfrastructure" }, + { "service": "google.cloud.oracledatabase.v1.OracleDatabase", "method": "ListCloudVmClusters" }, + { "service": "google.cloud.oracledatabase.v1.OracleDatabase", "method": "GetCloudVmCluster" }, + { "service": "google.cloud.oracledatabase.v1.OracleDatabase", "method": "ListEntitlements" }, + { "service": "google.cloud.oracledatabase.v1.OracleDatabase", "method": "ListDbServers" }, + { "service": "google.cloud.oracledatabase.v1.OracleDatabase", "method": "ListDbNodes" }, + { "service": "google.cloud.oracledatabase.v1.OracleDatabase", "method": "ListGiVersions" }, + { "service": "google.cloud.oracledatabase.v1.OracleDatabase", "method": "ListDbSystemShapes" }, + { "service": "google.cloud.oracledatabase.v1.OracleDatabase", "method": "ListAutonomousDatabases" }, + { "service": "google.cloud.oracledatabase.v1.OracleDatabase", "method": "GetAutonomousDatabase" }, + { "service": "google.cloud.oracledatabase.v1.OracleDatabase", "method": "ListAutonomousDbVersions" }, + { "service": "google.cloud.oracledatabase.v1.OracleDatabase", "method": "ListAutonomousDatabaseCharacterSets" }, + { "service": "google.cloud.oracledatabase.v1.OracleDatabase", "method": "ListAutonomousDatabaseBackups" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": [ + "RESOURCE_EXHAUSTED", + "UNAVAILABLE", + "INTERNAL", + "DEADLINE_EXCEEDED" + ] + } + }, + { + "name": [ + { "service": "google.cloud.oracledatabase.v1.OracleDatabase" } + ], + "timeout": "60s" + }] +} \ No newline at end of file diff --git a/google/cloud/oracledatabase/v1/vm_cluster.proto b/google/cloud/oracledatabase/v1/vm_cluster.proto new file mode 100644 index 000000000..769d9e069 --- /dev/null +++ b/google/cloud/oracledatabase/v1/vm_cluster.proto @@ -0,0 +1,256 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.oracledatabase.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; +import "google/type/datetime.proto"; + +option csharp_namespace = "Google.Cloud.OracleDatabase.V1"; +option go_package = "cloud.google.com/go/oracledatabase/apiv1/oracledatabasepb;oracledatabasepb"; +option java_multiple_files = true; +option java_outer_classname = "CloudVmClusterProto"; +option java_package = "com.google.cloud.oracledatabase.v1"; +option php_namespace = "Google\\Cloud\\OracleDatabase\\V1"; +option ruby_package = "Google::Cloud::OracleDatabase::V1"; + +// Details of the Cloud VM Cluster resource. +// https://docs.oracle.com/en-us/iaas/api/#/en/database/20160918/CloudVmCluster/ +message CloudVmCluster { + option (google.api.resource) = { + type: "oracledatabase.googleapis.com/CloudVmCluster" + pattern: "projects/{project}/locations/{location}/cloudVmClusters/{cloud_vm_cluster}" + plural: "cloudVmClusters" + singular: "cloudVmCluster" + }; + + // Identifier. The name of the VM Cluster resource with the format: + // projects/{project}/locations/{region}/cloudVmClusters/{cloud_vm_cluster} + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. The name of the Exadata Infrastructure resource on which VM + // cluster resource is created, in the following format: + // projects/{project}/locations/{region}/cloudExadataInfrastuctures/{cloud_extradata_infrastructure} + string exadata_infrastructure = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "oracledatabase.googleapis.com/CloudExadataInfrastructure" + } + ]; + + // Optional. User friendly name for this resource. + string display_name = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Google Cloud Platform location where Oracle Exadata is hosted. + // It is same as Google Cloud Platform Oracle zone of Exadata infrastructure. + string gcp_oracle_zone = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Various properties of the VM Cluster. + CloudVmClusterProperties properties = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Labels or tags associated with the VM Cluster. + map<string, string> labels = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The date and time that the VM cluster was created. + google.protobuf.Timestamp create_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Network settings. CIDR to use for cluster IP allocation. + string cidr = 9 [(google.api.field_behavior) = REQUIRED]; + + // Required. CIDR range of the backup subnet. + string backup_subnet_cidr = 10 [(google.api.field_behavior) = REQUIRED]; + + // Required. The name of the VPC network. + // Format: projects/{project}/global/networks/{network} + string network = 11 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "compute.googleapis.com/Network" } + ]; +} + +// Various properties and settings associated with Exadata VM cluster. +message CloudVmClusterProperties { + // Different licenses supported. + enum LicenseType { + // Unspecified + LICENSE_TYPE_UNSPECIFIED = 0; + + // License included part of offer + LICENSE_INCLUDED = 1; + + // Bring your own license + BRING_YOUR_OWN_LICENSE = 2; + } + + // Types of disk redundancy provided by Oracle. + enum DiskRedundancy { + // Unspecified. + DISK_REDUNDANCY_UNSPECIFIED = 0; + + // High - 3 way mirror. + HIGH = 1; + + // Normal - 2 way mirror. + NORMAL = 2; + } + + // The various lifecycle states of the VM cluster. + enum State { + // Default unspecified value. + STATE_UNSPECIFIED = 0; + + // Indicates that the resource is in provisioning state. + PROVISIONING = 1; + + // Indicates that the resource is in available state. + AVAILABLE = 2; + + // Indicates that the resource is in updating state. + UPDATING = 3; + + // Indicates that the resource is in terminating state. + TERMINATING = 4; + + // Indicates that the resource is in terminated state. + TERMINATED = 5; + + // Indicates that the resource is in failed state. + FAILED = 6; + + // Indicates that the resource is in maintenance in progress state. + MAINTENANCE_IN_PROGRESS = 7; + } + + // Output only. Oracle Cloud Infrastructure ID of VM Cluster. + string ocid = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. License type of VM Cluster. + LicenseType license_type = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Grid Infrastructure Version. + string gi_version = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Time zone of VM Cluster to set. Defaults to UTC if not specified. + google.type.TimeZone time_zone = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. SSH public keys to be stored with cluster. + repeated string ssh_public_keys = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Number of database servers. + int32 node_count = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Shape of VM Cluster. + string shape = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. OCPU count per VM. Minimum is 0.1. + float ocpu_count = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Memory allocated in GBs. + int32 memory_size_gb = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Local storage per VM. + int32 db_node_storage_size_gb = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The storage allocation for the disk group, in gigabytes (GB). + int32 storage_size_gb = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The data disk group size to be allocated in TBs. + double data_storage_size_tb = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The type of redundancy. + DiskRedundancy disk_redundancy = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Use exadata sparse snapshots. + bool sparse_diskgroup_enabled = 14 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Use local backup. + bool local_backup_enabled = 15 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Prefix for VM cluster host names. + string hostname_prefix = 16 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Data collection options for diagnostics. + DataCollectionOptions diagnostics_data_collection_options = 19 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. State of the cluster. + State state = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. SCAN listener port - TCP + int32 scan_listener_port_tcp = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. SCAN listener port - TLS + int32 scan_listener_port_tcp_ssl = 22 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Parent DNS domain where SCAN DNS and hosts names are + // qualified. ex: ocispdelegated.ocisp10jvnet.oraclevcn.com + string domain = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. SCAN DNS name. + // ex: sp2-yi0xq-scan.ocispdelegated.ocisp10jvnet.oraclevcn.com + string scan_dns = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. host name without domain. + // format: "<hostname_prefix>-" with some suffix. + // ex: sp2-yi0xq where "sp2" is the hostname_prefix. + string hostname = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Number of enabled CPU cores. + int32 cpu_core_count = 26 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Operating system version of the image. + string system_version = 27 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. OCIDs of scan IPs. + repeated string scan_ip_ids = 28 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. OCID of scan DNS record. + string scan_dns_record_id = 29 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Deep link to the OCI console to view this resource. + string oci_url = 30 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. OCID of database servers. + repeated string db_server_ocids = 31 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Compartment ID of cluster. + string compartment_id = 32 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. DNS listener IP. + string dns_listener_ip = 35 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. OCI Cluster name. + string cluster_name = 36 [(google.api.field_behavior) = OPTIONAL]; +} + +// Data collection options for diagnostics. +message DataCollectionOptions { + // Optional. Indicates whether diagnostic collection is enabled for the VM + // cluster + bool diagnostics_events_enabled = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Indicates whether health monitoring is enabled for the VM cluster + bool health_monitoring_enabled = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Indicates whether incident logs and trace collection are enabled + // for the VM cluster + bool incident_logs_enabled = 3 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/orchestration/airflow/service/v1/BUILD.bazel b/google/cloud/orchestration/airflow/service/v1/BUILD.bazel index 8749f2354..957a0fc14 100644 --- a/google/cloud/orchestration/airflow/service/v1/BUILD.bazel +++ b/google/cloud/orchestration/airflow/service/v1/BUILD.bazel @@ -221,7 +221,7 @@ php_gapic_library( name = "service_php_gapic", srcs = [":service_proto_with_info"], grpc_service_config = "composer_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "composer_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/orchestration/airflow/service/v1/environments.proto b/google/cloud/orchestration/airflow/service/v1/environments.proto index 8ab07130f..9976999b6 100644 --- a/google/cloud/orchestration/airflow/service/v1/environments.proto +++ b/google/cloud/orchestration/airflow/service/v1/environments.proto @@ -133,6 +133,20 @@ service Environments { option (google.api.method_signature) = "parent"; } + // Check if an upgrade operation on the environment will succeed. + // + // In case of problems detailed info can be found in the returned Operation. + rpc CheckUpgrade(CheckUpgradeRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{environment=projects/*/locations/*/environments/*}:checkUpgrade" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.orchestration.airflow.service.v1.CheckUpgradeResponse" + metadata_type: "google.cloud.orchestration.airflow.service.v1.OperationMetadata" + }; + } + // Creates a user workloads Secret. // // This method is supported for Cloud Composer environments in versions @@ -1091,8 +1105,9 @@ message EnvironmentConfig { // This may be split into multiple chunks, each with a size of // at least 4 hours. // - // If this value is omitted, the default value for maintenance window will be - // applied. The default value is Saturday and Sunday 00-06 GMT. + // If this value is omitted, the default value for maintenance window is + // applied. By default, maintenance windows are from 00:00:00 to 04:00:00 + // (GMT) on Friday, Saturday, and Sunday every week. MaintenanceWindow maintenance_window = 12 [(google.api.field_behavior) = OPTIONAL]; @@ -1771,6 +1786,9 @@ message WorkloadsConfig { } // Configuration for resources used by Airflow DAG processors. + // + // This field is supported for Cloud Composer environments in versions + // composer-3.*.*-airflow-*.*.* and newer. message DagProcessorResource { // Optional. CPU request and limit for a single Airflow DAG processor // replica. @@ -1929,10 +1947,47 @@ message Environment { // Output only. Reserved for future use. bool satisfies_pzs = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Reserved for future use. + bool satisfies_pzi = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Optional. Storage configuration for this environment. StorageConfig storage_config = 9 [(google.api.field_behavior) = OPTIONAL]; } +// Request to check whether image upgrade will succeed. +message CheckUpgradeRequest { + // Required. The resource name of the environment to check upgrade for, in the + // form: + // "projects/{projectId}/locations/{locationId}/environments/{environmentId}" + string environment = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The version of the software running in the environment. + // This encapsulates both the version of Cloud Composer functionality and the + // version of Apache Airflow. It must match the regular expression + // `composer-([0-9]+(\.[0-9]+\.[0-9]+(-preview\.[0-9]+)?)?|latest)-airflow-([0-9]+(\.[0-9]+(\.[0-9]+)?)?)`. + // When used as input, the server also checks if the provided version is + // supported and denies the request for an unsupported version. + // + // The Cloud Composer portion of the image version is a full + // [semantic version](https://semver.org), or an alias in the form of major + // version number or `latest`. When an alias is provided, the server replaces + // it with the current Cloud Composer version that satisfies the alias. + // + // The Apache Airflow portion of the image version is a full semantic version + // that points to one of the supported Apache Airflow versions, or an alias in + // the form of only major or major.minor versions specified. When an alias is + // provided, the server replaces it with the latest Apache Airflow version + // that satisfies the alias and is supported in the given Cloud Composer + // version. + // + // In all cases, the resolved image version is stored in the same field. + // + // See also [version + // list](/composer/docs/concepts/versioning/composer-versions) and [versioning + // overview](/composer/docs/concepts/versioning/composer-versioning-overview). + string image_version = 2 [(google.api.field_behavior) = OPTIONAL]; +} + // Message containing information about the result of an upgrade check // operation. message CheckUpgradeResponse { @@ -1970,6 +2025,10 @@ message CheckUpgradeResponse { // The configuration setting for Airflow database data retention mechanism. message DataRetentionConfig { + // Optional. The retention policy for airflow metadata database. + AirflowMetadataRetentionPolicyConfig airflow_metadata_retention_config = 1 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. The configuration settings for task logs retention TaskLogsRetentionConfig task_logs_retention_config = 2 [(google.api.field_behavior) = OPTIONAL]; @@ -1990,7 +2049,27 @@ message TaskLogsRetentionConfig { CLOUD_LOGGING_ONLY = 2; } - // Optional. The mode of storage for Airflow workers task logs. For details, - // see go/composer-store-task-logs-in-cloud-logging-only-design-doc + // Optional. The mode of storage for Airflow workers task logs. TaskLogsStorageMode storage_mode = 2 [(google.api.field_behavior) = OPTIONAL]; } + +// The policy for airflow metadata database retention. +message AirflowMetadataRetentionPolicyConfig { + // Describes retention policy. + enum RetentionMode { + // Default mode doesn't change environment parameters. + RETENTION_MODE_UNSPECIFIED = 0; + + // Retention policy is enabled. + RETENTION_MODE_ENABLED = 1; + + // Retention policy is disabled. + RETENTION_MODE_DISABLED = 2; + } + + // Optional. Retention can be either enabled or disabled. + RetentionMode retention_mode = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. How many days data should be retained for. + int32 retention_days = 2 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/orchestration/airflow/service/v1beta1/environments.proto b/google/cloud/orchestration/airflow/service/v1beta1/environments.proto index ba6e5ec76..cd66e2d6e 100644 --- a/google/cloud/orchestration/airflow/service/v1beta1/environments.proto +++ b/google/cloud/orchestration/airflow/service/v1beta1/environments.proto @@ -2068,6 +2068,9 @@ message Environment { // Output only. Reserved for future use. bool satisfies_pzs = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. Reserved for future use. + bool satisfies_pzi = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Optional. Storage configuration for this environment. StorageConfig storage_config = 9 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/google/cloud/orgpolicy/v2/constraint.proto b/google/cloud/orgpolicy/v2/constraint.proto index ed6374bbd..532bb6180 100644 --- a/google/cloud/orgpolicy/v2/constraint.proto +++ b/google/cloud/orgpolicy/v2/constraint.proto @@ -161,6 +161,12 @@ message CustomConstraint { // Constraint applied when deleting the resource. // Not supported yet. DELETE = 3; + + // Constraint applied when removing an IAM grant. + REMOVE_GRANT = 4; + + // Constraint applied when enforcing forced tagging. + GOVERN_TAGS = 5; } // Allow or deny type. diff --git a/google/cloud/osconfig/v1/BUILD.bazel b/google/cloud/osconfig/v1/BUILD.bazel index f71ffcd04..e8d8fabb7 100644 --- a/google/cloud/osconfig/v1/BUILD.bazel +++ b/google/cloud/osconfig/v1/BUILD.bazel @@ -240,7 +240,7 @@ php_gapic_library( name = "osconfig_php_gapic", srcs = [":osconfig_proto_with_info"], grpc_service_config = "osconfig_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "osconfig_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/oslogin/v1/BUILD.bazel b/google/cloud/oslogin/v1/BUILD.bazel index c382db82b..858ab3848 100644 --- a/google/cloud/oslogin/v1/BUILD.bazel +++ b/google/cloud/oslogin/v1/BUILD.bazel @@ -229,7 +229,7 @@ php_gapic_library( name = "oslogin_php_gapic", srcs = [":oslogin_proto_with_info"], grpc_service_config = "oslogin_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "oslogin_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/documentai/v1beta2/BUILD.bazel b/google/cloud/parallelstore/v1/BUILD.bazel similarity index 54% rename from google/cloud/documentai/v1beta2/BUILD.bazel rename to google/cloud/parallelstore/v1/BUILD.bazel index 51054b447..aa5d2f195 100644 --- a/google/cloud/documentai/v1beta2/BUILD.bazel +++ b/google/cloud/parallelstore/v1/BUILD.bazel @@ -9,42 +9,40 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( - name = "documentai_proto", + name = "parallelstore_proto", srcs = [ - "barcode.proto", - "document.proto", - "document_understanding.proto", - "geometry.proto", + "parallelstore.proto", ], deps = [ "//google/api:annotations_proto", "//google/api:client_proto", "//google/api:field_behavior_proto", + "//google/api:field_info_proto", + "//google/api:resource_proto", "//google/longrunning:operations_proto", - "//google/rpc:status_proto", - "//google/type:color_proto", - "//google/type:date_proto", - "//google/type:datetime_proto", - "//google/type:money_proto", - "//google/type:postal_address_proto", + "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:timestamp_proto", ], ) proto_library_with_info( - name = "documentai_proto_with_info", + name = "parallelstore_proto_with_info", deps = [ - ":documentai_proto", + ":parallelstore_proto", "//google/cloud:common_resources_proto", "//google/cloud/location:location_proto", ], @@ -53,6 +51,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -63,59 +62,61 @@ load( ) java_proto_library( - name = "documentai_java_proto", - deps = [":documentai_proto"], + name = "parallelstore_java_proto", + deps = [":parallelstore_proto"], ) java_grpc_library( - name = "documentai_java_grpc", - srcs = [":documentai_proto"], - deps = [":documentai_java_proto"], + name = "parallelstore_java_grpc", + srcs = [":parallelstore_proto"], + deps = [":parallelstore_java_proto"], ) java_gapic_library( - name = "documentai_java_gapic", - srcs = [":documentai_proto_with_info"], - gapic_yaml = "documentai_gapic.yaml", - grpc_service_config = "documentai_v1beta2_grpc_service_config.json", + name = "parallelstore_java_gapic", + srcs = [":parallelstore_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "parallelstore_v1_grpc_service_config.json", rest_numeric_enums = True, - service_yaml = "documentai_v1beta2.yaml", + service_yaml = "parallelstore_v1.yaml", test_deps = [ + ":parallelstore_java_grpc", "//google/cloud/location:location_java_grpc", - ":documentai_java_grpc", ], - transport = "grpc", + transport = "grpc+rest", deps = [ - ":documentai_java_proto", + ":parallelstore_java_proto", "//google/api:api_java_proto", "//google/cloud/location:location_java_proto", ], ) java_gapic_test( - name = "documentai_java_gapic_test_suite", + name = "parallelstore_java_gapic_test_suite", test_classes = [ - "com.google.cloud.documentai.v1beta2.DocumentUnderstandingServiceClientTest", + "com.google.cloud.parallelstore.v1.ParallelstoreClientHttpJsonTest", + "com.google.cloud.parallelstore.v1.ParallelstoreClientTest", ], - runtime_deps = [":documentai_java_gapic_test"], + runtime_deps = [":parallelstore_java_gapic_test"], ) # Open Source Packages java_gapic_assembly_gradle_pkg( - name = "google-cloud-documentai-v1beta2-java", + name = "google-cloud-parallelstore-v1-java", include_samples = True, - transport = "grpc", + transport = "grpc+rest", deps = [ - ":documentai_java_gapic", - ":documentai_java_grpc", - ":documentai_java_proto", - ":documentai_proto", + ":parallelstore_java_gapic", + ":parallelstore_java_grpc", + ":parallelstore_java_proto", + ":parallelstore_proto", ], ) ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -124,34 +125,28 @@ load( ) go_proto_library( - name = "documentai_go_proto", + name = "parallelstore_go_proto", compilers = ["@io_bazel_rules_go//proto:go_grpc"], - importpath = "cloud.google.com/go/documentai/apiv1beta2/documentaipb", - protos = [":documentai_proto"], + importpath = "cloud.google.com/go/parallelstore/apiv1/parallelstorepb", + protos = [":parallelstore_proto"], deps = [ "//google/api:annotations_go_proto", "//google/longrunning:longrunning_go_proto", - "//google/rpc:status_go_proto", - "//google/type:color_go_proto", - "//google/type:date_go_proto", - "//google/type:datetime_go_proto", - "//google/type:money_go_proto", - "//google/type:postaladdress_go_proto", ], ) go_gapic_library( - name = "documentai_go_gapic", - srcs = [":documentai_proto_with_info"], - grpc_service_config = "documentai_v1beta2_grpc_service_config.json", - importpath = "cloud.google.com/go/documentai/apiv1beta2;documentai", + name = "parallelstore_go_gapic", + srcs = [":parallelstore_proto_with_info"], + grpc_service_config = "parallelstore_v1_grpc_service_config.json", + importpath = "cloud.google.com/go/parallelstore/apiv1;parallelstore", metadata = True, release_level = "beta", rest_numeric_enums = True, - service_yaml = "documentai_v1beta2.yaml", - transport = "grpc", + service_yaml = "parallelstore_v1.yaml", + transport = "grpc+rest", deps = [ - ":documentai_go_proto", + ":parallelstore_go_proto", "//google/cloud/location:location_go_proto", "//google/longrunning:longrunning_go_proto", "@com_google_cloud_go_longrunning//:go_default_library", @@ -161,19 +156,20 @@ go_gapic_library( # Open Source Packages go_gapic_assembly_pkg( - name = "gapi-cloud-documentai-v1beta2-go", + name = "gapi-cloud-parallelstore-v1-go", deps = [ - ":documentai_go_gapic", - ":documentai_go_gapic_srcjar-metadata.srcjar", - ":documentai_go_gapic_srcjar-snippets.srcjar", - ":documentai_go_gapic_srcjar-test.srcjar", - ":documentai_go_proto", + ":parallelstore_go_gapic", + ":parallelstore_go_gapic_srcjar-metadata.srcjar", + ":parallelstore_go_gapic_srcjar-snippets.srcjar", + ":parallelstore_go_gapic_srcjar-test.srcjar", + ":parallelstore_go_proto", ], ) ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -182,37 +178,38 @@ load( ) py_gapic_library( - name = "documentai_py_gapic", - srcs = [":documentai_proto"], - grpc_service_config = "documentai_v1beta2_grpc_service_config.json", + name = "parallelstore_py_gapic", + srcs = [":parallelstore_proto"], + grpc_service_config = "parallelstore_v1_grpc_service_config.json", rest_numeric_enums = True, - service_yaml = "documentai_v1beta2.yaml", - transport = "grpc", + service_yaml = "parallelstore_v1.yaml", + transport = "grpc+rest", deps = [ ], ) py_test( - name = "documentai_py_gapic_test", + name = "parallelstore_py_gapic_test", srcs = [ - "documentai_py_gapic_pytest.py", - "documentai_py_gapic_test.py", + "parallelstore_py_gapic_pytest.py", + "parallelstore_py_gapic_test.py", ], legacy_create_init = False, - deps = [":documentai_py_gapic"], + deps = [":parallelstore_py_gapic"], ) # Open Source Packages py_gapic_assembly_pkg( - name = "documentai-v1beta2-py", + name = "parallelstore-v1-py", deps = [ - ":documentai_py_gapic", + ":parallelstore_py_gapic", ], ) ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -221,35 +218,36 @@ load( ) php_proto_library( - name = "documentai_php_proto", - deps = [":documentai_proto"], + name = "parallelstore_php_proto", + deps = [":parallelstore_proto"], ) php_gapic_library( - name = "documentai_php_gapic", - srcs = [":documentai_proto_with_info"], - grpc_service_config = "documentai_v1beta2_grpc_service_config.json", - migration_mode = "PRE_MIGRATION_SURFACE_ONLY", + name = "parallelstore_php_gapic", + srcs = [":parallelstore_proto_with_info"], + grpc_service_config = "parallelstore_v1_grpc_service_config.json", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, - service_yaml = "documentai_v1beta2.yaml", + service_yaml = "parallelstore_v1.yaml", transport = "grpc+rest", deps = [ - ":documentai_php_proto", + ":parallelstore_php_proto", ], ) # Open Source Packages php_gapic_assembly_pkg( - name = "google-cloud-documentai-v1beta2-php", + name = "google-cloud-parallelstore-v1-php", deps = [ - ":documentai_php_gapic", - ":documentai_php_proto", + ":parallelstore_php_gapic", + ":parallelstore_php_proto", ], ) ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -257,29 +255,30 @@ load( ) nodejs_gapic_library( - name = "documentai_nodejs_gapic", - package_name = "@google-cloud/documentai", - src = ":documentai_proto_with_info", + name = "parallelstore_nodejs_gapic", + package_name = "@google-cloud/parallelstore", + src = ":parallelstore_proto_with_info", extra_protoc_parameters = ["metadata"], - grpc_service_config = "documentai_v1beta2_grpc_service_config.json", - package = "google.cloud.documentai.v1beta2", + grpc_service_config = "parallelstore_v1_grpc_service_config.json", + package = "google.cloud.parallelstore.v1", rest_numeric_enums = True, - service_yaml = "documentai_v1beta2.yaml", - transport = "grpc", + service_yaml = "parallelstore_v1.yaml", + transport = "grpc+rest", deps = [], ) nodejs_gapic_assembly_pkg( - name = "documentai-v1beta2-nodejs", + name = "parallelstore-v1-nodejs", deps = [ - ":documentai_nodejs_gapic", - ":documentai_proto", + ":parallelstore_nodejs_gapic", + ":parallelstore_proto", ], ) ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -289,43 +288,44 @@ load( ) ruby_proto_library( - name = "documentai_ruby_proto", - deps = [":documentai_proto"], + name = "parallelstore_ruby_proto", + deps = [":parallelstore_proto"], ) ruby_grpc_library( - name = "documentai_ruby_grpc", - srcs = [":documentai_proto"], - deps = [":documentai_ruby_proto"], + name = "parallelstore_ruby_grpc", + srcs = [":parallelstore_proto"], + deps = [":parallelstore_ruby_proto"], ) ruby_cloud_gapic_library( - name = "documentai_ruby_gapic", - srcs = [":documentai_proto_with_info"], - extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-documentai-v1beta2"], - grpc_service_config = "documentai_v1beta2_grpc_service_config.json", + name = "parallelstore_ruby_gapic", + srcs = [":parallelstore_proto_with_info"], + extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-parallelstore-v1"], + grpc_service_config = "parallelstore_v1_grpc_service_config.json", rest_numeric_enums = True, - service_yaml = "documentai_v1beta2.yaml", - transport = "grpc", + service_yaml = "parallelstore_v1.yaml", + transport = "grpc+rest", deps = [ - ":documentai_ruby_grpc", - ":documentai_ruby_proto", + ":parallelstore_ruby_grpc", + ":parallelstore_ruby_proto", ], ) # Open Source Packages ruby_gapic_assembly_pkg( - name = "google-cloud-documentai-v1beta2-ruby", + name = "google-cloud-parallelstore-v1-ruby", deps = [ - ":documentai_ruby_gapic", - ":documentai_ruby_grpc", - ":documentai_ruby_proto", + ":parallelstore_ruby_gapic", + ":parallelstore_ruby_grpc", + ":parallelstore_ruby_proto", ], ) ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -335,44 +335,44 @@ load( ) csharp_proto_library( - name = "documentai_csharp_proto", - extra_opts = [], - deps = [":documentai_proto"], + name = "parallelstore_csharp_proto", + deps = [":parallelstore_proto"], ) csharp_grpc_library( - name = "documentai_csharp_grpc", - srcs = [":documentai_proto"], - deps = [":documentai_csharp_proto"], + name = "parallelstore_csharp_grpc", + srcs = [":parallelstore_proto"], + deps = [":parallelstore_csharp_proto"], ) csharp_gapic_library( - name = "documentai_csharp_gapic", - srcs = [":documentai_proto_with_info"], + name = "parallelstore_csharp_gapic", + srcs = [":parallelstore_proto_with_info"], common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", - grpc_service_config = "documentai_v1beta2_grpc_service_config.json", + grpc_service_config = "parallelstore_v1_grpc_service_config.json", rest_numeric_enums = True, - service_yaml = "documentai_v1beta2.yaml", - transport = "grpc", + service_yaml = "parallelstore_v1.yaml", + transport = "grpc+rest", deps = [ - ":documentai_csharp_grpc", - ":documentai_csharp_proto", + ":parallelstore_csharp_grpc", + ":parallelstore_csharp_proto", ], ) # Open Source Packages csharp_gapic_assembly_pkg( - name = "google-cloud-documentai-v1beta2-csharp", + name = "google-cloud-parallelstore-v1-csharp", deps = [ - ":documentai_csharp_gapic", - ":documentai_csharp_grpc", - ":documentai_csharp_proto", + ":parallelstore_csharp_gapic", + ":parallelstore_csharp_grpc", + ":parallelstore_csharp_proto", ], ) ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", @@ -380,13 +380,13 @@ load( ) cc_proto_library( - name = "documentai_cc_proto", - deps = [":documentai_proto"], + name = "parallelstore_cc_proto", + deps = [":parallelstore_proto"], ) cc_grpc_library( - name = "documentai_cc_grpc", - srcs = [":documentai_proto"], + name = "parallelstore_cc_grpc", + srcs = [":parallelstore_proto"], grpc_only = True, - deps = [":documentai_cc_proto"], + deps = [":parallelstore_cc_proto"], ) diff --git a/google/cloud/parallelstore/v1/parallelstore.proto b/google/cloud/parallelstore/v1/parallelstore.proto new file mode 100644 index 000000000..3253e1c28 --- /dev/null +++ b/google/cloud/parallelstore/v1/parallelstore.proto @@ -0,0 +1,764 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.parallelstore.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; +import "google/api/resource.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.Parallelstore.V1"; +option go_package = "cloud.google.com/go/parallelstore/apiv1/parallelstorepb;parallelstorepb"; +option java_multiple_files = true; +option java_outer_classname = "ParallelstoreProto"; +option java_package = "com.google.cloud.parallelstore.v1"; +option php_namespace = "Google\\Cloud\\Parallelstore\\V1"; +option ruby_package = "Google::Cloud::Parallelstore::V1"; +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/Address" + pattern: "projects/{project}/regions/{region}/addresses/{address}" +}; +option (google.api.resource_definition) = { + type: "iam.googleapis.com/ServiceAccount" + pattern: "projects/{project}/serviceAccounts/{service_account}" +}; + +// Service describing handlers for resources +// Configures and manages parallelstore resources. +// +// Parallelstore service. +// +// The `parallelstore.googleapis.com` service implements the parallelstore API +// and defines the following resource model for managing instances: +// * The service works with a collection of cloud projects, named: `/projects/*` +// * Each project has a collection of available locations, named: `/locations/*` +// * Each location has a collection of instances named `/instances/*`. +// * Parallelstore instances are resources of the form: +// `/projects/{project_id}/locations/{location_id}/instances/{instance_id}` +// +// Note that location_id must be a Google Cloud `zone`; for example: +// * `projects/12345/locations/us-central1-c/instances/my-parallelstore-share` +service Parallelstore { + option (google.api.default_host) = "parallelstore.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Lists all instances in a given project and location. + rpc ListInstances(ListInstancesRequest) returns (ListInstancesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/instances" + }; + option (google.api.method_signature) = "parent"; + } + + // 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"; + } + + // Creates a Parallelstore instance in a given project and location. + 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" + }; + } + + // Updates the parameters of a single instance. + rpc UpdateInstance(UpdateInstanceRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{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" + }; + } + + // Deletes a single 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" + }; + } + + // Copies data from Cloud Storage to Parallelstore. + rpc ImportData(ImportDataRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/instances/*}:importData" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "ImportDataResponse" + metadata_type: "ImportDataMetadata" + }; + } + + // Copies data from Parallelstore to Cloud Storage. + rpc ExportData(ExportDataRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/instances/*}:exportData" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "ExportDataResponse" + metadata_type: "ExportDataMetadata" + }; + } +} + +// Type of transfer that occurred. +enum TransferType { + // Zero is an illegal value. + TRANSFER_TYPE_UNSPECIFIED = 0; + + // Imports to Parallelstore. + IMPORT = 1; + + // Exports from Parallelstore. + EXPORT = 2; +} + +// Represents the striping options for files. +enum FileStripeLevel { + // If not set, FileStripeLevel will default to FILE_STRIPE_LEVEL_BALANCED + FILE_STRIPE_LEVEL_UNSPECIFIED = 0; + + // Minimum file striping + FILE_STRIPE_LEVEL_MIN = 1; + + // Medium file striping + FILE_STRIPE_LEVEL_BALANCED = 2; + + // Maximum file striping + FILE_STRIPE_LEVEL_MAX = 3; +} + +// Represents the striping options for directories. +enum DirectoryStripeLevel { + // If not set, DirectoryStripeLevel will default to DIRECTORY_STRIPE_LEVEL_MAX + DIRECTORY_STRIPE_LEVEL_UNSPECIFIED = 0; + + // Minimum directory striping + DIRECTORY_STRIPE_LEVEL_MIN = 1; + + // Medium directory striping + DIRECTORY_STRIPE_LEVEL_BALANCED = 2; + + // Maximum directory striping + DIRECTORY_STRIPE_LEVEL_MAX = 3; +} + +// A Parallelstore instance. +message Instance { + option (google.api.resource) = { + type: "parallelstore.googleapis.com/Instance" + pattern: "projects/{project}/locations/{location}/instances/{instance}" + plural: "instances" + singular: "instance" + }; + + // The possible states of a Parallelstore instance. + enum State { + // Not set. + STATE_UNSPECIFIED = 0; + + // The instance is being created. + CREATING = 1; + + // The instance is available for use. + ACTIVE = 2; + + // The instance is being deleted. + DELETING = 3; + + // The instance is not usable. + FAILED = 4; + + // The instance is being upgraded. + UPGRADING = 5; + } + + // Identifier. The resource name of the instance, in the format + // `projects/{project}/locations/{location}/instances/{instance_id}`. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Optional. The description of the instance. 2048 characters or less. + string description = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The instance state. + State state = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the instance was created. + google.protobuf.Timestamp create_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the instance was updated. + google.protobuf.Timestamp update_time = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Cloud Labels are a flexible and lightweight mechanism for + // organizing cloud resources into groups that reflect a customer's + // organizational needs and deployment strategies. See + // https://cloud.google.com/resource-manager/docs/labels-overview for details. + map<string, string> labels = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Immutable. The instance's storage capacity in Gibibytes (GiB). + // Allowed values are between 12000 and 100000, in multiples of 4000; e.g., + // 12000, 16000, 20000, ... + int64 capacity_gib = 8 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = REQUIRED + ]; + + // Output only. The version of DAOS software running in the instance. + string daos_version = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A list of IPv4 addresses used for client side configuration. + repeated string access_points = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Immutable. The name of the Compute Engine + // [VPC network](https://cloud.google.com/vpc/docs/vpc) to which the + // instance is connected. + string network = 11 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { type: "compute.googleapis.com/Network" } + ]; + + // Optional. Immutable. The ID of the IP address range being used by the + // instance's VPC network. See [Configure a VPC + // network](https://cloud.google.com/parallelstore/docs/vpc#create_and_configure_the_vpc). + // If no ID is provided, all ranges are considered. + string reserved_ip_range = 12 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { type: "compute.googleapis.com/Address" } + ]; + + // Output only. Immutable. The ID of the IP address range being used by the + // instance's VPC network. This field is populated by the service and contains + // the value currently used by the service. + string effective_reserved_ip_range = 14 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { type: "compute.googleapis.com/Address" } + ]; + + // Optional. Stripe level for files. Allowed values are: + // + // * `FILE_STRIPE_LEVEL_MIN`: offers the best performance for small size + // files. + // * `FILE_STRIPE_LEVEL_BALANCED`: balances performance for workloads + // involving a mix of small and large files. + // * `FILE_STRIPE_LEVEL_MAX`: higher throughput performance for larger files. + FileStripeLevel file_stripe_level = 15 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Stripe level for directories. Allowed values are: + // + // * `DIRECTORY_STRIPE_LEVEL_MIN`: recommended when directories contain a + // small number of files. + // * `DIRECTORY_STRIPE_LEVEL_BALANCED`: balances performance for workloads + // involving a mix of small and large directories. + // * `DIRECTORY_STRIPE_LEVEL_MAX`: recommended for directories with a large + // number of files. + DirectoryStripeLevel directory_stripe_level = 16 + [(google.api.field_behavior) = OPTIONAL]; +} + +// List instances request. +message ListInstancesRequest { + // Required. The project and location for which to retrieve instance + // information, in the format `projects/{project_id}/locations/{location}`. + // + // To retrieve instance information for all locations, use "-" as the value of + // `{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "parallelstore.googleapis.com/Instance" + } + ]; + + // Optional. Requested page size. 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. A token identifying a page of results the server should return. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Filtering results. + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Hint for how to order the results. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response from +// [ListInstances][google.cloud.parallelstore.v1.Parallelstore.ListInstances]. +message ListInstancesResponse { + // The list of Parallelstore instances. + repeated Instance instances = 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; +} + +// Get an instance's details. +message GetInstanceRequest { + // Required. The instance resource name, in the format + // `projects/{project_id}/locations/{location}/instances/{instance_id}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "parallelstore.googleapis.com/Instance" + } + ]; +} + +// Create a new Parallelstore instance. +message CreateInstanceRequest { + // Required. The instance's project and location, in the format + // `projects/{project}/locations/{location}`. + // Locations map to Google Cloud zones; for example, `us-west1-b`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "parallelstore.googleapis.com/Instance" + } + ]; + + // Required. The name of the Parallelstore instance. + // + // * 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 customer project / location + string instance_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The instance to create. + Instance instance = 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]; +} + +// Update an instance. +message UpdateInstanceRequest { + // Required. Mask of fields to update. Field mask is used to specify the + // fields to be overwritten in the Instance resource by the update. At least + // one path must be supplied in this field. The fields specified in the + // update_mask are relative to the resource, not the full request. + google.protobuf.FieldMask update_mask = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The instance to update. + Instance instance = 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]; +} + +// Delete an instance. +message DeleteInstanceRequest { + // Required. Name of the resource + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "parallelstore.googleapis.com/Instance" + } + ]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes 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]; +} + +// Long-running operation metadata. +message OperationMetadata { + // Output only. The time the operation was created. + google.protobuf.Timestamp create_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time the operation finished running. + google.protobuf.Timestamp end_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server-defined resource path for the target of the operation. + string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the verb executed by the operation. + string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Human-readable status of the operation, if any. + string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Identifies whether the user has requested cancellation + // of the operation. Operations that have been cancelled successfully + // have [Operation.error][] value with a + // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to + // `Code.CANCELLED`. + bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. API version used to start the operation. + string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Cloud Storage as the source of a data transfer. +message SourceGcsBucket { + // Required. URI to a Cloud Storage bucket in the format: + // `gs://<bucket_name>/<path_inside_bucket>`. The path inside the bucket is + // optional. + string uri = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Cloud Storage as the destination of a data transfer. +message DestinationGcsBucket { + // Required. URI to a Cloud Storage bucket in the format: + // `gs://<bucket_name>/<path_inside_bucket>`. The path inside the bucket is + // optional. + string uri = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Parallelstore as the source of a data transfer. +message SourceParallelstore { + // Optional. Root directory path to the Paralellstore filesystem, starting + // with `/`. Defaults to `/` if unset. + string path = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Parallelstore as the destination of a data transfer. +message DestinationParallelstore { + // Optional. Root directory path to the Paralellstore filesystem, starting + // with `/`. Defaults to `/` if unset. + string path = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Import data from Cloud Storage into a Parallelstore instance. +message ImportDataRequest { + // The source of the data being imported into the Parallelstore instance. + oneof source { + // The Cloud Storage source bucket and, optionally, path inside the bucket. + SourceGcsBucket source_gcs_bucket = 2; + } + + // The Parallelstore instance into which to import data. + oneof destination { + // Parallelstore destination. + DestinationParallelstore destination_parallelstore = 3; + } + + // Required. Name of the resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "parallelstore.googleapis.com/Instance" + } + ]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and t + // he request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 4 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; + + // Optional. User-specified service account credentials to be used when + // performing the transfer. + // + // Use one of the following formats: + // + // * `{EMAIL_ADDRESS_OR_UNIQUE_ID}` + // * `projects/{PROJECT_ID_OR_NUMBER}/serviceAccounts/{EMAIL_ADDRESS_OR_UNIQUE_ID}` + // * `projects/-/serviceAccounts/{EMAIL_ADDRESS_OR_UNIQUE_ID}` + // + // If unspecified, the Parallelstore service agent is used: + // `service-<PROJECT_NUMBER>@gcp-sa-parallelstore.iam.gserviceaccount.com` + string service_account = 5 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "iam.googleapis.com/ServiceAccount" + } + ]; +} + +// Export data from Parallelstore to Cloud Storage. +message ExportDataRequest { + // The Parallelstore instance to export from. + oneof source { + // Parallelstore source. + SourceParallelstore source_parallelstore = 2; + } + + // The Cloud Storage bucket to export to. + oneof destination { + // Cloud Storage destination. + DestinationGcsBucket destination_gcs_bucket = 3; + } + + // Required. Name of the resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "parallelstore.googleapis.com/Instance" + } + ]; + + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and t + // he request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + string request_id = 4 [ + (google.api.field_info).format = UUID4, + (google.api.field_behavior) = OPTIONAL + ]; + + // Optional. User-specified Service Account (SA) credentials to be used when + // performing the transfer. + // Use one of the following formats: + // + // * `{EMAIL_ADDRESS_OR_UNIQUE_ID}` + // * `projects/{PROJECT_ID_OR_NUMBER}/serviceAccounts/{EMAIL_ADDRESS_OR_UNIQUE_ID}` + // * `projects/-/serviceAccounts/{EMAIL_ADDRESS_OR_UNIQUE_ID}` + // + // If unspecified, the Parallelstore service agent is used: + // `service-<PROJECT_NUMBER>@gcp-sa-parallelstore.iam.gserviceaccount.com` + string service_account = 5 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "iam.googleapis.com/ServiceAccount" + } + ]; +} + +// The response to a request to import data to Parallelstore. +message ImportDataResponse {} + +// Metadata related to the data import operation. +message ImportDataMetadata { + // Data transfer operation metadata. + TransferOperationMetadata operation_metadata = 1; + + // Output only. The time the operation was created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time the operation finished running. + google.protobuf.Timestamp end_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server-defined resource path for the target of the operation. + string target = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the verb executed by the operation. + string verb = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Human-readable status of the operation, if any. + string status_message = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Identifies whether the user has requested cancellation + // of the operation. Operations that have successfully been cancelled + // have [Operation.error][] value with a + // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to + // `Code.CANCELLED`. + bool requested_cancellation = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. API version used to start the operation. + string api_version = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The response to a request to export data from Parallelstore. +message ExportDataResponse {} + +// Metadata related to the data export operation. +message ExportDataMetadata { + // Data transfer operation metadata. + TransferOperationMetadata operation_metadata = 1; + + // Output only. The time the operation was created. + google.protobuf.Timestamp create_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time the operation finished running. + google.protobuf.Timestamp end_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Server-defined resource path for the target of the operation. + string target = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Name of the verb executed by the operation. + string verb = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Human-readable status of the operation, if any. + string status_message = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Identifies whether the user has requested cancellation + // of the operation. Operations that have successfully been cancelled + // have [Operation.error][] value with a + // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to + // `Code.CANCELLED`. + bool requested_cancellation = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. API version used to start the operation. + string api_version = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Long-running operation metadata related to a data transfer. +message TransferOperationMetadata { + // The source of transfer operation. + oneof source { + // Output only. Parallelstore source. + SourceParallelstore source_parallelstore = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Cloud Storage source. + SourceGcsBucket source_gcs_bucket = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The destination of transfer operation. + oneof destination { + // Output only. Cloud Storage destination. + DestinationGcsBucket destination_gcs_bucket = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Parallelstore destination. + DestinationParallelstore destination_parallelstore = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The progress of the transfer operation. + TransferCounters counters = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The type of transfer occurring. + TransferType transfer_type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A collection of counters that report the progress of a transfer operation. +message TransferCounters { + // Objects found in the data source that are scheduled to be transferred, + // excluding any that are filtered based on object conditions or skipped due + // to sync. + int64 objects_found = 1; + + // Bytes found in the data source that are scheduled to be transferred, + // excluding any that are filtered based on object conditions or skipped due + // to sync. + int64 bytes_found = 2; + + // Objects in the data source that are not transferred because they already + // exist in the data destination. + int64 objects_skipped = 3; + + // Bytes in the data source that are not transferred because they already + // exist in the data destination. + int64 bytes_skipped = 4; + + // Objects that are copied to the data destination. + int64 objects_copied = 5; + + // Bytes that are copied to the data destination. + int64 bytes_copied = 6; +} diff --git a/google/cloud/parallelstore/v1/parallelstore_v1.yaml b/google/cloud/parallelstore/v1/parallelstore_v1.yaml new file mode 100644 index 000000000..8a4404ca8 --- /dev/null +++ b/google/cloud/parallelstore/v1/parallelstore_v1.yaml @@ -0,0 +1,98 @@ +type: google.api.Service +config_version: 3 +name: parallelstore.googleapis.com +title: Parallelstore API + +apis: +- name: google.cloud.location.Locations +- name: google.cloud.parallelstore.v1.Parallelstore +- name: google.longrunning.Operations + +types: +- name: google.cloud.parallelstore.v1.OperationMetadata + +documentation: + rules: + - selector: google.cloud.location.Locations.GetLocation + description: Gets information about a location. + + - selector: google.cloud.location.Locations.ListLocations + description: Lists information about the supported locations for this service. + +http: + rules: + - selector: google.cloud.location.Locations.GetLocation + get: '/v1/{name=projects/*/locations/*}' + - selector: google.cloud.location.Locations.ListLocations + get: '/v1/{name=projects/*}/locations' + - selector: google.longrunning.Operations.CancelOperation + post: '/v1/{name=projects/*/locations/*/operations/*}:cancel' + body: '*' + - selector: google.longrunning.Operations.DeleteOperation + delete: '/v1/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.GetOperation + get: '/v1/{name=projects/*/locations/*/operations/*}' + - selector: google.longrunning.Operations.ListOperations + get: '/v1/{name=projects/*/locations/*}/operations' + +authentication: + rules: + - selector: google.cloud.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.parallelstore.v1.Parallelstore.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: 'google.longrunning.Operations.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=1181190 + documentation_uri: https://cloud.google.com/parallelstore?hl=en + api_short_name: parallelstore + github_label: 'api: parallelstore' + doc_tag_prefix: parallelstore + organization: CLOUD + library_settings: + - version: google.cloud.parallelstore.v1 + launch_stage: GA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + cpp_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER diff --git a/google/cloud/parallelstore/v1/parallelstore_v1_grpc_service_config.json b/google/cloud/parallelstore/v1/parallelstore_v1_grpc_service_config.json new file mode 100644 index 000000000..6c763088b --- /dev/null +++ b/google/cloud/parallelstore/v1/parallelstore_v1_grpc_service_config.json @@ -0,0 +1,29 @@ +{ + "methodConfig": [{ + "name": [ + { "service": "google.cloud.parallelstore.v1main.v1.Parallelstore", "method": "ListInstances" }, + { "service": "google.cloud.parallelstore.v1main.v1.Parallelstore", "method": "GetInstance" } + ], + "timeout": "60s", + "retryPolicy": { + "maxAttempts": 5, + "initialBackoff": "1s", + "maxBackoff": "10s", + "backoffMultiplier": 1.3, + "retryableStatusCodes": ["UNAVAILABLE"] + } + }, + { + "name": [ + { "service": "google.cloud.parallelstore.v1main.v1.Parallelstore", "method": "CreateInstance" } + ], + "timeout": "1800s" + }, + { + "name": [ + { "service": "google.cloud.parallelstore.v1main.v1.Parallelstore", "method": "UpdateInstance" }, + { "service": "google.cloud.parallelstore.v1main.v1.Parallelstore", "method": "DeleteInstance" } + ], + "timeout": "3600s" + }] +} diff --git a/google/cloud/parallelstore/v1beta/BUILD.bazel b/google/cloud/parallelstore/v1beta/BUILD.bazel index a22a684d6..62521d058 100644 --- a/google/cloud/parallelstore/v1beta/BUILD.bazel +++ b/google/cloud/parallelstore/v1beta/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "parallelstore_proto", @@ -40,14 +43,15 @@ proto_library_with_info( name = "parallelstore_proto_with_info", deps = [ ":parallelstore_proto", - "//google/cloud/location:location_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", ], ) ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -76,8 +80,8 @@ java_gapic_library( rest_numeric_enums = True, service_yaml = "parallelstore_v1beta.yaml", test_deps = [ - "//google/cloud/location:location_java_grpc", ":parallelstore_java_grpc", + "//google/cloud/location:location_java_grpc", ], transport = "grpc+rest", deps = [ @@ -99,6 +103,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-parallelstore-v1beta-java", + include_samples = True, transport = "grpc+rest", deps = [ ":parallelstore_java_gapic", @@ -106,12 +111,12 @@ java_gapic_assembly_gradle_pkg( ":parallelstore_java_proto", ":parallelstore_proto", ], - include_samples = True, ) ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -154,9 +159,9 @@ go_gapic_assembly_pkg( name = "gapi-cloud-parallelstore-v1beta-go", deps = [ ":parallelstore_go_gapic", - ":parallelstore_go_gapic_srcjar-test.srcjar", ":parallelstore_go_gapic_srcjar-metadata.srcjar", ":parallelstore_go_gapic_srcjar-snippets.srcjar", + ":parallelstore_go_gapic_srcjar-test.srcjar", ":parallelstore_go_proto", ], ) @@ -164,6 +169,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -179,7 +185,6 @@ py_gapic_library( service_yaml = "parallelstore_v1beta.yaml", transport = "grpc+rest", deps = [ - ], ) @@ -204,6 +209,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -220,8 +226,8 @@ php_gapic_library( name = "parallelstore_php_gapic", srcs = [":parallelstore_proto_with_info"], grpc_service_config = "parallelstore_v1beta_grpc_service_config.json", - rest_numeric_enums = True, migration_mode = "NEW_SURFACE_ONLY", + rest_numeric_enums = True, service_yaml = "parallelstore_v1beta.yaml", transport = "grpc+rest", deps = [ @@ -241,6 +247,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -271,10 +278,11 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", - "ruby_gapic_assembly_pkg", "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", "ruby_grpc_library", "ruby_proto_library", ) @@ -293,9 +301,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "parallelstore_ruby_gapic", srcs = [":parallelstore_proto_with_info"], - extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-parallelstore-v1beta", - ], + extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-parallelstore-v1beta"], grpc_service_config = "parallelstore_v1beta_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "parallelstore_v1beta.yaml", @@ -319,6 +325,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -366,6 +373,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/google/cloud/parallelstore/v1beta/parallelstore.proto b/google/cloud/parallelstore/v1beta/parallelstore.proto index 0114beec7..841751ef1 100644 --- a/google/cloud/parallelstore/v1beta/parallelstore.proto +++ b/google/cloud/parallelstore/v1beta/parallelstore.proto @@ -66,7 +66,7 @@ service Parallelstore { option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; - // Lists Instances in a given project and location. + // Lists all instances in a given project and location. rpc ListInstances(ListInstancesRequest) returns (ListInstancesResponse) { option (google.api.http) = { get: "/v1beta/{parent=projects/*/locations/*}/instances" @@ -74,7 +74,7 @@ service Parallelstore { option (google.api.method_signature) = "parent"; } - // Gets details of a single Instance. + // Gets details of a single instance. rpc GetInstance(GetInstanceRequest) returns (Instance) { option (google.api.http) = { get: "/v1beta/{name=projects/*/locations/*/instances/*}" @@ -96,7 +96,7 @@ service Parallelstore { }; } - // Updates the parameters of a single Instance. + // Updates the parameters of a single instance. rpc UpdateInstance(UpdateInstanceRequest) returns (google.longrunning.Operation) { option (google.api.http) = { @@ -110,7 +110,7 @@ service Parallelstore { }; } - // Deletes a single Instance. + // Deletes a single instance. rpc DeleteInstance(DeleteInstanceRequest) returns (google.longrunning.Operation) { option (google.api.http) = { @@ -123,7 +123,7 @@ service Parallelstore { }; } - // ImportData copies data from Cloud Storage to Parallelstore. + // Copies data from Cloud Storage to Parallelstore. rpc ImportData(ImportDataRequest) returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1beta/{name=projects/*/locations/*/instances/*}:importData" @@ -135,7 +135,7 @@ service Parallelstore { }; } - // ExportData copies data from Parallelstore to Cloud Storage + // Copies data from Parallelstore to Cloud Storage. rpc ExportData(ExportDataRequest) returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1beta/{name=projects/*/locations/*/instances/*}:exportData" @@ -160,6 +160,36 @@ enum TransferType { EXPORT = 2; } +// Represents the striping options for files. +enum FileStripeLevel { + // If not set, FileStripeLevel will default to FILE_STRIPE_LEVEL_BALANCED + FILE_STRIPE_LEVEL_UNSPECIFIED = 0; + + // Minimum file striping + FILE_STRIPE_LEVEL_MIN = 1; + + // Medium file striping + FILE_STRIPE_LEVEL_BALANCED = 2; + + // Maximum file striping + FILE_STRIPE_LEVEL_MAX = 3; +} + +// Represents the striping options for directories. +enum DirectoryStripeLevel { + // If not set, DirectoryStripeLevel will default to DIRECTORY_STRIPE_LEVEL_MAX + DIRECTORY_STRIPE_LEVEL_UNSPECIFIED = 0; + + // Minimum directory striping + DIRECTORY_STRIPE_LEVEL_MIN = 1; + + // Medium directory striping + DIRECTORY_STRIPE_LEVEL_BALANCED = 2; + + // Maximum directory striping + DIRECTORY_STRIPE_LEVEL_MAX = 3; +} + // A Parallelstore instance. message Instance { option (google.api.resource) = { @@ -169,7 +199,7 @@ message Instance { singular: "instance" }; - // Represents the different states of a Parallelstore instance. + // The possible states of a Parallelstore instance. enum State { // Not set. STATE_UNSPECIFIED = 0; @@ -185,10 +215,13 @@ message Instance { // The instance is not usable. FAILED = 4; + + // The instance is being upgraded. + UPGRADING = 5; } // Identifier. The resource name of the instance, in the format - // `projects/{project}/locations/{location}/instances/{instance_id}` + // `projects/{project}/locations/{location}/instances/{instance_id}`. string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // Optional. The description of the instance. 2048 characters or less. @@ -207,43 +240,26 @@ message Instance { // Optional. 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. + // organizational needs and deployment strategies. See + // https://cloud.google.com/resource-manager/docs/labels-overview for details. map<string, string> labels = 6 [(google.api.field_behavior) = OPTIONAL]; - // Required. Immutable. Storage capacity of Parallelstore instance in - // Gibibytes (GiB). + // Required. Immutable. The instance's storage capacity in Gibibytes (GiB). + // Allowed values are between 12000 and 100000, in multiples of 4000; e.g., + // 12000, 16000, 20000, ... int64 capacity_gib = 8 [ (google.api.field_behavior) = IMMUTABLE, (google.api.field_behavior) = REQUIRED ]; - // Output only. The version of DAOS software running in the instance + // Output only. The version of DAOS software running in the instance. string daos_version = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. List of access_points. - // Contains a list of IPv4 addresses used for client side configuration. + // Output only. A list of IPv4 addresses used for client side configuration. repeated string access_points = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Optional. Immutable. The name of the Google Compute Engine + // Optional. Immutable. The name of the Compute Engine // [VPC network](https://cloud.google.com/vpc/docs/vpc) to which the // instance is connected. string network = 11 [ @@ -252,36 +268,54 @@ message Instance { (google.api.resource_reference) = { type: "compute.googleapis.com/Network" } ]; - // Optional. Immutable. Contains the id of the allocated IP address range - // associated with the private service access connection for example, - // "test-default" associated with IP range 10.0.0.0/29. If no range id is - // provided all ranges will be considered. + // Optional. Immutable. The ID of the IP address range being used by the + // instance's VPC network. See [Configure a VPC + // network](https://cloud.google.com/parallelstore/docs/vpc#create_and_configure_the_vpc). + // If no ID is provided, all ranges are considered. string reserved_ip_range = 12 [ (google.api.field_behavior) = IMMUTABLE, (google.api.field_behavior) = OPTIONAL, (google.api.resource_reference) = { type: "compute.googleapis.com/Address" } ]; - // Output only. Immutable. Contains the id of the allocated IP address range - // associated with the private service access connection for example, - // "test-default" associated with IP range 10.0.0.0/29. This field is - // populated by the service and and contains the value currently used by the - // service. + // Output only. Immutable. The ID of the IP address range being used by the + // instance's VPC network. This field is populated by the service and contains + // the value currently used by the service. string effective_reserved_ip_range = 14 [ (google.api.field_behavior) = IMMUTABLE, (google.api.field_behavior) = OUTPUT_ONLY, (google.api.resource_reference) = { type: "compute.googleapis.com/Address" } ]; + + // Optional. Stripe level for files. Allowed values are: + // + // * `FILE_STRIPE_LEVEL_MIN`: offers the best performance for small size + // files. + // * `FILE_STRIPE_LEVEL_BALANCED`: balances performance for workloads + // involving a mix of small and large files. + // * `FILE_STRIPE_LEVEL_MAX`: higher throughput performance for larger files. + FileStripeLevel file_stripe_level = 15 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Stripe level for directories. Allowed values are: + // + // * `DIRECTORY_STRIPE_LEVEL_MIN`: recommended when directories contain a + // small number of files. + // * `DIRECTORY_STRIPE_LEVEL_BALANCED`: balances performance for workloads + // involving a mix of small and large directories. + // * `DIRECTORY_STRIPE_LEVEL_MAX`: recommended for directories with a large + // number of files. + DirectoryStripeLevel directory_stripe_level = 16 + [(google.api.field_behavior) = OPTIONAL]; } -// Message for requesting list of Instances +// List instances request. message ListInstancesRequest { // Required. The project and location for which to retrieve instance // information, in the format `projects/{project_id}/locations/{location}`. - // For Parallelstore locations map to Google Cloud zones, for example - // **us-central1-a**. - // To retrieve instance information for all locations, use "-" for the - // `{location}` value. + // + // To retrieve instance information for all locations, use "-" as the value of + // `{location}`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -290,22 +324,23 @@ message ListInstancesRequest { ]; // Optional. Requested page size. Server may return fewer items than - // requested. If unspecified, server will pick an appropriate default. + // requested. If unspecified, the server will pick an appropriate default. int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. A token identifying a page of results the server should return. string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Filtering results + // Optional. Filtering results. string filter = 4 [(google.api.field_behavior) = OPTIONAL]; - // Optional. Hint for how to order the results + // Optional. Hint for how to order the results. string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; } -// Message for response to listing Instances +// Response from +// [ListInstances][google.cloud.parallelstore.v1beta.Parallelstore.ListInstances]. message ListInstancesResponse { - // The list of Parallelstore Instances + // The list of Parallelstore instances. repeated Instance instances = 1; // A token identifying a page of results the server should return. @@ -315,7 +350,7 @@ message ListInstancesResponse { repeated string unreachable = 3; } -// Request to get an instance's details. +// Get an instance's details. message GetInstanceRequest { // Required. The instance resource name, in the format // `projects/{project_id}/locations/{location}/instances/{instance_id}`. @@ -327,12 +362,11 @@ message GetInstanceRequest { ]; } -// Request for -// [CreateInstance][google.cloud.parallelstore.v1beta.Parallelstore.CreateInstance] +// Create a new Parallelstore instance. message CreateInstanceRequest { // Required. The instance's project and location, in the format // `projects/{project}/locations/{location}`. - // Locations map to Google Cloud zones, for example **us-west1-b**. + // Locations map to Google Cloud zones; for example, `us-west1-b`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -340,8 +374,7 @@ message CreateInstanceRequest { } ]; - // Required. The logical name of the Parallelstore instance in the user - // project with the following restrictions: + // Required. The name of the Parallelstore instance. // // * Must contain only lowercase letters, numbers, and hyphens. // * Must start with a letter. @@ -369,16 +402,16 @@ message CreateInstanceRequest { string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; } -// Message for updating a Instance +// Update an instance. message UpdateInstanceRequest { - // Required. Mask of fields to update .Field mask is used to specify the + // Required. Mask of fields to update. Field mask is used to specify the // fields to be overwritten in the Instance resource by the update. At least // one path must be supplied in this field. The fields specified in the // update_mask are relative to the resource, not the full request. google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED]; - // Required. The instance to update + // Required. The instance to update. Instance instance = 2 [(google.api.field_behavior) = REQUIRED]; // Optional. An optional request ID to identify requests. Specify a unique @@ -397,7 +430,7 @@ message UpdateInstanceRequest { string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; } -// Message for deleting a Instance +// Delete an instance. message DeleteInstanceRequest { // Required. Name of the resource string name = 1 [ @@ -423,7 +456,7 @@ message DeleteInstanceRequest { string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; } -// Represents the metadata of the long-running operation. +// Long-running operation metadata. message OperationMetadata { // Output only. The time the operation was created. google.protobuf.Timestamp create_time = 1 @@ -453,44 +486,45 @@ message OperationMetadata { string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; } -// Google Cloud Storage as a source. +// Cloud Storage as the source of a data transfer. message SourceGcsBucket { - // Required. URI to a Cloud Storage object in format: - // 'gs://<bucket_name>/<path_inside_bucket>'. + // Required. URI to a Cloud Storage bucket in the format: + // `gs://<bucket_name>/<path_inside_bucket>`. The path inside the bucket is + // optional. string uri = 1 [(google.api.field_behavior) = REQUIRED]; } -// Google Cloud Storage as a destination. +// Cloud Storage as the destination of a data transfer. message DestinationGcsBucket { - // Required. URI to a Cloud Storage object in format: - // 'gs://<bucket_name>/<path_inside_bucket>'. + // Required. URI to a Cloud Storage bucket in the format: + // `gs://<bucket_name>/<path_inside_bucket>`. The path inside the bucket is + // optional. string uri = 1 [(google.api.field_behavior) = REQUIRED]; } -// Pa as a source. +// Parallelstore as the source of a data transfer. message SourceParallelstore { // Optional. Root directory path to the Paralellstore filesystem, starting - // with '/'. Defaults to '/' if unset. + // with `/`. Defaults to `/` if unset. string path = 1 [(google.api.field_behavior) = OPTIONAL]; } -// Parallelstore as a destination. +// Parallelstore as the destination of a data transfer. message DestinationParallelstore { // Optional. Root directory path to the Paralellstore filesystem, starting - // with '/'. Defaults to '/' if unset. + // with `/`. Defaults to `/` if unset. string path = 1 [(google.api.field_behavior) = OPTIONAL]; } -// Message representing the request importing data from parallelstore to Cloud -// Storage. +// Import data from Cloud Storage into a Parallelstore instance. message ImportDataRequest { - // The source of the data being imported into the parallelstore instance. + // The source of the data being imported into the Parallelstore instance. oneof source { - // Cloud Storage source. + // The Cloud Storage source bucket and, optionally, path inside the bucket. SourceGcsBucket source_gcs_bucket = 2; } - // The destination of the data being imported into the parallelstore instance. + // The Parallelstore instance into which to import data. oneof destination { // Parallelstore destination. DestinationParallelstore destination_parallelstore = 3; @@ -522,11 +556,17 @@ message ImportDataRequest { (google.api.field_behavior) = OPTIONAL ]; - // Optional. User-specified Service Account (SA) credentials to be used when + // Optional. User-specified service account credentials to be used when // performing the transfer. - // Format: `projects/{project_id}/serviceAccounts/{service_account}` + // + // Use one of the following formats: + // + // * `{EMAIL_ADDRESS_OR_UNIQUE_ID}` + // * `projects/{PROJECT_ID_OR_NUMBER}/serviceAccounts/{EMAIL_ADDRESS_OR_UNIQUE_ID}` + // * `projects/-/serviceAccounts/{EMAIL_ADDRESS_OR_UNIQUE_ID}` + // // If unspecified, the Parallelstore service agent is used: - // service-<PROJECT_NUMBER>@gcp-sa-parallelstore.iam.gserviceaccount.com) + // `service-<PROJECT_NUMBER>@gcp-sa-parallelstore.iam.gserviceaccount.com` string service_account = 5 [ (google.api.field_behavior) = OPTIONAL, (google.api.resource_reference) = { @@ -535,16 +575,15 @@ message ImportDataRequest { ]; } -// Message representing the request exporting data from Cloud Storage to -// parallelstore. +// Export data from Parallelstore to Cloud Storage. message ExportDataRequest { - // The source of the data exported from the parallelstore instance. + // The Parallelstore instance to export from. oneof source { // Parallelstore source. SourceParallelstore source_parallelstore = 2; } - // The destination of the data exported from the parallelstore instance. + // The Cloud Storage bucket to export to. oneof destination { // Cloud Storage destination. DestinationGcsBucket destination_gcs_bucket = 3; @@ -578,9 +617,14 @@ message ExportDataRequest { // Optional. User-specified Service Account (SA) credentials to be used when // performing the transfer. - // Format: `projects/{project_id}/serviceAccounts/{service_account}` + // Use one of the following formats: + // + // * `{EMAIL_ADDRESS_OR_UNIQUE_ID}` + // * `projects/{PROJECT_ID_OR_NUMBER}/serviceAccounts/{EMAIL_ADDRESS_OR_UNIQUE_ID}` + // * `projects/-/serviceAccounts/{EMAIL_ADDRESS_OR_UNIQUE_ID}` + // // If unspecified, the Parallelstore service agent is used: - // service-<PROJECT_NUMBER>@gcp-sa-parallelstore.iam.gserviceaccount.com) + // `service-<PROJECT_NUMBER>@gcp-sa-parallelstore.iam.gserviceaccount.com` string service_account = 5 [ (google.api.field_behavior) = OPTIONAL, (google.api.resource_reference) = { @@ -589,12 +633,12 @@ message ExportDataRequest { ]; } -// ImportDataResponse is the response returned from ImportData rpc. +// The response to a request to import data to Parallelstore. message ImportDataResponse {} -// ImportDataMetadata contains import data operation metadata +// Metadata related to the data import operation. message ImportDataMetadata { - // Contains the data transfer operation metadata. + // Data transfer operation metadata. TransferOperationMetadata operation_metadata = 1; // Output only. The time the operation was created. @@ -625,12 +669,12 @@ message ImportDataMetadata { string api_version = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; } -// ExportDataResponse is the response returned from ExportData rpc +// The response to a request to export data from Parallelstore. message ExportDataResponse {} -// ExportDataMetadata contains export data operation metadata +// Metadata related to the data export operation. message ExportDataMetadata { - // Contains the data transfer operation metadata. + // Data transfer operation metadata. TransferOperationMetadata operation_metadata = 1; // Output only. The time the operation was created. @@ -661,7 +705,7 @@ message ExportDataMetadata { string api_version = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; } -// Represents the metadata of the long-running operation. +// Long-running operation metadata related to a data transfer. message TransferOperationMetadata { // The source of transfer operation. oneof source { @@ -685,7 +729,7 @@ message TransferOperationMetadata { [(google.api.field_behavior) = OUTPUT_ONLY]; } - // Output only. Information about the progress of the transfer operation. + // Output only. The progress of the transfer operation. TransferCounters counters = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The type of transfer occurring. diff --git a/google/cloud/policytroubleshooter/v1/BUILD.bazel b/google/cloud/policytroubleshooter/v1/BUILD.bazel index 2f5e004d5..454270f81 100644 --- a/google/cloud/policytroubleshooter/v1/BUILD.bazel +++ b/google/cloud/policytroubleshooter/v1/BUILD.bazel @@ -217,7 +217,7 @@ php_gapic_library( name = "policytroubleshooter_php_gapic", srcs = [":policytroubleshooter_proto_with_info"], grpc_service_config = "checker_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "policytroubleshooter_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/recaptchaenterprise/v1/recaptchaenterprise.proto b/google/cloud/recaptchaenterprise/v1/recaptchaenterprise.proto index be727b9e9..6048f012c 100644 --- a/google/cloud/recaptchaenterprise/v1/recaptchaenterprise.proto +++ b/google/cloud/recaptchaenterprise/v1/recaptchaenterprise.proto @@ -127,6 +127,18 @@ service RecaptchaEnterpriseService { }; } + // Adds an IP override to a key. The following restrictions hold: + // * The maximum number of IP overrides per key is 100. + // * For any conflict (such as IP already exists or IP part of an existing + // IP range), an error is returned. + rpc AddIpOverride(AddIpOverrideRequest) returns (AddIpOverrideResponse) { + option (google.api.http) = { + post: "/v1/{name=projects/*/keys/*}:addIpOverride" + body: "*" + }; + option (google.api.method_signature) = "name,ip_override_data"; + } + // Get some aggregated metrics for a Key. This data can be used to build // dashboards. rpc GetMetrics(GetMetricsRequest) returns (Metrics) { @@ -227,7 +239,7 @@ service RecaptchaEnterpriseService { // The create assessment request message. message CreateAssessmentRequest { - // Required. The name of the project in which the assessment will be created, + // Required. The name of the project in which the assessment is created, // in the format `projects/{project}`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, @@ -457,7 +469,7 @@ message AnnotateAssessmentRequest { } ]; - // Optional. The annotation that will be assigned to the Event. This field can + // Optional. The annotation that is 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]; @@ -655,6 +667,12 @@ message Assessment { // protection need to be enabled. PhoneFraudAssessment phone_fraud_assessment = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The environment creating the assessment. This describes your + // environment (the system invoking CreateAssessment), NOT the environment of + // your user. + AssessmentEnvironment assessment_environment = 14 + [(google.api.field_behavior) = OPTIONAL]; } // The event being assessed. @@ -708,8 +726,7 @@ message Event { [deprecated = true, (google.api.field_behavior) = OPTIONAL]; // Optional. Flag for a reCAPTCHA express request for an assessment without a - // token. If enabled, `site_key` must reference a SCORE key with WAF feature - // set to EXPRESS. + // token. If enabled, `site_key` must reference an express key. bool express = 14 [(google.api.field_behavior) = OPTIONAL]; // Optional. The URI resource the user requested that triggered an assessment. @@ -727,12 +744,12 @@ message Event { repeated string headers = 11 [(google.api.field_behavior) = OPTIONAL]; // Optional. Flag for enabling firewall policy config assessment. - // If this flag is enabled, the firewall policy will be evaluated and a - // suggested firewall action will be returned in the response. + // If this flag is enabled, the firewall policy is evaluated and a + // suggested firewall action is returned in the response. bool firewall_policy_evaluation = 12 [(google.api.field_behavior) = OPTIONAL]; // Optional. Data describing a payment transaction to be assessed. Sending - // this data enables reCAPTCHA Enterprise Fraud Prevention and the + // this data enables reCAPTCHA Fraud Prevention and the // FraudPreventionAssessment component in the response. TransactionData transaction_data = 13 [(google.api.field_behavior) = OPTIONAL]; @@ -1180,7 +1197,7 @@ message AccountDefenderAssessment { // The create key request message. message CreateKeyRequest { - // Required. The name of the project in which the key will be created, in the + // Required. The name of the project in which the key is created, in the // format `projects/{project}`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, @@ -1195,7 +1212,7 @@ message CreateKeyRequest { // The list keys request message. message ListKeysRequest { - // Required. The name of the project that contains the keys that will be + // Required. The name of the project that contains the keys that are // listed, in the format `projects/{project}`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, @@ -1253,7 +1270,7 @@ message UpdateKeyRequest { 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. + // mask is not present, all fields are updated. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = OPTIONAL]; } @@ -1333,7 +1350,7 @@ message UpdateFirewallPolicyRequest { FirewallPolicy firewall_policy = 1 [(google.api.field_behavior) = REQUIRED]; // Optional. The mask to control which fields of the policy get updated. If - // the mask is not present, all fields will be updated. + // the mask is not present, all fields are updated. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = OPTIONAL]; } @@ -1388,11 +1405,11 @@ message MigrateKeyRequest { // Optional. If true, skips the billing check. // A reCAPTCHA Enterprise key or migrated key behaves differently than a // reCAPTCHA (non-Enterprise version) key when you reach a quota limit (see - // https://cloud.google.com/recaptcha-enterprise/quotas#quota_limit). To avoid + // https://cloud.google.com/recaptcha/quotas#quota_limit). To avoid // any disruption of your usage, we check that a billing account is present. // If your usage of reCAPTCHA is under the free quota, you can safely skip the // billing check and proceed with the migration. See - // https://cloud.google.com/recaptcha-enterprise/docs/billing-information. + // https://cloud.google.com/recaptcha/docs/billing-information. bool skip_billing_check = 2 [(google.api.field_behavior) = OPTIONAL]; } @@ -1427,11 +1444,11 @@ message Metrics { // Inclusive start time aligned to a day (UTC). google.protobuf.Timestamp start_time = 1; - // Metrics will be continuous and in order by dates, and in the granularity + // Metrics are continuous and in order by dates, and in the granularity // of day. All Key types should have score-based data. repeated ScoreMetrics score_metrics = 2; - // Metrics will be continuous and in order by dates, and in the granularity + // Metrics are continuous and in order by dates, and in the granularity // of day. Only challenge-based keys (CHECKBOX, INVISIBLE), will have // challenge-based data. repeated ChallengeMetrics challenge_metrics = 3; @@ -1475,10 +1492,13 @@ message Key { // Settings for keys that can be used by iOS apps. IOSKeySettings ios_settings = 5; + + // Settings specific to keys that can be used for reCAPTCHA Express. + ExpressKeySettings express_settings = 11; } // Optional. See [Creating and managing labels] - // (https://cloud.google.com/recaptcha-enterprise/docs/labels). + // (https://cloud.google.com/recaptcha/docs/labels). map<string, string> labels = 6 [(google.api.field_behavior) = OPTIONAL]; // Output only. The timestamp corresponding to the creation of this key. @@ -1618,6 +1638,9 @@ message IOSKeySettings { [(google.api.field_behavior) = OPTIONAL]; } +// Settings specific to keys that can be used for reCAPTCHA Express. +message ExpressKeySettings {} + // Contains fields that are required to perform Apple-specific integrity checks. message AppleDeveloperId { // Required. Input only. A private key (downloaded as a text file with a .p8 @@ -1675,13 +1698,13 @@ message ChallengeMetrics { // Policy config assessment. message FirewallPolicyAssessment { - // Output only. If the processing of a policy config fails, an error will be - // populated and the firewall_policy will be left empty. + // Output only. If the processing of a policy config fails, an error is + // populated and the firewall_policy is left empty. google.rpc.Status error = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The policy that matched the request. If more than one policy // may match, this is the first match. If no policy matches the incoming - // request, the policy field will be left empty. + // request, the policy field is left empty. FirewallPolicy firewall_policy = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -1919,6 +1942,24 @@ message SearchRelatedAccountGroupMembershipsResponse { string next_page_token = 2; } +// The AddIpOverride request message. +message AddIpOverrideRequest { + // Required. The name of the key to which the IP override is added, in the + // format `projects/{project}/keys/{key}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "recaptchaenterprise.googleapis.com/Key" + } + ]; + + // Required. IP override added to the key. + IpOverrideData ip_override_data = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response for AddIpOverride. +message AddIpOverrideResponse {} + // A membership in a group of related accounts. message RelatedAccountGroupMembership { option (google.api.resource) = { @@ -1969,7 +2010,7 @@ message RelatedAccountGroup { // Firewall). message WafSettings { // Supported WAF features. For more information, see - // https://cloud.google.com/recaptcha-enterprise/docs/usecase#comparison_of_features. + // https://cloud.google.com/recaptcha/docs/usecase#comparison_of_features. enum WafFeature { // Undefined feature. WAF_FEATURE_UNSPECIFIED = 0; @@ -2010,3 +2051,47 @@ message WafSettings { // Required. The WAF feature for which this key is enabled. WafFeature waf_feature = 2 [(google.api.field_behavior) = REQUIRED]; } + +// The environment creating the assessment. This describes your environment +// (the system invoking CreateAssessment), NOT the environment of your user. +message AssessmentEnvironment { + // Optional. Identifies the client module initiating the CreateAssessment + // request. This can be the link to the client module's project. Examples + // include: + // - "github.com/GoogleCloudPlatform/recaptcha-enterprise-google-tag-manager" + // - "cloud.google.com/recaptcha/docs/implement-waf-akamai" + // - "cloud.google.com/recaptcha/docs/implement-waf-cloudflare" + // - "wordpress.org/plugins/recaptcha-something" + string client = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The version of the client module. For example, "1.0.0". + string version = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Information about the IP or IP range override. +message IpOverrideData { + // Enum that represents the type of IP override. + enum OverrideType { + // Default override type that indicates this enum hasn't been specified. + OVERRIDE_TYPE_UNSPECIFIED = 0; + + // Allowlist the IP address; i.e. give a `risk_analysis.score` of 0.9 for + // all valid assessments. + ALLOW = 1; + } + + // Required. The IP address to override (can be IPv4, IPv6 or CIDR). + // The IP override must be a valid IPv4 or IPv6 address, or a CIDR range. + // The IP override must be a public IP address. + // Example of IPv4: 168.192.5.6 + // Example of IPv6: 2001:0000:130F:0000:0000:09C0:876A:130B + // Example of IPv4 with CIDR: 168.192.5.0/24 + // Example of IPv6 with CIDR: 2001:0DB8:1234::/48 + string ip = 1 [ + (google.api.field_info).format = IPV4_OR_IPV6, + (google.api.field_behavior) = REQUIRED + ]; + + // Required. Describes the type of IP override. + OverrideType override_type = 3 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/cloud/recaptchaenterprise/v1/recaptchaenterprise_v1.yaml b/google/cloud/recaptchaenterprise/v1/recaptchaenterprise_v1.yaml index 39627896f..f00d6bb71 100644 --- a/google/cloud/recaptchaenterprise/v1/recaptchaenterprise_v1.yaml +++ b/google/cloud/recaptchaenterprise/v1/recaptchaenterprise_v1.yaml @@ -10,7 +10,7 @@ documentation: summary: |- Help protect your website from fraudulent activity, spam, and abuse without creating friction. - overview: reCAPTCHA Enterprise Overview + overview: reCAPTCHA Overview authentication: rules: diff --git a/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise.proto b/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise.proto index 002868344..974b8bd88 100644 --- a/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise.proto +++ b/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise.proto @@ -60,7 +60,7 @@ service RecaptchaEnterpriseServiceV1Beta1 { // The create assessment request message. message CreateAssessmentRequest { - // Required. The name of the project in which the assessment will be created, + // Required. The name of the project in which the assessment is created, // in the format `projects/{project_number}`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, @@ -290,8 +290,8 @@ 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 + // Optional. The annotation that is 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]; @@ -419,12 +419,12 @@ message Event { DISABLED = 2; } - // Optional. The user response token provided by the reCAPTCHA Enterprise - // 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 Enterprise 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 @@ -437,7 +437,7 @@ message Event { // 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. + // already integrated with reCAPTCHA. string expected_action = 5 [(google.api.field_behavior) = OPTIONAL]; // Optional. Unique stable hashed user identifier for the request. The @@ -445,7 +445,7 @@ message Event { bytes hashed_account_id = 6 [(google.api.field_behavior) = OPTIONAL]; // Optional. Data describing a payment transaction to be assessed. Sending - // this data enables reCAPTCHA Enterprise Fraud Prevention and the + // this data enables reCAPTCHA Fraud Prevention and the // FraudPreventionAssessment component in the response. TransactionData transaction_data = 13 [(google.api.field_behavior) = OPTIONAL]; @@ -455,7 +455,7 @@ message Event { [(google.api.field_behavior) = OPTIONAL]; } -// Transaction data associated with a payment protected by reCAPTCHA Enterprise. +// Transaction data associated with a payment protected by reCAPTCHA. message TransactionData { // Structured address format for billing and shipping addresses. message Address { @@ -531,11 +531,11 @@ message TransactionData { string gateway_response_code = 2; // AVS response code from the gateway - // (available only when reCAPTCHA Enterprise is called after authorization). + // (available only when reCAPTCHA is called after authorization). string avs_response_code = 3; // CVV response code from the gateway - // (available only when reCAPTCHA Enterprise is called after authorization). + // (available only when reCAPTCHA is called after authorization). string cvv_response_code = 4; } diff --git a/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise_v1beta1.yaml b/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise_v1beta1.yaml index 8689a4f50..1b5744805 100644 --- a/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise_v1beta1.yaml +++ b/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise_v1beta1.yaml @@ -10,7 +10,7 @@ documentation: summary: |- Help protect your website from fraudulent activity, spam, and abuse without creating friction. - overview: reCAPTCHA Enterprise Overview + overview: reCAPTCHA Overview authentication: rules: diff --git a/google/cloud/recommendationengine/BUILD.bazel b/google/cloud/recommendationengine/BUILD.bazel index 71863a8fb..6f6ebda2c 100644 --- a/google/cloud/recommendationengine/BUILD.bazel +++ b/google/cloud/recommendationengine/BUILD.bazel @@ -23,7 +23,7 @@ ruby_cloud_gapic_library( "ruby-cloud-gem-name=google-cloud-recommendation_engine", "ruby-cloud-env-prefix=RECOMMENDATION_ENGINE", "ruby-cloud-wrapper-of=v1beta1:0.8", - "ruby-cloud-product-url=https://cloud.google.com/recommendations-ai/", + "ruby-cloud-product-url=https://cloud.google.com/recommendations", "ruby-cloud-api-id=recommendationengine.googleapis.com", "ruby-cloud-api-shortname=recommendationengine", ], diff --git a/google/cloud/recommendationengine/v1beta1/BUILD.bazel b/google/cloud/recommendationengine/v1beta1/BUILD.bazel index e913781b0..4572ad7e3 100644 --- a/google/cloud/recommendationengine/v1beta1/BUILD.bazel +++ b/google/cloud/recommendationengine/v1beta1/BUILD.bazel @@ -266,7 +266,7 @@ ruby_cloud_gapic_library( extra_protoc_parameters = [ "ruby-cloud-gem-name=google-cloud-recommendation_engine-v1beta1", "ruby-cloud-env-prefix=RECOMMENDATION_ENGINE", - "ruby-cloud-product-url=https://cloud.google.com/recommendations-ai/", + "ruby-cloud-product-url=https://cloud.google.com/recommendations", "ruby-cloud-api-id=recommendationengine.googleapis.com", "ruby-cloud-api-shortname=recommendationengine", ], diff --git a/google/cloud/recommender/v1/BUILD.bazel b/google/cloud/recommender/v1/BUILD.bazel index 97dbba779..a512c0249 100644 --- a/google/cloud/recommender/v1/BUILD.bazel +++ b/google/cloud/recommender/v1/BUILD.bazel @@ -215,7 +215,7 @@ php_gapic_library( name = "recommender_php_gapic", srcs = [":recommender_proto_with_info"], grpc_service_config = "recommender_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "recommender_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/redis/v1/BUILD.bazel b/google/cloud/redis/v1/BUILD.bazel index 5c05ca05c..d4710d537 100644 --- a/google/cloud/redis/v1/BUILD.bazel +++ b/google/cloud/redis/v1/BUILD.bazel @@ -224,7 +224,7 @@ php_gapic_library( name = "redis_php_gapic", srcs = [":redis_proto_with_info"], grpc_service_config = "redis_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "redis_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/resourcesettings/v1/BUILD.bazel b/google/cloud/resourcesettings/v1/BUILD.bazel index 9f9372939..cd9717584 100644 --- a/google/cloud/resourcesettings/v1/BUILD.bazel +++ b/google/cloud/resourcesettings/v1/BUILD.bazel @@ -202,7 +202,7 @@ php_gapic_library( name = "resourcesettings_php_gapic", srcs = [":resourcesettings_proto_with_info"], grpc_service_config = "resourcesettings_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "resourcesettings_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/retail/BUILD.bazel b/google/cloud/retail/BUILD.bazel index f598530fd..35a4b0513 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.18", + "ruby-cloud-wrapper-of=v2:1.1", "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/v2/BUILD.bazel b/google/cloud/retail/v2/BUILD.bazel index 04d3aebd9..38f77dfd4 100644 --- a/google/cloud/retail/v2/BUILD.bazel +++ b/google/cloud/retail/v2/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "retail_proto", @@ -29,6 +32,8 @@ proto_library( "control.proto", "control_service.proto", "export_config.proto", + "generative_question.proto", + "generative_question_service.proto", "import_config.proto", "model.proto", "model_service.proto", @@ -66,12 +71,14 @@ proto_library_with_info( deps = [ ":retail_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", ], ) ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -101,11 +108,13 @@ java_gapic_library( service_yaml = "retail_v2.yaml", test_deps = [ ":retail_java_grpc", + "//google/cloud/location:location_java_grpc", ], transport = "grpc+rest", deps = [ ":retail_java_proto", "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", ], ) @@ -120,6 +129,8 @@ java_gapic_test( "com.google.cloud.retail.v2.CompletionServiceClientTest", "com.google.cloud.retail.v2.ControlServiceClientHttpJsonTest", "com.google.cloud.retail.v2.ControlServiceClientTest", + "com.google.cloud.retail.v2.GenerativeQuestionServiceClientHttpJsonTest", + "com.google.cloud.retail.v2.GenerativeQuestionServiceClientTest", "com.google.cloud.retail.v2.ModelServiceClientHttpJsonTest", "com.google.cloud.retail.v2.ModelServiceClientTest", "com.google.cloud.retail.v2.PredictionServiceClientHttpJsonTest", @@ -152,6 +163,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -182,9 +194,11 @@ go_gapic_library( release_level = "ga", rest_numeric_enums = True, service_yaml = "retail_v2.yaml", + transport = "grpc+rest", deps = [ ":retail_go_proto", "//google/api:httpbody_go_proto", + "//google/cloud/location:location_go_proto", "//google/longrunning:longrunning_go_proto", "@com_google_cloud_go_longrunning//:go_default_library", "@com_google_cloud_go_longrunning//autogen:go_default_library", @@ -208,6 +222,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -222,6 +237,8 @@ py_gapic_library( rest_numeric_enums = True, service_yaml = "retail_v2.yaml", transport = "grpc+rest", + deps = [ + ], ) py_test( @@ -245,6 +262,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -261,11 +279,13 @@ php_gapic_library( name = "retail_php_gapic", srcs = [":retail_proto_with_info"], grpc_service_config = "retail_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "retail_v2.yaml", transport = "grpc+rest", - deps = [":retail_php_proto"], + deps = [ + ":retail_php_proto", + ], ) # Open Source Packages @@ -280,6 +300,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -311,6 +332,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -365,6 +387,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -375,6 +398,7 @@ load( csharp_proto_library( name = "retail_csharp_proto", + extra_opts = [], deps = [":retail_proto"], ) @@ -411,6 +435,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/google/cloud/retail/v2/common.proto b/google/cloud/retail/v2/common.proto index 78014a149..495db5552 100644 --- a/google/cloud/retail/v2/common.proto +++ b/google/cloud/retail/v2/common.proto @@ -337,7 +337,7 @@ message Rule { } // Each instance corresponds to a force return attribute for the given - // condition. There can't be more 3 instances here. + // condition. There can't be more 15 instances here. repeated FacetPositionAdjustment facet_position_adjustments = 1; } diff --git a/google/cloud/retail/v2/completion_service.proto b/google/cloud/retail/v2/completion_service.proto index a5f2b0ac8..c40859d38 100644 --- a/google/cloud/retail/v2/completion_service.proto +++ b/google/cloud/retail/v2/completion_service.proto @@ -151,9 +151,9 @@ message CompleteQueryRequest { // capped by 20. int32 max_suggestions = 5; - // If true, attribute suggestions are enabled and provided in response. + // If true, attribute suggestions are enabled and provided in the response. // - // This field is only available for "cloud-retail" dataset. + // This field is only available for the "cloud-retail" dataset. bool enable_attribute_suggestions = 9; // The entity for customers who run multiple entities, domains, sites, or @@ -192,6 +192,12 @@ message CompleteQueryResponse { string recent_search = 1; } + // Resource that represents attribute results. + // The list of suggestions for the attribute. + message AttributeResult { + repeated string suggestions = 1; + } + // Results of the matching suggestions. The result list is ordered and the // first result is top suggestion. repeated CompletionResult completion_results = 1; @@ -224,4 +230,14 @@ message CompleteQueryResponse { // Recent searches are deduplicated. More recent searches will be reserved // when duplication happens. repeated RecentSearchResult recent_search_results = 3 [deprecated = true]; + + // A map of matched attribute suggestions. This field is only available for + // "cloud-retail" dataset. + // + // Current supported keys: + // + // * `brands` + // + // * `categories` + map<string, AttributeResult> attribute_results = 4; } diff --git a/google/cloud/retail/v2/generative_question.proto b/google/cloud/retail/v2/generative_question.proto new file mode 100644 index 000000000..022623766 --- /dev/null +++ b/google/cloud/retail/v2/generative_question.proto @@ -0,0 +1,72 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.retail.v2; + +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2"; +option go_package = "cloud.google.com/go/retail/apiv2/retailpb;retailpb"; +option java_multiple_files = true; +option java_outer_classname = "GenerativeQuestionProto"; +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"; + +// Configuration for overall generative question feature state. +message GenerativeQuestionsFeatureConfig { + // Required. Resource name of the affected catalog. + // Format: projects/{project}/locations/{location}/catalogs/{catalog} + string catalog = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Determines whether questions will be used at serving time. + // Note: This feature cannot be enabled until initial data requirements are + // satisfied. + bool feature_enabled = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Minimum number of products in the response to trigger follow-up + // questions. Value must be 0 or positive. + int32 minimum_products = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Configuration for a single generated question. +message GenerativeQuestionConfig { + // Required. Resource name of the catalog. + // Format: projects/{project}/locations/{location}/catalogs/{catalog} + string catalog = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The facet to which the question is associated. + string facet = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The LLM generated question. + string generated_question = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The question that will be used at serving time. + // Question can have a max length of 300 bytes. + // When not populated, generated_question should be used. + string final_question = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Values that can be used to answer the question. + repeated string example_values = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The ratio of how often a question was asked. + float frequency = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Whether the question is asked at serving time. + bool allowed_in_conversation = 7 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/retail/v2/generative_question_service.proto b/google/cloud/retail/v2/generative_question_service.proto new file mode 100644 index 000000000..31f8f5b99 --- /dev/null +++ b/google/cloud/retail/v2/generative_question_service.proto @@ -0,0 +1,172 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY 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/generative_question.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2"; +option go_package = "cloud.google.com/go/retail/apiv2/retailpb;retailpb"; +option java_multiple_files = true; +option java_outer_classname = "GenerativeQuestionServiceProto"; +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 managing LLM generated questions in search serving. +service GenerativeQuestionService { + option (google.api.default_host) = "retail.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Manages overal generative question feature state -- enables toggling + // feature on and off. + rpc UpdateGenerativeQuestionsFeatureConfig( + UpdateGenerativeQuestionsFeatureConfigRequest) + returns (GenerativeQuestionsFeatureConfig) { + option (google.api.http) = { + patch: "/v2/{generative_questions_feature_config.catalog=projects/*/locations/*/catalogs/*}/generativeQuestionFeature" + body: "generative_questions_feature_config" + }; + option (google.api.method_signature) = + "generative_questions_feature_config,update_mask"; + } + + // Manages overal generative question feature state -- enables toggling + // feature on and off. + rpc GetGenerativeQuestionsFeatureConfig( + GetGenerativeQuestionsFeatureConfigRequest) + returns (GenerativeQuestionsFeatureConfig) { + option (google.api.http) = { + get: "/v2/{catalog=projects/*/locations/*/catalogs/*}/generativeQuestionFeature" + }; + option (google.api.method_signature) = "catalog"; + } + + // Returns all questions for a given catalog. + rpc ListGenerativeQuestionConfigs(ListGenerativeQuestionConfigsRequest) + returns (ListGenerativeQuestionConfigsResponse) { + option (google.api.http) = { + get: "/v2/{parent=projects/*/locations/*/catalogs/*}/generativeQuestions" + }; + option (google.api.method_signature) = "parent"; + } + + // Allows management of individual questions. + rpc UpdateGenerativeQuestionConfig(UpdateGenerativeQuestionConfigRequest) + returns (GenerativeQuestionConfig) { + option (google.api.http) = { + patch: "/v2/{generative_question_config.catalog=projects/*/locations/*/catalogs/*}/generativeQuestion" + body: "generative_question_config" + }; + option (google.api.method_signature) = + "generative_question_config,update_mask"; + } + + // Allows management of multiple questions. + rpc BatchUpdateGenerativeQuestionConfigs( + BatchUpdateGenerativeQuestionConfigsRequest) + returns (BatchUpdateGenerativeQuestionConfigsResponse) { + option (google.api.http) = { + post: "/v2/{parent=projects/*/locations/*/catalogs/*}/generativeQuestion:batchUpdate" + body: "*" + }; + option (google.api.method_signature) = "parent,requests"; + } +} + +// Request for UpdateGenerativeQuestionsFeatureConfig method. +message UpdateGenerativeQuestionsFeatureConfigRequest { + // Required. The configuration managing the feature state. + GenerativeQuestionsFeatureConfig generative_questions_feature_config = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Indicates which fields in the provided + // [GenerativeQuestionsFeatureConfig][google.cloud.retail.v2.GenerativeQuestionsFeatureConfig] + // to update. If not set or empty, all supported fields are updated. + google.protobuf.FieldMask update_mask = 4 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for GetGenerativeQuestionsFeatureConfig method. +message GetGenerativeQuestionsFeatureConfigRequest { + // Required. Resource name of the parent catalog. + // Format: projects/{project}/locations/{location}/catalogs/{catalog} + string catalog = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; +} + +// Request for ListQuestions method. +message ListGenerativeQuestionConfigsRequest { + // Required. Resource name of the parent catalog. + // Format: projects/{project}/locations/{location}/catalogs/{catalog} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; +} + +// Response for ListQuestions method. +message ListGenerativeQuestionConfigsResponse { + // All the questions for a given catalog. + repeated GenerativeQuestionConfig generative_question_configs = 1; +} + +// Request for UpdateGenerativeQuestionConfig method. +message UpdateGenerativeQuestionConfigRequest { + // Required. The question to update. + GenerativeQuestionConfig generative_question_config = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Indicates which fields in the provided + // [GenerativeQuestionConfig][google.cloud.retail.v2.GenerativeQuestionConfig] + // to update. The following are NOT supported: + // + // * [GenerativeQuestionConfig.frequency][google.cloud.retail.v2.GenerativeQuestionConfig.frequency] + // + // If not set or empty, all supported fields are updated. + google.protobuf.FieldMask update_mask = 4 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for BatchUpdateGenerativeQuestionConfig method. +message BatchUpdateGenerativeQuestionConfigsRequest { + // Optional. Resource name of the parent catalog. + // Format: projects/{project}/locations/{location}/catalogs/{catalog} + string parent = 1 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; + + // Required. The updates question configs. + repeated UpdateGenerativeQuestionConfigRequest requests = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Aggregated response for UpdateGenerativeQuestionConfig method. +message BatchUpdateGenerativeQuestionConfigsResponse { + // Optional. The updates question configs. + repeated GenerativeQuestionConfig generative_question_configs = 1 + [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/retail/v2/product.proto b/google/cloud/retail/v2/product.proto index 71aee814e..2318444c1 100644 --- a/google/cloud/retail/v2/product.proto +++ b/google/cloud/retail/v2/product.proto @@ -380,6 +380,15 @@ message Product { // Default to // [Availability.IN_STOCK][google.cloud.retail.v2.Product.Availability.IN_STOCK]. // + // For primary products with variants set the availability of the primary as + // [Availability.OUT_OF_STOCK][google.cloud.retail.v2.Product.Availability.OUT_OF_STOCK] + // and set the true availability at the variant level. This way the primary + // product will be considered "in stock" as long as it has at least one + // variant in stock. + // + // For primary products with no variants set the true availability at the + // primary level. + // // Corresponding properties: Google Merchant Center property // [availability](https://support.google.com/merchants/answer/6324448). // Schema.org property [Offer.availability](https://schema.org/availability). @@ -553,8 +562,6 @@ message Product { // * [name][google.cloud.retail.v2.Product.name] // * [color_info][google.cloud.retail.v2.Product.color_info] // - // 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] can increase diff --git a/google/cloud/retail/v2/retail_v2.yaml b/google/cloud/retail/v2/retail_v2.yaml index c00bfc85e..e44d29ce6 100644 --- a/google/cloud/retail/v2/retail_v2.yaml +++ b/google/cloud/retail/v2/retail_v2.yaml @@ -9,6 +9,7 @@ apis: - name: google.cloud.retail.v2.CatalogService - name: google.cloud.retail.v2.CompletionService - name: google.cloud.retail.v2.ControlService +- name: google.cloud.retail.v2.GenerativeQuestionService - name: google.cloud.retail.v2.ModelService - name: google.cloud.retail.v2.PredictionService - name: google.cloud.retail.v2.ProductService @@ -104,6 +105,10 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.retail.v2.GenerativeQuestionService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.retail.v2.ModelService.*' oauth: canonical_scopes: |- diff --git a/google/cloud/retail/v2/search_service.proto b/google/cloud/retail/v2/search_service.proto index c9b8cbb3e..647267b8a 100644 --- a/google/cloud/retail/v2/search_service.proto +++ b/google/cloud/retail/v2/search_service.proto @@ -63,6 +63,43 @@ service SearchService { } } +// Product attribute which structured by an attribute name and value. This +// structure is used in conversational search filters and answers. For example, +// if we have `name=color` and `value=red`, this means that the color is `red`. +message ProductAttributeValue { + // The attribute name. + string name = 1; + + // The attribute value. + string value = 2; +} + +// Product attribute name and numeric interval. +message ProductAttributeInterval { + // The attribute name (e.g. "length") + string name = 1; + + // The numeric interval (e.g. [10, 20)) + Interval interval = 2; +} + +// This field specifies the tile information including an attribute key, +// attribute value. More fields will be added in the future, eg: product id +// or product counts, etc. +message Tile { + // The attribute key and value for the tile. + oneof product_attribute { + // The product attribute key-value. + ProductAttributeValue product_attribute_value = 1; + + // The product attribute key-numeric interval. + ProductAttributeInterval product_attribute_interval = 2; + } + + // The representative product id for this tile. + string representative_product_id = 3; +} + // Request message for // [SearchService.Search][google.cloud.retail.v2.SearchService.Search] method. message SearchRequest { @@ -446,6 +483,69 @@ message SearchRequest { Mode mode = 1; } + // This field specifies all conversational related parameters addition to + // traditional retail search. + message ConversationalSearchSpec { + // This field specifies the current user answer during the conversational + // search. This can be either user selected from suggested answers or user + // input plain text. + message UserAnswer { + // This field specifies the selected answers during the conversational + // search. + message SelectedAnswer { + // This field is deprecated and should not be set. + repeated ProductAttributeValue product_attribute_values = 1 + [deprecated = true]; + + // This field specifies the selected answer which is a attribute + // key-value. + ProductAttributeValue product_attribute_value = 2; + } + + // This field specifies the type of user answer. + oneof type { + // This field specifies the incremental input text from the user during + // the conversational search. + string text_answer = 1; + + // This field specifies the selected attributes during the + // conversational search. This should be a subset of + // [ConversationalSearchResult.suggested_answers][]. + SelectedAnswer selected_answer = 2; + } + } + + // This field specifies whether the customer would like to do conversational + // search. If this field is set to true, conversational related extra + // information will be returned from server side, including follow-up + // question, answer options, etc. + bool followup_conversation_requested = 1; + + // This field specifies the conversation id, which maintains the state of + // the conversation between client side and server side. Use the value from + // the previous [ConversationalSearchResult.conversation_id][]. For the + // initial request, this should be empty. + string conversation_id = 2; + + // This field specifies the current user answer during the conversational + // search. This can be either user selected from suggested answers or user + // input plain text. + UserAnswer user_answer = 3; + } + + // This field specifies tile navigation related parameters. + message TileNavigationSpec { + // This field specifies whether the customer would like to request tile + // navigation. + bool tile_navigation_requested = 1; + + // This field specifies the tiles which are already clicked in client side. + // NOTE: This field is not being used for filtering search products. Client + // side should also put all the applied tiles in + // [SearchRequest.filter][google.cloud.retail.v2.SearchRequest.filter]. + repeated Tile applied_tiles = 2; + } + // The search mode of each search request. enum SearchMode { // Default value. In this case both product search and faceted search will @@ -745,6 +845,15 @@ message SearchRequest { // [UserEvent.entity][google.cloud.retail.v2.UserEvent.entity] to get search // results boosted by entity. string entity = 38; + + // Optional. This field specifies all conversational related parameters + // addition to traditional retail search. + ConversationalSearchSpec conversational_search_spec = 40 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This field specifies tile navigation related parameters. + TileNavigationSpec tile_navigation_spec = 41 + [(google.api.field_behavior) = OPTIONAL]; } // Response message for @@ -894,6 +1003,67 @@ message SearchResponse { int64 pinned_result_count = 2; } + // This field specifies all related information that is needed on client + // side for UI rendering of conversational retail search. + message ConversationalSearchResult { + // Suggested answers to the follow-up question. + message SuggestedAnswer { + // Product attribute value, including an attribute key and an + // attribute value. Other types can be added here in the future. + ProductAttributeValue product_attribute_value = 1; + } + + // Additional filter that client side need to apply. + message AdditionalFilter { + // Product attribute value, including an attribute key and an + // attribute value. Other types can be added here in the future. + ProductAttributeValue product_attribute_value = 1; + } + + // Conversation UUID. This field will be stored in client side storage to + // maintain the conversation session with server and will be used for next + // search request's + // [SearchRequest.ConversationalSearchSpec.conversation_id][google.cloud.retail.v2.SearchRequest.ConversationalSearchSpec.conversation_id] + // to restore conversation state in server. + string conversation_id = 1; + + // The current refined query for the conversational search. This field + // will be used in customer UI that the query in the search bar should be + // replaced with the refined query. For example, if + // [SearchRequest.query][google.cloud.retail.v2.SearchRequest.query] is + // `dress` and next + // [SearchRequest.ConversationalSearchSpec.UserAnswer.text_answer][google.cloud.retail.v2.SearchRequest.ConversationalSearchSpec.UserAnswer.text_answer] + // is `red color`, which does not match any product attribute value filters, + // the refined query will be `dress, red color`. + string refined_query = 2; + + // This field is deprecated but will be kept for backward compatibility. + // There is expected to have only one additional filter and the value will + // be the same to the same as field `additional_filter`. + repeated AdditionalFilter additional_filters = 3 [deprecated = true]; + + // The follow-up question. e.g., `What is the color?` + string followup_question = 4; + + // The answer options provided to client for the follow-up question. + repeated SuggestedAnswer suggested_answers = 5; + + // This is the incremental additional filters implied from the current + // user answer. User should add the suggested addition filters to the + // previous + // [SearchRequest.filter][google.cloud.retail.v2.SearchRequest.filter], and + // use the merged filter in the follow up search request. + AdditionalFilter additional_filter = 6; + } + + // This field specifies all related information for tile navigation that will + // be used in client side. + message TileNavigationResult { + // The current tiles that are used for tile navigation, sorted by + // engagement. + repeated Tile tiles = 1; + } + // A list of matched items. The order represents the ranking. repeated SearchResult results = 1; @@ -946,6 +1116,14 @@ message SearchResponse { // Metadata related to A/B testing [Experiment][] associated with this // response. Only exists when an experiment is triggered. repeated ExperimentInfo experiment_info = 17; + + // This field specifies all related information that is needed on client + // side for UI rendering of conversational retail search. + ConversationalSearchResult conversational_search_result = 18; + + // This field specifies all related information for tile navigation that will + // be used in client side. + TileNavigationResult tile_navigation_result = 19; } // Metadata for active A/B testing [Experiment][]. diff --git a/google/cloud/retail/v2alpha/BUILD.bazel b/google/cloud/retail/v2alpha/BUILD.bazel index 335fc5d17..ab2e9978c 100644 --- a/google/cloud/retail/v2alpha/BUILD.bazel +++ b/google/cloud/retail/v2alpha/BUILD.bazel @@ -34,6 +34,8 @@ proto_library( "control.proto", "control_service.proto", "export_config.proto", + "generative_question.proto", + "generative_question_service.proto", "import_config.proto", "merchant_center_account_link.proto", "merchant_center_account_link_service.proto", @@ -135,6 +137,8 @@ java_gapic_test( "com.google.cloud.retail.v2alpha.CompletionServiceClientTest", "com.google.cloud.retail.v2alpha.ControlServiceClientHttpJsonTest", "com.google.cloud.retail.v2alpha.ControlServiceClientTest", + "com.google.cloud.retail.v2alpha.GenerativeQuestionServiceClientHttpJsonTest", + "com.google.cloud.retail.v2alpha.GenerativeQuestionServiceClientTest", "com.google.cloud.retail.v2alpha.MerchantCenterAccountLinkServiceClientHttpJsonTest", "com.google.cloud.retail.v2alpha.MerchantCenterAccountLinkServiceClientTest", "com.google.cloud.retail.v2alpha.ModelServiceClientHttpJsonTest", @@ -406,7 +410,6 @@ load( csharp_proto_library( name = "retail_csharp_proto", - extra_opts = [], deps = [":retail_proto"], ) diff --git a/google/cloud/retail/v2alpha/branch.proto b/google/cloud/retail/v2alpha/branch.proto index 9667eae96..bfc23cb46 100644 --- a/google/cloud/retail/v2alpha/branch.proto +++ b/google/cloud/retail/v2alpha/branch.proto @@ -45,7 +45,8 @@ enum BranchView { BRANCH_VIEW_FULL = 2; } -// A data branch that stores [Product][google.cloud.retail.v2alpha.Product]s. +// A data branch that stores all instances of +// [Product][google.cloud.retail.v2alpha.Product]s. message Branch { option (google.api.resource) = { type: "retail.googleapis.com/Branch" diff --git a/google/cloud/retail/v2alpha/branch_service.proto b/google/cloud/retail/v2alpha/branch_service.proto index 79f95c361..ae014c963 100644 --- a/google/cloud/retail/v2alpha/branch_service.proto +++ b/google/cloud/retail/v2alpha/branch_service.proto @@ -43,8 +43,8 @@ service BranchService { option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; - // Lists all [Branch][google.cloud.retail.v2alpha.Branch]s under the specified - // parent [Catalog][google.cloud.retail.v2alpha.Catalog]. + // Lists all instances of [Branch][google.cloud.retail.v2alpha.Branch] under + // the specified parent [Catalog][google.cloud.retail.v2alpha.Catalog]. rpc ListBranches(ListBranchesRequest) returns (ListBranchesResponse) { option (google.api.http) = { get: "/v2alpha/{parent=projects/*/locations/*/catalogs/*}/branches" diff --git a/google/cloud/retail/v2alpha/common.proto b/google/cloud/retail/v2alpha/common.proto index 1b6da16d9..621c24e9f 100644 --- a/google/cloud/retail/v2alpha/common.proto +++ b/google/cloud/retail/v2alpha/common.proto @@ -339,7 +339,7 @@ message Rule { } // Each instance corresponds to a force return attribute for the given - // condition. There can't be more 3 instances here. + // condition. There can't be more 15 instances here. repeated FacetPositionAdjustment facet_position_adjustments = 1; } diff --git a/google/cloud/retail/v2alpha/completion_service.proto b/google/cloud/retail/v2alpha/completion_service.proto index 13a7ce610..cb97f5b9d 100644 --- a/google/cloud/retail/v2alpha/completion_service.proto +++ b/google/cloud/retail/v2alpha/completion_service.proto @@ -152,9 +152,9 @@ message CompleteQueryRequest { // capped by 20. int32 max_suggestions = 5; - // If true, attribute suggestions are enabled and provided in response. + // If true, attribute suggestions are enabled and provided in the response. // - // This field is only available for "cloud-retail" dataset. + // This field is only available for the "cloud-retail" dataset. bool enable_attribute_suggestions = 9; // The entity for customers who run multiple entities, domains, sites, or @@ -208,8 +208,8 @@ message CompleteQueryResponse { } // Resource that represents attribute results. + // The list of suggestions for the attribute. message AttributeResult { - // The list of suggestions for the attribute. repeated string suggestions = 1; } diff --git a/google/cloud/retail/v2alpha/export_config.proto b/google/cloud/retail/v2alpha/export_config.proto index 05de85521..f94ef76f8 100644 --- a/google/cloud/retail/v2alpha/export_config.proto +++ b/google/cloud/retail/v2alpha/export_config.proto @@ -81,6 +81,118 @@ message ExportErrorsConfig { } } +// Request message for ExportProducts method. +message ExportProductsRequest { + // Required. Resource name of a [Branch][google.cloud.retail.v2alpha.Branch], + // and `default_branch` for branch_id component is supported. For example + // `projects/1234/locations/global/catalogs/default_catalog/branches/default_branch` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Branch" } + ]; + + // Required. The output location of the data. + OutputConfig output_config = 2 [(google.api.field_behavior) = REQUIRED]; + + // A filtering expression to specify restrictions on returned events. + // The expression is a sequence of terms. Each term applies a restriction to + // the returned products. Use this expression to restrict results to a + // specific time range, tag, or stock state or to filter products by product + // type. + // For example, `lastModifiedTime > "2012-04-23T18:25:43.511Z" + // lastModifiedTime<"2012-04-23T18:25:43.511Z" productType=primary` + // + // We expect only four types of fields: + // + // * `lastModifiedTime`: This can be specified twice, once with a + // less than operator and once with a greater than operator. The + // `lastModifiedTime` restriction should result in one, contiguous, + // valid, last-modified, time range. + // + // * `productType`: Supported values are `primary` and `variant`. The + // Boolean operators `OR` and `NOT` are supported if the expression is + // enclosed in parentheses and must be separated from the + // `productType` values by a space. + // + // * `availability`: Supported values are `IN_STOCK`, `OUT_OF_STOCK`, + // `PREORDER`, and `BACKORDER`. Boolean operators `OR` and `NOT` are + // supported if the expression is enclosed in parentheses and must be + // separated from the `availability` values by a space. + // + // * `Tag expressions`: Restricts output to products that match all of the + // specified tags. Boolean operators `OR` and `NOT` are supported if the + // expression is enclosed in parentheses and the operators are separated + // from the tag values by a space. Also supported is '`-"tagA"`', which + // is equivalent to '`NOT "tagA"`'. Tag values must be double-quoted, + // UTF-8 encoded strings and have a size limit of 1,000 characters. + // + // Some examples of valid filters expressions: + // + // * Example 1: `lastModifiedTime > "2012-04-23T18:25:43.511Z" + // lastModifiedTime < "2012-04-23T18:30:43.511Z"` + // * Example 2: `lastModifiedTime > "2012-04-23T18:25:43.511Z" + // productType = "variant"` + // * Example 3: `tag=("Red" OR "Blue") tag="New-Arrival" + // tag=(NOT "promotional") + // productType = "primary" lastModifiedTime < + // "2018-04-23T18:30:43.511Z"` + // * Example 4: `lastModifiedTime > "2012-04-23T18:25:43.511Z"` + // * Example 5: `availability = (IN_STOCK OR BACKORDER)` + string filter = 3; +} + +// Request message for the `ExportUserEvents` method. +message ExportUserEventsRequest { + // Required. Resource name of a + // [Catalog][google.cloud.retail.v2alpha.Catalog]. For example + // `projects/1234/locations/global/catalogs/default_catalog` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; + + // Required. The output location of the data. + OutputConfig output_config = 2 [(google.api.field_behavior) = REQUIRED]; + + // A filtering expression to specify restrictions on returned events. + // The expression is a sequence of terms. Each term applies a restriction to + // the returned user events. Use this expression to restrict results to a + // specific time range or to filter events by eventType. + // For example, `eventTime > "2012-04-23T18:25:43.511Z" + // eventsMissingCatalogItems eventTime<"2012-04-23T18:25:43.511Z" + // eventType=search` + // + // We expect only three types of fields: + // + // * `eventTime`: This can be specified twice, once with a + // less than operator and once with a greater than operator. The + // `eventTime` restriction should result in one, contiguous, valid, + // `eventTime` range. + // + // * `eventType`: Boolean operators `OR` and `NOT` are supported if the + // expression is enclosed in parentheses and the operators are separated + // from the tag values by a space. + // + // * `eventsMissingCatalogItems`: This restricts results + // to events for which catalog items were not found in the catalog. The + // default behavior is to return only those events for which catalog + // items were found. + // + // Some examples of valid filters expressions: + // + // * Example 1: `eventTime > "2012-04-23T18:25:43.511Z" + // eventTime < "2012-04-23T18:30:43.511Z"` + // * Example 2: `eventTime > "2012-04-23T18:25:43.511Z" + // eventType = detail-page-view` + // * Example 3: `eventsMissingCatalogItems + // eventType = (NOT search) eventTime < + // "2018-04-23T18:30:43.511Z"` + // * Example 4: `eventTime > "2012-04-23T18:25:43.511Z"` + // * Example 5: `eventType = (detail-page-view OR search)` + // * Example 6: `eventsMissingCatalogItems` + string filter = 3; +} + // Request message for the `ExportAnalyticsMetrics` method. message ExportAnalyticsMetricsRequest { // Required. Full resource name of the parent catalog. diff --git a/google/cloud/retail/v2alpha/generative_question.proto b/google/cloud/retail/v2alpha/generative_question.proto new file mode 100644 index 000000000..48a748c7f --- /dev/null +++ b/google/cloud/retail/v2alpha/generative_question.proto @@ -0,0 +1,72 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.retail.v2alpha; + +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2Alpha"; +option go_package = "cloud.google.com/go/retail/apiv2alpha/retailpb;retailpb"; +option java_multiple_files = true; +option java_outer_classname = "GenerativeQuestionProto"; +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"; + +// Configuration for overall generative question feature state. +message GenerativeQuestionsFeatureConfig { + // Required. Resource name of the affected catalog. + // Format: projects/{project}/locations/{location}/catalogs/{catalog} + string catalog = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Determines whether questions will be used at serving time. + // Note: This feature cannot be enabled until initial data requirements are + // satisfied. + bool feature_enabled = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Minimum number of products in the response to trigger follow-up + // questions. Value must be 0 or positive. + int32 minimum_products = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Configuration for a single generated question. +message GenerativeQuestionConfig { + // Required. Resource name of the catalog. + // Format: projects/{project}/locations/{location}/catalogs/{catalog} + string catalog = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The facet to which the question is associated. + string facet = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The LLM generated question. + string generated_question = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The question that will be used at serving time. + // Question can have a max length of 300 bytes. + // When not populated, generated_question should be used. + string final_question = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Values that can be used to answer the question. + repeated string example_values = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The ratio of how often a question was asked. + float frequency = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Whether the question is asked at serving time. + bool allowed_in_conversation = 7 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/retail/v2alpha/generative_question_service.proto b/google/cloud/retail/v2alpha/generative_question_service.proto new file mode 100644 index 000000000..90c0e7d42 --- /dev/null +++ b/google/cloud/retail/v2alpha/generative_question_service.proto @@ -0,0 +1,172 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY 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/generative_question.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2Alpha"; +option go_package = "cloud.google.com/go/retail/apiv2alpha/retailpb;retailpb"; +option java_multiple_files = true; +option java_outer_classname = "GenerativeQuestionServiceProto"; +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 managing LLM generated questions in search serving. +service GenerativeQuestionService { + option (google.api.default_host) = "retail.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Manages overal generative question feature state -- enables toggling + // feature on and off. + rpc UpdateGenerativeQuestionsFeatureConfig( + UpdateGenerativeQuestionsFeatureConfigRequest) + returns (GenerativeQuestionsFeatureConfig) { + option (google.api.http) = { + patch: "/v2alpha/{generative_questions_feature_config.catalog=projects/*/locations/*/catalogs/*}/generativeQuestionFeature" + body: "generative_questions_feature_config" + }; + option (google.api.method_signature) = + "generative_questions_feature_config,update_mask"; + } + + // Manages overal generative question feature state -- enables toggling + // feature on and off. + rpc GetGenerativeQuestionsFeatureConfig( + GetGenerativeQuestionsFeatureConfigRequest) + returns (GenerativeQuestionsFeatureConfig) { + option (google.api.http) = { + get: "/v2alpha/{catalog=projects/*/locations/*/catalogs/*}/generativeQuestionFeature" + }; + option (google.api.method_signature) = "catalog"; + } + + // Returns all questions for a given catalog. + rpc ListGenerativeQuestionConfigs(ListGenerativeQuestionConfigsRequest) + returns (ListGenerativeQuestionConfigsResponse) { + option (google.api.http) = { + get: "/v2alpha/{parent=projects/*/locations/*/catalogs/*}/generativeQuestions" + }; + option (google.api.method_signature) = "parent"; + } + + // Allows management of individual questions. + rpc UpdateGenerativeQuestionConfig(UpdateGenerativeQuestionConfigRequest) + returns (GenerativeQuestionConfig) { + option (google.api.http) = { + patch: "/v2alpha/{generative_question_config.catalog=projects/*/locations/*/catalogs/*}/generativeQuestion" + body: "generative_question_config" + }; + option (google.api.method_signature) = + "generative_question_config,update_mask"; + } + + // Allows management of multiple questions. + rpc BatchUpdateGenerativeQuestionConfigs( + BatchUpdateGenerativeQuestionConfigsRequest) + returns (BatchUpdateGenerativeQuestionConfigsResponse) { + option (google.api.http) = { + post: "/v2alpha/{parent=projects/*/locations/*/catalogs/*}/generativeQuestion:batchUpdate" + body: "*" + }; + option (google.api.method_signature) = "parent,requests"; + } +} + +// Request for UpdateGenerativeQuestionsFeatureConfig method. +message UpdateGenerativeQuestionsFeatureConfigRequest { + // Required. The configuration managing the feature state. + GenerativeQuestionsFeatureConfig generative_questions_feature_config = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Indicates which fields in the provided + // [GenerativeQuestionsFeatureConfig][google.cloud.retail.v2alpha.GenerativeQuestionsFeatureConfig] + // to update. If not set or empty, all supported fields are updated. + google.protobuf.FieldMask update_mask = 4 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for GetGenerativeQuestionsFeatureConfig method. +message GetGenerativeQuestionsFeatureConfigRequest { + // Required. Resource name of the parent catalog. + // Format: projects/{project}/locations/{location}/catalogs/{catalog} + string catalog = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; +} + +// Request for ListQuestions method. +message ListGenerativeQuestionConfigsRequest { + // Required. Resource name of the parent catalog. + // Format: projects/{project}/locations/{location}/catalogs/{catalog} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; +} + +// Response for ListQuestions method. +message ListGenerativeQuestionConfigsResponse { + // All the questions for a given catalog. + repeated GenerativeQuestionConfig generative_question_configs = 1; +} + +// Request for UpdateGenerativeQuestionConfig method. +message UpdateGenerativeQuestionConfigRequest { + // Required. The question to update. + GenerativeQuestionConfig generative_question_config = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Indicates which fields in the provided + // [GenerativeQuestionConfig][google.cloud.retail.v2alpha.GenerativeQuestionConfig] + // to update. The following are NOT supported: + // + // * [GenerativeQuestionConfig.frequency][google.cloud.retail.v2alpha.GenerativeQuestionConfig.frequency] + // + // If not set or empty, all supported fields are updated. + google.protobuf.FieldMask update_mask = 4 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for BatchUpdateGenerativeQuestionConfig method. +message BatchUpdateGenerativeQuestionConfigsRequest { + // Optional. Resource name of the parent catalog. + // Format: projects/{project}/locations/{location}/catalogs/{catalog} + string parent = 1 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; + + // Required. The updates question configs. + repeated UpdateGenerativeQuestionConfigRequest requests = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Aggregated response for UpdateGenerativeQuestionConfig method. +message BatchUpdateGenerativeQuestionConfigsResponse { + // Optional. The updates question configs. + repeated GenerativeQuestionConfig generative_question_configs = 1 + [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/retail/v2alpha/model.proto b/google/cloud/retail/v2alpha/model.proto index 1a1791c76..0b9edc9e7 100644 --- a/google/cloud/retail/v2alpha/model.proto +++ b/google/cloud/retail/v2alpha/model.proto @@ -265,11 +265,24 @@ message Model { // Additional model features config. message ModelFeaturesConfig { + // Config that turns on usage of llm embeddings as features to the model. + // Embeddings leverage unstructured text fields like description and title. + message LlmEmbeddingConfig { + // Optional. The LLM embedding version to use. + // Currently only `v0` is supported. If not specified, feature will + // not be turned on. + string llm_embedding_version = 1 [(google.api.field_behavior) = OPTIONAL]; + } + oneof type_dedicated_config { // Additional configs for frequently-bought-together models. FrequentlyBoughtTogetherFeaturesConfig frequently_bought_together_config = 1; } + + // Optional. LLM embedding config to use for this model. + LlmEmbeddingConfig llm_embedding_config = 2 + [(google.api.field_behavior) = OPTIONAL]; } // The serving state of the model. diff --git a/google/cloud/retail/v2alpha/product.proto b/google/cloud/retail/v2alpha/product.proto index 88a391f1f..f3457e6e2 100644 --- a/google/cloud/retail/v2alpha/product.proto +++ b/google/cloud/retail/v2alpha/product.proto @@ -385,6 +385,15 @@ message Product { // [Product][google.cloud.retail.v2alpha.Product]. Default to // [Availability.IN_STOCK][google.cloud.retail.v2alpha.Product.Availability.IN_STOCK]. // + // For primary products with variants set the availability of the primary as + // [Availability.OUT_OF_STOCK][google.cloud.retail.v2alpha.Product.Availability.OUT_OF_STOCK] + // and set the true availability at the variant level. This way the primary + // product will be considered "in stock" as long as it has at least one + // variant in stock. + // + // For primary products with no variants set the true availability at the + // primary level. + // // Corresponding properties: Google Merchant Center property // [availability](https://support.google.com/merchants/answer/6324448). // Schema.org property [Offer.availability](https://schema.org/availability). @@ -560,8 +569,6 @@ message Product { // * [name][google.cloud.retail.v2alpha.Product.name] // * [color_info][google.cloud.retail.v2alpha.Product.color_info] // - // 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] can increase diff --git a/google/cloud/retail/v2alpha/product_service.proto b/google/cloud/retail/v2alpha/product_service.proto index 72c1edecf..ce6131ec9 100644 --- a/google/cloud/retail/v2alpha/product_service.proto +++ b/google/cloud/retail/v2alpha/product_service.proto @@ -21,6 +21,7 @@ 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"; @@ -135,6 +136,19 @@ service ProductService { }; } + // Exports multiple [Product][google.cloud.retail.v2alpha.Product]s. + rpc ExportProducts(ExportProductsRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2alpha/{parent=projects/*/locations/*/catalogs/*/branches/*}/products:export" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.retail.v2alpha.ExportProductsResponse" + metadata_type: "google.cloud.retail.v2alpha.ExportMetadata" + }; + } + // Updates inventory information for a // [Product][google.cloud.retail.v2alpha.Product] while respecting the last // update timestamps of each inventory field. diff --git a/google/cloud/retail/v2alpha/project.proto b/google/cloud/retail/v2alpha/project.proto index 6b91fce27..2a8909709 100644 --- a/google/cloud/retail/v2alpha/project.proto +++ b/google/cloud/retail/v2alpha/project.proto @@ -163,8 +163,10 @@ message AlertConfig { DECLINED = 2; } - // The feature that provides alerting capability. Supported value is - // only `search-data-quality` for now. + // The feature that provides alerting capability. + // Supported value: + // - `search-data-quality` for retail search customers. + // - `conv-data-quality` for retail conversation customers. string alert_group = 1; // The enrollment status of a customer. diff --git a/google/cloud/retail/v2alpha/retail_v2alpha.yaml b/google/cloud/retail/v2alpha/retail_v2alpha.yaml index dcd7c23cc..c85b1079f 100644 --- a/google/cloud/retail/v2alpha/retail_v2alpha.yaml +++ b/google/cloud/retail/v2alpha/retail_v2alpha.yaml @@ -10,6 +10,7 @@ apis: - name: google.cloud.retail.v2alpha.CatalogService - name: google.cloud.retail.v2alpha.CompletionService - name: google.cloud.retail.v2alpha.ControlService +- name: google.cloud.retail.v2alpha.GenerativeQuestionService - name: google.cloud.retail.v2alpha.MerchantCenterAccountLinkService - name: google.cloud.retail.v2alpha.ModelService - name: google.cloud.retail.v2alpha.PredictionService @@ -123,6 +124,10 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.retail.v2alpha.GenerativeQuestionService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.retail.v2alpha.MerchantCenterAccountLinkService.*' oauth: canonical_scopes: |- diff --git a/google/cloud/retail/v2alpha/search_service.proto b/google/cloud/retail/v2alpha/search_service.proto index bced414d8..2b871274c 100644 --- a/google/cloud/retail/v2alpha/search_service.proto +++ b/google/cloud/retail/v2alpha/search_service.proto @@ -63,6 +63,43 @@ service SearchService { } } +// Product attribute which structured by an attribute name and value. This +// structure is used in conversational search filters and answers. For example, +// if we have `name=color` and `value=red`, this means that the color is `red`. +message ProductAttributeValue { + // The attribute name. + string name = 1; + + // The attribute value. + string value = 2; +} + +// Product attribute name and numeric interval. +message ProductAttributeInterval { + // The attribute name (e.g. "length") + string name = 1; + + // The numeric interval (e.g. [10, 20)) + Interval interval = 2; +} + +// This field specifies the tile information including an attribute key, +// attribute value. More fields will be added in the future, eg: product id +// or product counts, etc. +message Tile { + // The attribute key and value for the tile. + oneof product_attribute { + // The product attribute key-value. + ProductAttributeValue product_attribute_value = 1; + + // The product attribute key-numeric interval. + ProductAttributeInterval product_attribute_interval = 2; + } + + // The representative product id for this tile. + string representative_product_id = 3; +} + // Request message for // [SearchService.Search][google.cloud.retail.v2alpha.SearchService.Search] // method. @@ -448,6 +485,69 @@ message SearchRequest { Mode mode = 1; } + // This field specifies all conversational related parameters addition to + // traditional retail search. + message ConversationalSearchSpec { + // This field specifies the current user answer during the conversational + // search. This can be either user selected from suggested answers or user + // input plain text. + message UserAnswer { + // This field specifies the selected answers during the conversational + // search. + message SelectedAnswer { + // This field is deprecated and should not be set. + repeated ProductAttributeValue product_attribute_values = 1 + [deprecated = true]; + + // This field specifies the selected answer which is a attribute + // key-value. + ProductAttributeValue product_attribute_value = 2; + } + + // This field specifies the type of user answer. + oneof type { + // This field specifies the incremental input text from the user during + // the conversational search. + string text_answer = 1; + + // This field specifies the selected attributes during the + // conversational search. This should be a subset of + // [ConversationalSearchResult.suggested_answers][]. + SelectedAnswer selected_answer = 2; + } + } + + // This field specifies whether the customer would like to do conversational + // search. If this field is set to true, conversational related extra + // information will be returned from server side, including follow-up + // question, answer options, etc. + bool followup_conversation_requested = 1; + + // This field specifies the conversation id, which maintains the state of + // the conversation between client side and server side. Use the value from + // the previous [ConversationalSearchResult.conversation_id][]. For the + // initial request, this should be empty. + string conversation_id = 2; + + // This field specifies the current user answer during the conversational + // search. This can be either user selected from suggested answers or user + // input plain text. + UserAnswer user_answer = 3; + } + + // This field specifies tile navigation related parameters. + message TileNavigationSpec { + // This field specifies whether the customer would like to request tile + // navigation. + bool tile_navigation_requested = 1; + + // This field specifies the tiles which are already clicked in client side. + // NOTE: This field is not being used for filtering search products. Client + // side should also put all the applied tiles in + // [SearchRequest.filter][google.cloud.retail.v2alpha.SearchRequest.filter]. + repeated Tile applied_tiles = 2; + } + // 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. @@ -788,6 +888,15 @@ message SearchRequest { // [UserEvent.entity][google.cloud.retail.v2alpha.UserEvent.entity] to get // search results boosted by entity. string entity = 38; + + // Optional. This field specifies all conversational related parameters + // addition to traditional retail search. + ConversationalSearchSpec conversational_search_spec = 40 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This field specifies tile navigation related parameters. + TileNavigationSpec tile_navigation_spec = 41 + [(google.api.field_behavior) = OPTIONAL]; } // Response message for @@ -939,6 +1048,67 @@ message SearchResponse { int64 pinned_result_count = 2; } + // This field specifies all related information that is needed on client + // side for UI rendering of conversational retail search. + message ConversationalSearchResult { + // Suggested answers to the follow-up question. + message SuggestedAnswer { + // Product attribute value, including an attribute key and an + // attribute value. Other types can be added here in the future. + ProductAttributeValue product_attribute_value = 1; + } + + // Additional filter that client side need to apply. + message AdditionalFilter { + // Product attribute value, including an attribute key and an + // attribute value. Other types can be added here in the future. + ProductAttributeValue product_attribute_value = 1; + } + + // Conversation UUID. This field will be stored in client side storage to + // maintain the conversation session with server and will be used for next + // search request's + // [SearchRequest.ConversationalSearchSpec.conversation_id][google.cloud.retail.v2alpha.SearchRequest.ConversationalSearchSpec.conversation_id] + // to restore conversation state in server. + string conversation_id = 1; + + // The current refined query for the conversational search. This field + // will be used in customer UI that the query in the search bar should be + // replaced with the refined query. For example, if + // [SearchRequest.query][google.cloud.retail.v2alpha.SearchRequest.query] is + // `dress` and next + // [SearchRequest.ConversationalSearchSpec.UserAnswer.text_answer][google.cloud.retail.v2alpha.SearchRequest.ConversationalSearchSpec.UserAnswer.text_answer] + // is `red color`, which does not match any product attribute value filters, + // the refined query will be `dress, red color`. + string refined_query = 2; + + // This field is deprecated but will be kept for backward compatibility. + // There is expected to have only one additional filter and the value will + // be the same to the same as field `additional_filter`. + repeated AdditionalFilter additional_filters = 3 [deprecated = true]; + + // The follow-up question. e.g., `What is the color?` + string followup_question = 4; + + // The answer options provided to client for the follow-up question. + repeated SuggestedAnswer suggested_answers = 5; + + // This is the incremental additional filters implied from the current + // user answer. User should add the suggested addition filters to the + // previous + // [SearchRequest.filter][google.cloud.retail.v2alpha.SearchRequest.filter], + // and use the merged filter in the follow up search request. + AdditionalFilter additional_filter = 6; + } + + // This field specifies all related information for tile navigation that will + // be used in client side. + message TileNavigationResult { + // The current tiles that are used for tile navigation, sorted by + // engagement. + repeated Tile tiles = 1; + } + // A list of matched items. The order represents the ranking. repeated SearchResult results = 1; @@ -992,6 +1162,14 @@ message SearchResponse { // [Experiment][google.cloud.retail.v2alpha.Experiment] associated with this // response. Only exists when an experiment is triggered. repeated ExperimentInfo experiment_info = 17; + + // This field specifies all related information that is needed on client + // side for UI rendering of conversational retail search. + ConversationalSearchResult conversational_search_result = 18; + + // This field specifies all related information for tile navigation that will + // be used in client side. + TileNavigationResult tile_navigation_result = 19; } // Metadata for active A/B testing diff --git a/google/cloud/retail/v2alpha/user_event_service.proto b/google/cloud/retail/v2alpha/user_event_service.proto index 8aeebc08a..f43639382 100644 --- a/google/cloud/retail/v2alpha/user_event_service.proto +++ b/google/cloud/retail/v2alpha/user_event_service.proto @@ -21,6 +21,7 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/httpbody.proto"; import "google/api/resource.proto"; +import "google/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,6 +96,22 @@ service UserEventService { }; } + // Exports user events. + // + // `Operation.response` is of type `ExportResponse`. + // `Operation.metadata` is of type `ExportMetadata`. + rpc ExportUserEvents(ExportUserEventsRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2alpha/{parent=projects/*/locations/*/catalogs/*}/userEvents:export" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.retail.v2alpha.ExportUserEventsResponse" + metadata_type: "google.cloud.retail.v2alpha.ExportMetadata" + }; + } + // 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 diff --git a/google/cloud/retail/v2beta/BUILD.bazel b/google/cloud/retail/v2beta/BUILD.bazel index b5245eeac..15902d59a 100644 --- a/google/cloud/retail/v2beta/BUILD.bazel +++ b/google/cloud/retail/v2beta/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "retail_proto", @@ -29,12 +32,16 @@ proto_library( "control.proto", "control_service.proto", "export_config.proto", + "generative_question.proto", + "generative_question_service.proto", "import_config.proto", "model.proto", "model_service.proto", "prediction_service.proto", "product.proto", "product_service.proto", + "project.proto", + "project_service.proto", "promotion.proto", "purge_config.proto", "search_service.proto", @@ -66,12 +73,14 @@ proto_library_with_info( deps = [ ":retail_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", ], ) ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -101,11 +110,13 @@ java_gapic_library( service_yaml = "retail_v2beta.yaml", test_deps = [ ":retail_java_grpc", + "//google/cloud/location:location_java_grpc", ], transport = "grpc+rest", deps = [ ":retail_java_proto", "//google/api:api_java_proto", + "//google/cloud/location:location_java_proto", ], ) @@ -120,12 +131,16 @@ java_gapic_test( "com.google.cloud.retail.v2beta.CompletionServiceClientTest", "com.google.cloud.retail.v2beta.ControlServiceClientHttpJsonTest", "com.google.cloud.retail.v2beta.ControlServiceClientTest", + "com.google.cloud.retail.v2beta.GenerativeQuestionServiceClientHttpJsonTest", + "com.google.cloud.retail.v2beta.GenerativeQuestionServiceClientTest", "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.ProjectServiceClientHttpJsonTest", + "com.google.cloud.retail.v2beta.ProjectServiceClientTest", "com.google.cloud.retail.v2beta.SearchServiceClientHttpJsonTest", "com.google.cloud.retail.v2beta.SearchServiceClientTest", "com.google.cloud.retail.v2beta.ServingConfigServiceClientHttpJsonTest", @@ -152,6 +167,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -186,6 +202,7 @@ go_gapic_library( deps = [ ":retail_go_proto", "//google/api:httpbody_go_proto", + "//google/cloud/location:location_go_proto", "//google/longrunning:longrunning_go_proto", "@com_google_cloud_go_longrunning//:go_default_library", "@com_google_cloud_go_longrunning//autogen:go_default_library", @@ -209,6 +226,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -223,6 +241,8 @@ py_gapic_library( rest_numeric_enums = True, service_yaml = "retail_v2beta.yaml", transport = "grpc+rest", + deps = [ + ], ) py_test( @@ -246,6 +266,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -262,10 +283,13 @@ php_gapic_library( name = "retail_php_gapic", srcs = [":retail_proto_with_info"], grpc_service_config = "retail_grpc_service_config.json", + migration_mode = "PRE_MIGRATION_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "retail_v2beta.yaml", transport = "grpc+rest", - deps = [":retail_php_proto"], + deps = [ + ":retail_php_proto", + ], ) # Open Source Packages @@ -280,6 +304,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -311,6 +336,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -365,6 +391,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -375,6 +402,7 @@ load( csharp_proto_library( name = "retail_csharp_proto", + extra_opts = [], deps = [":retail_proto"], ) @@ -411,6 +439,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/google/cloud/retail/v2beta/common.proto b/google/cloud/retail/v2beta/common.proto index b0a522235..52f4c5c78 100644 --- a/google/cloud/retail/v2beta/common.proto +++ b/google/cloud/retail/v2beta/common.proto @@ -339,7 +339,7 @@ message Rule { } // Each instance corresponds to a force return attribute for the given - // condition. There can't be more 3 instances here. + // condition. There can't be more 15 instances here. repeated FacetPositionAdjustment facet_position_adjustments = 1; } diff --git a/google/cloud/retail/v2beta/completion_service.proto b/google/cloud/retail/v2beta/completion_service.proto index ebf7fdb25..00792b911 100644 --- a/google/cloud/retail/v2beta/completion_service.proto +++ b/google/cloud/retail/v2beta/completion_service.proto @@ -151,9 +151,9 @@ message CompleteQueryRequest { // capped by 20. int32 max_suggestions = 5; - // If true, attribute suggestions are enabled and provided in response. + // If true, attribute suggestions are enabled and provided in the response. // - // This field is only available for "cloud-retail" dataset. + // This field is only available for the "cloud-retail" dataset. bool enable_attribute_suggestions = 9; // The entity for customers who run multiple entities, domains, sites, or @@ -192,6 +192,12 @@ message CompleteQueryResponse { string recent_search = 1; } + // Resource that represents attribute results. + // The list of suggestions for the attribute. + message AttributeResult { + repeated string suggestions = 1; + } + // Results of the matching suggestions. The result list is ordered and the // first result is top suggestion. repeated CompletionResult completion_results = 1; @@ -224,4 +230,14 @@ message CompleteQueryResponse { // Recent searches are deduplicated. More recent searches will be reserved // when duplication happens. repeated RecentSearchResult recent_search_results = 3 [deprecated = true]; + + // A map of matched attribute suggestions. This field is only available for + // "cloud-retail" dataset. + // + // Current supported keys: + // + // * `brands` + // + // * `categories` + map<string, AttributeResult> attribute_results = 4; } diff --git a/google/cloud/retail/v2beta/export_config.proto b/google/cloud/retail/v2beta/export_config.proto index 9a90d35ef..aa6df945b 100644 --- a/google/cloud/retail/v2beta/export_config.proto +++ b/google/cloud/retail/v2beta/export_config.proto @@ -81,6 +81,117 @@ message ExportErrorsConfig { } } +// Request message for ExportProducts method. +message ExportProductsRequest { + // Required. Resource name of a [Branch][google.cloud.retail.v2beta.Branch], + // and `default_branch` for branch_id component is supported. For example + // `projects/1234/locations/global/catalogs/default_catalog/branches/default_branch` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Branch" } + ]; + + // Required. The output location of the data. + OutputConfig output_config = 2 [(google.api.field_behavior) = REQUIRED]; + + // A filtering expression to specify restrictions on returned events. + // The expression is a sequence of terms. Each term applies a restriction to + // the returned products. Use this expression to restrict results to a + // specific time range, tag, or stock state or to filter products by product + // type. + // For example, `lastModifiedTime > "2012-04-23T18:25:43.511Z" + // lastModifiedTime<"2012-04-23T18:25:43.511Z" productType=primary` + // + // We expect only four types of fields: + // + // * `lastModifiedTime`: This can be specified twice, once with a + // less than operator and once with a greater than operator. The + // `lastModifiedTime` restriction should result in one, contiguous, + // valid, last-modified, time range. + // + // * `productType`: Supported values are `primary` and `variant`. The + // Boolean operators `OR` and `NOT` are supported if the expression is + // enclosed in parentheses and must be separated from the + // `productType` values by a space. + // + // * `availability`: Supported values are `IN_STOCK`, `OUT_OF_STOCK`, + // `PREORDER`, and `BACKORDER`. Boolean operators `OR` and `NOT` are + // supported if the expression is enclosed in parentheses and must be + // separated from the `availability` values by a space. + // + // * `Tag expressions`: Restricts output to products that match all of the + // specified tags. Boolean operators `OR` and `NOT` are supported if the + // expression is enclosed in parentheses and the operators are separated + // from the tag values by a space. Also supported is '`-"tagA"`', which + // is equivalent to '`NOT "tagA"`'. Tag values must be double-quoted, + // UTF-8 encoded strings and have a size limit of 1,000 characters. + // + // Some examples of valid filters expressions: + // + // * Example 1: `lastModifiedTime > "2012-04-23T18:25:43.511Z" + // lastModifiedTime < "2012-04-23T18:30:43.511Z"` + // * Example 2: `lastModifiedTime > "2012-04-23T18:25:43.511Z" + // productType = "variant"` + // * Example 3: `tag=("Red" OR "Blue") tag="New-Arrival" + // tag=(NOT "promotional") + // productType = "primary" lastModifiedTime < + // "2018-04-23T18:30:43.511Z"` + // * Example 4: `lastModifiedTime > "2012-04-23T18:25:43.511Z"` + // * Example 5: `availability = (IN_STOCK OR BACKORDER)` + string filter = 3; +} + +// Request message for the `ExportUserEvents` method. +message ExportUserEventsRequest { + // Required. Resource name of a [Catalog][google.cloud.retail.v2beta.Catalog]. + // For example `projects/1234/locations/global/catalogs/default_catalog` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; + + // Required. The output location of the data. + OutputConfig output_config = 2 [(google.api.field_behavior) = REQUIRED]; + + // A filtering expression to specify restrictions on returned events. + // The expression is a sequence of terms. Each term applies a restriction to + // the returned user events. Use this expression to restrict results to a + // specific time range or to filter events by eventType. + // For example, `eventTime > "2012-04-23T18:25:43.511Z" + // eventsMissingCatalogItems eventTime<"2012-04-23T18:25:43.511Z" + // eventType=search` + // + // We expect only three types of fields: + // + // * `eventTime`: This can be specified twice, once with a + // less than operator and once with a greater than operator. The + // `eventTime` restriction should result in one, contiguous, valid, + // `eventTime` range. + // + // * `eventType`: Boolean operators `OR` and `NOT` are supported if the + // expression is enclosed in parentheses and the operators are separated + // from the tag values by a space. + // + // * `eventsMissingCatalogItems`: This restricts results + // to events for which catalog items were not found in the catalog. The + // default behavior is to return only those events for which catalog + // items were found. + // + // Some examples of valid filters expressions: + // + // * Example 1: `eventTime > "2012-04-23T18:25:43.511Z" + // eventTime < "2012-04-23T18:30:43.511Z"` + // * Example 2: `eventTime > "2012-04-23T18:25:43.511Z" + // eventType = detail-page-view` + // * Example 3: `eventsMissingCatalogItems + // eventType = (NOT search) eventTime < + // "2018-04-23T18:30:43.511Z"` + // * Example 4: `eventTime > "2012-04-23T18:25:43.511Z"` + // * Example 5: `eventType = (detail-page-view OR search)` + // * Example 6: `eventsMissingCatalogItems` + string filter = 3; +} + // Request message for the `ExportAnalyticsMetrics` method. message ExportAnalyticsMetricsRequest { // Required. Full resource name of the parent catalog. diff --git a/google/cloud/retail/v2beta/generative_question.proto b/google/cloud/retail/v2beta/generative_question.proto new file mode 100644 index 000000000..f4c46d218 --- /dev/null +++ b/google/cloud/retail/v2beta/generative_question.proto @@ -0,0 +1,72 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.retail.v2beta; + +import "google/api/field_behavior.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2Beta"; +option go_package = "cloud.google.com/go/retail/apiv2beta/retailpb;retailpb"; +option java_multiple_files = true; +option java_outer_classname = "GenerativeQuestionProto"; +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"; + +// Configuration for overall generative question feature state. +message GenerativeQuestionsFeatureConfig { + // Required. Resource name of the affected catalog. + // Format: projects/{project}/locations/{location}/catalogs/{catalog} + string catalog = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Determines whether questions will be used at serving time. + // Note: This feature cannot be enabled until initial data requirements are + // satisfied. + bool feature_enabled = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Minimum number of products in the response to trigger follow-up + // questions. Value must be 0 or positive. + int32 minimum_products = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Configuration for a single generated question. +message GenerativeQuestionConfig { + // Required. Resource name of the catalog. + // Format: projects/{project}/locations/{location}/catalogs/{catalog} + string catalog = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The facet to which the question is associated. + string facet = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The LLM generated question. + string generated_question = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The question that will be used at serving time. + // Question can have a max length of 300 bytes. + // When not populated, generated_question should be used. + string final_question = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Values that can be used to answer the question. + repeated string example_values = 5 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The ratio of how often a question was asked. + float frequency = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Whether the question is asked at serving time. + bool allowed_in_conversation = 7 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/retail/v2beta/generative_question_service.proto b/google/cloud/retail/v2beta/generative_question_service.proto new file mode 100644 index 000000000..92289f716 --- /dev/null +++ b/google/cloud/retail/v2beta/generative_question_service.proto @@ -0,0 +1,172 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY 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/generative_question.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2Beta"; +option go_package = "cloud.google.com/go/retail/apiv2beta/retailpb;retailpb"; +option java_multiple_files = true; +option java_outer_classname = "GenerativeQuestionServiceProto"; +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 managing LLM generated questions in search serving. +service GenerativeQuestionService { + option (google.api.default_host) = "retail.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Manages overal generative question feature state -- enables toggling + // feature on and off. + rpc UpdateGenerativeQuestionsFeatureConfig( + UpdateGenerativeQuestionsFeatureConfigRequest) + returns (GenerativeQuestionsFeatureConfig) { + option (google.api.http) = { + patch: "/v2beta/{generative_questions_feature_config.catalog=projects/*/locations/*/catalogs/*}/generativeQuestionFeature" + body: "generative_questions_feature_config" + }; + option (google.api.method_signature) = + "generative_questions_feature_config,update_mask"; + } + + // Manages overal generative question feature state -- enables toggling + // feature on and off. + rpc GetGenerativeQuestionsFeatureConfig( + GetGenerativeQuestionsFeatureConfigRequest) + returns (GenerativeQuestionsFeatureConfig) { + option (google.api.http) = { + get: "/v2beta/{catalog=projects/*/locations/*/catalogs/*}/generativeQuestionFeature" + }; + option (google.api.method_signature) = "catalog"; + } + + // Returns all questions for a given catalog. + rpc ListGenerativeQuestionConfigs(ListGenerativeQuestionConfigsRequest) + returns (ListGenerativeQuestionConfigsResponse) { + option (google.api.http) = { + get: "/v2beta/{parent=projects/*/locations/*/catalogs/*}/generativeQuestions" + }; + option (google.api.method_signature) = "parent"; + } + + // Allows management of individual questions. + rpc UpdateGenerativeQuestionConfig(UpdateGenerativeQuestionConfigRequest) + returns (GenerativeQuestionConfig) { + option (google.api.http) = { + patch: "/v2beta/{generative_question_config.catalog=projects/*/locations/*/catalogs/*}/generativeQuestion" + body: "generative_question_config" + }; + option (google.api.method_signature) = + "generative_question_config,update_mask"; + } + + // Allows management of multiple questions. + rpc BatchUpdateGenerativeQuestionConfigs( + BatchUpdateGenerativeQuestionConfigsRequest) + returns (BatchUpdateGenerativeQuestionConfigsResponse) { + option (google.api.http) = { + post: "/v2beta/{parent=projects/*/locations/*/catalogs/*}/generativeQuestion:batchUpdate" + body: "*" + }; + option (google.api.method_signature) = "parent,requests"; + } +} + +// Request for UpdateGenerativeQuestionsFeatureConfig method. +message UpdateGenerativeQuestionsFeatureConfigRequest { + // Required. The configuration managing the feature state. + GenerativeQuestionsFeatureConfig generative_questions_feature_config = 2 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Indicates which fields in the provided + // [GenerativeQuestionsFeatureConfig][google.cloud.retail.v2beta.GenerativeQuestionsFeatureConfig] + // to update. If not set or empty, all supported fields are updated. + google.protobuf.FieldMask update_mask = 4 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for GetGenerativeQuestionsFeatureConfig method. +message GetGenerativeQuestionsFeatureConfigRequest { + // Required. Resource name of the parent catalog. + // Format: projects/{project}/locations/{location}/catalogs/{catalog} + string catalog = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; +} + +// Request for ListQuestions method. +message ListGenerativeQuestionConfigsRequest { + // Required. Resource name of the parent catalog. + // Format: projects/{project}/locations/{location}/catalogs/{catalog} + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; +} + +// Response for ListQuestions method. +message ListGenerativeQuestionConfigsResponse { + // All the questions for a given catalog. + repeated GenerativeQuestionConfig generative_question_configs = 1; +} + +// Request for UpdateGenerativeQuestionConfig method. +message UpdateGenerativeQuestionConfigRequest { + // Required. The question to update. + GenerativeQuestionConfig generative_question_config = 3 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Indicates which fields in the provided + // [GenerativeQuestionConfig][google.cloud.retail.v2beta.GenerativeQuestionConfig] + // to update. The following are NOT supported: + // + // * [GenerativeQuestionConfig.frequency][google.cloud.retail.v2beta.GenerativeQuestionConfig.frequency] + // + // If not set or empty, all supported fields are updated. + google.protobuf.FieldMask update_mask = 4 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Request for BatchUpdateGenerativeQuestionConfig method. +message BatchUpdateGenerativeQuestionConfigsRequest { + // Optional. Resource name of the parent catalog. + // Format: projects/{project}/locations/{location}/catalogs/{catalog} + string parent = 1 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { type: "retail.googleapis.com/Catalog" } + ]; + + // Required. The updates question configs. + repeated UpdateGenerativeQuestionConfigRequest requests = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Aggregated response for UpdateGenerativeQuestionConfig method. +message BatchUpdateGenerativeQuestionConfigsResponse { + // Optional. The updates question configs. + repeated GenerativeQuestionConfig generative_question_configs = 1 + [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/retail/v2beta/product.proto b/google/cloud/retail/v2beta/product.proto index 31e076625..a643085e1 100644 --- a/google/cloud/retail/v2beta/product.proto +++ b/google/cloud/retail/v2beta/product.proto @@ -388,6 +388,15 @@ message Product { // [Product][google.cloud.retail.v2beta.Product]. Default to // [Availability.IN_STOCK][google.cloud.retail.v2beta.Product.Availability.IN_STOCK]. // + // For primary products with variants set the availability of the primary as + // [Availability.OUT_OF_STOCK][google.cloud.retail.v2beta.Product.Availability.OUT_OF_STOCK] + // and set the true availability at the variant level. This way the primary + // product will be considered "in stock" as long as it has at least one + // variant in stock. + // + // For primary products with no variants set the true availability at the + // primary level. + // // Corresponding properties: Google Merchant Center property // [availability](https://support.google.com/merchants/answer/6324448). // Schema.org property [Offer.availability](https://schema.org/availability). @@ -563,8 +572,6 @@ message Product { // * [name][google.cloud.retail.v2beta.Product.name] // * [color_info][google.cloud.retail.v2beta.Product.color_info] // - // 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] can increase diff --git a/google/cloud/retail/v2beta/product_service.proto b/google/cloud/retail/v2beta/product_service.proto index 77b59b5d4..2bca60e39 100644 --- a/google/cloud/retail/v2beta/product_service.proto +++ b/google/cloud/retail/v2beta/product_service.proto @@ -21,6 +21,7 @@ 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"; @@ -135,6 +136,19 @@ service ProductService { }; } + // Exports multiple [Product][google.cloud.retail.v2beta.Product]s. + rpc ExportProducts(ExportProductsRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2beta/{parent=projects/*/locations/*/catalogs/*/branches/*}/products:export" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.retail.v2beta.ExportProductsResponse" + metadata_type: "google.cloud.retail.v2beta.ExportMetadata" + }; + } + // Updates inventory information for a // [Product][google.cloud.retail.v2beta.Product] while respecting the last // update timestamps of each inventory field. diff --git a/google/cloud/retail/v2beta/project.proto b/google/cloud/retail/v2beta/project.proto new file mode 100644 index 000000000..6b181c95c --- /dev/null +++ b/google/cloud/retail/v2beta/project.proto @@ -0,0 +1,83 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.retail.v2beta; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2Beta"; +option go_package = "cloud.google.com/go/retail/apiv2beta/retailpb;retailpb"; +option java_multiple_files = true; +option java_outer_classname = "ProjectProto"; +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"; + +// Project level alert config. +message AlertConfig { + option (google.api.resource) = { + type: "retail.googleapis.com/AlertConfig" + pattern: "projects/{project}/alertConfig" + }; + + // Alert policy for a customer. + message AlertPolicy { + // Recipient contact information. + message Recipient { + // Email address of the recipient. + string email_address = 1; + } + + // The enrollment status enum for alert policy. + enum EnrollStatus { + // Default value. Used for customers who have not responded to the + // alert policy. + ENROLL_STATUS_UNSPECIFIED = 0; + + // Customer is enrolled in this policy. + ENROLLED = 1; + + // Customer declined this policy. + DECLINED = 2; + } + + // The feature that provides alerting capability. + // Supported value: + // - `search-data-quality` for retail search customers. + // - `conv-data-quality` for retail conversation customers. + string alert_group = 1; + + // The enrollment status of a customer. + EnrollStatus enroll_status = 2; + + // Recipients for the alert policy. + // One alert policy should not exceed 20 recipients. + repeated Recipient recipients = 3; + } + + // Required. Immutable. The name of the AlertConfig singleton resource. + // Format: projects/*/alertConfig + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Alert policies for a customer. + // They must be unique by [AlertPolicy.alert_group] + repeated AlertPolicy alert_policies = 2; +} diff --git a/google/cloud/retail/v2beta/project_service.proto b/google/cloud/retail/v2beta/project_service.proto new file mode 100644 index 000000000..b602b5634 --- /dev/null +++ b/google/cloud/retail/v2beta/project_service.proto @@ -0,0 +1,93 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.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/project.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.Retail.V2Beta"; +option go_package = "cloud.google.com/go/retail/apiv2beta/retailpb;retailpb"; +option java_multiple_files = true; +option java_outer_classname = "ProjectServiceProto"; +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 settings at Project level. +service ProjectService { + option (google.api.default_host) = "retail.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Get the [AlertConfig][google.cloud.retail.v2beta.AlertConfig] of the + // requested project. + rpc GetAlertConfig(GetAlertConfigRequest) returns (AlertConfig) { + option (google.api.http) = { + get: "/v2beta/{name=projects/*/alertConfig}" + }; + option (google.api.method_signature) = "name"; + } + + // Update the alert config of the requested project. + rpc UpdateAlertConfig(UpdateAlertConfigRequest) returns (AlertConfig) { + option (google.api.http) = { + patch: "/v2beta/{alert_config.name=projects/*/alertConfig}" + body: "alert_config" + }; + option (google.api.method_signature) = "alert_config,update_mask"; + } +} + +// Request for +// [ProjectService.GetAlertConfig][google.cloud.retail.v2beta.ProjectService.GetAlertConfig] +// method. +message GetAlertConfigRequest { + // Required. Full AlertConfig resource name. Format: + // projects/{project_number}/alertConfig + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "retail.googleapis.com/AlertConfig" + } + ]; +} + +// Request for +// [ProjectService.UpdateAlertConfig][google.cloud.retail.v2beta.ProjectService.UpdateAlertConfig] +// method. +message UpdateAlertConfigRequest { + // Required. The [AlertConfig][google.cloud.retail.v2beta.AlertConfig] to + // update. + // + // If the caller does not have permission to update the + // [AlertConfig][google.cloud.retail.v2beta.AlertConfig], then a + // PERMISSION_DENIED error is returned. + // + // If the [AlertConfig][google.cloud.retail.v2beta.AlertConfig] to update does + // not exist, a NOT_FOUND error is returned. + AlertConfig alert_config = 1 [(google.api.field_behavior) = REQUIRED]; + + // Indicates which fields in the provided + // [AlertConfig][google.cloud.retail.v2beta.AlertConfig] to update. If not + // set, all supported fields are updated. + google.protobuf.FieldMask update_mask = 2; +} diff --git a/google/cloud/retail/v2beta/retail_v2beta.yaml b/google/cloud/retail/v2beta/retail_v2beta.yaml index 29e2cfd96..90e6f0172 100644 --- a/google/cloud/retail/v2beta/retail_v2beta.yaml +++ b/google/cloud/retail/v2beta/retail_v2beta.yaml @@ -9,9 +9,11 @@ apis: - name: google.cloud.retail.v2beta.CatalogService - name: google.cloud.retail.v2beta.CompletionService - name: google.cloud.retail.v2beta.ControlService +- name: google.cloud.retail.v2beta.GenerativeQuestionService - name: google.cloud.retail.v2beta.ModelService - name: google.cloud.retail.v2beta.PredictionService - name: google.cloud.retail.v2beta.ProductService +- name: google.cloud.retail.v2beta.ProjectService - name: google.cloud.retail.v2beta.SearchService - name: google.cloud.retail.v2beta.ServingConfigService - name: google.cloud.retail.v2beta.UserEventService @@ -107,6 +109,10 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: 'google.cloud.retail.v2beta.GenerativeQuestionService.*' + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.retail.v2beta.ModelService.*' oauth: canonical_scopes: |- @@ -119,6 +125,14 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.retail.v2beta.ProjectService.GetAlertConfig + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.retail.v2beta.ProjectService.UpdateAlertConfig + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: google.cloud.retail.v2beta.SearchService.Search oauth: canonical_scopes: |- diff --git a/google/cloud/retail/v2beta/search_service.proto b/google/cloud/retail/v2beta/search_service.proto index 5768df56d..6e3136a24 100644 --- a/google/cloud/retail/v2beta/search_service.proto +++ b/google/cloud/retail/v2beta/search_service.proto @@ -63,6 +63,43 @@ service SearchService { } } +// Product attribute which structured by an attribute name and value. This +// structure is used in conversational search filters and answers. For example, +// if we have `name=color` and `value=red`, this means that the color is `red`. +message ProductAttributeValue { + // The attribute name. + string name = 1; + + // The attribute value. + string value = 2; +} + +// Product attribute name and numeric interval. +message ProductAttributeInterval { + // The attribute name (e.g. "length") + string name = 1; + + // The numeric interval (e.g. [10, 20)) + Interval interval = 2; +} + +// This field specifies the tile information including an attribute key, +// attribute value. More fields will be added in the future, eg: product id +// or product counts, etc. +message Tile { + // The attribute key and value for the tile. + oneof product_attribute { + // The product attribute key-value. + ProductAttributeValue product_attribute_value = 1; + + // The product attribute key-numeric interval. + ProductAttributeInterval product_attribute_interval = 2; + } + + // The representative product id for this tile. + string representative_product_id = 3; +} + // Request message for // [SearchService.Search][google.cloud.retail.v2beta.SearchService.Search] // method. @@ -448,6 +485,69 @@ message SearchRequest { Mode mode = 1; } + // This field specifies all conversational related parameters addition to + // traditional retail search. + message ConversationalSearchSpec { + // This field specifies the current user answer during the conversational + // search. This can be either user selected from suggested answers or user + // input plain text. + message UserAnswer { + // This field specifies the selected answers during the conversational + // search. + message SelectedAnswer { + // This field is deprecated and should not be set. + repeated ProductAttributeValue product_attribute_values = 1 + [deprecated = true]; + + // This field specifies the selected answer which is a attribute + // key-value. + ProductAttributeValue product_attribute_value = 2; + } + + // This field specifies the type of user answer. + oneof type { + // This field specifies the incremental input text from the user during + // the conversational search. + string text_answer = 1; + + // This field specifies the selected attributes during the + // conversational search. This should be a subset of + // [ConversationalSearchResult.suggested_answers][]. + SelectedAnswer selected_answer = 2; + } + } + + // This field specifies whether the customer would like to do conversational + // search. If this field is set to true, conversational related extra + // information will be returned from server side, including follow-up + // question, answer options, etc. + bool followup_conversation_requested = 1; + + // This field specifies the conversation id, which maintains the state of + // the conversation between client side and server side. Use the value from + // the previous [ConversationalSearchResult.conversation_id][]. For the + // initial request, this should be empty. + string conversation_id = 2; + + // This field specifies the current user answer during the conversational + // search. This can be either user selected from suggested answers or user + // input plain text. + UserAnswer user_answer = 3; + } + + // This field specifies tile navigation related parameters. + message TileNavigationSpec { + // This field specifies whether the customer would like to request tile + // navigation. + bool tile_navigation_requested = 1; + + // This field specifies the tiles which are already clicked in client side. + // NOTE: This field is not being used for filtering search products. Client + // side should also put all the applied tiles in + // [SearchRequest.filter][google.cloud.retail.v2beta.SearchRequest.filter]. + repeated Tile applied_tiles = 2; + } + // The search mode of each search request. enum SearchMode { // Default value. In this case both product search and faceted search will @@ -748,6 +848,15 @@ message SearchRequest { // [UserEvent.entity][google.cloud.retail.v2beta.UserEvent.entity] to get // search results boosted by entity. string entity = 38; + + // Optional. This field specifies all conversational related parameters + // addition to traditional retail search. + ConversationalSearchSpec conversational_search_spec = 40 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This field specifies tile navigation related parameters. + TileNavigationSpec tile_navigation_spec = 41 + [(google.api.field_behavior) = OPTIONAL]; } // Response message for @@ -899,6 +1008,67 @@ message SearchResponse { int64 pinned_result_count = 2; } + // This field specifies all related information that is needed on client + // side for UI rendering of conversational retail search. + message ConversationalSearchResult { + // Suggested answers to the follow-up question. + message SuggestedAnswer { + // Product attribute value, including an attribute key and an + // attribute value. Other types can be added here in the future. + ProductAttributeValue product_attribute_value = 1; + } + + // Additional filter that client side need to apply. + message AdditionalFilter { + // Product attribute value, including an attribute key and an + // attribute value. Other types can be added here in the future. + ProductAttributeValue product_attribute_value = 1; + } + + // Conversation UUID. This field will be stored in client side storage to + // maintain the conversation session with server and will be used for next + // search request's + // [SearchRequest.ConversationalSearchSpec.conversation_id][google.cloud.retail.v2beta.SearchRequest.ConversationalSearchSpec.conversation_id] + // to restore conversation state in server. + string conversation_id = 1; + + // The current refined query for the conversational search. This field + // will be used in customer UI that the query in the search bar should be + // replaced with the refined query. For example, if + // [SearchRequest.query][google.cloud.retail.v2beta.SearchRequest.query] is + // `dress` and next + // [SearchRequest.ConversationalSearchSpec.UserAnswer.text_answer][google.cloud.retail.v2beta.SearchRequest.ConversationalSearchSpec.UserAnswer.text_answer] + // is `red color`, which does not match any product attribute value filters, + // the refined query will be `dress, red color`. + string refined_query = 2; + + // This field is deprecated but will be kept for backward compatibility. + // There is expected to have only one additional filter and the value will + // be the same to the same as field `additional_filter`. + repeated AdditionalFilter additional_filters = 3 [deprecated = true]; + + // The follow-up question. e.g., `What is the color?` + string followup_question = 4; + + // The answer options provided to client for the follow-up question. + repeated SuggestedAnswer suggested_answers = 5; + + // This is the incremental additional filters implied from the current + // user answer. User should add the suggested addition filters to the + // previous + // [SearchRequest.filter][google.cloud.retail.v2beta.SearchRequest.filter], + // and use the merged filter in the follow up search request. + AdditionalFilter additional_filter = 6; + } + + // This field specifies all related information for tile navigation that will + // be used in client side. + message TileNavigationResult { + // The current tiles that are used for tile navigation, sorted by + // engagement. + repeated Tile tiles = 1; + } + // A list of matched items. The order represents the ranking. repeated SearchResult results = 1; @@ -951,6 +1121,14 @@ message SearchResponse { // Metadata related to A/B testing [Experiment][] associated with this // response. Only exists when an experiment is triggered. repeated ExperimentInfo experiment_info = 17; + + // This field specifies all related information that is needed on client + // side for UI rendering of conversational retail search. + ConversationalSearchResult conversational_search_result = 18; + + // This field specifies all related information for tile navigation that will + // be used in client side. + TileNavigationResult tile_navigation_result = 19; } // Metadata for active A/B testing [Experiment][]. diff --git a/google/cloud/retail/v2beta/user_event_service.proto b/google/cloud/retail/v2beta/user_event_service.proto index 48374fa00..f8f78baf3 100644 --- a/google/cloud/retail/v2beta/user_event_service.proto +++ b/google/cloud/retail/v2beta/user_event_service.proto @@ -21,6 +21,7 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/httpbody.proto"; import "google/api/resource.proto"; +import "google/cloud/retail/v2beta/export_config.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"; @@ -95,6 +96,22 @@ service UserEventService { }; } + // Exports user events. + // + // `Operation.response` is of type `ExportResponse`. + // `Operation.metadata` is of type `ExportMetadata`. + rpc ExportUserEvents(ExportUserEventsRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v2beta/{parent=projects/*/locations/*/catalogs/*}/userEvents:export" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "google.cloud.retail.v2beta.ExportUserEventsResponse" + metadata_type: "google.cloud.retail.v2beta.ExportMetadata" + }; + } + // 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 diff --git a/google/cloud/run/BUILD.bazel b/google/cloud/run/BUILD.bazel index 4613e2b98..7796a4483 100644 --- a/google/cloud/run/BUILD.bazel +++ b/google/cloud/run/BUILD.bazel @@ -21,7 +21,7 @@ ruby_cloud_gapic_library( 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.13", + "ruby-cloud-wrapper-of=v2:0.17", "ruby-cloud-product-url=https://cloud.google.com/run", "ruby-cloud-api-id=run.googleapis.com", "ruby-cloud-api-shortname=run", diff --git a/google/cloud/run/v2/BUILD.bazel b/google/cloud/run/v2/BUILD.bazel index ef5e28815..631a1563e 100644 --- a/google/cloud/run/v2/BUILD.bazel +++ b/google/cloud/run/v2/BUILD.bazel @@ -24,6 +24,7 @@ load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "run_proto", srcs = [ + "build.proto", "condition.proto", "execution.proto", "execution_template.proto", @@ -112,6 +113,8 @@ java_gapic_library( java_gapic_test( name = "run_java_gapic_test_suite", test_classes = [ + "com.google.cloud.run.v2.BuildsClientHttpJsonTest", + "com.google.cloud.run.v2.BuildsClientTest", "com.google.cloud.run.v2.ExecutionsClientHttpJsonTest", "com.google.cloud.run.v2.ExecutionsClientTest", "com.google.cloud.run.v2.JobsClientHttpJsonTest", @@ -376,6 +379,7 @@ load( csharp_proto_library( name = "run_csharp_proto", + extra_opts = [], deps = [":run_proto"], ) diff --git a/google/cloud/run/v2/build.proto b/google/cloud/run/v2/build.proto new file mode 100644 index 000000000..b3e162c45 --- /dev/null +++ b/google/cloud/run/v2/build.proto @@ -0,0 +1,157 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY 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/resource.proto"; +import "google/longrunning/operations.proto"; + +option go_package = "cloud.google.com/go/run/apiv2/runpb;runpb"; +option java_multiple_files = true; +option java_outer_classname = "BuildProto"; +option java_package = "com.google.cloud.run.v2"; +option (google.api.resource_definition) = { + type: "cloudbuild.googleapis.com/WorkerPool" + pattern: "projects/{project}/locations/{location}/workerPools/{worker_pool}" +}; + +// Cloud Run Build Control Plane API +service Builds { + option (google.api.default_host) = "run.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Submits a build in a given project. + rpc SubmitBuild(SubmitBuildRequest) returns (SubmitBuildResponse) { + option (google.api.http) = { + post: "/v2/{parent=projects/*/locations/*}/builds:submit" + body: "*" + }; + } +} + +// Request message for submitting a Build. +message SubmitBuildRequest { + // Build the source using Docker. This means the source has a Dockerfile. + message DockerBuild {} + + // Build the source using Buildpacks. + message BuildpacksBuild { + // The runtime name, e.g. 'go113'. Leave blank for generic builds. + string runtime = 1 [deprecated = true]; + + // Optional. Name of the function target if the source is a function source. + // Required for function builds. + string function_target = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. cache_image_uri is the GCR/AR URL where the cache image will be + // stored. cache_image_uri is optional and omitting it will disable caching. + // This URL must be stable across builds. It is used to derive a + // build-specific temporary URL by substituting the tag with the build ID. + // The build will clean up the temporary image on a best-effort basis. + string cache_image_uri = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The base image used to opt into automatic base image updates. + string base_image = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. User-provided build-time environment variables. + map<string, string> environment_variables = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Whether or not the application container will be enrolled in + // automatic base image updates. When true, the application will be built on + // a scratch base image, so the base layers can be appended at run time. + bool enable_automatic_updates = 6 [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. The project and location to build in. Location must be a region, + // e.g., 'us-central1' or 'global' if the global builder is to be used. + // Format: + // `projects/{project}/locations/{location}` + string parent = 1 [(google.api.field_behavior) = REQUIRED]; + + // Location of source. + oneof source { + // Required. Source for the build. + StorageSource storage_source = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Required. Artifact Registry URI to store the built image. + string image_uri = 3 [(google.api.field_behavior) = REQUIRED]; + + // Build type must be one of the following. + oneof build_type { + // Build the source using Buildpacks. + BuildpacksBuild buildpack_build = 4; + + // Build the source using Docker. This means the source has a Dockerfile. + DockerBuild docker_build = 5; + } + + // Optional. The service account to use for the build. If not set, the default + // Cloud Build service account for the project will be used. + string service_account = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. 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. + string worker_pool = 7 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "cloudbuild.googleapis.com/WorkerPool" + } + ]; + + // Optional. Additional tags to annotate the build. + repeated string tags = 8 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for submitting a Build. +message SubmitBuildResponse { + // Cloud Build operation to be polled via CloudBuild API. + google.longrunning.Operation build_operation = 1; + + // URI of the base builder image in Artifact Registry being used in the build. + // Used to opt into automatic base image updates. + string base_image_uri = 2; + + // Warning message for the base image. + string base_image_warning = 3; +} + +// Location of the source in an archive file in Google Cloud Storage. +message StorageSource { + // Required. Google Cloud Storage bucket containing the source (see + // [Bucket Name + // Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). + string bucket = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. 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.api.field_behavior) = REQUIRED]; + + // Optional. Google Cloud Storage generation for the object. If the generation + // is omitted, the latest generation will be used. + int64 generation = 3 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/run/v2/job.proto b/google/cloud/run/v2/job.proto index 4ead8a2e7..58f549322 100644 --- a/google/cloud/run/v2/job.proto +++ b/google/cloud/run/v2/job.proto @@ -23,6 +23,7 @@ import "google/api/launch_stage.proto"; import "google/api/resource.proto"; import "google/api/routing.proto"; import "google/cloud/run/v2/condition.proto"; +import "google/cloud/run/v2/execution.proto"; import "google/cloud/run/v2/execution_template.proto"; import "google/cloud/run/v2/k8s.min.proto"; import "google/cloud/run/v2/vendor_settings.proto"; diff --git a/google/cloud/run/v2/revision.proto b/google/cloud/run/v2/revision.proto index 00b59aea7..bd233c350 100644 --- a/google/cloud/run/v2/revision.proto +++ b/google/cloud/run/v2/revision.proto @@ -263,6 +263,9 @@ message Revision { type: "cloudkms.googleapis.com/CryptoKey" }]; + // Enables service mesh connectivity. + ServiceMesh service_mesh = 22; + // The action to take if the encryption key is revoked. EncryptionKeyRevocationAction encryption_key_revocation_action = 23; @@ -299,6 +302,9 @@ message Revision { RevisionScalingStatus scaling_status = 39 [(google.api.field_behavior) = OUTPUT_ONLY]; + // The node selector for the revision. + NodeSelector node_selector = 40; + // 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 index a06786314..f2a8e05c7 100644 --- a/google/cloud/run/v2/revision_template.proto +++ b/google/cloud/run/v2/revision_template.proto @@ -99,13 +99,20 @@ message RevisionTemplate { }]; // Optional. Sets the maximum number of requests that each serving instance - // can receive. + // can receive. If not specified or 0, defaults to 80 when requested + // `CPU >= 1` and defaults to 1 when requested `CPU < 1`. int32 max_instance_request_concurrency = 15 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Enables service mesh connectivity. + ServiceMesh service_mesh = 16 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Enable session affinity. bool session_affinity = 19 [(google.api.field_behavior) = OPTIONAL]; // Optional. Disables health checking containers during deployment. bool health_check_disabled = 20 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The node selector for the revision template. + NodeSelector node_selector = 21 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/google/cloud/run/v2/run_v2.yaml b/google/cloud/run/v2/run_v2.yaml index bfc84e823..eadb92838 100644 --- a/google/cloud/run/v2/run_v2.yaml +++ b/google/cloud/run/v2/run_v2.yaml @@ -5,6 +5,7 @@ title: Cloud Run Admin API apis: - name: google.cloud.location.Locations +- name: google.cloud.run.v2.Builds - name: google.cloud.run.v2.Executions - name: google.cloud.run.v2.Jobs - name: google.cloud.run.v2.Revisions @@ -41,6 +42,10 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: google.cloud.run.v2.Builds.SubmitBuild + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: 'google.cloud.run.v2.Executions.*' oauth: canonical_scopes: |- diff --git a/google/cloud/run/v2/service.proto b/google/cloud/run/v2/service.proto index 0f37f6593..fb6012a2e 100644 --- a/google/cloud/run/v2/service.proto +++ b/google/cloud/run/v2/service.proto @@ -396,9 +396,23 @@ message Service { // Optional. Specifies service-level scaling settings ServiceScaling scaling = 20 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Disables IAM permission check for run.routes.invoke for callers + // of this service. This setting should not be used with external ingress. + bool invoker_iam_disabled = 21 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Disables public resolution of the default URI of this service. bool default_uri_disabled = 22 [(google.api.field_behavior) = OPTIONAL]; + // Output only. All URLs serving traffic for this Service. + repeated string urls = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // One or more custom audiences that you want this service to support. Specify + // each custom audience as the full URL in a string. The custom audiences are + // encoded in the token and used to authenticate requests. For more + // information, see + // https://cloud.google.com/run/docs/configuring/custom-audiences. + repeated string custom_audiences = 37; + // 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. @@ -444,13 +458,6 @@ message Service { // Output only. The main URI in which this Service is serving traffic. string uri = 36 [(google.api.field_behavior) = OUTPUT_ONLY]; - // One or more custom audiences that you want this service to support. Specify - // each custom audience as the full URL in a string. The custom audiences are - // encoded in the token and used to authenticate requests. For more - // information, see - // https://cloud.google.com/run/docs/configuring/custom-audiences. - repeated string custom_audiences = 37; - // Output only. Reserved for future use. bool satisfies_pzs = 38 [(google.api.field_behavior) = OUTPUT_ONLY]; diff --git a/google/cloud/run/v2/vendor_settings.proto b/google/cloud/run/v2/vendor_settings.proto index 7162623f6..8c38ee81a 100644 --- a/google/cloud/run/v2/vendor_settings.proto +++ b/google/cloud/run/v2/vendor_settings.proto @@ -23,6 +23,15 @@ option go_package = "cloud.google.com/go/run/apiv2/runpb;runpb"; option java_multiple_files = true; option java_outer_classname = "VendorSettingsProto"; option java_package = "com.google.cloud.run.v2"; +option (google.api.resource_definition) = { + type: "binaryauthorization.googleapis.com/Policy" + pattern: "projects/{project}/policy" + pattern: "locations/{location}/policy" +}; +option (google.api.resource_definition) = { + type: "networkservices.googleapis.com/Mesh" + pattern: "projects/{project}/locations/{location}/meshes/{mesh}" +}; // VPC Access settings. For more information on sending traffic to a VPC // network, visit https://cloud.google.com/run/docs/configuring/connecting-vpc. @@ -60,8 +69,8 @@ message VpcAccess { } // VPC Access connector name. - // Format: projects/{project}/locations/{location}/connectors/{connector}, - // where {project} can be project id or number. + // Format: `projects/{project}/locations/{location}/connectors/{connector}`, + // where `{project}` can be project id or number. // For more information on sending traffic to a VPC network via a connector, // visit https://cloud.google.com/run/docs/configuring/vpc-connectors. string connector = 1 [(google.api.resource_reference) = { @@ -86,8 +95,13 @@ message BinaryAuthorization { bool use_default = 1 [(google.api.field_behavior) = OPTIONAL]; // Optional. The path to a binary authorization policy. - // Format: projects/{project}/platforms/cloudRun/{policy-name} - string policy = 3 [(google.api.field_behavior) = OPTIONAL]; + // Format: `projects/{project}/platforms/cloudRun/{policy-name}` + string policy = 3 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "binaryauthorization.googleapis.com/Policy" + } + ]; } // Optional. If present, indicates to use Breakglass using this justification. @@ -104,17 +118,52 @@ message RevisionScaling { int32 min_instance_count = 1 [(google.api.field_behavior) = OPTIONAL]; // Optional. Maximum number of serving instances that this resource should - // have. + // have. When unspecified, the field is set to the server default value of + // 100. For more information see + // https://cloud.google.com/run/docs/configuring/max-instances int32 max_instance_count = 2 [(google.api.field_behavior) = OPTIONAL]; } +// Settings for Cloud Service Mesh. For more information see +// https://cloud.google.com/service-mesh/docs/overview. +message ServiceMesh { + // The Mesh resource name. Format: + // `projects/{project}/locations/global/meshes/{mesh}`, where `{project}` can + // be project id or number. + string mesh = 1 [(google.api.resource_reference) = { + type: "networkservices.googleapis.com/Mesh" + }]; +} + // Scaling settings applied at the service level rather than // at the revision level. message ServiceScaling { + // The scaling mode for the service. If not provided, it defaults to + // AUTOMATIC. + enum ScalingMode { + // Unspecified. + SCALING_MODE_UNSPECIFIED = 0; + + // Scale based on traffic between min and max instances. + AUTOMATIC = 1; + + // Scale to exactly min instances and ignore max instances. + MANUAL = 2; + } + // Optional. total min instances for the service. This number of instances is // divided among all revisions with specified traffic based on the percent - // of traffic they are receiving. (BETA) + // of traffic they are receiving. int32 min_instance_count = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The scaling mode for the service. + ScalingMode scaling_mode = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Hardware constraints configuration. +message NodeSelector { + // Required. GPU accelerator type to attach to an instance. + string accelerator = 1 [(google.api.field_behavior) = REQUIRED]; } // Allowed ingress traffic for the Container. @@ -130,6 +179,9 @@ enum IngressTraffic { // Both internal and Google Cloud Load Balancer traffic is allowed. INGRESS_TRAFFIC_INTERNAL_LOAD_BALANCER = 3; + + // No ingress traffic is allowed. + INGRESS_TRAFFIC_NONE = 4; } // Alternatives for execution environments. diff --git a/google/cloud/scheduler/v1/BUILD.bazel b/google/cloud/scheduler/v1/BUILD.bazel index 5e146c3f6..7f1c62605 100644 --- a/google/cloud/scheduler/v1/BUILD.bazel +++ b/google/cloud/scheduler/v1/BUILD.bazel @@ -219,7 +219,7 @@ php_gapic_library( name = "scheduler_php_gapic", srcs = [":scheduler_proto_with_info"], grpc_service_config = "cloudscheduler_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "cloudscheduler_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/securesourcemanager/v1/BUILD.bazel b/google/cloud/securesourcemanager/v1/BUILD.bazel index c364eb9a1..a649edbe0 100644 --- a/google/cloud/securesourcemanager/v1/BUILD.bazel +++ b/google/cloud/securesourcemanager/v1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "securesourcemanager_proto", @@ -32,6 +35,7 @@ proto_library( "//google/iam/v1:policy_proto", "//google/longrunning:operations_proto", "@com_google_protobuf//:empty_proto", + "@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:timestamp_proto", ], ) @@ -40,8 +44,8 @@ proto_library_with_info( name = "securesourcemanager_proto_with_info", deps = [ ":securesourcemanager_proto", - "//google/cloud/location:location_proto", "//google/cloud:common_resources_proto", + "//google/cloud/location:location_proto", "//google/iam/v1:iam_policy_proto", ], ) @@ -49,6 +53,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -77,9 +82,9 @@ java_gapic_library( rest_numeric_enums = True, service_yaml = "securesourcemanager_v1.yaml", test_deps = [ + ":securesourcemanager_java_grpc", "//google/cloud/location:location_java_grpc", "//google/iam/v1:iam_java_grpc", - ":securesourcemanager_java_grpc", ], transport = "grpc+rest", deps = [ @@ -102,6 +107,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-securesourcemanager-v1-java", + include_samples = True, transport = "grpc+rest", deps = [ ":securesourcemanager_java_gapic", @@ -109,12 +115,12 @@ java_gapic_assembly_gradle_pkg( ":securesourcemanager_java_proto", ":securesourcemanager_proto", ], - include_samples = True, ) ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -159,9 +165,9 @@ go_gapic_assembly_pkg( name = "gapi-cloud-securesourcemanager-v1-go", deps = [ ":securesourcemanager_go_gapic", - ":securesourcemanager_go_gapic_srcjar-test.srcjar", ":securesourcemanager_go_gapic_srcjar-metadata.srcjar", ":securesourcemanager_go_gapic_srcjar-snippets.srcjar", + ":securesourcemanager_go_gapic_srcjar-test.srcjar", ":securesourcemanager_go_proto", ], ) @@ -169,6 +175,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -209,6 +216,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -225,8 +233,8 @@ php_gapic_library( name = "securesourcemanager_php_gapic", srcs = [":securesourcemanager_proto_with_info"], grpc_service_config = "securesourcemanager_grpc_service_config.json", - rest_numeric_enums = True, migration_mode = "NEW_SURFACE_ONLY", + rest_numeric_enums = True, service_yaml = "securesourcemanager_v1.yaml", transport = "grpc+rest", deps = [ @@ -246,6 +254,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -276,10 +285,11 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", - "ruby_gapic_assembly_pkg", "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", "ruby_grpc_library", "ruby_proto_library", ) @@ -298,9 +308,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "securesourcemanager_ruby_gapic", srcs = [":securesourcemanager_proto_with_info"], - extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-secure_source_manager-v1", - ], + extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-secure_source_manager-v1"], grpc_service_config = "securesourcemanager_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "securesourcemanager_v1.yaml", @@ -324,6 +332,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -351,6 +360,7 @@ csharp_gapic_library( grpc_service_config = "securesourcemanager_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "securesourcemanager_v1.yaml", + transport = "grpc+rest", deps = [ ":securesourcemanager_csharp_grpc", ":securesourcemanager_csharp_proto", @@ -370,6 +380,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/google/cloud/securesourcemanager/v1/secure_source_manager.proto b/google/cloud/securesourcemanager/v1/secure_source_manager.proto index 61da4c2bc..8a8ad5b5b 100644 --- a/google/cloud/securesourcemanager/v1/secure_source_manager.proto +++ b/google/cloud/securesourcemanager/v1/secure_source_manager.proto @@ -24,6 +24,7 @@ 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"; option csharp_namespace = "Google.Cloud.SecureSourceManager.V1"; @@ -195,6 +196,64 @@ service SecureSourceManager { }; option (google.api.method_signature) = "resource"; } + + // CreateBranchRule creates a branch rule in a given repository. + rpc CreateBranchRule(CreateBranchRuleRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/repositories/*}/branchRules" + body: "branch_rule" + }; + option (google.api.method_signature) = "parent,branch_rule,branch_rule_id"; + option (google.longrunning.operation_info) = { + response_type: "BranchRule" + metadata_type: "OperationMetadata" + }; + } + + // ListBranchRules lists branch rules in a given repository. + rpc ListBranchRules(ListBranchRulesRequest) + returns (ListBranchRulesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/repositories/*}/branchRules" + }; + option (google.api.method_signature) = "parent"; + } + + // GetBranchRule gets a branch rule. + rpc GetBranchRule(GetBranchRuleRequest) returns (BranchRule) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/repositories/*/branchRules/*}" + }; + option (google.api.method_signature) = "name"; + } + + // UpdateBranchRule updates a branch rule. + rpc UpdateBranchRule(UpdateBranchRuleRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{branch_rule.name=projects/*/locations/*/repositories/*/branchRules/*}" + body: "branch_rule" + }; + option (google.api.method_signature) = "branch_rule,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "BranchRule" + metadata_type: "OperationMetadata" + }; + } + + // DeleteBranchRule deletes a branch rule. + rpc DeleteBranchRule(DeleteBranchRuleRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/repositories/*/branchRules/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "OperationMetadata" + }; + } } // A resource that represents a Secure Source Manager instance. @@ -290,6 +349,12 @@ message Instance { type: "compute.googleapis.com/ServiceAttachment" } ]; + + // Optional. Additional allowed projects for setting up PSC connections. + // Instance host project is automatically allowed and does not need to be + // included in this list. + repeated string psc_allowed_projects = 6 + [(google.api.field_behavior) = OPTIONAL]; } // Optional. A unique identifier for an instance. The name should be of the @@ -511,9 +576,16 @@ message Repository { // Optional. The name of the instance in which the repository is hosted, // formatted as // `projects/{project_number}/locations/{location_id}/instances/{instance_id}` - // For data plane CreateRepository requests, this field is output only. - // For control plane CreateRepository requests, this field is used as input. - string instance = 3 [(google.api.field_behavior) = OPTIONAL]; + // When creating repository via + // securesourcemanager.googleapis.com (Control Plane API), this field is used + // as input. When creating repository via *.sourcemanager.dev (Data Plane + // API), this field is output only. + string instance = 3 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "securesourcemanager.googleapis.com/Instance" + } + ]; // Output only. Unique identifier of the repository. string uid = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -538,6 +610,83 @@ message Repository { InitialConfig initial_config = 10 [(google.api.field_behavior) = INPUT_ONLY]; } +// Metadata of a BranchRule. BranchRule is the protection rule to enforce +// pre-defined rules on desginated branches within a repository. +message BranchRule { + option (google.api.resource) = { + type: "securesourcemanager.googleapis.com/BranchRule" + pattern: "projects/{project}/locations/{location}/repositories/{repository}/branchRules/{branch_rule}" + }; + + // Check is a type for status check. + message Check { + // Required. The context of the check. + string context = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Optional. A unique identifier for a BranchRule. The name should be of the + // format: + // `projects/{project}/locations/{location}/repositories/{repository}/branchRules/{branch_rule}` + string name = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. Unique identifier of the repository. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Create timestamp. + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Update timestamp. + google.protobuf.Timestamp update_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. User annotations. These attributes can only be set and used by + // the user. See https://google.aip.dev/128#annotations for more details such + // as format and size limitations. + map<string, string> annotations = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. This checksum is computed by the server based on the value of + // other fields, and may be sent on update and delete requests to ensure the + // client has an up-to-date value before proceeding. + string etag = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The pattern of the branch that can match to this BranchRule. + // Specified as regex. + // .* for all branches. Examples: main, (main|release.*). + // Current MVP phase only support `.*` for wildcard. + string include_pattern = 7 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Determines if the branch rule is disabled or not. + bool disabled = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Determines if the branch rule requires a pull request or not. + bool require_pull_request = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The minimum number of reviews required for the branch rule to be + // matched. + int32 minimum_reviews_count = 10 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The minimum number of approvals required for the branch rule to + // be matched. + int32 minimum_approvals_count = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Determines if require comments resolved before merging to the + // branch. + bool require_comments_resolved = 12 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Determines if allow stale reviews or approvals before merging to + // the branch. + bool allow_stale_reviews = 15 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Determines if require linear history before merging to the + // branch. + bool require_linear_history = 13 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. List of required status checks before merging to the branch. + repeated Check required_status_checks = 14 + [(google.api.field_behavior) = OPTIONAL]; +} + // ListInstancesRequest is the request to list instances. message ListInstancesRequest { // Required. Parent value for ListInstancesRequest. @@ -691,6 +840,20 @@ message ListRepositoriesRequest { // Optional. Filter results. string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The name of the instance in which the repository is hosted, + // formatted as + // `projects/{project_number}/locations/{location_id}/instances/{instance_id}`. + // When listing repositories via + // securesourcemanager.googleapis.com (Control Plane API), this field is + // required. When listing repositories via *.sourcemanager.dev (Data Plane + // API), this field is ignored. + string instance = 5 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = { + type: "securesourcemanager.googleapis.com/Instance" + } + ]; } message ListRepositoriesResponse { @@ -750,3 +913,84 @@ message DeleteRepositoryRequest { // succeed but no action will be taken on the server. bool allow_missing = 2 [(google.api.field_behavior) = OPTIONAL]; } + +// GetBranchRuleRequest is the request for getting a branch rule. +message GetBranchRuleRequest { + // Required. Name of the repository to retrieve. + // The format is + // `projects/{project}/locations/{location}/repositories/{repository}/branchRules/{branch_rule}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securesourcemanager.googleapis.com/BranchRule" + } + ]; +} + +// CreateBranchRuleRequest is the request to create a branch rule. +message CreateBranchRuleRequest { + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "securesourcemanager.googleapis.com/BranchRule" + } + ]; + + BranchRule branch_rule = 2 [(google.api.field_behavior) = REQUIRED]; + + string branch_rule_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// ListBranchRulesRequest is the request to list branch rules. +message ListBranchRulesRequest { + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "securesourcemanager.googleapis.com/BranchRule" + } + ]; + + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// DeleteBranchRuleRequest is the request to delete a branch rule. +message DeleteBranchRuleRequest { + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "securesourcemanager.googleapis.com/BranchRule" + } + ]; + + // Optional. If set to true, and the branch rule is not found, the request + // will succeed but no action will be taken on the server. + bool allow_missing = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// UpdateBranchRuleRequest is the request to update a branchRule. +message UpdateBranchRuleRequest { + BranchRule branch_rule = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. If set, validate the request and preview the review, but do not + // actually post it. (https://google.aip.dev/163, for declarative friendly) + bool validate_only = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Required. Field mask is used to specify the fields to be overwritten in the + // branchRule resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field will be overwritten if it is in the mask. + // The special value "*" means full replacement. + google.protobuf.FieldMask update_mask = 3 + [(google.api.field_behavior) = REQUIRED]; +} + +// ListBranchRulesResponse is the response to listing branchRules. +message ListBranchRulesResponse { + // The list of branch rules. + repeated BranchRule branch_rules = 1; + + // A token identifying a page of results the server should return. + string next_page_token = 2; +} diff --git a/google/cloud/security/privateca/v1/BUILD.bazel b/google/cloud/security/privateca/v1/BUILD.bazel index 9c0d45db5..c6509f748 100644 --- a/google/cloud/security/privateca/v1/BUILD.bazel +++ b/google/cloud/security/privateca/v1/BUILD.bazel @@ -232,7 +232,7 @@ php_gapic_library( name = "privateca_php_gapic", srcs = [":privateca_proto_with_info"], grpc_service_config = "privateca_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "privateca_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/securitycenter/v1/BUILD.bazel b/google/cloud/securitycenter/v1/BUILD.bazel index f02d8d879..63e9a2c3e 100644 --- a/google/cloud/securitycenter/v1/BUILD.bazel +++ b/google/cloud/securitycenter/v1/BUILD.bazel @@ -288,7 +288,7 @@ php_gapic_library( name = "securitycenter_php_gapic", srcs = [":securitycenter_proto_with_info"], grpc_service_config = "securitycenter_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "securitycenter_v1.yaml", transport = "grpc+rest", @@ -406,7 +406,6 @@ load( csharp_proto_library( name = "securitycenter_csharp_proto", - extra_opts = [], deps = [":securitycenter_proto"], ) diff --git a/google/cloud/securitycenter/v1/finding.proto b/google/cloud/securitycenter/v1/finding.proto index c1b15c089..98a9ae62e 100644 --- a/google/cloud/securitycenter/v1/finding.proto +++ b/google/cloud/securitycenter/v1/finding.proto @@ -196,6 +196,41 @@ message Finding { TOXIC_COMBINATION = 7; } + // Mute information about the finding, including whether the finding has a + // static mute or any matching dynamic mute rules. + message MuteInfo { + // Information about the static mute state. A static mute state overrides + // any dynamic mute rules that apply to this finding. The static mute state + // can be set by a static mute rule or by muting the finding directly. + message StaticMute { + // The static mute state. If the value is `MUTED` or `UNMUTED`, then the + // finding's overall mute state will have the same value. + Mute state = 1; + + // When the static mute was applied. + google.protobuf.Timestamp apply_time = 2; + } + + // The record of a dynamic mute rule that matches the finding. + message DynamicMuteRecord { + // The relative resource name of the mute rule, represented by a mute + // config, that created this record, for example + // `organizations/123/muteConfigs/mymuteconfig` or + // `organizations/123/locations/global/muteConfigs/mymuteconfig`. + string mute_config = 1; + + // When the dynamic mute rule first matched the finding. + google.protobuf.Timestamp match_time = 2; + } + + // If set, the static mute applied to this finding. Static mutes override + // dynamic mutes. If unset, there is no static mute. + StaticMute static_mute = 1; + + // The list of dynamic mute rules that currently match the finding. + repeated DynamicMuteRecord dynamic_mute_records = 2; + } + // The [relative resource // name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) // of the finding. Example: @@ -312,6 +347,9 @@ message Finding { // that muted the finding and the user who muted the finding. string mute_initiator = 28; + // Output only. The mute information regarding this finding. + MuteInfo mute_info = 61 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Represents operating system processes associated with the Finding. repeated Process processes = 30; diff --git a/google/cloud/securitycenter/v1/mitre_attack.proto b/google/cloud/securitycenter/v1/mitre_attack.proto index c9072542d..fb1713b32 100644 --- a/google/cloud/securitycenter/v1/mitre_attack.proto +++ b/google/cloud/securitycenter/v1/mitre_attack.proto @@ -78,7 +78,7 @@ message MitreAttack { // MITRE ATT&CK techniques that can be referenced by SCC findings. // See: https://attack.mitre.org/techniques/enterprise/ - // Next ID: 63 + // Next ID: 65 enum Technique { // Unspecified value. TECHNIQUE_UNSPECIFIED = 0; @@ -110,12 +110,18 @@ message MitreAttack { // T1059.006 PYTHON = 59; + // T1068 + EXPLOITATION_FOR_PRIVILEGE_ESCALATION = 63; + // T1069 PERMISSION_GROUPS_DISCOVERY = 18; // T1069.003 CLOUD_GROUPS = 19; + // T1070.004 + INDICATOR_REMOVAL_FILE_DELETION = 64; + // T1071 APPLICATION_LAYER_PROTOCOL = 45; diff --git a/google/cloud/securitycenter/v1/mute_config.proto b/google/cloud/securitycenter/v1/mute_config.proto index ed82eca48..103ffd0c8 100644 --- a/google/cloud/securitycenter/v1/mute_config.proto +++ b/google/cloud/securitycenter/v1/mute_config.proto @@ -43,6 +43,25 @@ message MuteConfig { singular: "muteConfig" }; + // The type of MuteConfig. + enum MuteConfigType { + // Unused. + MUTE_CONFIG_TYPE_UNSPECIFIED = 0; + + // A static mute config, which sets the static mute state of future matching + // findings to muted. Once the static mute state has been set, finding or + // config modifications will not affect the state. + STATIC = 1; + + // A dynamic mute config, which is applied to existing and future matching + // findings, setting their dynamic mute state to "muted". If the config is + // updated or deleted, or a matching finding is updated, such that the + // finding doesn't match the config, the config will be removed from the + // finding, and the finding's dynamic mute state may become "unmuted" + // (unless other configs still match). + DYNAMIC = 2; + } + // This field will be ignored if provided on config creation. Format // `organizations/{organization}/muteConfigs/{mute_config}` // `folders/{folder}/muteConfigs/{mute_config}` @@ -96,4 +115,16 @@ message MuteConfig { // This field is set by the server and will be ignored if provided on config // creation or update. string most_recent_editor = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The type of the mute config, which determines what type of mute + // state the config affects. The static mute state takes precedence over the + // dynamic mute state. Immutable after creation. STATIC by default if not set + // during creation. + MuteConfigType type = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The expiry of the mute config. Only applicable for dynamic + // configs. If the expiry is set, when the config expires, it is removed from + // all findings. + google.protobuf.Timestamp expiry_time = 9 + [(google.api.field_behavior) = OPTIONAL]; } diff --git a/google/cloud/securitycenter/v1/securitycenter_service.proto b/google/cloud/securitycenter/v1/securitycenter_service.proto index 696875bae..fc9567994 100644 --- a/google/cloud/securitycenter/v1/securitycenter_service.proto +++ b/google/cloud/securitycenter/v1/securitycenter_service.proto @@ -1092,6 +1092,18 @@ service SecurityCenter { // which they get executed is not defined. // 2. Once a bulk operation is started, there is no way to stop it. message BulkMuteFindingsRequest { + // The mute state. + enum MuteState { + // Unused. + MUTE_STATE_UNSPECIFIED = 0; + + // Matching findings will be muted (default). + MUTED = 1; + + // Matching findings will have their mute state cleared. + UNDEFINED = 2; + } + // Required. The parent, at which bulk action needs to be applied. Its format // is `organizations/[organization_id]`, `folders/[folder_id]`, // `projects/[project_id]`. @@ -1125,6 +1137,11 @@ message BulkMuteFindingsRequest { // This can be a mute configuration name or any identifier for mute/unmute // of findings based on the filter. string mute_annotation = 3 [deprecated = true]; + + // Optional. All findings matching the given filter will have their mute state + // set to this value. The default value is `MUTED`. Setting this to + // `UNDEFINED` will clear the mute state on all matching findings. + MuteState mute_state = 4 [(google.api.field_behavior) = OPTIONAL]; } // The response to a BulkMute request. Contains the LRO information. @@ -2982,9 +2999,9 @@ message DeleteEventThreatDetectionCustomModuleRequest { // // Its format is: // - // * "organizations/{organization}/eventThreatDetectionSettings/customModules/{module}". - // * "folders/{folder}/eventThreatDetectionSettings/customModules/{module}". - // * "projects/{project}/eventThreatDetectionSettings/customModules/{module}". + // * `organizations/{organization}/eventThreatDetectionSettings/customModules/{module}`. + // * `folders/{folder}/eventThreatDetectionSettings/customModules/{module}`. + // * `projects/{project}/eventThreatDetectionSettings/customModules/{module}`. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/google/cloud/securitycenter/v1/securitycenter_v1.yaml b/google/cloud/securitycenter/v1/securitycenter_v1.yaml index f45eb5207..77cffc893 100644 --- a/google/cloud/securitycenter/v1/securitycenter_v1.yaml +++ b/google/cloud/securitycenter/v1/securitycenter_v1.yaml @@ -53,4 +53,39 @@ publishing: github_label: 'api: securitycenter' doc_tag_prefix: securitycenter organization: CLOUD + library_settings: + - version: google.cloud.securitycenter.v1 + launch_stage: GA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + cpp_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER proto_reference_documentation_uri: https://cloud.google.com/security-command-center/docs/reference/rest diff --git a/google/cloud/securitycenter/v1/vulnerability.proto b/google/cloud/securitycenter/v1/vulnerability.proto index 1464f757e..363a22efb 100644 --- a/google/cloud/securitycenter/v1/vulnerability.proto +++ b/google/cloud/securitycenter/v1/vulnerability.proto @@ -119,6 +119,9 @@ message Cve { // Whether or not the vulnerability was zero day when the finding was // published. bool zero_day = 8; + + // Date the first publicly available exploit or PoC was released. + google.protobuf.Timestamp exploit_release_date = 9; } // Additional Links diff --git a/google/cloud/securitycenter/v2/BUILD.bazel b/google/cloud/securitycenter/v2/BUILD.bazel index ea708652d..23f70c39e 100644 --- a/google/cloud/securitycenter/v2/BUILD.bazel +++ b/google/cloud/securitycenter/v2/BUILD.bazel @@ -392,6 +392,7 @@ load( csharp_proto_library( name = "securitycenter_csharp_proto", + extra_opts = [], deps = [":securitycenter_proto"], ) diff --git a/google/cloud/securitycenter/v2/attack_exposure.proto b/google/cloud/securitycenter/v2/attack_exposure.proto index 8e39ee703..90397f038 100644 --- a/google/cloud/securitycenter/v2/attack_exposure.proto +++ b/google/cloud/securitycenter/v2/attack_exposure.proto @@ -51,7 +51,7 @@ message AttackExposure { // The resource name of the attack path simulation result that contains the // details regarding this attack exposure score. - // Example: organizations/123/simulations/456/attackExposureResults/789 + // Example: `organizations/123/simulations/456/attackExposureResults/789` string attack_exposure_result = 3; // Output only. What state this AttackExposure is in. This captures whether or diff --git a/google/cloud/securitycenter/v2/attack_path.proto b/google/cloud/securitycenter/v2/attack_path.proto index b41641b0e..f7a20bbbe 100644 --- a/google/cloud/securitycenter/v2/attack_path.proto +++ b/google/cloud/securitycenter/v2/attack_path.proto @@ -41,7 +41,7 @@ message AttackPath { // A finding that is associated with this node in the attack path. message PathNodeAssociatedFinding { // Canonical name of the associated findings. Example: - // organizations/123/sources/456/findings/789 + // `organizations/123/sources/456/findings/789` string canonical_finding = 1; // The additional taxonomy group within findings from a given source. @@ -90,11 +90,11 @@ message AttackPath { // The name of the resource at this point in the attack path. // The format of the name follows the Cloud Asset Inventory [resource // name - // format]("https://cloud.google.com/asset-inventory/docs/resource-name-format") + // format](https://cloud.google.com/asset-inventory/docs/resource-name-format) string resource = 1; // The [supported resource - // type](https://cloud.google.com/asset-inventory/docs/supported-asset-types") + // type](https://cloud.google.com/asset-inventory/docs/supported-asset-types) string resource_type = 2; // Human-readable name of this resource. diff --git a/google/cloud/securitycenter/v2/bigquery_export.proto b/google/cloud/securitycenter/v2/bigquery_export.proto index 961d5ead3..5d226fb92 100644 --- a/google/cloud/securitycenter/v2/bigquery_export.proto +++ b/google/cloud/securitycenter/v2/bigquery_export.proto @@ -39,7 +39,7 @@ message BigQueryExport { singular: "bigQueryExport" }; - // The relative resource name of this export. See: + // Identifier. The relative resource name of this export. See: // https://cloud.google.com/apis/design/resource_names#relative_resource_name. // The following list shows some examples: // @@ -51,7 +51,7 @@ message BigQueryExport { // // This field is provided in responses, and is ignored when provided in create // requests. - string name = 1; + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // The description of the export (max of 1024 characters). string description = 2; @@ -80,7 +80,7 @@ message BigQueryExport { // 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 + // BigQuery dataset unique ID must contain only letters (a-z, A-Z), numbers // (0-9), or underscores (_). string dataset = 4; diff --git a/google/cloud/securitycenter/v2/finding.proto b/google/cloud/securitycenter/v2/finding.proto index ee5ca55c7..b59866cb7 100644 --- a/google/cloud/securitycenter/v2/finding.proto +++ b/google/cloud/securitycenter/v2/finding.proto @@ -167,6 +167,41 @@ message Finding { UNDEFINED = 3; } + // Mute information about the finding, including whether the finding has a + // static mute or any matching dynamic mute rules. + message MuteInfo { + // Information about the static mute state. A static mute state overrides + // any dynamic mute rules that apply to this finding. The static mute state + // can be set by a static mute rule or by muting the finding directly. + message StaticMute { + // The static mute state. If the value is `MUTED` or `UNMUTED`, then the + // finding's overall mute state will have the same value. + Mute state = 1; + + // When the static mute was applied. + google.protobuf.Timestamp apply_time = 2; + } + + // The record of a dynamic mute rule that matches the finding. + message DynamicMuteRecord { + // The relative resource name of the mute rule, represented by a mute + // config, that created this record, for example + // `organizations/123/muteConfigs/mymuteconfig` or + // `organizations/123/locations/global/muteConfigs/mymuteconfig`. + string mute_config = 1; + + // When the dynamic mute rule first matched the finding. + google.protobuf.Timestamp match_time = 2; + } + + // If set, the static mute applied to this finding. Static mutes override + // dynamic mutes. If unset, there is no static mute. + StaticMute static_mute = 1; + + // The list of dynamic mute rules that currently match the finding. + repeated DynamicMuteRecord dynamic_mute_records = 2; + } + // Represents what kind of Finding it is. enum FindingClass { // Unspecified finding class. @@ -300,6 +335,9 @@ message Finding { // shouldn't set the value of mute. Mute mute = 15; + // Output only. The mute information regarding this finding. + MuteInfo mute_info = 53 [(google.api.field_behavior) = OUTPUT_ONLY]; + // The class of the finding. FindingClass finding_class = 16; diff --git a/google/cloud/securitycenter/v2/mitre_attack.proto b/google/cloud/securitycenter/v2/mitre_attack.proto index 7c2b56c04..4907bc84f 100644 --- a/google/cloud/securitycenter/v2/mitre_attack.proto +++ b/google/cloud/securitycenter/v2/mitre_attack.proto @@ -78,7 +78,7 @@ message MitreAttack { // MITRE ATT&CK techniques that can be referenced by SCC findings. // See: https://attack.mitre.org/techniques/enterprise/ - // Next ID: 63 + // Next ID: 65 enum Technique { // Unspecified value. TECHNIQUE_UNSPECIFIED = 0; @@ -110,12 +110,18 @@ message MitreAttack { // T1059.006 PYTHON = 59; + // T1068 + EXPLOITATION_FOR_PRIVILEGE_ESCALATION = 63; + // T1069 PERMISSION_GROUPS_DISCOVERY = 18; // T1069.003 CLOUD_GROUPS = 19; + // T1070.004 + INDICATOR_REMOVAL_FILE_DELETION = 64; + // T1071 APPLICATION_LAYER_PROTOCOL = 45; @@ -257,7 +263,7 @@ message MitreAttack { // T1595.001 SCANNING_IP_BLOCKS = 2; - // T1613 + // T1609 CONTAINER_ADMINISTRATION_COMMAND = 60; // T1611 diff --git a/google/cloud/securitycenter/v2/mute_config.proto b/google/cloud/securitycenter/v2/mute_config.proto index 48cad505c..d78c43b11 100644 --- a/google/cloud/securitycenter/v2/mute_config.proto +++ b/google/cloud/securitycenter/v2/mute_config.proto @@ -52,10 +52,18 @@ message MuteConfig { // findings to muted. Once the static mute state has been set, finding or // config modifications will not affect the state. STATIC = 1; + + // A dynamic mute config, which is applied to existing and future matching + // findings, setting their dynamic mute state to "muted". If the config is + // updated or deleted, or a matching finding is updated, such that the + // finding doesn't match the config, the config will be removed from the + // finding, and the finding's dynamic mute state may become "unmuted" + // (unless other configs still match). + DYNAMIC = 2; } - // This field will be ignored if provided on config creation. The following - // list shows some examples of the format: + // Identifier. This field will be ignored if provided on config creation. The + // following list shows some examples of the format: // // + `organizations/{organization}/muteConfigs/{mute_config}` // + @@ -64,7 +72,7 @@ message MuteConfig { // + `folders/{folder}/locations/{location}/muteConfigs/{mute_config}` // + `projects/{project}/muteConfigs/{mute_config}` // + `projects/{project}/locations/{location}/muteConfigs/{mute_config}` - string name = 1; + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // A description of the mute config. string description = 2; @@ -111,4 +119,10 @@ message MuteConfig { // Required. The type of the mute config, which determines what type of mute // state the config affects. Immutable after creation. MuteConfigType type = 8 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The expiry of the mute config. Only applicable for dynamic + // configs. If the expiry is set, when the config expires, it is removed from + // all findings. + google.protobuf.Timestamp expiry_time = 9 + [(google.api.field_behavior) = OPTIONAL]; } diff --git a/google/cloud/securitycenter/v2/notification_config.proto b/google/cloud/securitycenter/v2/notification_config.proto index b94d4098e..88d0a0010 100644 --- a/google/cloud/securitycenter/v2/notification_config.proto +++ b/google/cloud/securitycenter/v2/notification_config.proto @@ -72,7 +72,7 @@ message NotificationConfig { string filter = 1; } - // The relative resource name of this notification config. See: + // Identifier. The relative resource name of this notification config. See: // https://cloud.google.com/apis/design/resource_names#relative_resource_name // The following list shows some examples: // + @@ -81,7 +81,7 @@ message NotificationConfig { // `folders/{folder_id}/locations/{location_id}/notificationConfigs/notify_public_bucket` // + // `projects/{project_id}/locations/{location_id}/notificationConfigs/notify_public_bucket` - string name = 1; + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // The description of the notification config (max of 1024 characters). string description = 2; diff --git a/google/cloud/securitycenter/v2/resource.proto b/google/cloud/securitycenter/v2/resource.proto index 0bf07600b..5f39c7179 100644 --- a/google/cloud/securitycenter/v2/resource.proto +++ b/google/cloud/securitycenter/v2/resource.proto @@ -64,13 +64,13 @@ message Resource { // A string representation of the resource path. // For Google Cloud, it has the format of - // organizations/{organization_id}/folders/{folder_id}/folders/{folder_id}/projects/{project_id} + // `organizations/{organization_id}/folders/{folder_id}/folders/{folder_id}/projects/{project_id}` // where there can be any number of folders. // For AWS, it has the format of - // org/{organization_id}/ou/{organizational_unit_id}/ou/{organizational_unit_id}/account/{account_id} + // `org/{organization_id}/ou/{organizational_unit_id}/ou/{organizational_unit_id}/account/{account_id}` // where there can be any number of organizational units. // For Azure, it has the format of - // mg/{management_group_id}/mg/{management_group_id}/subscription/{subscription_id}/rg/{resource_group_name} + // `mg/{management_group_id}/mg/{management_group_id}/subscription/{subscription_id}/rg/{resource_group_name}` // where there can be any number of management groups. string resource_path_string = 11; } @@ -168,7 +168,7 @@ message AzureMetadata { // Represents an Azure management group. message AzureManagementGroup { // The UUID of the Azure management group, for example, - // "20000000-0001-0000-0000-000000000000". + // `20000000-0001-0000-0000-000000000000`. string id = 1; // The display name of the Azure management group. @@ -178,7 +178,7 @@ message AzureMetadata { // Represents an Azure subscription. message AzureSubscription { // The UUID of the Azure subscription, for example, - // "291bba3f-e0a5-47bc-a099-3bdcb2a50a05". + // `291bba3f-e0a5-47bc-a099-3bdcb2a50a05`. string id = 1; // The display name of the Azure subscription. diff --git a/google/cloud/securitycenter/v2/resource_value_config.proto b/google/cloud/securitycenter/v2/resource_value_config.proto index 683fb1345..42d3e0697 100644 --- a/google/cloud/securitycenter/v2/resource_value_config.proto +++ b/google/cloud/securitycenter/v2/resource_value_config.proto @@ -53,34 +53,34 @@ message ResourceValueConfig { ResourceValue medium_sensitivity_mapping = 2; } - // Name for the resource value configuration - string name = 1; + // Identifier. Name for the resource value configuration + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // Resource value level this expression represents - // Only required when there is no SDP mapping in the request + // Only required when there is no Sensitive Data Protection mapping in the + // request ResourceValue resource_value = 2; - // Required. Tag values combined with <code>AND</code> to check against. + // Tag values combined with `AND` to check against. // Values in the form "tagValues/123" - // Example: [ "tagValues/123", "tagValues/456", "tagValues/789" ] + // Example: `[ "tagValues/123", "tagValues/456", "tagValues/789" ]` // https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing - repeated string tag_values = 3 [(google.api.field_behavior) = REQUIRED]; + repeated string tag_values = 3; // Apply resource_value only to resources that match resource_type. - // resource_type will be checked with <code>AND</code> of other resources. + // resource_type will be checked with `AND` of other resources. // For example, "storage.googleapis.com/Bucket" with resource_value "HIGH" // will apply "HIGH" value only to "storage.googleapis.com/Bucket" resources. string resource_type = 4; // Project or folder to scope this configuration to. // For example, "project/456" would apply this configuration only to resources - // in "project/456" scope will be checked with <code>AND</code> of other - // resources. + // in "project/456" scope and will be checked with `AND` of other resources. string scope = 5; - // List of resource labels to search for, evaluated with <code>AND</code>. + // List of resource labels to search for, evaluated with `AND`. // For example, "resource_labels_selector": {"key": "value", "env": "prod"} - // will match resources with labels "key": "value" <code>AND</code> "env": + // will match resources with labels "key": "value" `AND` "env": // "prod" // https://cloud.google.com/resource-manager/docs/creating-managing-labels map<string, string> resource_labels_selector = 6; diff --git a/google/cloud/securitycenter/v2/securitycenter_service.proto b/google/cloud/securitycenter/v2/securitycenter_service.proto index f14bfaa8e..effa76a16 100644 --- a/google/cloud/securitycenter/v2/securitycenter_service.proto +++ b/google/cloud/securitycenter/v2/securitycenter_service.proto @@ -929,6 +929,18 @@ message BatchCreateResourceValueConfigsResponse { // which they get executed is not defined. // 2. Once a bulk operation is started, there is no way to stop it. message BulkMuteFindingsRequest { + // The mute state. + enum MuteState { + // Unused. + MUTE_STATE_UNSPECIFIED = 0; + + // Matching findings will be muted (default). + MUTED = 1; + + // Matching findings will have their mute state cleared. + UNDEFINED = 2; + } + // Required. The parent, at which bulk action needs to be applied. If no // location is specified, findings are updated in global. The following list // shows some examples: @@ -965,6 +977,11 @@ message BulkMuteFindingsRequest { // * integer literals without quotes. // * boolean literals `true` and `false` without quotes. string filter = 2; + + // Optional. All findings matching the given filter will have their mute state + // set to this value. The default value is `MUTED`. Setting this to + // `UNDEFINED` will clear the mute state on all matching findings. + MuteState mute_state = 3 [(google.api.field_behavior) = OPTIONAL]; } // The response to a BulkMute request. Contains the LRO information. @@ -973,9 +990,9 @@ message BulkMuteFindingsResponse {} // Request message for creating a BigQuery export. message CreateBigQueryExportRequest { // Required. The name of the parent resource of the new BigQuery export. Its - // format is "organizations/[organization_id]/locations/[location_id]", - // "folders/[folder_id]/locations/[location_id]", or - // "projects/[project_id]/locations/[location_id]". + // format is `organizations/[organization_id]/locations/[location_id]`, + // `folders/[folder_id]/locations/[location_id]`, or + // `projects/[project_id]/locations/[location_id]`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1021,9 +1038,9 @@ message CreateFindingRequest { // Request message for creating a mute config. message CreateMuteConfigRequest { // Required. Resource name of the new mute configs's parent. Its format is - // "organizations/[organization_id]/locations/[location_id]", - // "folders/[folder_id]/locations/[location_id]", or - // "projects/[project_id]/locations/[location_id]". + // `organizations/[organization_id]/locations/[location_id]`, + // `folders/[folder_id]/locations/[location_id]`, or + // `projects/[project_id]/locations/[location_id]`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1044,9 +1061,9 @@ message CreateMuteConfigRequest { // Request message for creating a notification config. message CreateNotificationConfigRequest { // Required. Resource name of the new notification config's parent. Its format - // is "organizations/[organization_id]/locations/[location_id]", - // "folders/[folder_id]/locations/[location_id]", or - // "projects/[project_id]/locations/[location_id]". + // is `organizations/[organization_id]/locations/[location_id]`, + // `folders/[folder_id]/locations/[location_id]`, or + // `projects/[project_id]/locations/[location_id]`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1085,7 +1102,7 @@ message CreateResourceValueConfigRequest { // Request message for creating a source. message CreateSourceRequest { // Required. Resource name of the new source's parent. Its format should be - // "organizations/[organization_id]". + // `organizations/[organization_id]`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1238,7 +1255,7 @@ message GetResourceValueConfigRequest { // Request message for getting a source. message GetSourceRequest { // Required. Relative resource name of the source. Its format is - // "organizations/[organization_id]/source/[source_id]". + // `organizations/[organization_id]/source/[source_id]`. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1371,10 +1388,10 @@ message ListAttackPathsRequest { // Required. Name of parent to list attack paths. // // Valid formats: - // "organizations/{organization}", - // "organizations/{organization}/simulations/{simulation}" - // "organizations/{organization}/simulations/{simulation}/attackExposureResults/{attack_exposure_result_v2}" - // "organizations/{organization}/simulations/{simulation}/valuedResources/{valued_resource}" + // `organizations/{organization}`, + // `organizations/{organization}/simulations/{simulation}` + // `organizations/{organization}/simulations/{simulation}/attackExposureResults/{attack_exposure_result_v2}` + // `organizations/{organization}/simulations/{simulation}/valuedResources/{valued_resource}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1416,8 +1433,8 @@ message GetSimulationRequest { // Required. The organization name or simulation name of this simulation // // Valid format: - // "organizations/{organization}/simulations/latest" - // "organizations/{organization}/simulations/{simulation}" + // `organizations/{organization}/simulations/latest` + // `organizations/{organization}/simulations/{simulation}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1431,7 +1448,7 @@ message GetValuedResourceRequest { // Required. The name of this valued resource // // Valid format: - // "organizations/{organization}/simulations/{simulation}/valuedResources/{valued_resource}" + // `organizations/{organization}/simulations/{simulation}/valuedResources/{valued_resource}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1444,9 +1461,9 @@ message GetValuedResourceRequest { // organization, folder or project. message ListBigQueryExportsRequest { // Required. The parent, which owns the collection of BigQuery exports. Its - // format is "organizations/[organization_id]/locations/[location_id]", - // "folders/[folder_id]/locations/[location_id]", or - // "projects/[project_id]/locations/[location_id]". + // format is `organizations/[organization_id]/locations/[location_id]`, + // `folders/[folder_id]/locations/[location_id]`, or + // `projects/[project_id]/locations/[location_id]`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1632,13 +1649,13 @@ message ListFindingsResponse { // A string representation of the resource path. // For Google Cloud, it has the format of - // organizations/{organization_id}/folders/{folder_id}/folders/{folder_id}/projects/{project_id} + // `organizations/{organization_id}/folders/{folder_id}/folders/{folder_id}/projects/{project_id}` // where there can be any number of folders. // For AWS, it has the format of - // org/{organization_id}/ou/{organizational_unit_id}/ou/{organizational_unit_id}/account/{account_id} + // `org/{organization_id}/ou/{organizational_unit_id}/ou/{organizational_unit_id}/account/{account_id}` // where there can be any number of organizational units. // For Azure, it has the format of - // mg/{management_group_id}/mg/{management_group_id}/subscription/{subscription_id}/rg/{resource_group_name} + // `mg/{management_group_id}/mg/{management_group_id}/subscription/{subscription_id}/rg/{resource_group_name}` // where there can be any number of management groups. string resource_path_string = 11; } @@ -1666,11 +1683,11 @@ message ListFindingsResponse { // global. message ListMuteConfigsRequest { // Required. The parent, which owns the collection of mute configs. Its format - // is "organizations/[organization_id]", "folders/[folder_id]", - // "projects/[project_id]", - // "organizations/[organization_id]/locations/[location_id]", - // "folders/[folder_id]/locations/[location_id]", - // "projects/[project_id]/locations/[location_id]". + // is `organizations/[organization_id]", "folders/[folder_id]`, + // `projects/[project_id]`, + // `organizations/[organization_id]/locations/[location_id]`, + // `folders/[folder_id]/locations/[location_id]`, + // `projects/[project_id]/locations/[location_id]`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1740,7 +1757,7 @@ message ListNotificationConfigsResponse { message ListResourceValueConfigsRequest { // Required. The parent, which owns the collection of resource value configs. // Its format is - // "organizations/[organization_id]" + // `organizations/[organization_id]` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1778,8 +1795,8 @@ message ListResourceValueConfigsResponse { // Request message for listing sources. message ListSourcesRequest { // Required. Resource name of the parent of sources to list. Its format should - // be "organizations/[organization_id]", "folders/[folder_id]", or - // "projects/[project_id]". + // be `organizations/[organization_id]`, `folders/[folder_id]`, or + // `projects/[project_id]`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -1812,9 +1829,9 @@ message ListValuedResourcesRequest { // Required. Name of parent to list exposed resources. // // Valid formats: - // "organizations/{organization}", - // "organizations/{organization}/simulations/{simulation}" - // "organizations/{organization}/simulations/{simulation}/attackExposureResults/{attack_exposure_result_v2}" + // `organizations/{organization}`, + // `organizations/{organization}/simulations/{simulation}` + // `organizations/{organization}/simulations/{simulation}/attackExposureResults/{attack_exposure_result_v2}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/google/cloud/securitycenter/v2/simulation.proto b/google/cloud/securitycenter/v2/simulation.proto index d682d7cbf..004a3e507 100644 --- a/google/cloud/securitycenter/v2/simulation.proto +++ b/google/cloud/securitycenter/v2/simulation.proto @@ -41,7 +41,7 @@ message Simulation { }; // Full resource name of the Simulation: - // organizations/123/simulations/456 + // `organizations/123/simulations/456` string name = 1; // Output only. Time simulation was created diff --git a/google/cloud/securitycenter/v2/vulnerability.proto b/google/cloud/securitycenter/v2/vulnerability.proto index 211fd9fcd..f7e5a76ab 100644 --- a/google/cloud/securitycenter/v2/vulnerability.proto +++ b/google/cloud/securitycenter/v2/vulnerability.proto @@ -119,6 +119,9 @@ message Cve { // Whether or not the vulnerability was zero day when the finding was // published. bool zero_day = 8; + + // Date the first publicly available exploit or PoC was released. + google.protobuf.Timestamp exploit_release_date = 9; } // Additional Links diff --git a/google/cloud/servicedirectory/v1/BUILD.bazel b/google/cloud/servicedirectory/v1/BUILD.bazel index 4136090fc..7e0a9d7bf 100644 --- a/google/cloud/servicedirectory/v1/BUILD.bazel +++ b/google/cloud/servicedirectory/v1/BUILD.bazel @@ -226,7 +226,7 @@ php_gapic_library( name = "servicedirectory_php_gapic", srcs = [":servicedirectory_proto_with_info"], grpc_service_config = "servicedirectory_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "servicedirectory_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/shell/v1/BUILD.bazel b/google/cloud/shell/v1/BUILD.bazel index ac3c0794d..efad4b08b 100644 --- a/google/cloud/shell/v1/BUILD.bazel +++ b/google/cloud/shell/v1/BUILD.bazel @@ -209,7 +209,7 @@ php_gapic_library( name = "shell_php_gapic", srcs = [":shell_proto_with_info"], grpc_service_config = "cloudshell_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "cloudshell_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/speech/v2/BUILD.bazel b/google/cloud/speech/v2/BUILD.bazel index 8e1ceb06d..90945cb12 100644 --- a/google/cloud/speech/v2/BUILD.bazel +++ b/google/cloud/speech/v2/BUILD.bazel @@ -9,24 +9,29 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "speech_proto", srcs = [ "cloud_speech.proto", + "locations_metadata.proto", ], deps = [ "//google/api:annotations_proto", "//google/api:client_proto", "//google/api:field_behavior_proto", + "//google/api:field_info_proto", "//google/api:resource_proto", "//google/longrunning:operations_proto", "//google/rpc:status_proto", @@ -48,6 +53,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -112,6 +118,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -166,6 +173,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -205,6 +213,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -242,6 +251,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -272,6 +282,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -326,6 +337,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -373,6 +385,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/google/cloud/speech/v2/cloud_speech.proto b/google/cloud/speech/v2/cloud_speech.proto index 50d2757c6..9dde42f2d 100644 --- a/google/cloud/speech/v2/cloud_speech.proto +++ b/google/cloud/speech/v2/cloud_speech.proto @@ -19,6 +19,7 @@ package google.cloud.speech.v2; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; import "google/api/resource.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/duration.proto"; @@ -706,7 +707,11 @@ message Recognizer { // // * WEBM_OPUS: Opus audio frames in a WebM container. // -// * M4A: M4A audio format. +// * MP4_AAC: AAC audio frames in an MP4 container. +// +// * M4A_AAC: AAC audio frames in an M4A container. +// +// * MOV_AAC: AAC audio frames in an MOV container. message AutoDetectDecodingConfig {} // Explicitly specified decoding parameters. @@ -1020,6 +1025,9 @@ message RecognizeRequest { // Metadata about the recognition request and response. message RecognitionResponseMetadata { + // Global request identifier auto-generated by the API. + string request_id = 9 [(google.api.field_info).format = UUID4]; + // When available, billed audio seconds for the corresponding request. google.protobuf.Duration total_billed_duration = 6; } @@ -1273,7 +1281,7 @@ message BatchRecognizeRequest { google.protobuf.FieldMask config_mask = 5; // Audio files with file metadata for ASR. - // The maximum number of files allowed to be specified is 5. + // The maximum number of files allowed to be specified is 15. repeated BatchRecognizeFileMetadata files = 3; // Configuration options for where to output the transcripts of each file. diff --git a/google/cloud/speech/v2/locations_metadata.proto b/google/cloud/speech/v2/locations_metadata.proto new file mode 100644 index 000000000..ef4d844c2 --- /dev/null +++ b/google/cloud/speech/v2/locations_metadata.proto @@ -0,0 +1,80 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY 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; + +option go_package = "cloud.google.com/go/speech/apiv2/speechpb;speechpb"; +option java_multiple_files = true; +option java_outer_classname = "LocationsMetadataProto"; +option java_package = "com.google.cloud.speech.v2"; + +// Representes a singular feature of a model. If the feature is `recognizer`, +// the release_state of the feature represents the release_state of the model +message ModelFeature { + // The name of the feature (Note: the feature can be `recognizer`) + string feature = 1; + + // The release state of the feature + string release_state = 2; +} + +// Represents the collection of features belonging to a model +message ModelFeatures { + // Repeated field that contains all features of the model + repeated ModelFeature model_feature = 1; +} + +// The metadata about the models in a given region for a specific locale. +// Currently this is just the features of the model +message ModelMetadata { + // Map of the model name -> features of that model + map<string, ModelFeatures> model_features = 1; +} + +// The metadata about locales available in a given region. Currently this is +// just the models that are available for each locale +message LanguageMetadata { + // Map of locale (language code) -> models + map<string, ModelMetadata> models = 1; +} + +// The access metadata for a particular region. This can be applied if the org +// policy for the given project disallows a particular region. +message AccessMetadata { + // Describes the different types of constraints that can be applied on a + // region. + enum ConstraintType { + // Unspecified constraint applied. + CONSTRAINT_TYPE_UNSPECIFIED = 0; + + // The project's org policy disallows the given region. + RESOURCE_LOCATIONS_ORG_POLICY_CREATE_CONSTRAINT = 1; + } + + // Describes the different types of constraints that are applied. + ConstraintType constraint_type = 1; +} + +// Main metadata for the Locations API for STT V2. Currently this is just the +// metadata about locales, models, and features +message LocationsMetadata { + // Information about available locales, models, and features represented in + // the hierarchical structure of locales -> models -> features + LanguageMetadata languages = 1; + + // Information about access metadata for the region and given project. + AccessMetadata access_metadata = 2; +} diff --git a/google/cloud/speech/v2/speech_v2.yaml b/google/cloud/speech/v2/speech_v2.yaml index 513dc7db6..01de842e0 100644 --- a/google/cloud/speech/v2/speech_v2.yaml +++ b/google/cloud/speech/v2/speech_v2.yaml @@ -14,6 +14,7 @@ types: - name: google.cloud.speech.v2.Config - name: google.cloud.speech.v2.CustomClass - name: google.cloud.speech.v2.ExplicitDecodingConfig +- name: google.cloud.speech.v2.LocationsMetadata - name: google.cloud.speech.v2.OperationMetadata - name: google.cloud.speech.v2.PhraseSet - name: google.cloud.speech.v2.Recognizer diff --git a/google/cloud/sql/BUILD.bazel b/google/cloud/sql/BUILD.bazel new file mode 100644 index 000000000..9bcb20145 --- /dev/null +++ b/google/cloud/sql/BUILD.bazel @@ -0,0 +1,36 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-sql. + +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", +) + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +# Generates a Ruby wrapper client for sqladmin. +# 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 = "sqladmin_ruby_wrapper", + srcs = ["//google/cloud/sql/v1:sql_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-sql", + "ruby-cloud-wrapper-of=v1:0.0", + ], + service_yaml = "//google/cloud/sql/v1:sqladmin_v1.yaml", + transport = "grpc+rest", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-sql-ruby", + deps = [ + ":sqladmin_ruby_wrapper", + ], +) diff --git a/google/cloud/sql/v1/BUILD.bazel b/google/cloud/sql/v1/BUILD.bazel index d538616b3..66f33d49c 100644 --- a/google/cloud/sql/v1/BUILD.bazel +++ b/google/cloud/sql/v1/BUILD.bazel @@ -9,14 +9,15 @@ # * 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"]) +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", "nodejs_gapic_assembly_pkg", "nodejs_gapic_library", "php_gapic_assembly_pkg", "php_gapic_library", "php_proto_library", "proto_library_with_info", "py_gapic_assembly_pkg", "py_gapic_library", "py_test", "ruby_cloud_gapic_library", "ruby_gapic_assembly_pkg", "ruby_grpc_library", "ruby_proto_library") ############################################################################## # Common ############################################################################## load("@rules_proto//proto:defs.bzl", "proto_library") -load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) proto_library( name = "sql_proto", @@ -58,15 +59,6 @@ proto_library_with_info( ], ) -############################################################################## -# Java -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "java_grpc_library", - "java_proto_library", -) - java_proto_library( name = "sql_java_proto", deps = [":sql_proto"], @@ -125,14 +117,6 @@ java_grpc_library( # include_samples = True, # ) -############################################################################## -# Go -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "go_proto_library", -) - go_proto_library( name = "sql_go_proto", compilers = ["@io_bazel_rules_go//proto:go_grpc"], @@ -171,16 +155,6 @@ go_proto_library( # ], # ) -############################################################################## -# Python -############################################################################## -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"], @@ -210,16 +184,6 @@ py_gapic_assembly_pkg( ], ) -############################################################################## -# PHP -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "php_gapic_assembly_pkg", - "php_gapic_library", - "php_proto_library", -) - php_proto_library( name = "sql_php_proto", deps = [":sql_proto"], @@ -247,15 +211,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 = "sql_nodejs_gapic", package_name = "@google-cloud/sql", @@ -277,17 +232,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 = "sql_ruby_proto", deps = [":sql_proto"], @@ -323,15 +267,6 @@ ruby_gapic_assembly_pkg( ], ) -############################################################################## -# C# -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "csharp_grpc_library", - "csharp_proto_library", -) - csharp_proto_library( name = "sql_csharp_proto", extra_opts = [], @@ -368,15 +303,6 @@ csharp_grpc_library( # ], # ) -############################################################################## -# C++ -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "cc_grpc_library", - "cc_proto_library", -) - cc_proto_library( name = "sql_cc_proto", deps = [":sql_proto"], diff --git a/google/cloud/sql/v1/cloud_sql_backup_runs.proto b/google/cloud/sql/v1/cloud_sql_backup_runs.proto index 53e4ff19d..14097c2f6 100644 --- a/google/cloud/sql/v1/cloud_sql_backup_runs.proto +++ b/google/cloud/sql/v1/cloud_sql_backup_runs.proto @@ -187,6 +187,10 @@ message BackupRun { // Backup time zone to prevent restores to an instance with // a different time zone. Now relevant only for SQL Server. string time_zone = 23; + + // Output only. The maximum chargeable bytes for the backup. + optional int64 max_chargeable_bytes = 24 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Backup run list results. diff --git a/google/cloud/sql/v1/cloud_sql_connect.proto b/google/cloud/sql/v1/cloud_sql_connect.proto index 590e1cc8e..3ee9b6afe 100644 --- a/google/cloud/sql/v1/cloud_sql_connect.proto +++ b/google/cloud/sql/v1/cloud_sql_connect.proto @@ -73,6 +73,19 @@ message GetConnectSettingsRequest { // Connect settings retrieval response. message ConnectSettings { + // Various Certificate Authority (CA) modes for certificate signing. + enum CaMode { + // CA mode is unknown. + CA_MODE_UNSPECIFIED = 0; + + // Google-managed self-signed internal CA. + GOOGLE_MANAGED_INTERNAL_CA = 1; + + // Google-managed regional CA part of root CA hierarchy hosted on Google + // Cloud's Certificate Authority Service (CAS). + GOOGLE_MANAGED_CAS_CA = 2; + } + // This is always `sql#connectSettings`. string kind = 1; @@ -110,6 +123,9 @@ message ConnectSettings { // The dns name of the instance. string dns_name = 34; + + // Specify what type of CA is used for the server certificate. + CaMode server_ca_mode = 35; } // Ephemeral certificate creation request. diff --git a/google/cloud/sql/v1/cloud_sql_instances.proto b/google/cloud/sql/v1/cloud_sql_instances.proto index d80a1367a..3c4b6a1fe 100644 --- a/google/cloud/sql/v1/cloud_sql_instances.proto +++ b/google/cloud/sql/v1/cloud_sql_instances.proto @@ -40,7 +40,9 @@ service SqlInstancesService { // instance. Required to prepare for a certificate rotation. If a CA version // was previously added but never used in a certificate rotation, this // operation replaces that version. There cannot be more than one CA version - // waiting to be rotated in. + // waiting to be rotated in. For instances that have enabled Certificate + // Authority Service (CAS) based server CA, please use AddServerCertificate to + // add a new server certificate. rpc AddServerCa(SqlInstancesAddServerCaRequest) returns (Operation) { option (google.api.http) = { post: "/v1/projects/{project}/instances/{instance}/addServerCa" @@ -207,7 +209,9 @@ service SqlInstancesService { } // Rotates the server certificate to one signed by the Certificate Authority - // (CA) version previously added with the addServerCA method. + // (CA) version previously added with the addServerCA method. For instances + // that have enabled Certificate Authority Service (CAS) based server CA, + // please use RotateServerCertificate to rotate the server certificate. rpc RotateServerCa(SqlInstancesRotateServerCaRequest) returns (Operation) { option (google.api.http) = { post: "/v1/projects/{project}/instances/{instance}/rotateServerCa" @@ -1269,6 +1273,18 @@ message DatabaseInstance { // Gemini instance configuration. optional GeminiInstanceConfig gemini_config = 55; + + // Output only. This status indicates whether the instance satisfies PZI. + // + // The status is reserved for future use. + google.protobuf.BoolValue satisfies_pzi = 56 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Input only. Whether Cloud SQL is enabled to switch storing point-in-time + // recovery log files from a data disk to Cloud Storage. + optional google.protobuf.BoolValue + switch_transaction_logs_to_cloud_storage_enabled = 57 + [(google.api.field_behavior) = INPUT_ONLY]; } // Gemini instance configuration. @@ -1617,6 +1633,10 @@ message SqlExternalSyncSettingError { // data to the destination instance, you must enable the PGAudit extension // on the instance. EXTENSIONS_NOT_ENABLED_IN_REPLICA = 48; + + // The source database has generated columns that can't be migrated. Please + // change them to regular columns before migration. + UNSUPPORTED_COLUMNS = 49; } // Can be `sql#externalSyncSettingError` or diff --git a/google/cloud/sql/v1/cloud_sql_resources.proto b/google/cloud/sql/v1/cloud_sql_resources.proto index ef549457b..87c55e5d2 100644 --- a/google/cloud/sql/v1/cloud_sql_resources.proto +++ b/google/cloud/sql/v1/cloud_sql_resources.proto @@ -349,6 +349,20 @@ message ExportContext { google.protobuf.Int32Value master_data = 1; } + // Options for exporting from a Cloud SQL for PostgreSQL instance. + message PostgresExportOptions { + // Optional. Use this option to include DROP <object> SQL statements. + // These statements are used to delete database objects before running the + // import operation. + google.protobuf.BoolValue clean = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Option to include an IF EXISTS SQL statement with each DROP + // statement produced by clean. + google.protobuf.BoolValue if_exists = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + // Tables to export, or that were exported, from the specified database. If // you specify tables, specify one and only one database. For PostgreSQL // instances, you can specify only one table. @@ -366,6 +380,10 @@ message ExportContext { // Optional. Whether or not the export should be parallel. google.protobuf.BoolValue parallel = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Options for exporting from a Cloud SQL for PostgreSQL instance. + PostgresExportOptions postgres_export_options = 6 + [(google.api.field_behavior) = OPTIONAL]; } // Options for exporting BAK files (SQL Server-only) @@ -433,6 +451,18 @@ message ExportContext { // Database instance import context. message ImportContext { message SqlImportOptions { + message PostgresImportOptions { + // Optional. The --clean flag for the pg_restore utility. This flag + // applies only if you enabled Cloud SQL to import files in parallel. + google.protobuf.BoolValue clean = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The --if-exists flag for the pg_restore utility. This flag + // applies only if you enabled Cloud SQL to import files in parallel. + google.protobuf.BoolValue if_exists = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + // Optional. The number of threads to use for parallel import. google.protobuf.Int32Value threads = 1 [(google.api.field_behavior) = OPTIONAL]; @@ -440,6 +470,10 @@ message ImportContext { // Optional. Whether or not the import should be parallel. google.protobuf.BoolValue parallel = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Options for importing from a Cloud SQL for PostgreSQL instance. + PostgresImportOptions postgres_import_options = 3 + [(google.api.field_behavior) = OPTIONAL]; } message SqlCsvImportOptions { @@ -602,6 +636,19 @@ message IpConfiguration { TRUSTED_CLIENT_CERTIFICATE_REQUIRED = 3; } + // Various Certificate Authority (CA) modes for certificate signing. + enum CaMode { + // CA mode is unknown. + CA_MODE_UNSPECIFIED = 0; + + // Google-managed self-signed internal CA. + GOOGLE_MANAGED_INTERNAL_CA = 1; + + // Google-managed regional CA part of root CA hierarchy hosted on Google + // Cloud's Certificate Authority Service (CAS). + GOOGLE_MANAGED_CAS_CA = 2; + } + // Whether the instance is assigned a public IP address or not. google.protobuf.BoolValue ipv4_enabled = 1; @@ -665,6 +712,9 @@ message IpConfiguration { // PSC settings for this instance. optional PscConfig psc_config = 9; + + // Specify what type of CA is used for the server certificate. + optional CaMode server_ca_mode = 10; } // PSC settings for a Cloud SQL instance. @@ -707,15 +757,17 @@ message LocationPreference { // Maintenance window. This specifies when a Cloud SQL instance is // restarted for system maintenance purposes. message MaintenanceWindow { - // hour of day - 0 to 23. + // Hour of day - 0 to 23. Specify in the UTC time zone. google.protobuf.Int32Value hour = 1; - // day of week (1-7), starting on Monday. + // Day of week - `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, + // `SATURDAY`, or `SUNDAY`. Specify in the UTC time zone. + // Returned in output as an integer, 1 to 7, where `1` equals Monday. google.protobuf.Int32Value day = 2; - // Maintenance timing setting: `canary` (Earlier) or `stable` (Later). - // [Learn - // more](https://cloud.google.com/sql/docs/mysql/instance-settings#maintenance-timing-2ndgen). + // Maintenance timing settings: `canary`, `stable`, or `week5`. + // For more information, see [About maintenance on Cloud SQL + // instances](https://cloud.google.com/sql/docs/mysql/maintenance). SqlUpdateTrack update_track = 3; // This is always `sql#maintenanceWindow`. @@ -999,6 +1051,9 @@ message Operation { // Switches a primary instance to a replica. This operation runs as part of // a switchover operation to the original primary instance. SWITCHOVER_TO_REPLICA = 47; + + // Updates the major version of a Cloud SQL instance. + MAJOR_VERSION_UPGRADE = 48; } // The status of an operation. @@ -1658,20 +1713,21 @@ enum SqlUpdateTrack { // This is an unknown maintenance timing preference. SQL_UPDATE_TRACK_UNSPECIFIED = 0; - // For instance update that requires a restart, this update track indicates - // your instance prefer to restart for new version early in maintenance - // window. + // For an instance with a scheduled maintenance window, this maintenance + // timing indicates that the maintenance update is scheduled 7 to 14 days + // after the notification is sent out. Also referred to as `Week 1` (Console) + // and `preview` (gcloud CLI). canary = 1; - // For instance update that requires a restart, this update track indicates - // your instance prefer to let Cloud SQL choose the timing of restart (within - // its Maintenance window, if applicable). + // For an instance with a scheduled maintenance window, this maintenance + // timing indicates that the maintenance update is scheduled 15 to 21 days + // after the notification is sent out. Also referred to as `Week 2` (Console) + // and `production` (gcloud CLI). stable = 2; - // For instance update that requires a restart, this update track indicates - // your instance prefer to let Cloud SQL choose the timing of restart (within - // its Maintenance window, if applicable) to be at least 5 weeks after the - // notification. + // For instance with a scheduled maintenance window, this maintenance + // timing indicates that the maintenance update is scheduled 35 to 42 days + // after the notification is sent out. week5 = 3; } diff --git a/google/cloud/talent/v4/BUILD.bazel b/google/cloud/talent/v4/BUILD.bazel index 918e9087f..7b98d0e31 100644 --- a/google/cloud/talent/v4/BUILD.bazel +++ b/google/cloud/talent/v4/BUILD.bazel @@ -243,7 +243,7 @@ php_gapic_library( name = "talent_php_gapic", srcs = [":talent_proto_with_info"], grpc_service_config = "talent_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "jobs_v4.yaml", transport = "grpc+rest", diff --git a/google/cloud/texttospeech/v1/cloud_tts.proto b/google/cloud/texttospeech/v1/cloud_tts.proto index ae9c11213..e545c17b6 100644 --- a/google/cloud/texttospeech/v1/cloud_tts.proto +++ b/google/cloud/texttospeech/v1/cloud_tts.proto @@ -21,12 +21,12 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.TextToSpeech.V1"; option go_package = "cloud.google.com/go/texttospeech/apiv1/texttospeechpb;texttospeechpb"; option java_multiple_files = true; option java_outer_classname = "TextToSpeechProto"; option java_package = "com.google.cloud.texttospeech.v1"; +option objc_class_prefix = "CTTS"; option php_namespace = "Google\\Cloud\\TextToSpeech\\V1"; option ruby_package = "Google::Cloud::TextToSpeech::V1"; option (google.api.resource_definition) = { @@ -58,6 +58,11 @@ service TextToSpeech { }; option (google.api.method_signature) = "input,voice,audio_config"; } + + // Performs bidirectional streaming speech synthesis: receive audio while + // sending text. + rpc StreamingSynthesize(stream StreamingSynthesizeRequest) + returns (stream StreamingSynthesizeResponse) {} } // Gender of the voice as described in @@ -145,6 +150,13 @@ message Voice { int32 natural_sample_rate_hertz = 4; } +// Used for advanced voice options. +message AdvancedVoiceOptions { + // Only for Journey voices. If false, the synthesis will be context aware + // and have higher latency. + optional bool low_latency_journey_synthesis = 1; +} + // The top-level message sent by the client for the `SynthesizeSpeech` method. message SynthesizeSpeechRequest { // Required. The Synthesizer requires either plain text or SSML as input. @@ -155,6 +167,60 @@ message SynthesizeSpeechRequest { // Required. The configuration of the synthesized audio. AudioConfig audio_config = 3 [(google.api.field_behavior) = REQUIRED]; + + // Advanced voice options. + optional AdvancedVoiceOptions advanced_voice_options = 8; +} + +// Pronunciation customization for a phrase. +message CustomPronunciationParams { + // The phonetic encoding of the phrase. + enum PhoneticEncoding { + // Not specified. + PHONETIC_ENCODING_UNSPECIFIED = 0; + + // IPA. (e.g. apple -> ˈæpəl ) + // https://en.wikipedia.org/wiki/International_Phonetic_Alphabet + PHONETIC_ENCODING_IPA = 1; + + // X-SAMPA (e.g. apple -> "{p@l" ) + // https://en.wikipedia.org/wiki/X-SAMPA + PHONETIC_ENCODING_X_SAMPA = 2; + } + + // The phrase to which the customization will be applied. + // The phrase can be multiple words (in the case of proper nouns etc), but + // should not span to a whole sentence. + optional string phrase = 1; + + // The phonetic encoding of the phrase. + optional PhoneticEncoding phonetic_encoding = 2; + + // The pronunciation of the phrase. This must be in the phonetic encoding + // specified above. + optional string pronunciation = 3; +} + +// A collection of pronunciation customizations. +message CustomPronunciations { + // The pronunciation customizations to be applied. + repeated CustomPronunciationParams pronunciations = 1; +} + +// A collection of turns for multi-speaker synthesis. +message MultiSpeakerMarkup { + // A Multi-speaker turn. + message Turn { + // Required. The speaker of the turn, for example, 'O' or 'Q'. Please refer + // to documentation for available speakers. + string speaker = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The text to speak. + string text = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Required. Speaker turns. + repeated Turn turns = 1 [(google.api.field_behavior) = REQUIRED]; } // Contains text input to be synthesized. Either `text` or `ssml` must be @@ -173,7 +239,26 @@ message SynthesisInput { // more information, see // [SSML](https://cloud.google.com/text-to-speech/docs/ssml). string ssml = 2; + + // The multi-speaker input to be synthesized. Only applicable for + // multi-speaker synthesis. + MultiSpeakerMarkup multi_speaker_markup = 4; } + + // Optional. The pronunciation customizations to be applied to the input. If + // this is set, the input will be synthesized using the given pronunciation + // customizations. + // + // The initial support will be for EFIGS (English, French, + // Italian, German, Spanish) languages, as provided in + // VoiceSelectionParams. Journey and Instant Clone voices are + // not supported yet. + // + // In order to customize the pronunciation of a phrase, there must be an exact + // match of the phrase in the input types. If using SSML, the phrase must not + // be inside a phoneme tag (entirely or partially). + CustomPronunciations custom_pronunciations = 3 + [(google.api.field_behavior) = OPTIONAL]; } // Description of which voice to use for a synthesis request. @@ -191,8 +276,9 @@ message VoiceSelectionParams { // Bokmal) instead of "no" (Norwegian)". string language_code = 1 [(google.api.field_behavior) = REQUIRED]; - // The name of the voice. If not set, the service will choose a - // voice based on the other parameters such as language_code and gender. + // The name of the voice. If both the name and the gender are not set, + // the service will choose a voice based on the other parameters such as + // language_code. string name = 2; // The preferred gender of the voice. If not set, the service will @@ -206,6 +292,11 @@ message VoiceSelectionParams { // the service will choose the custom voice matching the specified // configuration. CustomVoiceParams custom_voice = 4; + + // Optional. The configuration for a voice clone. If + // [VoiceCloneParams.voice_clone_key] is set, the service will choose the + // voice clone matching the specified configuration. + VoiceCloneParams voice_clone = 5 [(google.api.field_behavior) = OPTIONAL]; } // Description of audio data to be synthesized. @@ -293,6 +384,12 @@ message CustomVoiceParams { [deprecated = true, (google.api.field_behavior) = OPTIONAL]; } +// The configuration of Voice Clone feature. +message VoiceCloneParams { + // Required. Created by GenerateVoiceCloningKey. + string voice_cloning_key = 1 [(google.api.field_behavior) = REQUIRED]; +} + // The message returned to the client by the `SynthesizeSpeech` method. message SynthesizeSpeechResponse { // The audio data bytes encoded as specified in the request, including the @@ -302,3 +399,48 @@ message SynthesizeSpeechResponse { // whereas JSON representations use base64. bytes audio_content = 1; } + +// Provides configuration information for the StreamingSynthesize request. +message StreamingSynthesizeConfig { + // Required. The desired voice of the synthesized audio. + VoiceSelectionParams voice = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Input to be synthesized. +message StreamingSynthesisInput { + oneof input_source { + // The raw text to be synthesized. It is recommended that each input + // contains complete, terminating sentences, as this will likely result in + // better prosody in the output audio. That being said, users are free to + // input text however they please. + string text = 1; + } +} + +// Request message for the `StreamingSynthesize` method. Multiple +// `StreamingSynthesizeRequest` messages are sent in one call. +// The first message must contain a `streaming_config` that +// fully specifies the request configuration and must not contain `input`. All +// subsequent messages must only have `input` set. +message StreamingSynthesizeRequest { + // The request to be sent, either a StreamingSynthesizeConfig or + // StreamingSynthesisInput. + oneof streaming_request { + // StreamingSynthesizeConfig to be used in this streaming attempt. Only + // specified in the first message sent in a `StreamingSynthesize` call. + StreamingSynthesizeConfig streaming_config = 1; + + // Input to synthesize. Specified in all messages but the first in a + // `StreamingSynthesize` call. + StreamingSynthesisInput input = 2; + } +} + +// `StreamingSynthesizeResponse` is the only message returned to the +// client by `StreamingSynthesize` method. A series of zero or more +// `StreamingSynthesizeResponse` messages are streamed back to the client. +message StreamingSynthesizeResponse { + // The audio data bytes encoded as specified in the request. This is + // headerless LINEAR16 audio with a sample rate of 24000. + bytes audio_content = 1; +} diff --git a/google/cloud/texttospeech/v1/cloud_tts_lrs.proto b/google/cloud/texttospeech/v1/cloud_tts_lrs.proto index c8e6a7c54..985138f9a 100644 --- a/google/cloud/texttospeech/v1/cloud_tts_lrs.proto +++ b/google/cloud/texttospeech/v1/cloud_tts_lrs.proto @@ -23,7 +23,6 @@ import "google/cloud/texttospeech/v1/cloud_tts.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/timestamp.proto"; -option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.TextToSpeech.V1"; option go_package = "cloud.google.com/go/texttospeech/apiv1/texttospeechpb;texttospeechpb"; option java_multiple_files = true; @@ -60,7 +59,6 @@ message SynthesizeLongAudioRequest { string parent = 1; // Required. The Synthesizer requires either plain text or SSML as input. - // While Long Audio is in preview, SSML is temporarily unsupported. SynthesisInput input = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The configuration of the synthesized audio. diff --git a/google/cloud/texttospeech/v1/texttospeech_v1.yaml b/google/cloud/texttospeech/v1/texttospeech_v1.yaml index 2b22f1d0e..a0dc9992d 100644 --- a/google/cloud/texttospeech/v1/texttospeech_v1.yaml +++ b/google/cloud/texttospeech/v1/texttospeech_v1.yaml @@ -29,11 +29,7 @@ http: authentication: rules: - - selector: google.cloud.texttospeech.v1.TextToSpeech.ListVoices - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform - - selector: google.cloud.texttospeech.v1.TextToSpeech.SynthesizeSpeech + - selector: 'google.cloud.texttospeech.v1.TextToSpeech.*' oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/texttospeech/v1beta1/cloud_tts.proto b/google/cloud/texttospeech/v1beta1/cloud_tts.proto index 566c2bb39..6616fe854 100644 --- a/google/cloud/texttospeech/v1beta1/cloud_tts.proto +++ b/google/cloud/texttospeech/v1beta1/cloud_tts.proto @@ -21,12 +21,12 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.TextToSpeech.V1Beta1"; option go_package = "cloud.google.com/go/texttospeech/apiv1beta1/texttospeechpb;texttospeechpb"; option java_multiple_files = true; option java_outer_classname = "TextToSpeechProto"; option java_package = "com.google.cloud.texttospeech.v1beta1"; +option objc_class_prefix = "CTTS"; option php_namespace = "Google\\Cloud\\TextToSpeech\\V1beta1"; option ruby_package = "Google::Cloud::TextToSpeech::V1beta1"; option (google.api.resource_definition) = { @@ -58,6 +58,11 @@ service TextToSpeech { }; option (google.api.method_signature) = "input,voice,audio_config"; } + + // Performs bidirectional streaming speech synthesis: receive audio while + // sending text. + rpc StreamingSynthesize(stream StreamingSynthesizeRequest) + returns (stream StreamingSynthesizeResponse) {} } // Gender of the voice as described in @@ -148,6 +153,13 @@ message Voice { int32 natural_sample_rate_hertz = 4; } +// Used for advanced voice options. +message AdvancedVoiceOptions { + // Only for Journey voices. If false, the synthesis will be context aware + // and have higher latency. + optional bool low_latency_journey_synthesis = 1; +} + // The top-level message sent by the client for the `SynthesizeSpeech` method. message SynthesizeSpeechRequest { // The type of timepoint information that is returned in the response. @@ -170,6 +182,60 @@ message SynthesizeSpeechRequest { // Whether and what timepoints are returned in the response. repeated TimepointType enable_time_pointing = 4; + + // Advanced voice options. + optional AdvancedVoiceOptions advanced_voice_options = 8; +} + +// Pronunciation customization for a phrase. +message CustomPronunciationParams { + // The phonetic encoding of the phrase. + enum PhoneticEncoding { + // Not specified. + PHONETIC_ENCODING_UNSPECIFIED = 0; + + // IPA. (e.g. apple -> ˈæpəl ) + // https://en.wikipedia.org/wiki/International_Phonetic_Alphabet + PHONETIC_ENCODING_IPA = 1; + + // X-SAMPA (e.g. apple -> "{p@l" ) + // https://en.wikipedia.org/wiki/X-SAMPA + PHONETIC_ENCODING_X_SAMPA = 2; + } + + // The phrase to which the customization will be applied. + // The phrase can be multiple words (in the case of proper nouns etc), but + // should not span to a whole sentence. + optional string phrase = 1; + + // The phonetic encoding of the phrase. + optional PhoneticEncoding phonetic_encoding = 2; + + // The pronunciation of the phrase. This must be in the phonetic encoding + // specified above. + optional string pronunciation = 3; +} + +// A collection of pronunciation customizations. +message CustomPronunciations { + // The pronunciation customizations to be applied. + repeated CustomPronunciationParams pronunciations = 1; +} + +// A collection of turns for multi-speaker synthesis. +message MultiSpeakerMarkup { + // A Multi-speaker turn. + message Turn { + // Required. The speaker of the turn, for example, 'O' or 'Q'. Please refer + // to documentation for available speakers. + string speaker = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The text to speak. + string text = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Required. Speaker turns. + repeated Turn turns = 1 [(google.api.field_behavior) = REQUIRED]; } // Contains text input to be synthesized. Either `text` or `ssml` must be @@ -188,7 +254,26 @@ message SynthesisInput { // more information, see // [SSML](https://cloud.google.com/text-to-speech/docs/ssml). string ssml = 2; + + // The multi-speaker input to be synthesized. Only applicable for + // multi-speaker synthesis. + MultiSpeakerMarkup multi_speaker_markup = 4; } + + // Optional. The pronunciation customizations to be applied to the input. If + // this is set, the input will be synthesized using the given pronunciation + // customizations. + // + // The initial support will be for EFIGS (English, French, + // Italian, German, Spanish) languages, as provided in + // VoiceSelectionParams. Journey and Instant Clone voices are + // not supported yet. + // + // In order to customize the pronunciation of a phrase, there must be an exact + // match of the phrase in the input types. If using SSML, the phrase must not + // be inside a phoneme tag (entirely or partially). + CustomPronunciations custom_pronunciations = 3 + [(google.api.field_behavior) = OPTIONAL]; } // Description of which voice to use for a synthesis request. @@ -206,8 +291,9 @@ message VoiceSelectionParams { // Bokmal) instead of "no" (Norwegian)". string language_code = 1 [(google.api.field_behavior) = REQUIRED]; - // The name of the voice. If not set, the service will choose a - // voice based on the other parameters such as language_code and gender. + // The name of the voice. If both the name and the gender are not set, + // the service will choose a voice based on the other parameters such as + // language_code. string name = 2; // The preferred gender of the voice. If not set, the service will @@ -221,6 +307,11 @@ message VoiceSelectionParams { // the service will choose the custom voice matching the specified // configuration. CustomVoiceParams custom_voice = 4; + + // Optional. The configuration for a voice clone. If + // [VoiceCloneParams.voice_clone_key] is set, the service will choose the + // voice clone matching the specified configuration. + VoiceCloneParams voice_clone = 5 [(google.api.field_behavior) = OPTIONAL]; } // Description of audio data to be synthesized. @@ -308,6 +399,12 @@ message CustomVoiceParams { [deprecated = true, (google.api.field_behavior) = OPTIONAL]; } +// The configuration of Voice Clone feature. +message VoiceCloneParams { + // Required. Created by GenerateVoiceCloningKey. + string voice_cloning_key = 1 [(google.api.field_behavior) = REQUIRED]; +} + // The message returned to the client by the `SynthesizeSpeech` method. message SynthesizeSpeechResponse { // The audio data bytes encoded as specified in the request, including the @@ -334,3 +431,48 @@ message Timepoint { // Time offset in seconds from the start of the synthesized audio. double time_seconds = 3; } + +// Provides configuration information for the StreamingSynthesize request. +message StreamingSynthesizeConfig { + // Required. The desired voice of the synthesized audio. + VoiceSelectionParams voice = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Input to be synthesized. +message StreamingSynthesisInput { + oneof input_source { + // The raw text to be synthesized. It is recommended that each input + // contains complete, terminating sentences, as this will likely result in + // better prosody in the output audio. That being said, users are free to + // input text however they please. + string text = 1; + } +} + +// Request message for the `StreamingSynthesize` method. Multiple +// `StreamingSynthesizeRequest` messages are sent in one call. +// The first message must contain a `streaming_config` that +// fully specifies the request configuration and must not contain `input`. All +// subsequent messages must only have `input` set. +message StreamingSynthesizeRequest { + // The request to be sent, either a StreamingSynthesizeConfig or + // StreamingSynthesisInput. + oneof streaming_request { + // StreamingSynthesizeConfig to be used in this streaming attempt. Only + // specified in the first message sent in a `StreamingSynthesize` call. + StreamingSynthesizeConfig streaming_config = 1; + + // Input to synthesize. Specified in all messages but the first in a + // `StreamingSynthesize` call. + StreamingSynthesisInput input = 2; + } +} + +// `StreamingSynthesizeResponse` is the only message returned to the +// client by `StreamingSynthesize` method. A series of zero or more +// `StreamingSynthesizeResponse` messages are streamed back to the client. +message StreamingSynthesizeResponse { + // The audio data bytes encoded as specified in the request. This is + // headerless LINEAR16 audio with a sample rate of 24000. + bytes audio_content = 1; +} diff --git a/google/cloud/texttospeech/v1beta1/cloud_tts_lrs.proto b/google/cloud/texttospeech/v1beta1/cloud_tts_lrs.proto index d6fa1b3df..a3294e992 100644 --- a/google/cloud/texttospeech/v1beta1/cloud_tts_lrs.proto +++ b/google/cloud/texttospeech/v1beta1/cloud_tts_lrs.proto @@ -23,7 +23,6 @@ import "google/cloud/texttospeech/v1beta1/cloud_tts.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/timestamp.proto"; -option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.TextToSpeech.V1Beta1"; option go_package = "cloud.google.com/go/texttospeech/apiv1beta1/texttospeechpb;texttospeechpb"; option java_multiple_files = true; @@ -60,7 +59,6 @@ message SynthesizeLongAudioRequest { string parent = 1; // Required. The Synthesizer requires either plain text or SSML as input. - // While Long Audio is in preview, SSML is temporarily unsupported. SynthesisInput input = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The configuration of the synthesized audio. diff --git a/google/cloud/texttospeech/v1beta1/texttospeech_v1beta1.yaml b/google/cloud/texttospeech/v1beta1/texttospeech_v1beta1.yaml index d09d27ed9..a67801f97 100644 --- a/google/cloud/texttospeech/v1beta1/texttospeech_v1beta1.yaml +++ b/google/cloud/texttospeech/v1beta1/texttospeech_v1beta1.yaml @@ -29,11 +29,7 @@ http: authentication: rules: - - selector: google.cloud.texttospeech.v1beta1.TextToSpeech.ListVoices - oauth: - canonical_scopes: |- - https://www.googleapis.com/auth/cloud-platform - - selector: google.cloud.texttospeech.v1beta1.TextToSpeech.SynthesizeSpeech + - selector: 'google.cloud.texttospeech.v1beta1.TextToSpeech.*' oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform diff --git a/google/cloud/translate/v3/BUILD.bazel b/google/cloud/translate/v3/BUILD.bazel index 46aaa3549..a344296d0 100644 --- a/google/cloud/translate/v3/BUILD.bazel +++ b/google/cloud/translate/v3/BUILD.bazel @@ -9,19 +9,21 @@ # * 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"]) +load("@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", "cc_proto_library", "csharp_gapic_assembly_pkg", "csharp_gapic_library", "csharp_grpc_library", "csharp_proto_library", "go_gapic_assembly_pkg", "go_gapic_library", "go_proto_library", "java_gapic_assembly_gradle_pkg", "java_gapic_library", "java_gapic_test", "java_grpc_library", "java_proto_library", "nodejs_gapic_assembly_pkg", "nodejs_gapic_library", "php_gapic_assembly_pkg", "php_gapic_library", "php_proto_library", "proto_library_with_info", "py_gapic_assembly_pkg", "py_gapic_library", "py_test", "ruby_cloud_gapic_library", "ruby_gapic_assembly_pkg", "ruby_grpc_library", "ruby_proto_library") ############################################################################## # Common ############################################################################## load("@rules_proto//proto:defs.bzl", "proto_library") -load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) proto_library( name = "translation_proto", srcs = [ "adaptive_mt.proto", + "automl_translation.proto", "common.proto", "translation_service.proto", ], @@ -30,7 +32,9 @@ proto_library( "//google/api:client_proto", "//google/api:field_behavior_proto", "//google/api:resource_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//:timestamp_proto", @@ -45,18 +49,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 = "translation_java_proto", deps = [":translation_proto"], @@ -83,6 +75,7 @@ java_gapic_library( deps = [ ":translation_java_proto", "//google/api:api_java_proto", + "//google/iam/v1:iam_java_proto", ], ) @@ -108,16 +101,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_proto_library( name = "translation_go_proto", compilers = ["@io_bazel_rules_go//proto:go_grpc"], @@ -161,16 +144,6 @@ go_gapic_assembly_pkg( ], ) -############################################################################## -# Python -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "py_gapic_assembly_pkg", - "py_gapic_library", - "py_test", -) - py_gapic_library( name = "translation_py_gapic", srcs = [":translation_proto"], @@ -180,6 +153,7 @@ py_gapic_library( service_yaml = "translate_v3.yaml", transport = "grpc+rest", deps = [ + "//google/iam/v1:iam_policy_py_proto", ], ) @@ -201,16 +175,6 @@ py_gapic_assembly_pkg( ], ) -############################################################################## -# PHP -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "php_gapic_assembly_pkg", - "php_gapic_library", - "php_proto_library", -) - php_proto_library( name = "translation_php_proto", deps = [":translation_proto"], @@ -238,15 +202,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 = "translation_nodejs_gapic", package_name = "@google-cloud/translate", @@ -268,17 +223,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 = "translation_ruby_proto", deps = [":translation_proto"], @@ -322,17 +266,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 = "translation_csharp_proto", extra_opts = [], @@ -369,15 +302,6 @@ csharp_gapic_assembly_pkg( ], ) -############################################################################## -# C++ -############################################################################## -load( - "@com_google_googleapis_imports//:imports.bzl", - "cc_grpc_library", - "cc_proto_library", -) - cc_proto_library( name = "translation_cc_proto", deps = [":translation_proto"], diff --git a/google/cloud/translate/v3/adaptive_mt.proto b/google/cloud/translate/v3/adaptive_mt.proto index fdcbc29a4..576c13fc0 100644 --- a/google/cloud/translate/v3/adaptive_mt.proto +++ b/google/cloud/translate/v3/adaptive_mt.proto @@ -151,6 +151,58 @@ message ListAdaptiveMtDatasetsResponse { // The request for sending an AdaptiveMt translation query. message AdaptiveMtTranslateRequest { + // A pair of sentences used as reference in source and target languages. + message ReferenceSentencePair { + // Source sentence in the sentence pair. + string source_sentence = 1; + + // Target sentence in the sentence pair. + string target_sentence = 2; + } + + // A list of reference sentence pairs. + message ReferenceSentencePairList { + // Reference sentence pairs. + repeated ReferenceSentencePair reference_sentence_pairs = 1; + } + + // Message of caller-provided reference configuration. + message ReferenceSentenceConfig { + // Reference sentences pair lists. Each list will be used as the references + // to translate the sentence under "content" field at the corresponding + // index. Length of the list is required to be equal to the length of + // "content" field. + repeated ReferenceSentencePairList reference_sentence_pair_lists = 1; + + // Source language code. + string source_language_code = 2; + + // Target language code. + string target_language_code = 3; + } + + // Configures which glossary is used for a specific target language and + // defines + // options for applying that glossary. + message GlossaryConfig { + // Required. The `glossary` to be applied for this translation. + // + // The format depends on the glossary: + // + // - User-provided custom glossary: + // `projects/{project-number-or-id}/locations/{location-id}/glossaries/{glossary-id}` + string glossary = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "translate.googleapis.com/Glossary" + } + ]; + + // Optional. Indicates match is case insensitive. The default value is + // `false` if missing. + bool ignore_case = 2 [(google.api.field_behavior) = OPTIONAL]; + } + // Required. Location to make a regional call. // // Format: `projects/{project-number-or-id}/locations/{location-id}`. @@ -171,8 +223,16 @@ message AdaptiveMtTranslateRequest { ]; // Required. The content of the input in string format. - // For now only one sentence per request is supported. repeated string content = 3 [(google.api.field_behavior) = REQUIRED]; + + // Configuration for caller provided reference sentences. + optional ReferenceSentenceConfig reference_sentence_config = 6; + + // Optional. Glossary to be applied. The glossary must be + // within the same region (have the same location-id) as the model, otherwise + // an INVALID_ARGUMENT (400) error is returned. + optional GlossaryConfig glossary_config = 7 + [(google.api.field_behavior) = OPTIONAL]; } // An AdaptiveMt translation. @@ -189,6 +249,10 @@ message AdaptiveMtTranslateResponse { // Output only. The translation's language code. string language_code = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Text translation response if a glossary is provided in the request. This + // could be the same as 'translation' above if no terms apply. + repeated AdaptiveMtTranslation glossary_translations = 4; } // An AdaptiveMtFile. @@ -196,6 +260,8 @@ message AdaptiveMtFile { option (google.api.resource) = { type: "translate.googleapis.com/AdaptiveMtFile" pattern: "projects/{project}/locations/{location}/adaptiveMtDatasets/{dataset}/adaptiveMtFiles/{file}" + plural: "adaptiveMtFiles" + singular: "adaptiveMtFile" }; // Required. The resource name of the file, in form of @@ -314,6 +380,8 @@ message AdaptiveMtSentence { option (google.api.resource) = { type: "translate.googleapis.com/AdaptiveMtSentence" pattern: "projects/{project}/locations/{location}/adaptiveMtDatasets/{dataset}/adaptiveMtFiles/{file}/adaptiveMtSentences/{sentence}" + plural: "adaptiveMtSentences" + singular: "adaptiveMtSentence" }; // Required. The resource name of the file, in form of diff --git a/google/cloud/translate/v3/automl_translation.proto b/google/cloud/translate/v3/automl_translation.proto new file mode 100644 index 000000000..01d4bc9de --- /dev/null +++ b/google/cloud/translate/v3/automl_translation.proto @@ -0,0 +1,478 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.translation.v3; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/translate/v3/common.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Cloud.Translate.V3"; +option go_package = "cloud.google.com/go/translate/apiv3/translatepb;translatepb"; +option java_multiple_files = true; +option java_outer_classname = "AutoMLTranslationProto"; +option java_package = "com.google.cloud.translate.v3"; +option php_namespace = "Google\\Cloud\\Translate\\V3"; +option ruby_package = "Google::Cloud::Translate::V3"; + +// Request message for ImportData. +message ImportDataRequest { + // Required. Name of the dataset. In form of + // `projects/{project-number-or-id}/locations/{location-id}/datasets/{dataset-id}` + string dataset = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The config for the input content. + DatasetInputConfig input_config = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Input configuration for datasets. +message DatasetInputConfig { + // An input file. + message InputFile { + // Optional. Usage of the file contents. Options are TRAIN|VALIDATION|TEST, + // or UNASSIGNED (by default) for auto split. + string usage = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Source of the file containing sentence pairs. + // Supported formats are tab-separated values (.tsv) and Translation Memory + // eXchange (.tmx) . + oneof source { + // Google Cloud Storage file source. + GcsInputSource gcs_source = 3; + } + } + + // Files containing the sentence pairs to be imported to the dataset. + repeated InputFile input_files = 1; +} + +// Metadata of import data operation. +message ImportDataMetadata { + // The current state of the operation. + OperationState 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; + + // Only populated when operation doesn't succeed. + google.rpc.Status error = 4; +} + +// Request message for ExportData. +message ExportDataRequest { + // Required. Name of the dataset. In form of + // `projects/{project-number-or-id}/locations/{location-id}/datasets/{dataset-id}` + string dataset = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The config for the output content. + DatasetOutputConfig output_config = 2 + [(google.api.field_behavior) = REQUIRED]; +} + +// Output configuration for datasets. +message DatasetOutputConfig { + // Required. Specify the output. + oneof destination { + // Google Cloud Storage destination to write the output. + GcsOutputDestination gcs_destination = 1; + } +} + +// Metadata of export data operation. +message ExportDataMetadata { + // The current state of the operation. + OperationState 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; + + // Only populated when operation doesn't succeed. + google.rpc.Status error = 4; +} + +// Request message for DeleteDataset. +message DeleteDatasetRequest { + // Required. The name of the dataset to delete. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "translate.googleapis.com/Dataset" + } + ]; +} + +// Metadata of delete dataset operation. +message DeleteDatasetMetadata { + // The current state of the operation. + OperationState 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; + + // Only populated when operation doesn't succeed. + google.rpc.Status error = 4; +} + +// Request message for GetDataset. +message GetDatasetRequest { + // Required. The resource name of the dataset to retrieve. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "translate.googleapis.com/Dataset" + } + ]; +} + +// Request message for ListDatasets. +message ListDatasetsRequest { + // Required. Name of the parent project. In form of + // `projects/{project-number-or-id}/locations/{location-id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. Requested page size. The server can return fewer results than + // requested. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results for the server to return. + // Typically obtained from next_page_token field in the response of a + // ListDatasets call. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for ListDatasets. +message ListDatasetsResponse { + // The datasets read. + repeated Dataset datasets = 1; + + // A token to retrieve next page of results. + // Pass this token to the page_token field in the ListDatasetsRequest to + // obtain the corresponding page. + string next_page_token = 2; +} + +// Request message for CreateDataset. +message CreateDatasetRequest { + // Required. The project name. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The Dataset to create. + Dataset dataset = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Metadata of create dataset operation. +message CreateDatasetMetadata { + // The current state of the operation. + OperationState 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; + + // Only populated when operation doesn't succeed. + google.rpc.Status error = 4; +} + +// Request message for ListExamples. +message ListExamplesRequest { + // Required. Name of the parent dataset. In form of + // `projects/{project-number-or-id}/locations/{location-id}/datasets/{dataset-id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "translate.googleapis.com/Dataset" + } + ]; + + // Optional. An expression for filtering the examples that will be returned. + // Example filter: + // * `usage=TRAIN` + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Requested page size. The server can return fewer results than + // requested. + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results for the server to return. + // Typically obtained from next_page_token field in the response of a + // ListExamples call. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for ListExamples. +message ListExamplesResponse { + // The sentence pairs. + repeated Example examples = 1; + + // A token to retrieve next page of results. + // Pass this token to the page_token field in the ListExamplesRequest to + // obtain the corresponding page. + string next_page_token = 2; +} + +// A sentence pair. +message Example { + option (google.api.resource) = { + type: "translate.googleapis.com/Example" + pattern: "projects/{project}/locations/{location}/datasets/{dataset}/examples/{example}" + }; + + // Output only. The resource name of the example, in form of + // `projects/{project-number-or-id}/locations/{location_id}/datasets/{dataset_id}/examples/{example_id}` + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Sentence in source language. + string source_text = 2; + + // Sentence in target language. + string target_text = 3; + + // Output only. Usage of the sentence pair. Options are TRAIN|VALIDATION|TEST. + string usage = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Response message for BatchTransferResources. +message BatchTransferResourcesResponse { + // Transfer response for a single resource. + message TransferResourceResponse { + // Full name of the resource to transfer as specified in the request. + string source = 1; + + // Full name of the new resource successfully transferred from the source + // hosted by Translation API. Target will be empty if the transfer failed. + string target = 2; + + // The error result in case of failure. + google.rpc.Status error = 3; + } + + // Responses of the transfer for individual resources. + repeated TransferResourceResponse responses = 1; +} + +// A dataset that hosts the examples (sentence pairs) used for translation +// models. +message Dataset { + option (google.api.resource) = { + type: "translate.googleapis.com/Dataset" + pattern: "projects/{project}/locations/{location}/datasets/{dataset}" + }; + + // The resource name of the dataset, in form of + // `projects/{project-number-or-id}/locations/{location_id}/datasets/{dataset_id}` + string name = 1; + + // The name of the dataset to show in the interface. The name can be + // up to 32 characters long and can consist only of ASCII Latin letters A-Z + // and a-z, underscores (_), and ASCII digits 0-9. + string display_name = 2; + + // The BCP-47 language code of the source language. + string source_language_code = 3; + + // The BCP-47 language code of the target language. + string target_language_code = 4; + + // Output only. The number of examples in the dataset. + int32 example_count = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of training examples (sentence pairs). + int32 train_example_count = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of validation examples (sentence pairs). + int32 validate_example_count = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of test examples (sentence pairs). + int32 test_example_count = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this dataset was created. + google.protobuf.Timestamp create_time = 9 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this dataset was last updated. + google.protobuf.Timestamp update_time = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request message for CreateModel. +message CreateModelRequest { + // Required. The project name, in form of + // `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The Model to create. + Model model = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Metadata of create model operation. +message CreateModelMetadata { + // The current state of the operation. + OperationState 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; + + // Only populated when operation doesn't succeed. + google.rpc.Status error = 4; +} + +// Request message for ListModels. +message ListModelsRequest { + // Required. Name of the parent project. In form of + // `projects/{project-number-or-id}/locations/{location-id}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. An expression for filtering the models that will be returned. + // Supported filter: + // `dataset_id=${dataset_id}` + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Requested page size. The server can return fewer results than + // requested. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results for the server to return. + // Typically obtained from next_page_token field in the response of a + // ListModels call. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for ListModels. +message ListModelsResponse { + // The models read. + repeated Model models = 1; + + // A token to retrieve next page of results. + // Pass this token to the page_token field in the ListModelsRequest to + // obtain the corresponding page. + string next_page_token = 2; +} + +// Request message for GetModel. +message GetModelRequest { + // Required. The resource name of the model to retrieve. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "translate.googleapis.com/Model" } + ]; +} + +// Request message for DeleteModel. +message DeleteModelRequest { + // Required. The name of the model to delete. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { type: "translate.googleapis.com/Model" } + ]; +} + +// Metadata of delete model operation. +message DeleteModelMetadata { + // The current state of the operation. + OperationState 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; + + // Only populated when operation doesn't succeed. + google.rpc.Status error = 4; +} + +// A trained translation model. +message Model { + option (google.api.resource) = { + type: "translate.googleapis.com/Model" + pattern: "projects/{project}/locations/{location}/models/{model}" + }; + + // The resource name of the model, in form of + // `projects/{project-number-or-id}/locations/{location_id}/models/{model_id}` + string name = 1; + + // The name of the model to show in the interface. The name can be + // up to 32 characters long and can consist only of ASCII Latin letters A-Z + // and a-z, underscores (_), and ASCII digits 0-9. + string display_name = 2; + + // The dataset from which the model is trained, in form of + // `projects/{project-number-or-id}/locations/{location_id}/datasets/{dataset_id}` + string dataset = 3; + + // Output only. The BCP-47 language code of the source language. + string source_language_code = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The BCP-47 language code of the target language. + string target_language_code = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of examples (sentence pairs) used to train the model. + int32 train_example_count = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of examples (sentence pairs) used to validate the + // model. + int32 validate_example_count = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Number of examples (sentence pairs) used to test the model. + int32 test_example_count = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when the model resource was created, which is also + // when the training started. + google.protobuf.Timestamp create_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this model was last updated. + google.protobuf.Timestamp update_time = 10 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/translate/v3/common.proto b/google/cloud/translate/v3/common.proto index de8a44d30..8c888c0fb 100644 --- a/google/cloud/translate/v3/common.proto +++ b/google/cloud/translate/v3/common.proto @@ -17,6 +17,7 @@ syntax = "proto3"; package google.cloud.translation.v3; import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; option cc_enable_arenas = true; option csharp_namespace = "Google.Cloud.Translate.V3"; @@ -52,3 +53,80 @@ message GcsOutputDestination { // the bucket. The directory will be created if it doesn't exist. string output_uri_prefix = 1 [(google.api.field_behavior) = REQUIRED]; } + +// Possible states of long running operations. +enum OperationState { + // Invalid. + OPERATION_STATE_UNSPECIFIED = 0; + + // Request is being processed. + OPERATION_STATE_RUNNING = 1; + + // The operation was successful. + OPERATION_STATE_SUCCEEDED = 2; + + // Failed to process operation. + OPERATION_STATE_FAILED = 3; + + // Request is in the process of being canceled after caller invoked + // longrunning.Operations.CancelOperation on the request id. + OPERATION_STATE_CANCELLING = 4; + + // The operation request was successfully canceled. + OPERATION_STATE_CANCELLED = 5; +} + +// Represents a single entry in a glossary. +message GlossaryEntry { + option (google.api.resource) = { + type: "translate.googleapis.com/GlossaryEntry" + pattern: "projects/{project}/locations/{location}/glossaries/{glossary}/glossaryEntries/{glossary_entry}" + plural: "glossaryEntries" + singular: "glossaryEntry" + }; + + // Represents a single entry for an unidirectional glossary. + message GlossaryTermsPair { + // The source term is the term that will get match in the text, + GlossaryTerm source_term = 1; + + // The term that will replace the match source term. + GlossaryTerm target_term = 2; + } + + // Represents a single entry for an equivalent term set glossary. This is used + // for equivalent term sets where each term can be replaced by the other terms + // in the set. + message GlossaryTermsSet { + // Each term in the set represents a term that can be replaced by the other + // terms. + repeated GlossaryTerm terms = 1; + } + + // Identifier. The resource name of the entry. + // Format: + // `projects/*/locations/*/glossaries/*/glossaryEntries/*` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // The different data for the glossary types (Unidirectional, Equivalent term + // sets). + oneof data { + // Used for an unidirectional glossary. + GlossaryTermsPair terms_pair = 2; + + // Used for an equivalent term sets glossary. + GlossaryTermsSet terms_set = 3; + } + + // Describes the glossary entry. + string description = 4; +} + +// Represents a single glossary term +message GlossaryTerm { + // The language for this glossary term. + string language_code = 1; + + // The text for the glossary term. + string text = 2; +} diff --git a/google/cloud/translate/v3/translate_v3.yaml b/google/cloud/translate/v3/translate_v3.yaml index bc305999e..5f26127dd 100644 --- a/google/cloud/translate/v3/translate_v3.yaml +++ b/google/cloud/translate/v3/translate_v3.yaml @@ -4,7 +4,10 @@ name: translate.googleapis.com title: Cloud Translation API apis: +- name: google.cloud.location.Locations - name: google.cloud.translation.v3.TranslationService +- name: google.iam.v1.IAMPolicy +- name: google.longrunning.Operations documentation: summary: Integrates text translation into your website or application. @@ -15,17 +18,6 @@ documentation: - selector: google.cloud.location.Locations.ListLocations description: Lists information about the supported locations for this service. -backend: - rules: - - selector: google.cloud.location.Locations.GetLocation - deadline: 30.0 - - selector: google.cloud.location.Locations.ListLocations - deadline: 30.0 - - selector: 'google.longrunning.Operations.*' - deadline: 60.0 - - selector: google.longrunning.Operations.WaitOperation - deadline: 120.0 - http: rules: - selector: google.cloud.location.Locations.GetLocation diff --git a/google/cloud/translate/v3/translation_service.proto b/google/cloud/translate/v3/translation_service.proto index aa921dbff..584188ffa 100644 --- a/google/cloud/translate/v3/translation_service.proto +++ b/google/cloud/translate/v3/translation_service.proto @@ -16,13 +16,17 @@ syntax = "proto3"; package google.cloud.translation.v3; +import public "google/cloud/translate/v3/adaptive_mt.proto"; +import public "google/cloud/translate/v3/automl_translation.proto"; +import public "google/cloud/translate/v3/common.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/translate/v3/adaptive_mt.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; @@ -31,6 +35,7 @@ option go_package = "cloud.google.com/go/translate/apiv3/translatepb;translatepb option java_multiple_files = true; option java_outer_classname = "TranslationServiceProto"; option java_package = "com.google.cloud.translate.v3"; +option objc_class_prefix = "CTRL3"; option php_namespace = "Google\\Cloud\\Translate\\V3"; option ruby_package = "Google::Cloud::Translate::V3"; @@ -59,6 +64,19 @@ service TranslationService { "parent,model,mime_type,source_language_code,target_language_code,contents"; } + // Romanize input text written in non-Latin scripts to Latin text. + rpc RomanizeText(RomanizeTextRequest) returns (RomanizeTextResponse) { + option (google.api.http) = { + post: "/v3/{parent=projects/*/locations/*}:romanizeText" + body: "*" + additional_bindings { + post: "/v3/{parent=projects/*}:romanizeText" + body: "*" + } + }; + option (google.api.method_signature) = "parent,contents"; + } + // Detects the language of text within a request. rpc DetectLanguage(DetectLanguageRequest) returns (DetectLanguageResponse) { option (google.api.http) = { @@ -146,6 +164,21 @@ service TranslationService { }; } + // Updates a glossary. A LRO is used since the update can be async if the + // glossary's entry file is updated. + rpc UpdateGlossary(UpdateGlossaryRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v3/{glossary.name=projects/*/locations/*/glossaries/*}" + body: "glossary" + }; + option (google.api.method_signature) = "glossary,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Glossary" + metadata_type: "UpdateGlossaryMetadata" + }; + } + // Lists glossaries in a project. Returns NOT_FOUND, if the project doesn't // exist. rpc ListGlossaries(ListGlossariesRequest) returns (ListGlossariesResponse) { @@ -179,6 +212,93 @@ service TranslationService { }; } + // Gets a single glossary entry by the given id. + rpc GetGlossaryEntry(GetGlossaryEntryRequest) returns (GlossaryEntry) { + option (google.api.http) = { + get: "/v3/{name=projects/*/locations/*/glossaries/*/glossaryEntries/*}" + }; + option (google.api.method_signature) = "name"; + } + + // List the entries for the glossary. + rpc ListGlossaryEntries(ListGlossaryEntriesRequest) + returns (ListGlossaryEntriesResponse) { + option (google.api.http) = { + get: "/v3/{parent=projects/*/locations/*/glossaries/*}/glossaryEntries" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates a glossary entry. + rpc CreateGlossaryEntry(CreateGlossaryEntryRequest) returns (GlossaryEntry) { + option (google.api.http) = { + post: "/v3/{parent=projects/*/locations/*/glossaries/*}/glossaryEntries" + body: "glossary_entry" + }; + option (google.api.method_signature) = "parent,glossary_entry"; + } + + // Updates a glossary entry. + rpc UpdateGlossaryEntry(UpdateGlossaryEntryRequest) returns (GlossaryEntry) { + option (google.api.http) = { + patch: "/v3/{glossary_entry.name=projects/*/locations/*/glossaries/*/glossaryEntries/*}" + body: "glossary_entry" + }; + option (google.api.method_signature) = "glossary_entry"; + } + + // Deletes a single entry from the glossary + rpc DeleteGlossaryEntry(DeleteGlossaryEntryRequest) + returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v3/{name=projects/*/locations/*/glossaries/*/glossaryEntries/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a Dataset. + rpc CreateDataset(CreateDatasetRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v3/{parent=projects/*/locations/*}/datasets" + body: "dataset" + }; + option (google.api.method_signature) = "parent,dataset"; + option (google.longrunning.operation_info) = { + response_type: "Dataset" + metadata_type: "CreateDatasetMetadata" + }; + } + + // Gets a Dataset. + rpc GetDataset(GetDatasetRequest) returns (Dataset) { + option (google.api.http) = { + get: "/v3/{name=projects/*/locations/*/datasets/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists datasets. + rpc ListDatasets(ListDatasetsRequest) returns (ListDatasetsResponse) { + option (google.api.http) = { + get: "/v3/{parent=projects/*/locations/*}/datasets" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a dataset and all of its contents. + rpc DeleteDataset(DeleteDatasetRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v3/{name=projects/*/locations/*/datasets/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteDatasetMetadata" + }; + } + // Creates an Adaptive MT dataset. rpc CreateAdaptiveMtDataset(CreateAdaptiveMtDatasetRequest) returns (AdaptiveMtDataset) { @@ -275,22 +395,88 @@ service TranslationService { }; option (google.api.method_signature) = "parent"; } -} -// Configures which glossary is used for a specific target language and defines -// options for applying that glossary. -message TranslateTextGlossaryConfig { - // Required. The `glossary` to be applied for this translation. - // - // The format depends on the glossary: - // - // - User-provided custom glossary: - // `projects/{project-number-or-id}/locations/{location-id}/glossaries/{glossary-id}` - string glossary = 1 [(google.api.field_behavior) = REQUIRED]; + // Import sentence pairs into translation Dataset. + rpc ImportData(ImportDataRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v3/{dataset=projects/*/locations/*/datasets/*}:importData" + body: "*" + }; + option (google.api.method_signature) = "dataset,input_config"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "ImportDataMetadata" + }; + } - // Optional. Indicates match is case insensitive. The default value is `false` - // if missing. - bool ignore_case = 2 [(google.api.field_behavior) = OPTIONAL]; + // Exports dataset's data to the provided output location. + rpc ExportData(ExportDataRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v3/{dataset=projects/*/locations/*/datasets/*}:exportData" + body: "*" + }; + option (google.api.method_signature) = "dataset,output_config"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "ExportDataMetadata" + }; + } + + // Lists sentence pairs in the dataset. + rpc ListExamples(ListExamplesRequest) returns (ListExamplesResponse) { + option (google.api.http) = { + get: "/v3/{parent=projects/*/locations/*/datasets/*}/examples" + }; + option (google.api.method_signature) = "parent"; + } + + // Creates a Model. + rpc CreateModel(CreateModelRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v3/{parent=projects/*/locations/*}/models" + body: "model" + }; + option (google.api.method_signature) = "parent,model"; + option (google.longrunning.operation_info) = { + response_type: "Model" + metadata_type: "CreateModelMetadata" + }; + } + + // Lists models. + rpc ListModels(ListModelsRequest) returns (ListModelsResponse) { + option (google.api.http) = { + get: "/v3/{parent=projects/*/locations/*}/models" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets a model. + rpc GetModel(GetModelRequest) returns (Model) { + option (google.api.http) = { + get: "/v3/{name=projects/*/locations/*/models/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Deletes a model. + rpc DeleteModel(DeleteModelRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v3/{name=projects/*/locations/*/models/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteModelMetadata" + }; + } +} + +// Configures transliteration feature on top of translation. +message TransliterationConfig { + // If true, source text in romanized form can be translated to the target + // language. + bool enable_transliteration = 1; } // The request message for synchronous translation. @@ -346,6 +532,8 @@ message TranslateTextRequest { // - General (built-in) models: // `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, // + // - Translation LLM models: + // `projects/{project-number-or-id}/locations/{location-id}/models/general/translation-llm`, // // For global (non-regionalized) requests, use `location-id` `global`. // For example, @@ -360,6 +548,10 @@ message TranslateTextRequest { TranslateTextGlossaryConfig glossary_config = 7 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Transliteration to be applied. + TransliterationConfig transliteration_config = 13 + [(google.api.field_behavior) = OPTIONAL]; + // Optional. The labels with user-defined metadata for the request. // // Label keys and values can be no longer than 63 characters @@ -413,6 +605,55 @@ message Translation { TranslateTextGlossaryConfig glossary_config = 3; } +// The request message for synchronous romanization. +message RomanizeTextRequest { + // Required. Project or location to make a call. Must refer to a caller's + // project. + // + // Format: `projects/{project-number-or-id}/locations/{location-id}` or + // `projects/{project-number-or-id}`. + // + // For global calls, use `projects/{project-number-or-id}/locations/global` or + // `projects/{project-number-or-id}`. + string parent = 4 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The content of the input in string format. + repeated string contents = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The ISO-639 language code of the input text if + // known, for example, "hi" or "zh". If the source language isn't specified, + // the API attempts to identify the source language automatically and returns + // the source language for each content in the response. + string source_language_code = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// A single romanization response. +message Romanization { + // Romanized text. + // If an error occurs during romanization, this field might be excluded from + // the response. + string romanized_text = 1; + + // The ISO-639 language code of source text in the initial request, detected + // automatically, if no source language was passed within the initial + // request. If the source language was passed, auto-detection of the language + // does not occur and this field is empty. + string detected_language_code = 2; +} + +// The response message for synchronous romanization. +message RomanizeTextResponse { + // Text romanization responses. + // This field has the same length as + // [`contents`][google.cloud.translation.v3.RomanizeTextRequest.contents]. + repeated Romanization romanizations = 1; +} + // The request message for language detection. message DetectLanguageRequest { // Required. Project or location to make a call. Must refer to a caller's @@ -1156,6 +1397,16 @@ message CreateGlossaryRequest { Glossary glossary = 2 [(google.api.field_behavior) = REQUIRED]; } +// Request message for the update glossary flow +message UpdateGlossaryRequest { + // Required. The glossary entry to update. + Glossary glossary = 1 [(google.api.field_behavior) = REQUIRED]; + + // The list of fields to be updated. Currently only `display_name` and + // 'input_config' + google.protobuf.FieldMask update_mask = 2; +} + // Request message for GetGlossary. message GetGlossaryRequest { // Required. The name of the glossary to retrieve. @@ -1228,6 +1479,81 @@ message ListGlossariesResponse { string next_page_token = 2; } +// Request message for the Get Glossary Entry Api +message GetGlossaryEntryRequest { + // Required. The resource name of the glossary entry to get + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "translate.googleapis.com/GlossaryEntry" + } + ]; +} + +// Request message for Delete Glossary Entry +message DeleteGlossaryEntryRequest { + // Required. The resource name of the glossary entry to delete + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "translate.googleapis.com/GlossaryEntry" + } + ]; +} + +// Request message for ListGlossaryEntries +message ListGlossaryEntriesRequest { + // Required. The parent glossary resource name for listing the glossary's + // entries. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "translate.googleapis.com/Glossary" + } + ]; + + // Optional. Requested page size. The server may return fewer glossary entries + // than requested. If unspecified, the server picks an appropriate default. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token identifying a page of results the server should return. + // Typically, this is the value of + // [ListGlossaryEntriesResponse.next_page_token] returned from the previous + // call. The first page is returned if `page_token`is empty or missing. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// Response message for ListGlossaryEntries +message ListGlossaryEntriesResponse { + // Optional. The Glossary Entries + repeated GlossaryEntry glossary_entries = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A token to retrieve a page of results. Pass this value in the + // [ListGLossaryEntriesRequest.page_token] field in the subsequent calls. + string next_page_token = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Request message for CreateGlossaryEntry +message CreateGlossaryEntryRequest { + // Required. The resource name of the glossary to create the entry under. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "translate.googleapis.com/Glossary" + } + ]; + + // Required. The glossary entry to create + GlossaryEntry glossary_entry = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for UpdateGlossaryEntry +message UpdateGlossaryEntryRequest { + // Required. The glossary entry to update. + GlossaryEntry glossary_entry = 1 [(google.api.field_behavior) = REQUIRED]; +} + // Stored in the // [google.longrunning.Operation.metadata][google.longrunning.Operation.metadata] // field returned by CreateGlossary. @@ -1264,6 +1590,43 @@ message CreateGlossaryMetadata { google.protobuf.Timestamp submit_time = 3; } +// Stored in the +// [google.longrunning.Operation.metadata][google.longrunning.Operation.metadata] +// field returned by UpdateGlossary. +message UpdateGlossaryMetadata { + // Enumerates the possible states that the update request can be in. + enum State { + // Invalid. + STATE_UNSPECIFIED = 0; + + // Request is being processed. + RUNNING = 1; + + // The glossary was successfully updated. + SUCCEEDED = 2; + + // Failed to update the glossary. + FAILED = 3; + + // Request is in the process of being canceled after caller invoked + // longrunning.Operations.CancelOperation on the request id. + CANCELLING = 4; + + // The glossary update request was successfully canceled. + CANCELLED = 5; + } + + // The updated glossary object. + Glossary glossary = 1; + + // The current state of the glossary update operation. If the glossary input + // file was not updated this will be completed immediately + State state = 2; + + // The time when the operation was submitted to the server. + google.protobuf.Timestamp submit_time = 3; +} + // Stored in the // [google.longrunning.Operation.metadata][google.longrunning.Operation.metadata] // field returned by DeleteGlossary. @@ -1597,3 +1960,24 @@ message BatchTranslateDocumentMetadata { // Time when the operation was submitted. google.protobuf.Timestamp submit_time = 10; } + +// Configures which glossary is used for a specific target language and defines +// options for applying that glossary. +message TranslateTextGlossaryConfig { + // Required. The `glossary` to be applied for this translation. + // + // The format depends on the glossary: + // + // - User-provided custom glossary: + // `projects/{project-number-or-id}/locations/{location-id}/glossaries/{glossary-id}` + string glossary = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "translate.googleapis.com/Glossary" + } + ]; + + // Optional. Indicates match is case insensitive. The default value is `false` + // if missing. + bool ignore_case = 2 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/cloud/videointelligence/v1/BUILD.bazel b/google/cloud/videointelligence/v1/BUILD.bazel index 17c798e28..2ad7054fe 100644 --- a/google/cloud/videointelligence/v1/BUILD.bazel +++ b/google/cloud/videointelligence/v1/BUILD.bazel @@ -203,7 +203,7 @@ php_gapic_library( srcs = [":videointelligence_proto_with_info"], gapic_yaml = "videointelligence_gapic.yaml", grpc_service_config = "videointelligence_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "videointelligence_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/visionai/BUILD.bazel b/google/cloud/visionai/BUILD.bazel new file mode 100644 index 000000000..7047d318d --- /dev/null +++ b/google/cloud/visionai/BUILD.bazel @@ -0,0 +1,37 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-vision_ai. + +# 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 visionai. +# 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 = "visionai_ruby_wrapper", + srcs = ["//google/cloud/visionai/v1:visionai_proto_with_info"], + extra_protoc_parameters = [ + "ruby-cloud-gem-name=google-cloud-vision_ai", + "ruby-cloud-gem-namespace=Google::Cloud::VisionAI", + "ruby-cloud-wrapper-of=v1:0.0", + ], + service_yaml = "//google/cloud/visionai/v1:visionai_v1.yaml", + transport = "grpc+rest", +) + +# Open Source package. +ruby_gapic_assembly_pkg( + name = "google-cloud-visionai-ruby", + deps = [ + ":visionai_ruby_wrapper", + ], +) diff --git a/google/cloud/visionai/v1/BUILD.bazel b/google/cloud/visionai/v1/BUILD.bazel index 789364eee..f9675e997 100644 --- a/google/cloud/visionai/v1/BUILD.bazel +++ b/google/cloud/visionai/v1/BUILD.bazel @@ -323,7 +323,8 @@ ruby_cloud_gapic_library( name = "visionai_ruby_gapic", srcs = [":visionai_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-visionai-v1", + "ruby-cloud-gem-name=google-cloud-vision_ai-v1", + "ruby-cloud-gem-namespace=Google::Cloud::VisionAI::V1", ], grpc_service_config = "visionai_grpc_service_config.json", rest_numeric_enums = True, diff --git a/google/cloud/visionai/v1/visionai_v1.yaml b/google/cloud/visionai/v1/visionai_v1.yaml index 34630178d..9c739effc 100644 --- a/google/cloud/visionai/v1/visionai_v1.yaml +++ b/google/cloud/visionai/v1/visionai_v1.yaml @@ -23,6 +23,7 @@ types: - name: google.cloud.visionai.v1.AppPlatformCloudFunctionRequest - name: google.cloud.visionai.v1.AppPlatformCloudFunctionResponse - name: google.cloud.visionai.v1.AppPlatformMetadata +- name: google.cloud.visionai.v1.BatchOperationStatus - name: google.cloud.visionai.v1.BatchRunProcessResponse - name: google.cloud.visionai.v1.ClassificationPredictionResult - name: google.cloud.visionai.v1.CreateApplicationInstancesResponse @@ -180,7 +181,7 @@ authentication: https://www.googleapis.com/auth/cloud-platform publishing: - new_issue_uri: https://issuetracker.google.com/issues/new?component=187174&pli=1&template=1161261 + new_issue_uri: https://issuetracker.google.com/issues/new?component=187174&template=1161261 documentation_uri: https://cloud.google.com/vision-ai/docs api_short_name: visionai github_label: 'api: visionai' @@ -193,10 +194,30 @@ publishing: common: destinations: - PACKAGE_MANAGER + cpp_settings: + common: + destinations: + - PACKAGE_MANAGER + php_settings: + common: + destinations: + - PACKAGE_MANAGER python_settings: common: destinations: - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + ruby_settings: + common: + destinations: + - PACKAGE_MANAGER go_settings: common: destinations: diff --git a/google/cloud/visionai/v1/warehouse.proto b/google/cloud/visionai/v1/warehouse.proto index 020c101fc..19c65f72f 100644 --- a/google/cloud/visionai/v1/warehouse.proto +++ b/google/cloud/visionai/v1/warehouse.proto @@ -383,6 +383,7 @@ service Warehouse { rpc IngestAsset(stream IngestAssetRequest) returns (stream IngestAssetResponse) {} + // Supported by STREAM_VIDEO corpus type. // Generates clips for downloading. The api takes in a time range, and // generates a clip of the first content available after start_time and // before end_time, which may overflow beyond these bounds. @@ -954,13 +955,13 @@ message AnalyzeAssetMetadata { // The default process state should never happen. STATE_UNSPECIFIED = 0; - // The feature is in progress. + // The ml model analysis is in progress. IN_PROGRESS = 1; - // The process is successfully done. + // The ml model analysis is successfully done. SUCCEEDED = 2; - // The process failed. + // The ml model analysis failed. FAILED = 3; } @@ -1576,6 +1577,16 @@ message Index { // Index of IMAGE corpus can have multiple deployed indexes. repeated DeployedIndexReference deployed_indexes = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This boolean field is only set for projects that have Physical + // Zone Separation enabled via an Org Policy constraint. It is set to true + // when the index is a valid zone separated index and false if it isn't. + optional bool satisfies_pzs = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This boolean field is only set for projects that have Physical + // Zone Isolation enabled via an Org Policy constraint. It is set to true when + // the index is a valid zone isolated index and false if it isn't. + optional bool satisfies_pzi = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Points to a DeployedIndex. @@ -1638,6 +1649,16 @@ message Corpus { // Default search capability setting on corpus level. SearchCapabilitySetting search_capability_setting = 8; + + // Output only. This boolean field is only set for projects that have Physical + // Zone Separation enabled via an Org Policy constraint. It is set to true + // when the corpus is a valid zone separated corpus and false if it isn't. + optional bool satisfies_pzs = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This boolean field is only set for projects that have Physical + // Zone Isolation enabled via an Org Policy constraint. It is set to true when + // the corpus is a valid zone isolated corpus and false if it isn't. + optional bool satisfies_pzi = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Request message for GetCorpus. @@ -2302,6 +2323,21 @@ message ImportAssetsRequest { message ImportAssetsMetadata { // The metadata of the operation. OperationMetadata metadata = 1; + + // The importing status including partial failures, if the implementation can + // provide such information during the progress of the ImportAssets. + BatchOperationStatus status = 2; +} + +// The batch operation status. +message BatchOperationStatus { + // The count of assets (together with their annotations if any) successfully + // ingested. + int32 success_count = 1; + + // The count of assets failed to ingested; it might be due to the annotation + // ingestion error. + int32 failure_count = 2; } // The response message for ImportAssets LRO. @@ -2499,6 +2535,18 @@ message IndexEndpoint { // Output only. Update timestamp. google.protobuf.Timestamp update_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This boolean field is only set for projects that have Physical + // Zone Separation enabled via an Org Policy constraint. It is set to true + // when the index endpoint is a valid zone separated index endpoint and false + // if it isn't. + optional bool satisfies_pzs = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. This boolean field is only set for projects that have Physical + // Zone Isolation enabled via an Org Policy constraint. It is set to true when + // the index endpoint is a valid zone isolated index endpoint and false if it + // isn't. + optional bool satisfies_pzi = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Request message for CreateIndexEndpoint. @@ -3291,10 +3339,13 @@ message SearchResultItem { // The matched asset segment. Partition.TemporalPartition segment = 5; - // Relevance of this `SearchResultItem` to user search request. - // Currently available only in Image Warehouse, and by default represents - // cosine similarity. In the future can be other measures such as "dot - // product" or "topicality" requested in the search request. + // Available to IMAGE corpus types. + // Relevance of this `SearchResultItem` to user search query (text query or + // image query). + // By default this represents cosine similarity between the query and the + // retrieved media content. The value is in the range of [-1, 1]. + // Note that search ranking is not only decided by this relevance score, + // but also other factors such as the match of annotations. double relevance = 6; // Search result annotations specified by result_annotation_keys in search diff --git a/google/cloud/vmwareengine/v1/BUILD.bazel b/google/cloud/vmwareengine/v1/BUILD.bazel index a9f5fd441..4094dbc62 100644 --- a/google/cloud/vmwareengine/v1/BUILD.bazel +++ b/google/cloud/vmwareengine/v1/BUILD.bazel @@ -9,14 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "vmwareengine_proto", @@ -31,6 +34,7 @@ proto_library( "//google/api:field_info_proto", "//google/api:resource_proto", "//google/longrunning:operations_proto", + "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", "@com_google_protobuf//:timestamp_proto", @@ -50,6 +54,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -116,6 +121,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -151,6 +157,7 @@ go_gapic_library( "//google/longrunning:longrunning_go_proto", "@com_google_cloud_go_longrunning//:go_default_library", "@com_google_cloud_go_longrunning//autogen:go_default_library", + "@io_bazel_rules_go//proto/wkt:duration_go_proto", ], ) @@ -169,6 +176,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -209,6 +217,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -246,6 +255,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -276,6 +286,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -329,6 +340,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -339,7 +351,6 @@ load( csharp_proto_library( name = "vmwareengine_csharp_proto", - extra_opts = [], deps = [":vmwareengine_proto"], ) @@ -376,6 +387,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/google/cloud/vmwareengine/v1/vmwareengine.proto b/google/cloud/vmwareengine/v1/vmwareengine.proto index d77ac7c26..661155936 100644 --- a/google/cloud/vmwareengine/v1/vmwareengine.proto +++ b/google/cloud/vmwareengine/v1/vmwareengine.proto @@ -16,16 +16,16 @@ syntax = "proto3"; package google.cloud.vmwareengine.v1; -import "google/longrunning/operations.proto"; -import "google/protobuf/timestamp.proto"; -import "google/protobuf/field_mask.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/field_info.proto"; import "google/api/resource.proto"; import "google/cloud/vmwareengine/v1/vmwareengine_resources.proto"; +import "google/longrunning/operations.proto"; import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.VmwareEngine.V1"; option go_package = "cloud.google.com/go/vmwareengine/apiv1/vmwareenginepb;vmwareenginepb"; diff --git a/google/cloud/vmwareengine/v1/vmwareengine_resources.proto b/google/cloud/vmwareengine/v1/vmwareengine_resources.proto index b773c00c9..69dfa5ee7 100644 --- a/google/cloud/vmwareengine/v1/vmwareengine_resources.proto +++ b/google/cloud/vmwareengine/v1/vmwareengine_resources.proto @@ -17,7 +17,9 @@ syntax = "proto3"; package google.cloud.vmwareengine.v1; import "google/api/field_behavior.proto"; +import "google/api/field_info.proto"; import "google/api/resource.proto"; +import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.VmwareEngine.V1"; @@ -299,6 +301,10 @@ message Cluster { // and it has to be the first one. bool management = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Optional. Configuration of the autoscaling applied to this cluster. + AutoscalingSettings autoscaling_settings = 18 + [(google.api.field_behavior) = OPTIONAL]; + // Output only. System-generated unique identifier for the resource. string uid = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -633,6 +639,15 @@ message LoggingServer { // TCP TCP = 2; + + // TLS + TLS = 3; + + // SSL + SSL = 4; + + // RELP + RELP = 5; } // Defines possible types of component that produces logs. @@ -824,6 +839,9 @@ message Hcx { // The appliance is being deployed. CREATING = 2; + + // The appliance is being activated. + ACTIVATING = 3; } // Internal IP address of the appliance. @@ -893,6 +911,84 @@ message Vcenter { string fqdn = 6; } +// Autoscaling settings define the rules used by VMware Engine to +// automatically scale-out and scale-in the clusters in a private cloud. +message AutoscalingSettings { + // Thresholds define the utilization of resources triggering + // scale-out and scale-in operations. + message Thresholds { + // Required. The utilization triggering the scale-out operation in percent. + int32 scale_out = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The utilization triggering the scale-in operation in percent. + int32 scale_in = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Autoscaling policy describes the behavior of the autoscaling + // with respect to the resource utilization. + // The scale-out operation is initiated if the utilization + // exceeds ANY of the respective thresholds. + // The scale-in operation is initiated if the utilization + // is below ALL of the respective thresholds. + message AutoscalingPolicy { + // Required. The canonical identifier of the node type to add or remove. + // Corresponds to the `NodeType`. + string node_type_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Number of nodes to add to a cluster during a scale-out + // operation. Must be divisible by 2 for stretched clusters. During a + // scale-in operation only one node (or 2 for stretched clusters) are + // removed in a single iteration. + int32 scale_out_size = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Utilization thresholds pertaining to CPU utilization. + Thresholds cpu_thresholds = 11 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Utilization thresholds pertaining to amount of granted memory. + Thresholds granted_memory_thresholds = 12 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Utilization thresholds pertaining to amount of consumed memory. + Thresholds consumed_memory_thresholds = 13 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Utilization thresholds pertaining to amount of consumed + // storage. + Thresholds storage_thresholds = 14 [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. The map with autoscaling policies applied to the cluster. + // The key is the identifier of the policy. + // It must meet the following requirements: + // + // * Only contains 1-63 alphanumeric characters and hyphens + // * Begins with an alphabetical character + // * Ends with a non-hyphen character + // * Not formatted as a UUID + // * Complies with [RFC + // 1034](https://datatracker.ietf.org/doc/html/rfc1034) (section 3.5) + // + // Currently there map must contain only one element + // that describes the autoscaling policy for compute nodes. + map<string, AutoscalingPolicy> autoscaling_policies = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Minimum number of nodes of any type in a cluster. + // If not specified the default limits apply. + int32 min_cluster_node_count = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Maximum number of nodes of any type in a cluster. + // If not specified the default limits apply. + int32 max_cluster_node_count = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The minimum duration between consecutive autoscale operations. + // It starts once addition or removal of nodes is fully completed. + // Defaults to 30 minutes if not specified. Cool down period must be in whole + // minutes (for example, 30, 31, 50, 180 minutes). + google.protobuf.Duration cool_down_period = 4 + [(google.api.field_behavior) = OPTIONAL]; +} + // DNS forwarding config. // This config defines a list of domain to name server mappings, // and is attached to the private cloud for custom domain resolution. @@ -986,6 +1082,9 @@ message NetworkPeering { // Peering connection used for connecting to Dell PowerScale Filers DELL_POWERSCALE = 6; + + // Peering connection used for connecting to Google Cloud NetApp Volumes. + GOOGLE_CLOUD_NETAPP_VOLUMES = 7; } // Output only. The resource name of the network peering. NetworkPeering is a diff --git a/google/cloud/vpcaccess/v1/BUILD.bazel b/google/cloud/vpcaccess/v1/BUILD.bazel index 71cd50e00..e4f153a59 100644 --- a/google/cloud/vpcaccess/v1/BUILD.bazel +++ b/google/cloud/vpcaccess/v1/BUILD.bazel @@ -218,7 +218,7 @@ php_gapic_library( name = "vpcaccess_php_gapic", srcs = [":vpcaccess_proto_with_info"], grpc_service_config = "vpcaccess_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "vpcaccess_v1.yaml", transport = "grpc+rest", diff --git a/google/cloud/webrisk/v1/BUILD.bazel b/google/cloud/webrisk/v1/BUILD.bazel index ade56961e..edc13e079 100644 --- a/google/cloud/webrisk/v1/BUILD.bazel +++ b/google/cloud/webrisk/v1/BUILD.bazel @@ -212,7 +212,7 @@ php_gapic_library( name = "webrisk_php_gapic", srcs = [":webrisk_proto_with_info"], grpc_service_config = "webrisk_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "webrisk_v1.yaml", transport = "grpc+rest", diff --git a/google/container/v1/BUILD.bazel b/google/container/v1/BUILD.bazel index 3db240810..d85c12979 100644 --- a/google/container/v1/BUILD.bazel +++ b/google/container/v1/BUILD.bazel @@ -226,7 +226,7 @@ php_gapic_library( name = "container_php_gapic", srcs = [":container_proto_with_info"], grpc_service_config = "container_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "container_v1.yaml", transport = "grpc+rest", @@ -344,6 +344,7 @@ load( csharp_proto_library( name = "container_csharp_proto", + extra_opts = [], deps = [":container_proto"], ) diff --git a/google/container/v1/cluster_service.proto b/google/container/v1/cluster_service.proto index bbceb38ab..f79bff88a 100644 --- a/google/container/v1/cluster_service.proto +++ b/google/container/v1/cluster_service.proto @@ -38,6 +38,14 @@ option (google.api.resource_definition) = { type: "pubsub.googleapis.com/Topic" pattern: "projects/{project}/topics/{topic}" }; +option (google.api.resource_definition) = { + type: "privateca.googleapis.com/CaPool" + pattern: "projects/{project}/locations/{location}/caPools/{ca_pool}" +}; +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}" +}; // Google Kubernetes Engine Cluster Manager v1 service ClusterManager { @@ -639,6 +647,21 @@ message NodeKubeletConfig { // [AutoprovisioningNodePoolDefaults][google.container.v1.AutoprovisioningNodePoolDefaults] // instead. message NodeConfig { + // Possible effective cgroup modes for the node. + enum EffectiveCgroupMode { + // EFFECTIVE_CGROUP_MODE_UNSPECIFIED means the cgroup configuration for the + // node pool is unspecified, i.e. the node pool is a Windows node pool. + EFFECTIVE_CGROUP_MODE_UNSPECIFIED = 0; + + // CGROUP_MODE_V1 means the node pool is configured to use cgroupv1 for the + // cgroup configuration. + EFFECTIVE_CGROUP_MODE_V1 = 1; + + // CGROUP_MODE_V2 means the node pool is configured to use cgroupv2 for the + // cgroup configuration. + EFFECTIVE_CGROUP_MODE_V2 = 2; + } + // The name of a Google Compute Engine [machine // type](https://cloud.google.com/compute/docs/machine-types) // @@ -857,9 +880,19 @@ message NodeConfig { // List of secondary boot disks attached to the nodes. repeated SecondaryBootDisk secondary_boot_disks = 48; + // List of Storage Pools where boot disks are provisioned. + repeated string storage_pools = 49; + // Secondary boot disk update strategy. optional SecondaryBootDiskUpdateStrategy secondary_boot_disk_update_strategy = 50; + + // Output only. effective_cgroup_mode is the cgroup mode actually used by the + // node pool. It is determined by the cgroup mode specified in the + // LinuxNodeConfig or the default cgroup mode based on the cluster creation + // version. + EffectiveCgroupMode effective_cgroup_mode = 55 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // Specifies options for controlling advanced machine features. @@ -933,7 +966,7 @@ message NodeNetworkConfig { // Whether nodes have internal IP addresses only. // If enable_private_nodes is not specified, then the value is derived from - // [cluster.privateClusterConfig.enablePrivateNodes][google.container.v1beta1.PrivateClusterConfig.enablePrivateNodes] + // [Cluster.NetworkConfig.default_enable_private_nodes][] optional bool enable_private_nodes = 9; // Network bandwidth tier configuration. @@ -961,7 +994,7 @@ message NodeNetworkConfig { // Each pod network corresponds to an additional alias IP range for the node repeated AdditionalPodNetworkConfig additional_pod_network_configs = 15; - // Output only. [Output only] The utilization of the IPv4 range for the pod. + // Output only. The utilization of the IPv4 range for the pod. // The ratio is Usage/[Total number of IPs in the secondary range], // Usage=numNodes*numZones*podIPsPerNode. double pod_ipv4_range_utilization = 16 @@ -981,14 +1014,14 @@ message AdditionalNodeNetworkConfig { // AdditionalPodNetworkConfig is the configuration for additional pod networks // within the NodeNetworkConfig message message AdditionalPodNetworkConfig { - // Name of the subnetwork where the additional pod network belongs + // Name of the subnetwork where the additional pod network belongs. string subnetwork = 1; // The name of the secondary range on the subnet which provides IP address for - // this pod range + // this pod range. string secondary_pod_range = 2; - // The maximum number of pods per node which use this pod network + // The maximum number of pods per node which use this pod network. optional MaxPodsConstraint max_pods_per_node = 3; } @@ -1236,17 +1269,19 @@ message MasterAuth { // certificate is issued. ClientCertificateConfig client_certificate_config = 3; - // [Output only] Base64-encoded public certificate that is the root of + // Output only. Base64-encoded public certificate that is the root of // trust for the cluster. - string cluster_ca_certificate = 100; + string cluster_ca_certificate = 100 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] Base64-encoded public certificate used by clients to - // authenticate to the cluster endpoint. - string client_certificate = 101; + // Output only. Base64-encoded public certificate used by clients to + // authenticate to the cluster endpoint. Issued only if + // client_certificate_config is set. + string client_certificate = 101 [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] Base64-encoded private key used by clients to authenticate + // Output only. Base64-encoded private key used by clients to authenticate // to the cluster endpoint. - string client_key = 102; + string client_key = 102 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Configuration for client certificates on the cluster. @@ -1305,6 +1340,13 @@ message AddonsConfig { // Optional. Configuration for the StatefulHA add-on. StatefulHAConfig stateful_ha_config = 18 [(google.api.field_behavior) = OPTIONAL]; + + // Configuration for the Cloud Storage Parallelstore CSI driver. + ParallelstoreCsiDriverConfig parallelstore_csi_driver_config = 19; + + // Optional. Configuration for Ray Operator addon. + RayOperatorConfig ray_operator_config = 21 + [(google.api.field_behavior) = OPTIONAL]; } // Configuration options for the HTTP (L7) load balancing controller addon, @@ -1357,10 +1399,19 @@ message PrivateClusterConfig { // Whether nodes have internal IP addresses only. If enabled, all nodes are // given only RFC 1918 private addresses and communicate with the master via // private networking. - bool enable_private_nodes = 1; + // + // Deprecated: Use + // [NetworkConfig.default_enable_private_nodes][google.container.v1.NetworkConfig.default_enable_private_nodes] + // instead. + bool enable_private_nodes = 1 [deprecated = true]; // Whether the master's internal IP address is used as the cluster endpoint. - bool enable_private_endpoint = 2; + // + // Deprecated: Use + // [ControlPlaneEndpointsConfig.IPEndpointsConfig.enable_public_endpoint][google.container.v1.ControlPlaneEndpointsConfig.IPEndpointsConfig.enable_public_endpoint] + // instead. Note that the value of enable_public_endpoint is reversed: if + // enable_private_endpoint is false, then enable_public_endpoint will be true. + bool enable_private_endpoint = 2 [deprecated = true]; // The IP range in CIDR notation to use for the hosted master network. This // range will be used for assigning internal IP addresses to the master or @@ -1369,20 +1420,39 @@ message PrivateClusterConfig { string master_ipv4_cidr_block = 3; // Output only. The internal IP address of this cluster's master endpoint. - string private_endpoint = 4; + // + // Deprecated: Use + // [ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint][google.container.v1.ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint] + // instead. + string private_endpoint = 4 + [deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The external IP address of this cluster's master endpoint. - string public_endpoint = 5; + // + // Deprecated:Use + // [ControlPlaneEndpointsConfig.IPEndpointsConfig.public_endpoint][google.container.v1.ControlPlaneEndpointsConfig.IPEndpointsConfig.public_endpoint] + // instead. + string public_endpoint = 5 + [deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The peering name in the customer VPC used by this cluster. - string peering_name = 7; + string peering_name = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Controls master global access settings. - PrivateClusterMasterGlobalAccessConfig master_global_access_config = 8; + // + // Deprecated: Use + // [ControlPlaneEndpointsConfig.IPEndpointsConfig.enable_global_access][] + // instead. + PrivateClusterMasterGlobalAccessConfig master_global_access_config = 8 + [deprecated = true]; // Subnet to provision the master's private endpoint during cluster creation. // Specified in projects/*/regions/*/subnetworks/* format. - string private_endpoint_subnetwork = 10; + // + // Deprecated: Use + // [ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint_subnetwork][google.container.v1.ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint_subnetwork] + // instead. + string private_endpoint_subnetwork = 10 [deprecated = true]; } // Configuration for returning group information from authenticators. @@ -1441,6 +1511,27 @@ message GcsFuseCsiDriverConfig { bool enabled = 1; } +// Configuration for the Cloud Storage Parallelstore CSI driver. +message ParallelstoreCsiDriverConfig { + // Whether the Cloud Storage Parallelstore CSI driver is enabled for this + // cluster. + bool enabled = 1; +} + +// Configuration options for the Ray Operator add-on. +message RayOperatorConfig { + // Whether the Ray Operator addon is enabled for this cluster. + bool enabled = 1; + + // Optional. Logging configuration for Ray clusters. + RayClusterLoggingConfig ray_cluster_logging_config = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Monitoring configuration for Ray clusters. + RayClusterMonitoringConfig ray_cluster_monitoring_config = 3 + [(google.api.field_behavior) = OPTIONAL]; +} + // Configuration for the Backup for GKE Agent. message GkeBackupAgentConfig { // Whether the Backup for GKE agent is enabled for this cluster. @@ -1476,6 +1567,9 @@ message MasterAuthorizedNetworksConfig { // Whether master is accessbile via Google Compute Engine Public IP addresses. optional bool gcp_public_cidrs_access_enabled = 3; + + // Whether master authorized networks is enforced on private endpoint or not. + optional bool private_endpoint_enforcement_enabled = 5; } // Configuration for the legacy Attribute Based Access Control authorization @@ -1679,25 +1773,24 @@ message IPAllocationPolicy { // overprovisioning is disabled. PodCIDROverprovisionConfig pod_cidr_overprovision_config = 21; - // Output only. [Output only] The subnet's IPv6 CIDR block used by nodes and - // pods. + // 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. + // Output only. The services IPv6 CIDR block for the cluster. string services_ipv6_cidr_block = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. [Output only] The additional pod ranges that are added to the - // cluster. These pod ranges can be used by new node pools to allocate pod IPs + // Output only. The additional pod ranges that are added to the cluster. + // These pod ranges can be used by new node pools to allocate pod IPs // automatically. Once the range is removed it will not show up in // IPAllocationPolicy. AdditionalPodRangesConfig additional_pod_ranges_config = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. [Output only] The utilization of the cluster default IPv4 - // range for the pod. The ratio is Usage/[Total number of IPs in the secondary - // range], Usage=numNodes*numZones*podIPsPerNode. + // Output only. The utilization of the cluster default IPv4 range for the + // pod. The ratio is Usage/[Total number of IPs in the secondary range], + // Usage=numNodes*numZones*podIPsPerNode. double default_pod_ipv4_range_utilization = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -1866,7 +1959,12 @@ message Cluster { IPAllocationPolicy ip_allocation_policy = 20; // The configuration options for master authorized networks feature. - MasterAuthorizedNetworksConfig master_authorized_networks_config = 22; + // + // Deprecated: Use + // [ControlPlaneEndpointsConfig.IPEndpointsConfig.authorized_networks_config][google.container.v1.ControlPlaneEndpointsConfig.IPEndpointsConfig.authorized_networks_config] + // instead. + MasterAuthorizedNetworksConfig master_authorized_networks_config = 22 + [deprecated = true]; // Configure the maintenance policy for this cluster. MaintenancePolicy maintenance_policy = 23; @@ -1933,21 +2031,22 @@ message Cluster { // Configuration for Identity Service component. IdentityServiceConfig identity_service_config = 54; - // [Output only] Server-defined URL for the resource. - string self_link = 100; + // Output only. Server-defined URL for the resource. + string self_link = 100 [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The name of the Google Compute Engine + // Output only. The name of the Google Compute Engine // [zone](https://cloud.google.com/compute/docs/zones#available) in which the // cluster resides. This field is deprecated, use location instead. - string zone = 101 [deprecated = true]; + string zone = 101 + [deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The IP address of this cluster's master endpoint. + // Output only. The IP address of this cluster's master endpoint. // The endpoint can be accessed from the internet at // `https://username:password@endpoint/`. // // See the `masterAuth` property of this resource for username and // password information. - string endpoint = 102; + string endpoint = 102 [(google.api.field_behavior) = OUTPUT_ONLY]; // The initial Kubernetes version for this cluster. Valid versions are those // found in validMasterVersions returned by getServerConfig. The version can @@ -1964,66 +2063,71 @@ message Cluster { // - "","-": picks the default Kubernetes version string initial_cluster_version = 103; - // [Output only] The current software version of the master endpoint. - string current_master_version = 104; + // Output only. The current software version of the master endpoint. + string current_master_version = 104 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] Deprecated, use + // Output only. Deprecated, use // [NodePools.version](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools) // instead. The current version of the node software components. If they are // currently at multiple versions because they're in the process of being // upgraded, this reflects the minimum version of all nodes. - string current_node_version = 105 [deprecated = true]; + string current_node_version = 105 + [deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The time the cluster was created, in + // Output only. The time the cluster was created, in // [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. - string create_time = 106; + string create_time = 106 [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The current status of this cluster. - Status status = 107; + // Output only. The current status of this cluster. + Status status = 107 [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] Deprecated. Use conditions instead. + // Output only. Deprecated. Use conditions instead. // Additional information about the current status of this // cluster, if available. - string status_message = 108 [deprecated = true]; + string status_message = 108 + [deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The size of the address space on each node for hosting + // Output only. The size of the address space on each node for hosting // containers. This is provisioned from within the `container_ipv4_cidr` // range. This field will only be set when cluster is in route-based network // mode. - int32 node_ipv4_cidr_size = 109; + int32 node_ipv4_cidr_size = 109 [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The IP address range of the Kubernetes services in + // Output only. The IP address range of the Kubernetes services in // this cluster, in // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) // notation (e.g. `1.2.3.4/29`). Service addresses are // typically put in the last `/16` from the container CIDR. - string services_ipv4_cidr = 110; + string services_ipv4_cidr = 110 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Deprecated. Use node_pools.instance_group_urls. - repeated string instance_group_urls = 111 [deprecated = true]; + // Output only. Deprecated. Use node_pools.instance_group_urls. + repeated string instance_group_urls = 111 + [deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The number of nodes currently in the cluster. Deprecated. + // Output only. The number of nodes currently in the cluster. Deprecated. // Call Kubernetes API directly to retrieve node information. - int32 current_node_count = 112 [deprecated = true]; + int32 current_node_count = 112 + [deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The time the cluster will be automatically + // Output only. The time the cluster will be automatically // deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. - string expire_time = 113; + string expire_time = 113 [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The name of the Google Compute Engine + // Output only. The name of the Google Compute Engine // [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) // or // [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) // in which the cluster resides. - string location = 114; + string location = 114 [(google.api.field_behavior) = OUTPUT_ONLY]; // Enable the ability to use Cloud TPUs in this cluster. bool enable_tpu = 115; - // [Output only] The IP address range of the Cloud TPUs in this cluster, in + // Output only. The IP address range of the Cloud TPUs in this cluster, in // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) // notation (e.g. `1.2.3.4/29`). - string tpu_ipv4_cidr_block = 116; + string tpu_ipv4_cidr_block = 116 [(google.api.field_behavior) = OUTPUT_ONLY]; // Which conditions caused the current cluster state. repeated StatusCondition conditions = 118; @@ -2059,17 +2163,135 @@ message Cluster { // Enable/Disable Security Posture API features for the cluster. SecurityPostureConfig security_posture_config = 145; + // Configuration for all cluster's control plane endpoints. + ControlPlaneEndpointsConfig control_plane_endpoints_config = 146; + // Beta APIs Config K8sBetaAPIConfig enable_k8s_beta_apis = 143; // GKE Enterprise Configuration. EnterpriseConfig enterprise_config = 149; + // Secret CSI driver configuration. + SecretManagerConfig secret_manager_config = 150; + + // Enable/Disable Compliance Posture features for the cluster. + CompliancePostureConfig compliance_posture_config = 151; + // Output only. Reserved for future use. optional bool satisfies_pzs = 152 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Reserved for future use. optional bool satisfies_pzi = 153 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The Custom keys configuration for the cluster. + optional UserManagedKeysConfig user_managed_keys_config = 154; + + // RBACBindingConfig allows user to restrict ClusterRoleBindings an + // RoleBindings that can be created. + optional RBACBindingConfig rbac_binding_config = 156; +} + +// RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings +// that can be created. +message RBACBindingConfig { + // Setting this to true will allow any ClusterRoleBinding and RoleBinding + // with subjets system:anonymous or system:unauthenticated. + optional bool enable_insecure_binding_system_unauthenticated = 1; + + // Setting this to true will allow any ClusterRoleBinding and RoleBinding + // with subjects system:authenticated. + optional bool enable_insecure_binding_system_authenticated = 2; +} + +// UserManagedKeysConfig holds the resource address to Keys which are used +// for signing certs and token that are used for communication within cluster. +message UserManagedKeysConfig { + // The Certificate Authority Service caPool to use for the cluster CA in this + // cluster. + string cluster_ca = 10 [(google.api.resource_reference) = { + type: "privateca.googleapis.com/CaPool" + }]; + + // Resource path of the Certificate Authority Service caPool to use for the + // etcd API CA in this cluster. + string etcd_api_ca = 11 [(google.api.resource_reference) = { + type: "privateca.googleapis.com/CaPool" + }]; + + // Resource path of the Certificate Authority Service caPool to use for the + // etcd peer CA in this cluster. + string etcd_peer_ca = 12 [(google.api.resource_reference) = { + type: "privateca.googleapis.com/CaPool" + }]; + + // The Cloud KMS cryptoKeyVersions to use for signing service account JWTs + // issued by this cluster. + // + // Format: + // `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{cryptoKey}/cryptoKeyVersions/{cryptoKeyVersion}` + repeated string service_account_signing_keys = 13 + [(google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKeyVersion" + }]; + + // The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs + // issued by this cluster. + // + // Format: + // `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{cryptoKey}/cryptoKeyVersions/{cryptoKeyVersion}` + repeated string service_account_verification_keys = 14 + [(google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKeyVersion" + }]; + + // The Certificate Authority Service caPool to use for the aggregation CA in + // this cluster. + string aggregation_ca = 15 [(google.api.resource_reference) = { + type: "privateca.googleapis.com/CaPool" + }]; + + // The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control + // plane nodes. + string control_plane_disk_encryption_key = 16 + [(google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKeyVersion" + }]; + + // Resource path of the Cloud KMS cryptoKey to use for encryption of internal + // etcd backups. + string gkeops_etcd_backup_encryption_key = 17 + [(google.api.resource_reference) = { + type: "cloudkms.googleapis.com/CryptoKeyVersion" + }]; +} + +// CompliancePostureConfig defines the settings needed to enable/disable +// features for the Compliance Posture. +message CompliancePostureConfig { + // Mode defines enablement mode for Compliance Posture. + enum Mode { + // Default value not specified. + MODE_UNSPECIFIED = 0; + + // Disables Compliance Posture features on the cluster. + DISABLED = 1; + + // Enables Compliance Posture features on the cluster. + ENABLED = 2; + } + + // Defines the details of a compliance standard. + message ComplianceStandard { + // Name of the compliance standard. + optional string standard = 1; + } + + // Defines the enablement mode for Compliance Posture. + optional Mode mode = 1; + + // List of enabled compliance standards. + repeated ComplianceStandard compliance_standards = 2; } // K8sBetaAPIConfig , configuration for beta APIs @@ -2240,7 +2462,12 @@ message ClusterUpdate { repeated string desired_locations = 10; // The desired configuration options for master authorized networks feature. - MasterAuthorizedNetworksConfig desired_master_authorized_networks_config = 12; + // + // Deprecated: Use + // desired_control_plane_endpoints_config.ip_endpoints_config.authorized_networks_config + // instead. + MasterAuthorizedNetworksConfig desired_master_authorized_networks_config = 12 + [deprecated = true]; // Cluster-level autoscaling configuration. ClusterAutoscaling desired_cluster_autoscaling = 15; @@ -2273,7 +2500,11 @@ message ClusterUpdate { // [ClusterUpdate.desired_enable_private_endpoint][google.container.v1.ClusterUpdate.desired_enable_private_endpoint] // for modifying other fields within // [PrivateClusterConfig][google.container.v1.PrivateClusterConfig]. - PrivateClusterConfig desired_private_cluster_config = 25; + // + // Deprecated: Use + // desired_control_plane_endpoints_config.ip_endpoints_config.global_access + // instead. + PrivateClusterConfig desired_private_cluster_config = 25 [deprecated = true]; // The desired config of Intra-node visibility. IntraNodeVisibilityConfig desired_intra_node_visibility_config = 26; @@ -2313,7 +2544,22 @@ message ClusterUpdate { ServiceExternalIPsConfig desired_service_external_ips_config = 60; // Enable/Disable private endpoint for the cluster's master. - optional bool desired_enable_private_endpoint = 71; + // + // Deprecated: Use + // desired_control_plane_endpoints_config.ip_endpoints_config.enable_public_endpoint + // instead. Note that the value of enable_public_endpoint is reversed: if + // enable_private_endpoint is false, then enable_public_endpoint will be true. + optional bool desired_enable_private_endpoint = 71 [deprecated = true]; + + // Override the default setting of whether future created + // nodes have private IP addresses only, namely + // [NetworkConfig.default_enable_private_nodes][google.container.v1.NetworkConfig.default_enable_private_nodes] + optional bool desired_default_enable_private_nodes = 72; + + // [Control plane + // endpoints][google.container.v1.Cluster.control_plane_endpoints_config] + // configuration. + ControlPlaneEndpointsConfig desired_control_plane_endpoints_config = 73; // The Kubernetes version to change the master to. // @@ -2397,12 +2643,25 @@ message ClusterUpdate { // Enable/Disable Cilium Clusterwide Network Policy for the cluster. optional bool desired_enable_cilium_clusterwide_network_policy = 138; + // Enable/Disable Secret Manager Config. + optional SecretManagerConfig desired_secret_manager_config = 139; + + // Enable/Disable Compliance Posture features for the cluster. + optional CompliancePostureConfig desired_compliance_posture_config = 140; + // The desired node kubelet config for the cluster. NodeKubeletConfig desired_node_kubelet_config = 141; // The desired node kubelet config for all auto-provisioned node pools // in autopilot clusters and node auto-provisioning enabled clusters. NodeKubeletConfig desired_node_pool_auto_config_kubelet_config = 142; + + // The Custom keys configuration for the cluster. + UserManagedKeysConfig user_managed_keys_config = 143; + + // RBACBindingConfig allows user to restrict ClusterRoleBindings an + // RoleBindings that can be created. + optional RBACBindingConfig desired_rbac_binding_config = 144; } // AdditionalPodRangesConfig is the configuration for additional pod secondary @@ -2411,17 +2670,17 @@ message AdditionalPodRangesConfig { // Name for pod secondary ipv4 range which has the actual range defined ahead. repeated string pod_range_names = 1; - // Output only. [Output only] Information for additional pod range. + // Output only. Information for additional pod range. repeated RangeInfo pod_range_info = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } // RangeInfo contains the range name and the range utilization by this cluster. message RangeInfo { - // Output only. [Output only] Name of a range. + // Output only. Name of a range. string range_name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. [Output only] The utilization of the range. + // Output only. The utilization of the range. double utilization = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -2571,36 +2830,37 @@ message Operation { FLEET_FEATURE_UPGRADE = 19; } - // The server-assigned ID for the operation. - string name = 1; + // Output only. The server-assigned ID for the operation. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - // The name of the Google Compute Engine + // Output only. The name of the Google Compute Engine // [zone](https://cloud.google.com/compute/docs/zones#available) in which the // operation is taking place. This field is deprecated, use location instead. - string zone = 2 [deprecated = true]; + string zone = 2 + [deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY]; - // The operation type. - Type operation_type = 3; + // Output only. The operation type. + Type operation_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - // The current status of the operation. - Status status = 4; + // Output only. The current status of the operation. + Status status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Detailed operation progress, if available. - string detail = 8; + // Output only. Detailed operation progress, if available. + string detail = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. If an error has occurred, a textual description of the error. // Deprecated. Use the field error instead. string status_message = 5 [deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY]; - // Server-defined URI for the operation. Example: + // Output only. Server-defined URI for the operation. Example: // `https://container.googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/operation-123`. - string self_link = 6; + string self_link = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Server-defined URI for the target of the operation. The format of this is a - // URI to the resource being modified (such as a cluster, node pool, or node). - // For node pool repairs, there may be multiple nodes being repaired, but only - // one will be the target. + // Output only. Server-defined URI for the target of the operation. The format + // of this is a URI to the resource being modified (such as a cluster, node + // pool, or node). For node pool repairs, there may be multiple nodes being + // repaired, but only one will be the target. // // Examples: // @@ -2612,24 +2872,24 @@ message Operation { // `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np` // // `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node` - string target_link = 7; + string target_link = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The name of the Google Compute Engine + // Output only. The name of the Google Compute Engine // [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) // or // [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) // in which the cluster resides. - string location = 9; + string location = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The time the operation started, in + // Output only. The time the operation started, in // [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. - string start_time = 10; + string start_time = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The time the operation completed, in + // Output only. The time the operation completed, in // [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. - string end_time = 11; + string end_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. [Output only] Progress information for an operation. + // Output only. Progress information for an operation. OperationProgress progress = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; // Which conditions caused the current cluster state. @@ -2897,6 +3157,10 @@ message UpdateNodePoolRequest { // Specifies the configuration of queued provisioning. NodePool.QueuedProvisioning queued_provisioning = 42; + + // List of Storage Pools where boot disks are provisioned. + // Existing Storage Pools will be replaced with storage-pools. + repeated string storage_pools = 43; } // SetNodePoolAutoscalingRequest sets the autoscaler settings of a node pool. @@ -3291,6 +3555,9 @@ message ServerConfig { // List of valid versions for the channel. repeated string valid_versions = 4; + + // The auto upgrade target version for clusters on the channel. + string upgrade_target_version = 5; } // Version of Kubernetes the service deploys by default. @@ -3663,28 +3930,30 @@ message NodePool { // cluster-level defaults. NodeNetworkConfig network_config = 14; - // [Output only] Server-defined URL for the resource. - string self_link = 100; + // Output only. Server-defined URL for the resource. + string self_link = 100 [(google.api.field_behavior) = OUTPUT_ONLY]; // The version of Kubernetes running on this NodePool's nodes. If unspecified, // it defaults as described // [here](https://cloud.google.com/kubernetes-engine/versioning#specifying_node_version). string version = 101; - // [Output only] The resource URLs of the [managed instance + // 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; + repeated string instance_group_urls = 102 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The status of the nodes in this pool instance. - Status status = 103; + // Output only. The status of the nodes in this pool instance. + Status status = 103 [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] Deprecated. Use conditions instead. + // Output only. Deprecated. Use conditions instead. // Additional information about the current status of this // node pool instance, if available. - string status_message = 104 [deprecated = true]; + string status_message = 104 + [deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY]; // Autoscaler configuration for this NodePool. Autoscaler is enabled // only if a valid configuration is present. @@ -3700,8 +3969,8 @@ message NodePool { // Which conditions caused the current node pool state. repeated StatusCondition conditions = 105; - // [Output only] The pod CIDR block size per node in this node pool. - int32 pod_ipv4_cidr_size = 7; + // Output only. The pod CIDR block size per node in this node pool. + int32 pod_ipv4_cidr_size = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Upgrade settings control disruption and speed of the upgrade. UpgradeSettings upgrade_settings = 107; @@ -3709,8 +3978,8 @@ 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. + // Output only. Update info contains relevant information during a node + // pool update. UpdateInfo update_info = 109 [(google.api.field_behavior) = OUTPUT_ONLY]; // This checksum is computed by the server based on the value of node pool @@ -3759,14 +4028,15 @@ message BestEffortProvisioning { // AutoUpgradeOptions defines the set of options for the user to control how // the Auto Upgrades will proceed. message AutoUpgradeOptions { - // [Output only] This field is set when upgrades are about to commence + // Output only. This field is set when upgrades are about to commence // with the approximate start time for the upgrades, in // [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. - string auto_upgrade_start_time = 1; + string auto_upgrade_start_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] This field is set when upgrades are about to commence + // Output only. This field is set when upgrades are about to commence // with the description of the upgrade. - string description = 2; + string description = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } // MaintenancePolicy defines the maintenance policy to be used for the cluster. @@ -3886,11 +4156,11 @@ message DailyMaintenanceWindow { // format "HH:MM", where HH : [00-23] and MM : [00-59] GMT. string start_time = 2; - // [Output only] Duration of the time window, automatically chosen to be + // Output only. Duration of the time window, automatically chosen to be // smallest possible in the given scenario. // Duration will be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) // format "PTnHnMnS". - string duration = 3; + string duration = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } // SetNodePoolManagementRequest sets the node management properties of a node @@ -4471,13 +4741,13 @@ message NetworkConfig { // [network][google.container.v1.NetworkConfig.network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks) // to which the cluster is connected. Example: // projects/my-project/global/networks/my-network - string network = 1; + string network = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The relative name of the Google Compute Engine // [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the // cluster is connected. Example: // projects/my-project/regions/us-central1/subnetworks/my-subnet - string subnetwork = 2; + string subnetwork = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Whether Intra-node visibility is enabled for this cluster. // This makes same node pod to pod traffic visible for VPC network. @@ -4527,6 +4797,13 @@ message NetworkConfig { // Whether CiliumClusterwideNetworkPolicy is enabled on this cluster. optional bool enable_cilium_clusterwide_network_policy = 21; + + // Controls whether by default nodes have private IP addresses only. + // It is invalid to specify both [PrivateClusterConfig.enablePrivateNodes][] + // and this field at the same time. + // To update the default setting, use + // [ClusterUpdate.desired_default_enable_private_nodes][google.container.v1.ClusterUpdate.desired_default_enable_private_nodes] + optional bool default_enable_private_nodes = 22; } // GatewayAPIConfig contains the desired config of Gateway API on this cluster. @@ -4724,6 +5001,10 @@ message ReleaseChannel { // Clusters subscribed to STABLE receive versions that are known to be // stable and reliable in production. STABLE = 3; + + // Clusters subscribed to EXTENDED receive extended support and availability + // for versions which are known to be stable and reliable in production. + EXTENDED = 4; } // channel specifies which release channel the cluster is subscribed to. @@ -5273,12 +5554,24 @@ message LoggingComponentConfig { // kube-controller-manager CONTROLLER_MANAGER = 5; + + // kcp-sshd + KCP_SSHD = 7; + + // kcp connection logs + KCP_CONNECTION = 8; } // Select components to collect logs. An empty set would disable all logging. repeated Component enable_components = 1; } +// RayClusterLoggingConfig specifies configuration of Ray logging. +message RayClusterLoggingConfig { + // Enable log collection for Ray clusters. + bool enabled = 1; +} + // MonitoringConfig is cluster monitoring configuration. message MonitoringConfig { // Monitoring components configuration @@ -5321,6 +5614,13 @@ message AdvancedDatapathObservabilityConfig { optional bool enable_relay = 3; } +// RayClusterMonitoringConfig specifies monitoring configuration for Ray +// clusters. +message RayClusterMonitoringConfig { + // Enable metrics collection for Ray clusters. + bool enabled = 1; +} + // NodePoolLoggingConfig specifies logging configuration for nodepools. message NodePoolLoggingConfig { // Logging variant configuration. @@ -5441,14 +5741,14 @@ message Fleet { // been registered. string project = 1; - // [Output only] The full resource name of the registered fleet membership of + // Output only. The full resource name of the registered fleet membership of // the cluster, in the format // `//gkehub.googleapis.com/projects/*/locations/*/memberships/*`. - string membership = 2; + string membership = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] Whether the cluster has been registered through the fleet + // Output only. Whether the cluster has been registered through the fleet // API. - bool pre_registered = 3; + bool pre_registered = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Possible values for IP stack type @@ -5463,6 +5763,70 @@ enum StackType { IPV4_IPV6 = 2; } +// Configuration for all of the cluster's control plane endpoints. +message ControlPlaneEndpointsConfig { + // Describes the configuration of a DNS endpoint. + message DNSEndpointConfig { + // Output only. The cluster's DNS endpoint configuration. + // A DNS format address. This is accessible from the public internet. + // Ex: uid.us-central1.gke.goog. + // Always present, but the behavior may change according to the value of + // [DNSEndpointConfig.allow_external_traffic][google.container.v1.ControlPlaneEndpointsConfig.DNSEndpointConfig.allow_external_traffic]. + string endpoint = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Controls whether user traffic is allowed over this endpoint. Note that + // GCP-managed services may still use the endpoint even if this is false. + optional bool allow_external_traffic = 3; + } + + // IP endpoints configuration. + message IPEndpointsConfig { + // Controls whether to allow direct IP access. + optional bool enabled = 1; + + // Controls whether the control plane allows access through a public IP. + // It is invalid to specify both + // [PrivateClusterConfig.enablePrivateEndpoint][] and this field at the same + // time. + optional bool enable_public_endpoint = 2; + + // Controls whether the control plane's private endpoint is accessible from + // sources in other regions. + // It is invalid to specify both + // [PrivateClusterMasterGlobalAccessConfig.enabled][google.container.v1.PrivateClusterMasterGlobalAccessConfig.enabled] + // and this field at the same time. + optional bool global_access = 3; + + // Configuration of authorized networks. If enabled, restricts access to the + // control plane based on source IP. + // It is invalid to specify both + // [Cluster.masterAuthorizedNetworksConfig][] and this field at the same + // time. + MasterAuthorizedNetworksConfig authorized_networks_config = 4; + + // Output only. The external IP address of this cluster's control plane. + // Only populated if enabled. + string public_endpoint = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The internal IP address of this cluster's control plane. + // Only populated if enabled. + string private_endpoint = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Subnet to provision the master's private endpoint during cluster + // creation. Specified in projects/*/regions/*/subnetworks/* format. It is + // invalid to specify both + // [PrivateClusterConfig.privateEndpointSubnetwork][] and this field at the + // same time. + string private_endpoint_subnetwork = 7; + } + + // DNS endpoint configuration. + DNSEndpointConfig dns_endpoint_config = 1; + + // IP endpoints configuration. + IPEndpointsConfig ip_endpoints_config = 3; +} + // Possible values for IPv6 access type enum IPv6AccessType { // Default value, will be defaulted as type external. @@ -5549,11 +5913,16 @@ message EnterpriseConfig { ENTERPRISE = 2; } - // Output only. [Output only] cluster_tier specifies the premium tier of the - // cluster. + // Output only. cluster_tier indicates the effective tier of the cluster. ClusterTier cluster_tier = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; } +// SecretManagerConfig is config for secret manager enablement. +message SecretManagerConfig { + // Enable/Disable Secret Manager Config. + optional bool enabled = 1; +} + // SecondaryBootDisk represents a persistent disk attached to a node // with special configurations based on its mode. message SecondaryBootDisk { diff --git a/google/container/v1alpha1/BUILD.bazel b/google/container/v1alpha1/BUILD.bazel index bbb603d78..9a4646750 100644 --- a/google/container/v1alpha1/BUILD.bazel +++ b/google/container/v1alpha1/BUILD.bazel @@ -163,4 +163,4 @@ cc_grpc_library( srcs = [":container_proto"], grpc_only = True, deps = [":container_cc_proto"], -) +) \ No newline at end of file diff --git a/google/container/v1beta1/BUILD.bazel b/google/container/v1beta1/BUILD.bazel index 7abf75746..ecb1a264f 100644 --- a/google/container/v1beta1/BUILD.bazel +++ b/google/container/v1beta1/BUILD.bazel @@ -9,43 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + ############################################################################## # Common ############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") load("@rules_proto//proto:defs.bzl", "proto_library") -load( - "@com_google_googleapis_imports//:imports.bzl", - "cc_grpc_library", - "cc_proto_library", - "csharp_gapic_assembly_pkg", - "csharp_gapic_library", - "csharp_grpc_library", - "csharp_proto_library", - "go_gapic_assembly_pkg", - "go_gapic_library", - "go_proto_library", - "java_gapic_assembly_gradle_pkg", - "java_gapic_library", - "java_gapic_test", - "java_grpc_library", - "java_proto_library", - "nodejs_gapic_assembly_pkg", - "nodejs_gapic_library", - "php_gapic_assembly_pkg", - "php_gapic_library", - "php_proto_library", - "proto_library_with_info", - "py_gapic_assembly_pkg", - "py_gapic_library", - "py_test", - "ruby_cloud_gapic_library", - "ruby_gapic_assembly_pkg", - "ruby_grpc_library", - "ruby_proto_library", -) - -# This is an API workspace, having public visibility by default makes perfect sense. -package(default_visibility = ["//visibility:public"]) proto_library( name = "container_proto", @@ -75,6 +49,19 @@ proto_library_with_info( ], ) +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + java_proto_library( name = "container_java_proto", deps = [":container_proto"], @@ -124,6 +111,17 @@ java_gapic_assembly_gradle_pkg( ], ) +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + go_proto_library( name = "container_go_proto", compilers = ["@io_bazel_rules_go//proto:go_grpc"], @@ -143,11 +141,13 @@ go_gapic_library( grpc_service_config = "container_grpc_service_config.json", importpath = "cloud.google.com/go/container/apiv1beta1;container", metadata = True, + release_level = "beta", rest_numeric_enums = True, service_yaml = "container_v1beta1.yaml", transport = "grpc", deps = [ ":container_go_proto", + "@io_bazel_rules_go//proto/wkt:duration_go_proto", ], ) @@ -163,6 +163,17 @@ go_gapic_assembly_pkg( ], ) +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + py_gapic_library( name = "container_py_gapic", srcs = [":container_proto"], @@ -174,6 +185,8 @@ py_gapic_library( rest_numeric_enums = True, service_yaml = "container_v1beta1.yaml", transport = "grpc", + deps = [ + ], ) py_test( @@ -194,6 +207,17 @@ py_gapic_assembly_pkg( ], ) +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + php_proto_library( name = "container_php_proto", deps = [":container_proto"], @@ -203,10 +227,13 @@ php_gapic_library( name = "container_php_gapic", srcs = [":container_proto_with_info"], grpc_service_config = "container_grpc_service_config.json", + migration_mode = "PRE_MIGRATION_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "container_v1beta1.yaml", transport = "grpc+rest", - deps = [":container_php_proto"], + deps = [ + ":container_php_proto", + ], ) # Open Source Packages @@ -218,6 +245,16 @@ php_gapic_assembly_pkg( ], ) +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + nodejs_gapic_library( name = "container_nodejs_gapic", package_name = "@google-cloud/container", @@ -239,6 +276,18 @@ nodejs_gapic_assembly_pkg( ], ) +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", + "ruby_grpc_library", + "ruby_proto_library", +) + ruby_proto_library( name = "container_ruby_proto", deps = [":container_proto"], @@ -282,8 +331,21 @@ ruby_gapic_assembly_pkg( ], ) +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + csharp_proto_library( name = "container_csharp_proto", + extra_opts = [], deps = [":container_proto"], ) @@ -317,6 +379,16 @@ csharp_gapic_assembly_pkg( ], ) +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + cc_proto_library( name = "container_cc_proto", deps = [":container_proto"], diff --git a/google/container/v1beta1/cluster_service.proto b/google/container/v1beta1/cluster_service.proto index 841fe8007..5db56b0c1 100644 --- a/google/container/v1beta1/cluster_service.proto +++ b/google/container/v1beta1/cluster_service.proto @@ -965,7 +965,7 @@ message NodeNetworkConfig { // Each pod network corresponds to an additional alias IP range for the node repeated AdditionalPodNetworkConfig additional_pod_network_configs = 15; - // Output only. [Output only] The utilization of the IPv4 range for the pod. + // Output only. The utilization of the IPv4 range for the pod. // The ratio is Usage/[Total number of IPs in the secondary range], // Usage=numNodes*numZones*podIPsPerNode. double pod_ipv4_range_utilization = 16 @@ -985,14 +985,14 @@ message AdditionalNodeNetworkConfig { // AdditionalPodNetworkConfig is the configuration for additional pod networks // within the NodeNetworkConfig message message AdditionalPodNetworkConfig { - // Name of the subnetwork where the additional pod network belongs + // Name of the subnetwork where the additional pod network belongs. string subnetwork = 1; // The name of the secondary range on the subnet which provides IP address for - // this pod range + // this pod range. string secondary_pod_range = 2; - // The maximum number of pods per node which use this pod network + // The maximum number of pods per node which use this pod network. optional MaxPodsConstraint max_pods_per_node = 3; } @@ -1367,15 +1367,18 @@ message MasterAuth { // certificate is issued. ClientCertificateConfig client_certificate_config = 3; - string cluster_ca_certificate = 100; + // Output only. Base64-encoded public certificate that is the root of + // trust for the cluster. + string cluster_ca_certificate = 100 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] Base64-encoded public certificate used by clients to + // Output only. Base64-encoded public certificate used by clients to // authenticate to the cluster endpoint. - string client_certificate = 101; + string client_certificate = 101 [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] Base64-encoded private key used by clients to authenticate + // Output only. Base64-encoded private key used by clients to authenticate // to the cluster endpoint. - string client_key = 102; + string client_key = 102 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Configuration for client certificates on the cluster. @@ -1443,6 +1446,10 @@ message AddonsConfig { // Optional. Configuration for the StatefulHA add-on. StatefulHAConfig stateful_ha_config = 18 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Configuration for Ray Operator addon. + RayOperatorConfig ray_operator_config = 21 + [(google.api.field_behavior) = OPTIONAL]; } // Configuration options for the HTTP (L7) load balancing controller addon, @@ -1526,6 +1533,20 @@ message GcsFuseCsiDriverConfig { bool enabled = 1; } +// Configuration options for the Ray Operator add-on. +message RayOperatorConfig { + // Whether the Ray addon is enabled for this cluster. + bool enabled = 1; + + // Optional. Logging configuration for Ray clusters. + RayClusterLoggingConfig ray_cluster_logging_config = 2 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Monitoring configuration for Ray clusters. + RayClusterMonitoringConfig ray_cluster_monitoring_config = 3 + [(google.api.field_behavior) = OPTIONAL]; +} + // Configuration for controlling master global access settings. message PrivateClusterMasterGlobalAccessConfig { // Whenever master is accessible globally or not. @@ -1549,13 +1570,13 @@ message PrivateClusterConfig { string master_ipv4_cidr_block = 3; // Output only. The internal IP address of this cluster's master endpoint. - string private_endpoint = 4; + string private_endpoint = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The external IP address of this cluster's master endpoint. - string public_endpoint = 5; + string public_endpoint = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The peering name in the customer VPC used by this cluster. - string peering_name = 7; + string peering_name = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Controls master global access settings. PrivateClusterMasterGlobalAccessConfig master_global_access_config = 8; @@ -1843,25 +1864,24 @@ message IPAllocationPolicy { // overprovisioning is disabled. PodCIDROverprovisionConfig pod_cidr_overprovision_config = 21; - // Output only. [Output only] The subnet's IPv6 CIDR block used by nodes and - // pods. + // 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. + // Output only. The services IPv6 CIDR block for the cluster. string services_ipv6_cidr_block = 23 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. [Output only] The additional pod ranges that are added to the - // cluster. These pod ranges can be used by new node pools to allocate pod IPs + // Output only. The additional pod ranges that are added to the cluster. + // These pod ranges can be used by new node pools to allocate pod IPs // automatically. Once the range is removed it will not show up in // IPAllocationPolicy. AdditionalPodRangesConfig additional_pod_ranges_config = 24 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. [Output only] The utilization of the cluster default IPv4 - // range for the pod. The ratio is Usage/[Total number of IPs in the secondary - // range], Usage=numNodes*numZones*podIPsPerNode. + // Output only. The utilization of the cluster default IPv4 range for the + // pod. The ratio is Usage/[Total number of IPs in the secondary range], + // Usage=numNodes*numZones*podIPsPerNode. double default_pod_ipv4_range_utilization = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -2215,21 +2235,22 @@ message Cluster { // Configuration for Identity Service component. IdentityServiceConfig identity_service_config = 54; - // [Output only] Server-defined URL for the resource. - string self_link = 100; + // Output only. Server-defined URL for the resource. + string self_link = 100 [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The name of the Google Compute Engine + // Output only. The name of the Google Compute Engine // [zone](https://cloud.google.com/compute/docs/zones#available) in which the // cluster resides. This field is deprecated, use location instead. - string zone = 101 [deprecated = true]; + string zone = 101 + [deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The IP address of this cluster's master endpoint. + // Output only. The IP address of this cluster's master endpoint. // The endpoint can be accessed from the internet at // `https://username:password@endpoint/`. // // See the `masterAuth` property of this resource for username and // password information. - string endpoint = 102; + string endpoint = 102 [(google.api.field_behavior) = OUTPUT_ONLY]; // The initial Kubernetes version for this cluster. Valid versions are those // found in validMasterVersions returned by getServerConfig. The version can @@ -2246,67 +2267,72 @@ message Cluster { // - "","-": picks the default Kubernetes version string initial_cluster_version = 103; - // [Output only] The current software version of the master endpoint. - string current_master_version = 104; + // Output only. The current software version of the master endpoint. + string current_master_version = 104 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] Deprecated, use + // Output only. Deprecated, use // [NodePool.version](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters.nodePools) // instead. The current version of the node software components. // If they are currently at multiple versions because they're in the process // of being upgraded, this reflects the minimum version of all nodes. - string current_node_version = 105 [deprecated = true]; + string current_node_version = 105 + [deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The time the cluster was created, in + // Output only. The time the cluster was created, in // [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. - string create_time = 106; + string create_time = 106 [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The current status of this cluster. - Status status = 107; + // Output only. The current status of this cluster. + Status status = 107 [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] Deprecated. Use conditions instead. + // Output only. Deprecated. Use conditions instead. // Additional information about the current status of this // cluster, if available. - string status_message = 108 [deprecated = true]; + string status_message = 108 + [deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The size of the address space on each node for hosting + // Output only. The size of the address space on each node for hosting // containers. This is provisioned from within the `container_ipv4_cidr` // range. This field will only be set when cluster is in route-based network // mode. - int32 node_ipv4_cidr_size = 109; + int32 node_ipv4_cidr_size = 109 [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The IP address range of the Kubernetes services in + // Output only. The IP address range of the Kubernetes services in // this cluster, in // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) // notation (e.g. `1.2.3.4/29`). Service addresses are // typically put in the last `/16` from the container CIDR. - string services_ipv4_cidr = 110; + string services_ipv4_cidr = 110 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Deprecated. Use node_pools.instance_group_urls. - repeated string instance_group_urls = 111 [deprecated = true]; + // Output only. Deprecated. Use node_pools.instance_group_urls. + repeated string instance_group_urls = 111 + [deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The number of nodes currently in the cluster. Deprecated. + // Output only. The number of nodes currently in the cluster. Deprecated. // Call Kubernetes API directly to retrieve node information. - int32 current_node_count = 112 [deprecated = true]; + int32 current_node_count = 112 + [deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The time the cluster will be automatically + // Output only. The time the cluster will be automatically // deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. - string expire_time = 113; + string expire_time = 113 [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The name of the Google Compute Engine + // Output only. The name of the Google Compute Engine // [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) // or // [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) // in which the cluster resides. - string location = 114; + string location = 114 [(google.api.field_behavior) = OUTPUT_ONLY]; // Enable the ability to use Cloud TPUs in this cluster. // This field is deprecated, use tpu_config.enabled instead. bool enable_tpu = 115; - // [Output only] The IP address range of the Cloud TPUs in this cluster, in + // Output only. The IP address range of the Cloud TPUs in this cluster, in // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) // notation (e.g. `1.2.3.4/29`). - string tpu_ipv4_cidr_block = 116; + string tpu_ipv4_cidr_block = 116 [(google.api.field_behavior) = OUTPUT_ONLY]; // Configuration of etcd encryption. DatabaseEncryption database_encryption = 38; @@ -2828,17 +2854,17 @@ message AdditionalPodRangesConfig { // Name for pod secondary ipv4 range which has the actual range defined ahead. repeated string pod_range_names = 1; - // Output only. [Output only] Information for additional pod range. + // Output only. Information for additional pod range. repeated RangeInfo pod_range_info = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } // RangeInfo contains the range name and the range utilization by this cluster. message RangeInfo { - // Output only. [Output only] Name of a range. + // Output only. Name of a range. string range_name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. [Output only] The utilization of the range. + // Output only. The utilization of the range. double utilization = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -2989,36 +3015,37 @@ message Operation { FLEET_FEATURE_UPGRADE = 19; } - // The server-assigned ID for the operation. - string name = 1; + // Output only. The server-assigned ID for the operation. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - // The name of the Google Compute Engine + // Output only. The name of the Google Compute Engine // [zone](https://cloud.google.com/compute/docs/zones#available) in which the // operation is taking place. This field is deprecated, use location instead. - string zone = 2 [deprecated = true]; + string zone = 2 + [deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY]; - // The operation type. - Type operation_type = 3; + // Output only. The operation type. + Type operation_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - // The current status of the operation. - Status status = 4; + // Output only. The current status of the operation. + Status status = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Detailed operation progress, if available. - string detail = 8; + // Output only. Detailed operation progress, if available. + string detail = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. If an error has occurred, a textual description of the error. // Deprecated. Use field error instead. string status_message = 5 [deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY]; - // Server-defined URI for the operation. Example: + // Output only. Server-defined URI for the operation. Example: // `https://container.googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/operation-123`. - string self_link = 6; + string self_link = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Server-defined URI for the target of the operation. The format of this is a - // URI to the resource being modified (such as a cluster, node pool, or node). - // For node pool repairs, there may be multiple nodes being repaired, but only - // one will be the target. + // Output only. Server-defined URI for the target of the operation. The format + // of this is a URI to the resource being modified (such as a cluster, node + // pool, or node). For node pool repairs, there may be multiple nodes being + // repaired, but only one will be the target. // // Examples: // @@ -3030,24 +3057,24 @@ message Operation { // `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np` // // `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node` - string target_link = 7; + string target_link = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The name of the Google Compute Engine + // Output only. The name of the Google Compute Engine // [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) // or // [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) // in which the cluster resides. - string location = 9; + string location = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The time the operation started, in + // Output only. The time the operation started, in // [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. - string start_time = 10; + string start_time = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The time the operation completed, in + // Output only. The time the operation completed, in // [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. - string end_time = 11; + string end_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. [Output only] Progress information for an operation. + // Output only. Progress information for an operation. OperationProgress progress = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; // Which conditions caused the current cluster state. @@ -4180,28 +4207,30 @@ message NodePool { // cluster-level defaults. NodeNetworkConfig network_config = 14; - // [Output only] Server-defined URL for the resource. - string self_link = 100; + // Output only. Server-defined URL for the resource. + string self_link = 100 [(google.api.field_behavior) = OUTPUT_ONLY]; // The version of Kubernetes running on this NodePool's nodes. If unspecified, // it defaults as described // [here](https://cloud.google.com/kubernetes-engine/versioning#specifying_node_version). string version = 101; - // [Output only] The resource URLs of the [managed instance + // 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; + repeated string instance_group_urls = 102 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] The status of the nodes in this pool instance. - Status status = 103; + // Output only. The status of the nodes in this pool instance. + Status status = 103 [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] Deprecated. Use conditions instead. + // Output only. Deprecated. Use conditions instead. // Additional information about the current status of this // node pool instance, if available. - string status_message = 104 [deprecated = true]; + string status_message = 104 + [deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY]; // Autoscaler configuration for this NodePool. Autoscaler is enabled // only if a valid configuration is present. @@ -4217,8 +4246,8 @@ message NodePool { // Which conditions caused the current node pool state. repeated StatusCondition conditions = 105; - // [Output only] The pod CIDR block size per node in this node pool. - int32 pod_ipv4_cidr_size = 7; + // Output only. The pod CIDR block size per node in this node pool. + int32 pod_ipv4_cidr_size = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Upgrade settings control disruption and speed of the upgrade. UpgradeSettings upgrade_settings = 107; @@ -4226,8 +4255,8 @@ 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. + // Output only. Update info contains relevant information during a node + // pool update. UpdateInfo update_info = 109 [(google.api.field_behavior) = OUTPUT_ONLY]; // This checksum is computed by the server based on the value of node pool @@ -4258,14 +4287,15 @@ message NodeManagement { // AutoUpgradeOptions defines the set of options for the user to control how // the Auto Upgrades will proceed. message AutoUpgradeOptions { - // [Output only] This field is set when upgrades are about to commence + // Output only. This field is set when upgrades are about to commence // with the approximate start time for the upgrades, in // [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. - string auto_upgrade_start_time = 1; + string auto_upgrade_start_time = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] This field is set when upgrades are about to commence + // Output only. This field is set when upgrades are about to commence // with the description of the upgrade. - string description = 2; + string description = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } // MaintenancePolicy defines the maintenance policy to be used for the cluster. @@ -4386,9 +4416,9 @@ message DailyMaintenanceWindow { // It must be in format "HH:MM", where HH : [00-23] and MM : [00-59] GMT. string start_time = 2; - // [Output only] Duration of the time window, automatically chosen to be + // Output only. Duration of the time window, automatically chosen to be // smallest possible in the given scenario. - string duration = 3; + string duration = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } // SetNodePoolManagementRequest sets the node management properties of a node @@ -5096,13 +5126,13 @@ message NetworkConfig { // [network][google.container.v1beta1.NetworkConfig.network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks) // to which the cluster is connected. Example: // projects/my-project/global/networks/my-network - string network = 1; + string network = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The relative name of the Google Compute Engine // [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the // cluster is connected. Example: // projects/my-project/regions/us-central1/subnetworks/my-subnet - string subnetwork = 2; + string subnetwork = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Whether Intra-node visibility is enabled for this cluster. // This makes same node pod to pod traffic visible for VPC network. @@ -5698,6 +5728,10 @@ message ReleaseChannel { // Clusters subscribed to STABLE receive versions that are known to be // stable and reliable in production. STABLE = 3; + + // Clusters subscribed to EXTENDED receive extended support and availability + // for versions which are known to be stable and reliable in production. + EXTENDED = 4; } // channel specifies which release channel the cluster is subscribed to. @@ -5985,6 +6019,12 @@ message LoggingComponentConfig { repeated Component enable_components = 1; } +// RayClusterLoggingConfig specifies logging configuration for Ray clusters. +message RayClusterLoggingConfig { + // Enable log collection for Ray clusters. + bool enabled = 1; +} + // MonitoringConfig is cluster monitoring configuration. message MonitoringConfig { // Monitoring components configuration @@ -6027,6 +6067,13 @@ message AdvancedDatapathObservabilityConfig { optional bool enable_relay = 3; } +// RayClusterMonitoringConfig specifies monitoring configuration for Ray +// clusters. +message RayClusterMonitoringConfig { + // Enable metrics collection for Ray clusters. + bool enabled = 1; +} + // NodePoolLoggingConfig specifies logging configuration for nodepools. message NodePoolLoggingConfig { // Logging variant configuration. @@ -6129,14 +6176,14 @@ message Fleet { // been registered. string project = 1; - // [Output only] The full resource name of the registered fleet membership of + // Output only. The full resource name of the registered fleet membership of // the cluster, in the format // `//gkehub.googleapis.com/projects/*/locations/*/memberships/*`. - string membership = 2; + string membership = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - // [Output only] Whether the cluster has been registered through the fleet + // Output only. Whether the cluster has been registered through the fleet // API. - bool pre_registered = 3; + bool pre_registered = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Possible values for IP stack type @@ -6179,8 +6226,7 @@ message EnterpriseConfig { ENTERPRISE = 2; } - // Output only. [Output only] cluster_tier specifies the premium tier of the - // cluster. + // Output only. cluster_tier specifies the premium tier of the cluster. ClusterTier cluster_tier = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; } diff --git a/google/datastore/admin/v1/BUILD.bazel b/google/datastore/admin/v1/BUILD.bazel index b4e1e423a..e8ba27ed7 100644 --- a/google/datastore/admin/v1/BUILD.bazel +++ b/google/datastore/admin/v1/BUILD.bazel @@ -204,7 +204,7 @@ php_gapic_library( name = "admin_php_gapic", srcs = [":admin_proto_with_info"], grpc_service_config = "datastore_admin_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "datastore_v1.yaml", transport = "grpc+rest", diff --git a/google/datastore/v1/datastore.proto b/google/datastore/v1/datastore.proto index 9c44501af..c0683b9ba 100644 --- a/google/datastore/v1/datastore.proto +++ b/google/datastore/v1/datastore.proto @@ -501,6 +501,18 @@ message ReserveIdsResponse {} // A mutation to apply to an entity. message Mutation { + // The possible ways to resolve a conflict detected in a mutation. + enum ConflictResolutionStrategy { + // Unspecified. Defaults to `SERVER_VALUE`. + STRATEGY_UNSPECIFIED = 0; + + // The server entity is kept. + SERVER_VALUE = 1; + + // The whole commit request fails. + FAIL = 3; + } + // The mutation operation. // // For `insert`, `update`, and `upsert`: @@ -542,6 +554,11 @@ message Mutation { google.protobuf.Timestamp update_time = 11; } + // The strategy to use when a conflict is detected. Defaults to + // `SERVER_VALUE`. + // If this is set, then `conflict_detection_strategy` must also be set. + ConflictResolutionStrategy conflict_resolution_strategy = 10; + // The properties to write in this mutation. // None of the properties in the mask may have a reserved name, except for // `__key__`. @@ -551,6 +568,112 @@ message Mutation { // updated, others are left untouched. // Properties referenced in the mask but not in the entity are deleted. PropertyMask property_mask = 9; + + // Optional. The transforms to perform on the entity. + // + // This field can be set only when the operation is `insert`, `update`, + // or `upsert`. If present, the transforms are be applied to the entity + // regardless of the property mask, in order, after the operation. + repeated PropertyTransform property_transforms = 12 + [(google.api.field_behavior) = OPTIONAL]; +} + +// A transformation of an entity property. +message PropertyTransform { + // A value that is calculated by the server. + enum ServerValue { + // Unspecified. This value must not be used. + SERVER_VALUE_UNSPECIFIED = 0; + + // The time at which the server processed the request, with millisecond + // precision. If used on multiple properties (same or different entities) + // in a transaction, all the properties will get the same server timestamp. + REQUEST_TIME = 1; + } + + // Optional. The name of the property. + // + // Property paths (a list of property names separated by dots (`.`)) may be + // used to refer to properties inside entity values. For example `foo.bar` + // means the property `bar` inside the entity property `foo`. + // + // If a property name contains a dot `.` or a backlslash `\`, then that name + // must be escaped. + string property = 1 [(google.api.field_behavior) = OPTIONAL]; + + // The transformation to apply to the property. + oneof transform_type { + // Sets the property to the given server value. + ServerValue set_to_server_value = 2; + + // Adds the given value to the property's current value. + // + // This must be an integer or a double value. + // If the property is not an integer or double, or if the property does not + // yet exist, the transformation will set the property to the given value. + // If either of the given value or the current property value are doubles, + // both values will be interpreted as doubles. Double arithmetic and + // representation of double values follows IEEE 754 semantics. + // If there is positive/negative integer overflow, the property is resolved + // to the largest magnitude positive/negative integer. + Value increment = 3; + + // Sets the property to the maximum of its current value and the given + // value. + // + // This must be an integer or a double value. + // If the property is not an integer or double, or if the property does not + // yet exist, the transformation will set the property to the given value. + // If a maximum operation is applied where the property and the input value + // are of mixed types (that is - one is an integer and one is a double) + // the property takes on the type of the larger operand. If the operands are + // equivalent (e.g. 3 and 3.0), the property does not change. + // 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and + // zero input value is always the stored value. + // The maximum of any numeric value x and NaN is NaN. + Value maximum = 4; + + // Sets the property to the minimum of its current value and the given + // value. + // + // This must be an integer or a double value. + // If the property is not an integer or double, or if the property does not + // yet exist, the transformation will set the property to the input value. + // If a minimum operation is applied where the property and the input value + // are of mixed types (that is - one is an integer and one is a double) + // the property takes on the type of the smaller operand. If the operands + // are equivalent (e.g. 3 and 3.0), the property does not change. 0, 0.0, + // and -0.0 are all zero. The minimum of a zero stored value and zero input + // value is always the stored value. The minimum of any numeric value x and + // NaN is NaN. + Value minimum = 5; + + // Appends the given elements in order if they are not already present in + // the current property value. + // If the property is not an array, or if the property does not yet exist, + // it is first set to the empty array. + // + // Equivalent numbers of different types (e.g. 3L and 3.0) are + // considered equal when checking if a value is missing. + // NaN is equal to NaN, and the null value is equal to the null value. + // If the input contains multiple equivalent values, only the first will + // be considered. + // + // The corresponding transform result will be the null value. + ArrayValue append_missing_elements = 6; + + // Removes all of the given elements from the array in the property. + // If the property is not an array, or if the property does not yet exist, + // it is set to the empty array. + // + // Equivalent numbers of different types (e.g. 3L and 3.0) are + // considered equal when deciding whether an element should be removed. + // NaN is equal to NaN, and the null value is equal to the null value. + // This will remove all equivalent values if there are duplicates. + // + // The corresponding transform result will be the null value. + ArrayValue remove_all_from_array = 7; + } } // The result of applying a mutation. @@ -578,6 +701,11 @@ message MutationResult { // 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; + + // The results of applying each + // [PropertyTransform][google.datastore.v1.PropertyTransform], in the same + // order of the request. + repeated Value transform_results = 8; } // The set of arbitrarily nested property paths used to restrict an operation to @@ -611,16 +739,13 @@ message ReadOptions { EVENTUAL = 2; } - // 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`. + // For Cloud Firestore in Datastore mode, if you don't specify + // read_consistency then all lookups and queries default to + // `read_consistency`=`STRONG`. Note that, in Cloud Datastore, global queries + // defaulted to `read_consistency`=`EVENTUAL`. // // Explicitly setting `read_consistency`=`EVENTUAL` will result in eventually - // consistent lookups & queries in both Cloud Datastore & Cloud Firestore in - // Datastore mode. + // consistent lookups and queries. oneof consistency_type { // The non-transactional read consistency to use. ReadConsistency read_consistency = 1; diff --git a/google/datastore/v1/datastore_grpc_service_config.json b/google/datastore/v1/datastore_grpc_service_config.json index 3cdd03ac0..db19de092 100755 --- a/google/datastore/v1/datastore_grpc_service_config.json +++ b/google/datastore/v1/datastore_grpc_service_config.json @@ -47,6 +47,15 @@ } ], "timeout": "60s" + }, + { + "name": [ + { + "service": "google.datastore.v1.Datastore", + "method": "Execute" + } + ], + "timeout": "0s" } ] } diff --git a/google/datastore/v1/query.proto b/google/datastore/v1/query.proto index 5ec0eea61..3c2e8ae66 100644 --- a/google/datastore/v1/query.proto +++ b/google/datastore/v1/query.proto @@ -82,6 +82,15 @@ message EntityResult { } // A query for entities. +// +// The query stages are executed in the following order: +// 1. kind +// 2. filter +// 3. projection +// 4. order + start_cursor + end_cursor +// 5. offset +// 6. limit +// 7. find_nearest message Query { // The projection to return. Defaults to returning all properties. repeated Projection projection = 2; @@ -127,6 +136,13 @@ message Query { // Unspecified is interpreted as no limit. // Must be >= 0 if specified. google.protobuf.Int32Value limit = 12; + + // Optional. A potential Nearest Neighbors Search. + // + // Applies after all other filters and ordering. + // + // Finds the closest vector embeddings to the given query vector. + FindNearest find_nearest = 13 [(google.api.field_behavior) = OPTIONAL]; } // Datastore query for running an aggregation over a @@ -436,6 +452,70 @@ message PropertyFilter { Value value = 3; } +// Nearest Neighbors search config. The ordering provided by FindNearest +// supersedes the order_by stage. If multiple documents have the same vector +// distance, the returned document order is not guaranteed to be stable between +// queries. +message FindNearest { + // The distance measure to use when comparing vectors. + enum DistanceMeasure { + // Should not be set. + DISTANCE_MEASURE_UNSPECIFIED = 0; + + // Measures the EUCLIDEAN distance between the vectors. See + // [Euclidean](https://en.wikipedia.org/wiki/Euclidean_distance) to learn + // more. The resulting distance decreases the more similar two vectors are. + EUCLIDEAN = 1; + + // COSINE distance compares vectors based on the angle between them, which + // allows you to measure similarity that isn't based on the vectors + // magnitude. We recommend using DOT_PRODUCT with unit normalized vectors + // instead of COSINE distance, which is mathematically equivalent with + // better performance. See [Cosine + // Similarity](https://en.wikipedia.org/wiki/Cosine_similarity) to learn + // more about COSINE similarity and COSINE distance. The resulting COSINE + // distance decreases the more similar two vectors are. + COSINE = 2; + + // Similar to cosine but is affected by the magnitude of the vectors. See + // [Dot Product](https://en.wikipedia.org/wiki/Dot_product) to learn more. + // The resulting distance increases the more similar two vectors are. + DOT_PRODUCT = 3; + } + + // Required. An indexed vector property to search upon. Only documents which + // contain vectors whose dimensionality match the query_vector can be + // returned. + PropertyReference vector_property = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. The query vector that we are searching on. Must be a vector of no + // more than 2048 dimensions. + Value query_vector = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Distance Measure to use, required. + DistanceMeasure distance_measure = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. The number of nearest neighbors to return. Must be a positive + // integer of no more than 100. + google.protobuf.Int32Value limit = 4 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Optional name of the field to output the result of the vector + // distance calculation. Must conform to [entity + // property][google.datastore.v1.Entity.properties] limitations. + string distance_result_property = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Option to specify a threshold for which no less similar documents + // will be returned. The behavior of the specified `distance_measure` will + // affect the meaning of the distance threshold. Since DOT_PRODUCT distances + // increase when the vectors are more similar, the comparison is inverted. + // + // For EUCLIDEAN, COSINE: WHERE distance <= distance_threshold + // For DOT_PRODUCT: WHERE distance >= distance_threshold + google.protobuf.DoubleValue distance_threshold = 6 + [(google.api.field_behavior) = OPTIONAL]; +} + // A [GQL // query](https://cloud.google.com/datastore/docs/apis/gql/gql_reference). message GqlQuery { diff --git a/google/devtools/artifactregistry/v1/BUILD.bazel b/google/devtools/artifactregistry/v1/BUILD.bazel index 66136c471..a57fb6cf9 100644 --- a/google/devtools/artifactregistry/v1/BUILD.bazel +++ b/google/devtools/artifactregistry/v1/BUILD.bazel @@ -9,23 +9,29 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + # This is an API workspace, having public visibility by default makes perfect sense. package(default_visibility = ["//visibility:public"]) ############################################################################## # Common ############################################################################## -load("@rules_proto//proto:defs.bzl", "proto_library") +# buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "artifactregistry_proto", srcs = [ "apt_artifact.proto", "artifact.proto", + "attachment.proto", "file.proto", + "generic.proto", "package.proto", "repository.proto", + "rule.proto", "service.proto", "settings.proto", "tag.proto", @@ -42,6 +48,7 @@ proto_library( "//google/iam/v1:policy_proto", "//google/longrunning:operations_proto", "//google/rpc:status_proto", + "//google/type:expr_proto", "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", @@ -62,6 +69,7 @@ proto_library_with_info( ############################################################################## # Java ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "java_gapic_assembly_gradle_pkg", @@ -128,6 +136,7 @@ java_gapic_assembly_gradle_pkg( ############################################################################## # Go ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "go_gapic_assembly_pkg", @@ -145,6 +154,7 @@ go_proto_library( "//google/iam/v1:iam_go_proto", "//google/longrunning:longrunning_go_proto", "//google/rpc:status_go_proto", + "//google/type:expr_go_proto", ], ) @@ -165,6 +175,7 @@ go_gapic_library( "//google/longrunning:longrunning_go_proto", "@com_google_cloud_go_longrunning//:go_default_library", "@com_google_cloud_go_longrunning//autogen:go_default_library", + "@io_bazel_rules_go//proto/wkt:duration_go_proto", "@io_bazel_rules_go//proto/wkt:struct_go_proto", ], ) @@ -184,6 +195,7 @@ go_gapic_assembly_pkg( ############################################################################## # Python ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "py_gapic_assembly_pkg", @@ -229,6 +241,7 @@ py_gapic_assembly_pkg( ############################################################################## # PHP ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "php_gapic_assembly_pkg", @@ -249,7 +262,9 @@ php_gapic_library( rest_numeric_enums = True, service_yaml = "artifactregistry_v1.yaml", transport = "grpc+rest", - deps = [":artifactregistry_php_proto"], + deps = [ + ":artifactregistry_php_proto", + ], ) # Open Source Packages @@ -264,6 +279,7 @@ php_gapic_assembly_pkg( ############################################################################## # Node.js ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "nodejs_gapic_assembly_pkg", @@ -294,6 +310,7 @@ nodejs_gapic_assembly_pkg( ############################################################################## # Ruby ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "ruby_cloud_gapic_library", @@ -348,6 +365,7 @@ ruby_gapic_assembly_pkg( ############################################################################## # C# ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "csharp_gapic_assembly_pkg", @@ -358,6 +376,7 @@ load( csharp_proto_library( name = "artifactregistry_csharp_proto", + extra_opts = [], deps = [":artifactregistry_proto"], ) @@ -394,6 +413,7 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## +# buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", diff --git a/google/devtools/artifactregistry/v1/artifact.proto b/google/devtools/artifactregistry/v1/artifact.proto index 9f5f61cec..c1895c724 100644 --- a/google/devtools/artifactregistry/v1/artifact.proto +++ b/google/devtools/artifactregistry/v1/artifact.proto @@ -92,7 +92,7 @@ message ListDockerImagesRequest { // listed. string parent = 1 [(google.api.field_behavior) = REQUIRED]; - // The maximum number of artifacts to return. + // The maximum number of artifacts 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. @@ -176,7 +176,7 @@ message ListMavenArtifactsRequest { } ]; - // The maximum number of artifacts to return. + // The maximum number of artifacts 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. @@ -249,7 +249,7 @@ message ListNpmPackagesRequest { } ]; - // The maximum number of artifacts to return. + // The maximum number of artifacts 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. @@ -326,7 +326,7 @@ message ListPythonPackagesRequest { } ]; - // The maximum number of artifacts to return. + // The maximum number of artifacts 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. diff --git a/google/devtools/artifactregistry/v1/artifactregistry_v1.yaml b/google/devtools/artifactregistry/v1/artifactregistry_v1.yaml index 613ac895b..23846cd78 100644 --- a/google/devtools/artifactregistry/v1/artifactregistry_v1.yaml +++ b/google/devtools/artifactregistry/v1/artifactregistry_v1.yaml @@ -10,6 +10,7 @@ apis: types: - name: google.devtools.artifactregistry.v1.BatchDeleteVersionsMetadata +- name: google.devtools.artifactregistry.v1.GenericArtifact - name: google.devtools.artifactregistry.v1.ImportAptArtifactsMetadata - name: google.devtools.artifactregistry.v1.ImportAptArtifactsResponse - name: google.devtools.artifactregistry.v1.ImportYumArtifactsMetadata @@ -69,14 +70,30 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: google.devtools.artifactregistry.v1.ArtifactRegistry.CreateAttachment + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: google.devtools.artifactregistry.v1.ArtifactRegistry.CreateRepository oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: google.devtools.artifactregistry.v1.ArtifactRegistry.CreateRule + oauth: + canonical_scopes: |- + 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.devtools.artifactregistry.v1.ArtifactRegistry.DeleteAttachment + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.devtools.artifactregistry.v1.ArtifactRegistry.DeleteFile + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: google.devtools.artifactregistry.v1.ArtifactRegistry.DeletePackage oauth: canonical_scopes: |- @@ -85,6 +102,10 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: google.devtools.artifactregistry.v1.ArtifactRegistry.DeleteRule + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: google.devtools.artifactregistry.v1.ArtifactRegistry.DeleteTag oauth: canonical_scopes: |- @@ -105,6 +126,14 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: google.devtools.artifactregistry.v1.ArtifactRegistry.UpdateFile + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + - selector: google.devtools.artifactregistry.v1.ArtifactRegistry.UpdatePackage + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: google.devtools.artifactregistry.v1.ArtifactRegistry.UpdateProjectSettings oauth: canonical_scopes: |- @@ -113,6 +142,10 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: google.devtools.artifactregistry.v1.ArtifactRegistry.UpdateRule + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: google.devtools.artifactregistry.v1.ArtifactRegistry.UpdateTag oauth: canonical_scopes: |- @@ -121,6 +154,10 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/cloud-platform + - selector: google.devtools.artifactregistry.v1.ArtifactRegistry.UpdateVersion + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform - selector: google.longrunning.Operations.GetOperation oauth: canonical_scopes: |- diff --git a/google/devtools/artifactregistry/v1/artifactregistry_v1_grpc_service_config.json b/google/devtools/artifactregistry/v1/artifactregistry_v1_grpc_service_config.json new file mode 100644 index 000000000..2dfaa8445 --- /dev/null +++ b/google/devtools/artifactregistry/v1/artifactregistry_v1_grpc_service_config.json @@ -0,0 +1,12 @@ +{ + "methodConfig": [ + { + "name": [ + { + "service": "google.devtools.artifactregistry.v1.ArtifactRegistry" + } + ], + "timeout": "60s" + } + ] +} diff --git a/google/devtools/artifactregistry/v1/attachment.proto b/google/devtools/artifactregistry/v1/attachment.proto new file mode 100644 index 000000000..a9c17ae2a --- /dev/null +++ b/google/devtools/artifactregistry/v1/attachment.proto @@ -0,0 +1,160 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.devtools.artifactregistry.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.ArtifactRegistry.V1"; +option go_package = "cloud.google.com/go/artifactregistry/apiv1/artifactregistrypb;artifactregistrypb"; +option java_multiple_files = true; +option java_outer_classname = "AttachmentProto"; +option java_package = "com.google.devtools.artifactregistry.v1"; +option php_namespace = "Google\\Cloud\\ArtifactRegistry\\V1"; +option ruby_package = "Google::Cloud::ArtifactRegistry::V1"; + +// An Attachment refers to additional metadata that can be attached to +// artifacts in Artifact Registry. An attachment consists of one or more files. +message Attachment { + option (google.api.resource) = { + type: "artifactregistry.googleapis.com/Attachment" + pattern: "projects/{project}/locations/{location}/repositories/{repository}/attachments/{attachment}" + }; + + // The name of the attachment. E.g. + // `projects/p1/locations/us/repositories/repo/attachments/sbom`. + string name = 1; + + // Required. The target the attachment is for, can be a Version, Package or + // Repository. E.g. + // `projects/p1/locations/us-central1/repositories/repo1/packages/p1/versions/v1`. + string target = 2 [(google.api.field_behavior) = REQUIRED]; + + // Type of attachment. + // E.g. `application/vnd.spdx+json` + string type = 3; + + // The namespace this attachment belongs to. + // E.g. If an attachment is created by artifact analysis, namespace is set + // to `artifactanalysis.googleapis.com`. + string attachment_namespace = 4; + + // Optional. User annotations. These attributes can only be set and used by + // the user, and not by Artifact Registry. See + // https://google.aip.dev/128#annotations for more details such as format and + // size limitations. + map<string, string> annotations = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The time when the attachment was created. + google.protobuf.Timestamp create_time = 6 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the attachment was last updated. + google.protobuf.Timestamp update_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The files that belong to this attachment. + // If the file ID part contains slashes, they are escaped. E.g. + // `projects/p1/locations/us-central1/repositories/repo1/files/sha:<sha-of-file>`. + repeated string files = 8 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "artifactregistry.googleapis.com/File" + } + ]; + + // Output only. The name of the OCI version that this attachment created. Only + // populated for Docker attachments. E.g. + // `projects/p1/locations/us-central1/repositories/repo1/packages/p1/versions/v1`. + string oci_version_name = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The request to list attachments. +message ListAttachmentsRequest { + // Required. The name of the parent resource whose attachments will be listed. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "artifactregistry.googleapis.com/Attachment" + } + ]; + + // Optional. An expression for filtering the results of the request. Filter + // rules are case insensitive. The fields eligible for filtering are: + // + // * `target` + // * `type` + // * `attachment_namespace` + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; + + // The maximum number of attachments to return. Maximum page size is 1,000. + int32 page_size = 3; + + // The next_page_token value returned from a previous list request, if any. + string page_token = 4; +} + +// The response from listing attachments. +message ListAttachmentsResponse { + // The attachments returned. + repeated Attachment attachments = 1; + + // The token to retrieve the next page of attachments, or empty if there are + // no more attachments to return. + string next_page_token = 2; +} + +// The request to retrieve an attachment. +message GetAttachmentRequest { + // Required. The name of the attachment to retrieve. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "artifactregistry.googleapis.com/Attachment" + } + ]; +} + +// The request to create a new attachment. +message CreateAttachmentRequest { + // Required. The name of the parent resource where the attachment will be + // created. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "artifactregistry.googleapis.com/Attachment" + } + ]; + + // Required. The attachment id to use for this attachment. + string attachment_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The attachment to be created. + Attachment attachment = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// The request to delete an attachment. +message DeleteAttachmentRequest { + // Required. The name of the attachment to delete. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "artifactregistry.googleapis.com/Attachment" + } + ]; +} diff --git a/google/devtools/artifactregistry/v1/file.proto b/google/devtools/artifactregistry/v1/file.proto index de9258884..0b19953b8 100644 --- a/google/devtools/artifactregistry/v1/file.proto +++ b/google/devtools/artifactregistry/v1/file.proto @@ -18,6 +18,7 @@ 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"; option csharp_namespace = "Google.Cloud.ArtifactRegistry.V1"; @@ -57,7 +58,7 @@ message File { }; // The name of the file, for example: - // "projects/p1/locations/us-central1/repositories/repo1/files/a%2Fb%2Fc.txt". + // `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; @@ -82,6 +83,9 @@ message File { // made. Only set when the repository is remote. google.protobuf.Timestamp fetch_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Client specified annotations. + map<string, string> annotations = 9 [(google.api.field_behavior) = OPTIONAL]; } // The request to list files. @@ -100,16 +104,54 @@ message ListFilesRequest { // // * `name` // * `owner` + // * `annotations` + // + // Examples of using a filter: + // + // To filter the results of your request to files with the name `my_file.txt` + // in project `my-project` in the `us-central` region, in repository + // `my-repo`, append the following filter expression to your request: + // + // * `name="projects/my-project/locations/us-central1/repositories/my-repo/files/my-file.txt"` + // + // You can also use wildcards to match any number of characters before or + // after the value: + // + // * `name="projects/my-project/locations/us-central1/repositories/my-repo/files/my-*"` + // * `name="projects/my-project/locations/us-central1/repositories/my-repo/files/*file.txt"` + // * `name="projects/my-project/locations/us-central1/repositories/my-repo/files/*file*"` + // + // To filter the results of your request to files owned by the version `1.0` + // in package `pkg1`, append the following filter expression to your request: + // + // * `owner="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/1.0"` + // + // To filter the results of your request to files with the annotation + // key-value pair [`external_link`: `external_link_value`], append the + // following filter expression to your request: + // + // * `"annotations.external_link:external_link_value"` + // + // To filter just for a specific annotation key `external_link`, append the + // following filter expression to your request: + // + // * `"annotations.external_link"` + // + // If the annotation key or value contains special characters, you can escape + // them by surrounding the value with backticks. For example, to filter the + // results of your request to files with the annotation key-value pair + // [`external.link`:`https://example.com/my-file`], append the following + // filter expression to your request: // - // An example of using a filter: + // * `` "annotations.`external.link`:`https://example.com/my-file`" `` // - // * `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`. + // You can also filter with annotations with a wildcard to + // match any number of characters before or after the value: + // + // * `` "annotations.*_link:`*example.com*`" `` string filter = 4; - // The maximum number of files to return. + // The maximum number of files 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. @@ -139,3 +181,26 @@ message GetFileRequest { } ]; } + +// The request to delete a file. +message DeleteFileRequest { + // Required. The name of the file to delete. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "artifactregistry.googleapis.com/File" + } + ]; +} + +// The request to update a file. +message UpdateFileRequest { + // Required. The File that replaces the resource on the server. + File file = 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]; +} diff --git a/google/devtools/artifactregistry/v1/generic.proto b/google/devtools/artifactregistry/v1/generic.proto new file mode 100644 index 000000000..64b71bc8a --- /dev/null +++ b/google/devtools/artifactregistry/v1/generic.proto @@ -0,0 +1,55 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.devtools.artifactregistry.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.ArtifactRegistry.V1"; +option go_package = "cloud.google.com/go/artifactregistry/apiv1/artifactregistrypb;artifactregistrypb"; +option java_multiple_files = true; +option java_outer_classname = "GenericProto"; +option java_package = "com.google.devtools.artifactregistry.v1"; +option php_namespace = "Google\\Cloud\\ArtifactRegistry\\V1"; +option ruby_package = "Google::Cloud::ArtifactRegistry::V1"; + +// GenericArtifact represents a generic artifact +message GenericArtifact { + option (google.api.resource) = { + type: "artifactregistry.googleapis.com/GenericArtifact" + pattern: "projects/{project}/locations/{location}/repositories/{repository}/genericArtifacts/{generic_artifact}" + }; + + // Resource name of the generic artifact. + // project, location, repository, package_id and version_id + // create a unique generic artifact. + // i.e. "projects/test-project/locations/us-west4/repositories/test-repo/ + // genericArtifacts/package_id:version_id" + string name = 1; + + // The version of the generic artifact. + string version = 2; + + // Output only. The time when the Generic module is created. + google.protobuf.Timestamp create_time = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The time when the Generic module is updated. + google.protobuf.Timestamp update_time = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/devtools/artifactregistry/v1/package.proto b/google/devtools/artifactregistry/v1/package.proto index d6ec4b440..27cddcf35 100644 --- a/google/devtools/artifactregistry/v1/package.proto +++ b/google/devtools/artifactregistry/v1/package.proto @@ -18,6 +18,7 @@ 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"; option csharp_namespace = "Google.Cloud.ArtifactRegistry.V1"; @@ -49,6 +50,9 @@ message Package { // The time when the package was last updated. This includes publishing a new // version of the package. google.protobuf.Timestamp update_time = 6; + + // Optional. Client specified annotations. + map<string, string> annotations = 7 [(google.api.field_behavior) = OPTIONAL]; } // The request to list packages. @@ -66,6 +70,56 @@ message ListPackagesRequest { // The next_page_token value returned from a previous list request, if any. string page_token = 3; + + // Optional. An expression for filtering the results of the request. Filter + // rules are case insensitive. The fields eligible for filtering are: + // + // * `name` + // * `annotations` + // + // Examples of using a filter: + // + // To filter the results of your request to packages with the name + // `my-package` in project `my-project` in the `us-central` region, in + // repository `my-repo`, append the following filter expression to your + // request: + // + // * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package"` + // + // You can also use wildcards to match any number of characters before or + // after the value: + // + // * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-*"` + // * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/*package"` + // * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/*pack*"` + // + // To filter the results of your request to packages with the annotation + // key-value pair [`external_link`: `external_link_value`], append the + // following filter expression to your request": + // + // * `"annotations.external_link:external_link_value"` + // + // To filter the results just for a specific annotation key `external_link`, + // append the following filter expression to your request: + // + // * `"annotations.external_link"` + // + // If the annotation key or value contains special characters, you can escape + // them by surrounding the value with backticks. For example, to filter the + // results of your request to packages with the annotation key-value pair + // [`external.link`:`https://example.com/my-package`], append the following + // filter expression to your request: + // + // * `` "annotations.`external.link`:`https://example.com/my-package`" `` + // + // You can also filter with annotations with a wildcard to + // match any number of characters before or after the value: + // + // * `` "annotations.*_link:`*example.com*`" `` + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The field to order the results by. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; } // The response from listing packages. @@ -99,3 +153,14 @@ message DeletePackageRequest { } ]; } + +// The request to update a package. +message UpdatePackageRequest { + // The package that replaces the resource on the server. + Package package = 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; +} diff --git a/google/devtools/artifactregistry/v1/repository.proto b/google/devtools/artifactregistry/v1/repository.proto index 33ae7de45..9ef8180b4 100644 --- a/google/devtools/artifactregistry/v1/repository.proto +++ b/google/devtools/artifactregistry/v1/repository.proto @@ -33,6 +33,10 @@ option (google.api.resource_definition) = { type: "secretmanager.googleapis.com/SecretVersion" pattern: "projects/{project}/secrets/{secret}/versions/{secret_version}" }; +option (google.api.resource_definition) = { + type: "servicedirectory.googleapis.com/Service" + pattern: "projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}" +}; // Artifact policy configuration for the repository contents. message UpstreamPolicy { @@ -159,6 +163,13 @@ message RemoteRepositoryConfig { // Configuration for a Docker remote repository. message DockerRepository { + // Customer-specified publicly available remote repository. + message CustomRepository { + // An http/https uri reference to the custom remote repository, for ex: + // "https://registry-1.docker.io". + string uri = 1; + } + // Predefined list of publicly available Docker repositories like Docker // Hub. enum PublicRepository { @@ -174,11 +185,21 @@ message RemoteRepositoryConfig { // One of the publicly available Docker repositories supported by Artifact // Registry. PublicRepository public_repository = 1; + + // Customer-specified remote repository. + CustomRepository custom_repository = 3; } } // Configuration for a Maven remote repository. message MavenRepository { + // Customer-specified publicly available remote repository. + message CustomRepository { + // An http/https uri reference to the upstream remote repository, for ex: + // "https://my.maven.registry/". + string uri = 1; + } + // Predefined list of publicly available Maven repositories like Maven // Central. enum PublicRepository { @@ -194,11 +215,21 @@ message RemoteRepositoryConfig { // One of the publicly available Maven repositories supported by Artifact // Registry. PublicRepository public_repository = 1; + + // Customer-specified remote repository. + CustomRepository custom_repository = 3; } } // Configuration for a Npm remote repository. message NpmRepository { + // Customer-specified publicly available remote repository. + message CustomRepository { + // An http/https uri reference to the upstream remote repository, for ex: + // "https://my.npm.registry/". + string uri = 1; + } + // Predefined list of publicly available NPM repositories like npmjs. enum PublicRepository { // Unspecified repository. @@ -213,11 +244,21 @@ message RemoteRepositoryConfig { // One of the publicly available Npm repositories supported by Artifact // Registry. PublicRepository public_repository = 1; + + // Customer-specified remote repository. + CustomRepository custom_repository = 3; } } // Configuration for a Python remote repository. message PythonRepository { + // Customer-specified publicly available remote repository. + message CustomRepository { + // An http/https uri reference to the upstream remote repository, for ex: + // "https://my.python.registry/". + string uri = 1; + } + // Predefined list of publicly available Python repositories like PyPI.org. enum PublicRepository { // Unspecified repository. @@ -232,6 +273,9 @@ message RemoteRepositoryConfig { // One of the publicly available Python repositories supported by Artifact // Registry. PublicRepository public_repository = 1; + + // Customer-specified remote repository. + CustomRepository custom_repository = 3; } } @@ -250,6 +294,9 @@ message RemoteRepositoryConfig { // Ubuntu LTS/Pro. UBUNTU = 2; + + // Archived Debian. + DEBIAN_SNAPSHOT = 3; } // A common public repository base for Apt. @@ -259,11 +306,21 @@ message RemoteRepositoryConfig { string repository_path = 2; } + // Customer-specified publicly available remote repository. + message CustomRepository { + // An http/https uri reference to the upstream remote repository, for ex: + // "https://my.apt.registry/". + string uri = 1; + } + // Address of the remote repository. oneof upstream { // One of the publicly available Apt repositories supported by Artifact // Registry. PublicRepository public_repository = 1; + + // Customer-specified remote repository. + CustomRepository custom_repository = 3; } } @@ -303,14 +360,30 @@ message RemoteRepositoryConfig { string repository_path = 2; } + // Customer-specified publicly available remote repository. + message CustomRepository { + // An http/https uri reference to the upstream remote repository, for ex: + // "https://my.yum.registry/". + string uri = 1; + } + // Address of the remote repository. oneof upstream { // One of the publicly available Yum repositories supported by Artifact // Registry. PublicRepository public_repository = 1; + + // Customer-specified remote repository. + CustomRepository custom_repository = 3; } } + // Common remote repository settings type. + message CommonRemoteRepository { + // Required. A common public repository base for remote repository. + string uri = 1 [(google.api.field_behavior) = REQUIRED]; + } + // Settings specific to the remote repository. oneof remote_source { // Specific settings for a Docker remote repository. @@ -330,6 +403,10 @@ message RemoteRepositoryConfig { // Specific settings for a Yum remote repository. YumRepository yum_repository = 7; + + // Common remote repository settings. + // Used as the remote repository upstream URL. + CommonRemoteRepository common_repository = 14; } // The description of the remote source. @@ -338,6 +415,11 @@ message RemoteRepositoryConfig { // Optional. The credentials used to access the remote repository. UpstreamCredentials upstream_credentials = 9 [(google.api.field_behavior) = OPTIONAL]; + + // Input only. A create/update remote repo option to avoid making a HEAD/GET + // request to validate a remote repo and any supplied upstream credentials. + bool disable_upstream_validation = 12 + [(google.api.field_behavior) = INPUT_ONLY]; } // A Repository for storing artifacts with a specific format. @@ -383,6 +465,57 @@ message Repository { bool immutable_tags = 1; } + // Config on whether to perform vulnerability scanning for resources in this + // repository, as well as output fields describing current state. + message VulnerabilityScanningConfig { + // Config for vulnerability scanning of resources in this repository. + enum EnablementConfig { + // Not set. This will be treated as INHERITED. + ENABLEMENT_CONFIG_UNSPECIFIED = 0; + + // Scanning is Enabled, but dependent on API enablement. + INHERITED = 1; + + // No automatic vulnerability scanning will be performed for this + // repository. + DISABLED = 2; + } + + // Describes the state of vulnerability scanning in this repository, + // including both repository enablement and API enablement. + enum EnablementState { + // Enablement state is unclear. + ENABLEMENT_STATE_UNSPECIFIED = 0; + + // Repository does not support vulnerability scanning. + SCANNING_UNSUPPORTED = 1; + + // Vulnerability scanning is disabled for this repository. + SCANNING_DISABLED = 2; + + // Vulnerability scanning is active for this repository. + SCANNING_ACTIVE = 3; + } + + // Optional. Config for whether this repository has vulnerability scanning + // disabled. + EnablementConfig enablement_config = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The last time this repository config was enabled. + google.protobuf.Timestamp last_enable_time = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. State of feature enablement, combining repository enablement + // config and API enablement state. + EnablementState enablement_state = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Reason for the repository state. + string enablement_state_reason = 4 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + // A package format. enum Format { // Unspecified package format. @@ -411,6 +544,9 @@ message Repository { // Go package format. GO = 10; + + // Generic package format. + GENERIC = 11; } // The mode configures the repository to serve artifacts from different @@ -451,7 +587,8 @@ message Repository { } // The name of the repository, for example: - // `projects/p1/locations/us-central1/repositories/repo1`. + // `projects/p1/locations/us-central1/repositories/repo1`. For each location + // in a project, repository names must be unique. string name = 1; // Optional. The format of packages that are stored in the repository. @@ -502,6 +639,18 @@ message Repository { // Optional. If true, the cleanup pipeline is prevented from deleting versions // in this repository. bool cleanup_policy_dry_run = 18 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Config and state for vulnerability scanning of resources within + // this Repository. + VulnerabilityScanningConfig vulnerability_scanning_config = 19 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If this is true, an unspecified repo type will be treated as + // error rather than defaulting to standard. + bool disallow_unspecified_mode = 21 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. If set, the repository satisfies physical zone isolation. + bool satisfies_pzi = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; } // The request to list repositories. @@ -520,6 +669,30 @@ message ListRepositoriesRequest { // The next_page_token value returned from a previous list request, if any. string page_token = 3; + + // Optional. An expression for filtering the results of the request. Filter + // rules are case insensitive. The fields eligible for filtering are: + // + // * `name` + // + // Examples of using a filter: + // + // To filter the results of your request to repositories with the name + // `my-repo` in project `my-project` in the `us-central` region, append the + // following filter expression to your request: + // + // * `name="projects/my-project/locations/us-central1/repositories/my-repo"` + // + // You can also use wildcards to match any number of characters before or + // after the value: + // + // * `name="projects/my-project/locations/us-central1/repositories/my-*"` + // * `name="projects/my-project/locations/us-central1/repositories/*repo"` + // * `name="projects/my-project/locations/us-central1/repositories/*repo*"` + string filter = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The field to order the results by. + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; } // The response from listing repositories. diff --git a/google/devtools/artifactregistry/v1/rule.proto b/google/devtools/artifactregistry/v1/rule.proto new file mode 100644 index 000000000..9d1d5b220 --- /dev/null +++ b/google/devtools/artifactregistry/v1/rule.proto @@ -0,0 +1,157 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF 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"; +import "google/type/expr.proto"; + +option csharp_namespace = "Google.Cloud.ArtifactRegistry.V1"; +option go_package = "cloud.google.com/go/artifactregistry/apiv1/artifactregistrypb;artifactregistrypb"; +option java_multiple_files = true; +option java_outer_classname = "RuleProto"; +option java_package = "com.google.devtools.artifactregistry.v1"; +option php_namespace = "Google\\Cloud\\ArtifactRegistry\\V1"; +option ruby_package = "Google::Cloud::ArtifactRegistry::V1"; + +// A rule defines the deny or allow action of the operation it applies to and +// the conditions required for the rule to apply. You can set one rule for an +// entire repository and one rule for each package within. +message Rule { + option (google.api.resource) = { + type: "artifactregistry.googleapis.com/Rule" + pattern: "projects/{project}/locations/{location}/repositories/{repository}/rules/{rule}" + }; + + // Defines the action of the rule. + enum Action { + // Action not specified. + ACTION_UNSPECIFIED = 0; + + // Allow the operation. + ALLOW = 1; + + // Deny the operation. + DENY = 2; + } + + // The operation the rule applies to. + enum Operation { + // Operation not specified. + OPERATION_UNSPECIFIED = 0; + + // Download operation. + DOWNLOAD = 1; + } + + // The name of the rule, for example: + // `projects/p1/locations/us-central1/repositories/repo1/rules/rule1`. + string name = 1; + + // The action this rule takes. + Action action = 2; + + Operation operation = 3; + + // Optional. A CEL expression for conditions that must be met in order for the + // rule to apply. If not provided, the rule matches all objects. + google.type.Expr condition = 4 [(google.api.field_behavior) = OPTIONAL]; + + // The package ID the rule applies to. + // If empty, this rule applies to all packages inside the repository. + string package_id = 5; +} + +// The request to list rules. +message ListRulesRequest { + // Required. The name of the parent repository whose rules will be listed. + // For example: + // `projects/p1/locations/us-central1/repositories/repo1`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "artifactregistry.googleapis.com/Rule" + } + ]; + + // The maximum number of rules 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 rules. +message ListRulesResponse { + // The rules returned. + repeated Rule rules = 1; + + // The token to retrieve the next page of rules, or empty if there are no + // more rules to return. + string next_page_token = 2; +} + +// The request to retrieve a rule. +message GetRuleRequest { + // Required. The name of the rule to retrieve. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "artifactregistry.googleapis.com/Rule" + } + ]; +} + +// The request to create a new rule. +message CreateRuleRequest { + // Required. The name of the parent resource where the rule will be created. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "artifactregistry.googleapis.com/Rule" + } + ]; + + // The rule id to use for this repository. + string rule_id = 2; + + // The rule to be created. + Rule rule = 3; +} + +// The request to update a rule. +message UpdateRuleRequest { + // The rule that replaces the resource on the server. + Rule rule = 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 rule. +message DeleteRuleRequest { + // Required. The name of the rule to delete. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "artifactregistry.googleapis.com/Rule" + } + ]; +} diff --git a/google/devtools/artifactregistry/v1/service.proto b/google/devtools/artifactregistry/v1/service.proto index 882b8c714..29daf6cdc 100644 --- a/google/devtools/artifactregistry/v1/service.proto +++ b/google/devtools/artifactregistry/v1/service.proto @@ -20,9 +20,11 @@ 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/attachment.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/rule.proto"; import "google/devtools/artifactregistry/v1/settings.proto"; import "google/devtools/artifactregistry/v1/tag.proto"; import "google/devtools/artifactregistry/v1/version.proto"; @@ -291,6 +293,15 @@ service ArtifactRegistry { }; } + // Updates a version. + rpc UpdateVersion(UpdateVersionRequest) returns (Version) { + option (google.api.http) = { + patch: "/v1/{version.name=projects/*/locations/*/repositories/*/packages/*/versions/*}" + body: "version" + }; + option (google.api.method_signature) = "version,update_mask"; + } + // Lists files. rpc ListFiles(ListFilesRequest) returns (ListFilesResponse) { option (google.api.http) = { @@ -307,6 +318,29 @@ service ArtifactRegistry { option (google.api.method_signature) = "name"; } + // Deletes a file and all of its content. It is only allowed on generic + // repositories. The returned operation will complete once the file has been + // deleted. + rpc DeleteFile(DeleteFileRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/repositories/*/files/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.devtools.artifactregistry.v1.OperationMetadata" + }; + } + + // Updates a file. + rpc UpdateFile(UpdateFileRequest) returns (File) { + option (google.api.http) = { + patch: "/v1/{file.name=projects/*/locations/*/repositories/*/files/*}" + body: "file" + }; + option (google.api.method_signature) = "file,update_mask"; + } + // Lists tags. rpc ListTags(ListTagsRequest) returns (ListTagsResponse) { option (google.api.http) = { @@ -349,6 +383,48 @@ service ArtifactRegistry { option (google.api.method_signature) = "name"; } + // Creates a rule. + rpc CreateRule(CreateRuleRequest) returns (Rule) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/repositories/*}/rules" + body: "rule" + }; + option (google.api.method_signature) = "parent,rule,rule_id"; + } + + // Lists rules. + rpc ListRules(ListRulesRequest) returns (ListRulesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/repositories/*}/rules" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets a rule. + rpc GetRule(GetRuleRequest) returns (Rule) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/repositories/*/rules/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a rule. + rpc UpdateRule(UpdateRuleRequest) returns (Rule) { + option (google.api.http) = { + patch: "/v1/{rule.name=projects/*/locations/*/repositories/*/rules/*}" + body: "rule" + }; + option (google.api.method_signature) = "rule,update_mask"; + } + + // Deletes a rule. + rpc DeleteRule(DeleteRuleRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/repositories/*/rules/*}" + }; + 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) { @@ -409,6 +485,62 @@ service ArtifactRegistry { }; option (google.api.method_signature) = "vpcsc_config,update_mask"; } + + // Updates a package. + rpc UpdatePackage(UpdatePackageRequest) returns (Package) { + option (google.api.http) = { + patch: "/v1/{package.name=projects/*/locations/*/repositories/*/packages/*}" + body: "package" + }; + option (google.api.method_signature) = "package,update_mask"; + } + + // Lists attachments. + rpc ListAttachments(ListAttachmentsRequest) + returns (ListAttachmentsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/repositories/*}/attachments" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets an attachment. + rpc GetAttachment(GetAttachmentRequest) returns (Attachment) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/repositories/*/attachments/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Creates an attachment. The returned Operation will finish once the + // attachment has been created. Its response will be the created attachment. + rpc CreateAttachment(CreateAttachmentRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*/repositories/*}/attachments" + body: "attachment" + }; + option (google.api.method_signature) = "parent,attachment,attachment_id"; + option (google.longrunning.operation_info) = { + response_type: "google.devtools.artifactregistry.v1.Attachment" + metadata_type: "google.devtools.artifactregistry.v1.OperationMetadata" + }; + } + + // Deletes an attachment. The returned Operation will + // finish once the attachments has been deleted. It will not have any + // Operation metadata and will return a `google.protobuf.Empty` response. + rpc DeleteAttachment(DeleteAttachmentRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/repositories/*/attachments/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "google.devtools.artifactregistry.v1.OperationMetadata" + }; + } } // Metadata type for longrunning-operations, currently empty. diff --git a/google/devtools/artifactregistry/v1/settings.proto b/google/devtools/artifactregistry/v1/settings.proto index e37bfc98b..8a2792ff1 100644 --- a/google/devtools/artifactregistry/v1/settings.proto +++ b/google/devtools/artifactregistry/v1/settings.proto @@ -48,6 +48,12 @@ message ProjectSettings { // Redirection is enabled, and has been finalized so cannot be reverted. REDIRECTION_FROM_GCR_IO_FINALIZED = 3 [deprecated = true]; + + // Redirection is enabled and missing images are copied from GCR + REDIRECTION_FROM_GCR_IO_ENABLED_AND_COPYING = 5; + + // Redirection is partially enabled and missing images are copied from GCR + REDIRECTION_FROM_GCR_IO_PARTIAL_AND_COPYING = 6; } // The name of the project's settings. @@ -61,6 +67,10 @@ message ProjectSettings { // The redirection state of the legacy repositories in this project. RedirectionState legacy_redirection_state = 2; + + // The percentage of pull traffic to redirect from GCR to AR when using + // partial redirection. + int32 pull_percent = 3; } // Gets the redirection status for a project. diff --git a/google/devtools/artifactregistry/v1/tag.proto b/google/devtools/artifactregistry/v1/tag.proto index e4a59826f..3708e9a96 100644 --- a/google/devtools/artifactregistry/v1/tag.proto +++ b/google/devtools/artifactregistry/v1/tag.proto @@ -43,7 +43,7 @@ message Tag { 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" + // `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; @@ -59,15 +59,33 @@ message ListTagsRequest { // An expression for filtering the results of the request. Filter rules are // case insensitive. The fields eligible for filtering are: // + // * `name` // * `version` // - // An example of using a filter: + // Examples 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`. + // To filter the results of your request to tags with the name `my-tag` in + // package `my-package` in repository `my-repo` in project "`y-project` in + // the us-central region, append the following filter expression to your + // request: + // + // * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/my-tag"` + // + // You can also use wildcards to match any number of characters before or + // after the value: + // + // * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/my*"` + // * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/*tag"` + // * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/*tag*"` + // + // To filter the results of your request to tags applied to the version + // `1.0` in package `my-package`, append the following filter expression to + // your request: + // + // * `version="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/1.0"` string filter = 4; - // The maximum number of tags to return. Maximum page size is 10,000. + // The maximum number of tags 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. diff --git a/google/devtools/artifactregistry/v1/version.proto b/google/devtools/artifactregistry/v1/version.proto index 13f22dcf3..fc9984d79 100644 --- a/google/devtools/artifactregistry/v1/version.proto +++ b/google/devtools/artifactregistry/v1/version.proto @@ -19,6 +19,7 @@ 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/field_mask.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; @@ -54,7 +55,7 @@ message Version { }; // The name of the version, for example: - // "projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/versions/art1". + // `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; @@ -79,6 +80,9 @@ message Version { // [MavenArtifact][google.devtools.artifactregistry.v1.MavenArtifact] google.protobuf.Struct metadata = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Client specified annotations. + map<string, string> annotations = 9 [(google.api.field_behavior) = OPTIONAL]; } // The request to list versions. @@ -97,6 +101,53 @@ message ListVersionsRequest { // Optional. The field to order the results by. string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. An expression for filtering the results of the request. Filter + // rules are case insensitive. The fields eligible for filtering are: + // + // * `name` + // * `annotations` + // + // Examples of using a filter: + // + // To filter the results of your request to versions with the name + // `my-version` in project `my-project` in the `us-central` region, in + // repository `my-repo`, append the following filter expression to your + // request: + // + // * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/my-version"` + // + // You can also use wildcards to match any number of characters before or + // after the value: + // + // * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/*version"` + // * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/my*"` + // * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/*version*"` + // + // To filter the results of your request to versions with the annotation + // key-value pair [`external_link`: `external_link_value`], append the + // following filter expression to your request: + // + // * `"annotations.external_link:external_link_value"` + // + // To filter just for a specific annotation key `external_link`, append the + // following filter expression to your request: + // + // * `"annotations.external_link"` + // + // If the annotation key or value contains special characters, you can escape + // them by surrounding the value with backticks. For example, to filter the + // results of your request to versions with the annotation key-value pair + // [`external.link`:`https://example.com/my-version`], append the following + // filter expression to your request: + // + // * `` "annotations.`external.link`:`https://example.com/my-version`" `` + // + // You can also filter with annotations with a wildcard to + // match any number of characters before or after the value: + // + // * `` "annotations.*_link:`*example.com*`" `` + string filter = 6 [(google.api.field_behavior) = OPTIONAL]; } // The response from listing versions. @@ -153,3 +204,14 @@ message BatchDeleteVersionsMetadata { // The versions the operation failed to delete. repeated string failed_versions = 2; } + +// The request to update a version. +message UpdateVersionRequest { + // Required. The Version that replaces the resource on the server. + Version version = 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 + google.protobuf.FieldMask update_mask = 2; +} diff --git a/google/devtools/cloudbuild/v1/cloudbuild.proto b/google/devtools/cloudbuild/v1/cloudbuild.proto index c671471ac..b288169fe 100644 --- a/google/devtools/cloudbuild/v1/cloudbuild.proto +++ b/google/devtools/cloudbuild/v1/cloudbuild.proto @@ -67,6 +67,10 @@ option (google.api.resource_definition) = { type: "pubsub.googleapis.com/Topic" pattern: "projects/{project}/topics/{topic}" }; +option (google.api.resource_definition) = { + type: "compute.googleapis.com/NetworkAttachment" + pattern: "projects/{project}/regions/{region}/networkAttachments/{networkattachment}" +}; option (google.api.resource_definition) = { type: "cloudbuild.googleapis.com/Repository" pattern: "projects/{project}/locations/{location}/connections/{connection}/repositories/{repository}" @@ -2228,15 +2232,18 @@ message BuildOptions { NONE = 4; } - // Default GCS log bucket behavior options. + // Default Cloud Storage log bucket behavior options. enum DefaultLogsBucketBehavior { // Unspecified. DEFAULT_LOGS_BUCKET_BEHAVIOR_UNSPECIFIED = 0; // Bucket is located in user-owned project in the same region as the // build. The builder service account must have access to create and write - // to GCS buckets in the build project. + // to Cloud Storage buckets in the build project. REGIONAL_USER_OWNED_BUCKET = 1; + + // Bucket is located in a Google-owned project and is not regionalized. + LEGACY_BUCKET = 2; } // Requested hash for SourceProvenance. @@ -2580,11 +2587,54 @@ message PrivatePoolV1Config { [(google.api.field_behavior) = IMMUTABLE]; } + // Defines the Private Service Connect network configuration for the pool. + message PrivateServiceConnect { + // Required. Immutable. The network attachment that the worker network + // interface is peered to. Must be in the format + // `projects/{project}/regions/{region}/networkAttachments/{networkAttachment}`. + // The region of network attachment must be the same as the worker pool. + // See [Network + // Attachments](https://cloud.google.com/vpc/docs/about-network-attachments) + string network_attachment = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "compute.googleapis.com/NetworkAttachment" + } + ]; + + // Required. Immutable. Disable public IP on the primary network interface. + // + // If true, workers are created without any public address, which prevents + // network egress to public IPs unless a network proxy is configured. + // If false, workers are created with a public address which allows for + // public internet egress. The public address only applies to traffic + // through the primary network interface. + // If `route_all_traffic` is set to true, all traffic will go through the + // non-primary network interface, this boolean has no effect. + bool public_ip_address_disabled = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Immutable. Route all traffic through PSC interface. Enable this if you + // want full control of traffic in the private pool. Configure Cloud NAT for + // the subnet of network attachment if you need to access public Internet. + // + // If false, Only route private IPs, e.g. 10.0.0.0/8, 172.16.0.0/12, and + // 192.168.0.0/16 through PSC interface. + bool route_all_traffic = 3 [(google.api.field_behavior) = IMMUTABLE]; + } + // Machine configuration for the workers in the pool. WorkerConfig worker_config = 1; // Network configuration for the pool. NetworkConfig network_config = 2; + + // Immutable. Private Service Connect(PSC) Network configuration for the pool. + PrivateServiceConnect private_service_connect = 5 + [(google.api.field_behavior) = IMMUTABLE]; } // Request to create a new `WorkerPool`. diff --git a/google/devtools/clouderrorreporting/v1beta1/BUILD.bazel b/google/devtools/clouderrorreporting/v1beta1/BUILD.bazel index a8a59684e..caf9b0410 100644 --- a/google/devtools/clouderrorreporting/v1beta1/BUILD.bazel +++ b/google/devtools/clouderrorreporting/v1beta1/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: @@ -9,41 +9,17 @@ # * extra_protoc_file_parameters # The complete list of preserved parameters can be found in the source code. +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + ############################################################################## # Common ############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") load("@rules_proto//proto:defs.bzl", "proto_library") -load( - "@com_google_googleapis_imports//:imports.bzl", - "csharp_gapic_assembly_pkg", - "csharp_gapic_library", - "csharp_grpc_library", - "csharp_proto_library", - "go_gapic_assembly_pkg", - "go_gapic_library", - "go_proto_library", - "java_gapic_assembly_gradle_pkg", - "java_gapic_library", - "java_gapic_test", - "java_grpc_library", - "java_proto_library", - "nodejs_gapic_assembly_pkg", - "nodejs_gapic_library", - "php_gapic_assembly_pkg", - "php_gapic_library", - "php_proto_library", - "proto_library_with_info", - "py_gapic_assembly_pkg", - "py_gapic_library", - "py_test", - "ruby_cloud_gapic_library", - "ruby_gapic_assembly_pkg", - "ruby_grpc_library", - "ruby_proto_library", -) - -# This is an API workspace, having public visibility by default makes perfect sense. -package(default_visibility = ["//visibility:public"]) proto_library( name = "clouderrorreporting_proto", @@ -71,6 +47,19 @@ proto_library_with_info( ], ) +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + java_proto_library( name = "clouderrorreporting_java_proto", deps = [":clouderrorreporting_proto"], @@ -85,6 +74,7 @@ java_grpc_library( java_gapic_library( name = "clouderrorreporting_java_gapic", srcs = [":clouderrorreporting_proto_with_info"], + gapic_yaml = None, grpc_service_config = "errorreporting_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "clouderrorreporting_v1beta1.yaml", @@ -94,6 +84,7 @@ java_gapic_library( transport = "grpc+rest", deps = [ ":clouderrorreporting_java_proto", + "//google/api:api_java_proto", ], ) @@ -123,6 +114,17 @@ java_gapic_assembly_gradle_pkg( ], ) +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + go_proto_library( name = "clouderrorreporting_go_proto", compilers = ["@io_bazel_rules_go//proto:go_grpc"], @@ -139,6 +141,8 @@ go_gapic_library( srcs = [":clouderrorreporting_proto_with_info"], grpc_service_config = "errorreporting_grpc_service_config.json", importpath = "cloud.google.com/go/errorreporting/apiv1beta1;errorreporting", + metadata = True, + release_level = "beta", rest_numeric_enums = True, service_yaml = "clouderrorreporting_v1beta1.yaml", transport = "grpc+rest", @@ -153,12 +157,24 @@ go_gapic_assembly_pkg( name = "gapi-cloud-devtools-clouderrorreporting-v1beta1-go", deps = [ ":clouderrorreporting_go_gapic", + ":clouderrorreporting_go_gapic_srcjar-metadata.srcjar", ":clouderrorreporting_go_gapic_srcjar-snippets.srcjar", ":clouderrorreporting_go_gapic_srcjar-test.srcjar", ":clouderrorreporting_go_proto", ], ) +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + py_gapic_library( name = "clouderrorreporting_py_gapic", srcs = [":clouderrorreporting_proto"], @@ -171,6 +187,8 @@ py_gapic_library( rest_numeric_enums = True, service_yaml = "clouderrorreporting_v1beta1.yaml", transport = "grpc+rest", + deps = [ + ], ) py_test( @@ -191,6 +209,17 @@ py_gapic_assembly_pkg( ], ) +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + php_proto_library( name = "clouderrorreporting_php_proto", deps = [":clouderrorreporting_proto"], @@ -204,7 +233,9 @@ php_gapic_library( rest_numeric_enums = True, service_yaml = "clouderrorreporting_v1beta1.yaml", transport = "grpc+rest", - deps = [":clouderrorreporting_php_proto"], + deps = [ + ":clouderrorreporting_php_proto", + ], ) # Open Source Packages @@ -216,6 +247,16 @@ php_gapic_assembly_pkg( ], ) +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + nodejs_gapic_library( name = "clouderrorreporting_nodejs_gapic", package_name = "@google-cloud/clouderrorreporting", @@ -237,6 +278,18 @@ nodejs_gapic_assembly_pkg( ], ) +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", + "ruby_grpc_library", + "ruby_proto_library", +) + ruby_proto_library( name = "clouderrorreporting_ruby_proto", deps = [":clouderrorreporting_proto"], @@ -252,11 +305,11 @@ ruby_cloud_gapic_library( name = "clouderrorreporting_ruby_gapic", srcs = [":clouderrorreporting_proto_with_info"], extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-cloud-error_reporting-v1beta1", - "ruby-cloud-env-prefix=ERROR_REPORTING", - "ruby-cloud-product-url=https://cloud.google.com/error-reporting", "ruby-cloud-api-id=clouderrorreporting.googleapis.com", "ruby-cloud-api-shortname=clouderrorreporting", + "ruby-cloud-env-prefix=ERROR_REPORTING", + "ruby-cloud-gem-name=google-cloud-error_reporting-v1beta1", + "ruby-cloud-product-url=https://cloud.google.com/error-reporting", ], grpc_service_config = "errorreporting_grpc_service_config.json", rest_numeric_enums = True, @@ -280,8 +333,21 @@ ruby_gapic_assembly_pkg( ], ) +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + csharp_proto_library( name = "clouderrorreporting_csharp_proto", + extra_opts = [], deps = [":clouderrorreporting_proto"], ) @@ -318,4 +384,21 @@ csharp_gapic_assembly_pkg( ############################################################################## # C++ ############################################################################## -# Put your C++ rules here +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "clouderrorreporting_cc_proto", + deps = [":clouderrorreporting_proto"], +) + +cc_grpc_library( + name = "clouderrorreporting_cc_grpc", + srcs = [":clouderrorreporting_proto"], + grpc_only = True, + deps = [":clouderrorreporting_cc_proto"], +) diff --git a/google/devtools/clouderrorreporting/v1beta1/clouderrorreporting_v1beta1.yaml b/google/devtools/clouderrorreporting/v1beta1/clouderrorreporting_v1beta1.yaml index b7860ba75..cc5fea63a 100644 --- a/google/devtools/clouderrorreporting/v1beta1/clouderrorreporting_v1beta1.yaml +++ b/google/devtools/clouderrorreporting/v1beta1/clouderrorreporting_v1beta1.yaml @@ -19,9 +19,6 @@ documentation: {% include "_shared/apis/console/_local_variables.html" %} {% include "cloud/_shared/_cloud_shared_files.html" %} - {% dynamic setvar launch_stage %}beta{% dynamic endsetvar %} - {% dynamic include /docs/includes/___info_launch_stage_disclaimer %} - The {{error_reporting_api}} provides: * A simple diff --git a/google/devtools/clouderrorreporting/v1beta1/common.proto b/google/devtools/clouderrorreporting/v1beta1/common.proto index 711abfc97..38cb56cde 100644 --- a/google/devtools/clouderrorreporting/v1beta1/common.proto +++ b/google/devtools/clouderrorreporting/v1beta1/common.proto @@ -36,17 +36,38 @@ message ErrorGroup { }; // The group resource name. - // Example: <code>projects/my-project-123/groups/CNSgkpnppqKCUw</code> + // Written as `projects/{projectID}/groups/{group_id}` or + // `projects/{projectID}/locations/{location}/groups/{group_id}` + // + // Examples: `projects/my-project-123/groups/my-group`, + // `projects/my-project-123/locations/us-central1/groups/my-group` + // + // In the group resource name, the `group_id` is a unique identifier for a + // particular error group. The identifier is derived from key parts of the + // error-log content and is treated as Service Data. For information about + // how Service Data is handled, see [Google Cloud Privacy + // Notice](https://cloud.google.com/terms/cloud-privacy-notice). + // + // For a list of supported locations, see [Supported + // Regions](https://cloud.google.com/logging/docs/region-support). `global` is + // the default when unspecified. string name = 1; - // Group IDs are unique for a given project. If the same kind of error - // occurs in different service contexts, it will receive the same group ID. + // An opaque identifier of the group. This field is assigned by the Error + // Reporting system and always populated. + // + // In the group resource name, the `group_id` is a unique identifier for a + // particular error group. The identifier is derived from key parts of the + // error-log content and is treated as Service Data. For information about + // how Service Data is handled, see [Google Cloud Privacy + // Notice](https://cloud.google.com/terms/cloud-privacy-notice). string group_id = 2; // Associated tracking issues. repeated TrackingIssue tracking_issues = 3; // Error group's resolution status. + // // An unspecified resolution status will be interpreted as OPEN ResolutionStatus resolution_status = 5; } diff --git a/google/devtools/clouderrorreporting/v1beta1/error_group_service.proto b/google/devtools/clouderrorreporting/v1beta1/error_group_service.proto index b37cdc106..af86a8d60 100644 --- a/google/devtools/clouderrorreporting/v1beta1/error_group_service.proto +++ b/google/devtools/clouderrorreporting/v1beta1/error_group_service.proto @@ -34,12 +34,16 @@ option ruby_package = "Google::Cloud::ErrorReporting::V1beta1"; // Service for retrieving and updating individual error groups. service ErrorGroupService { option (google.api.default_host) = "clouderrorreporting.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"; // Get the specified group. rpc GetGroup(GetGroupRequest) returns (ErrorGroup) { option (google.api.http) = { get: "/v1beta1/{group_name=projects/*/groups/*}" + additional_bindings { + get: "/v1beta1/{group_name=projects/*/locations/*/groups/*}" + } }; option (google.api.method_signature) = "group_name"; } @@ -50,6 +54,10 @@ service ErrorGroupService { option (google.api.http) = { put: "/v1beta1/{group.name=projects/*/groups/*}" body: "group" + additional_bindings { + put: "/v1beta1/{group.name=projects/*/locations/*/groups/*}" + body: "group" + } }; option (google.api.method_signature) = "group"; } @@ -57,12 +65,25 @@ service ErrorGroupService { // A request to return an individual group. message GetGroupRequest { - // Required. The group resource name. Written as - // `projects/{projectID}/groups/{group_name}`. Call - // [`groupStats.list`](https://cloud.google.com/error-reporting/reference/rest/v1beta1/projects.groupStats/list) + // Required. The group resource name. Written as either + // `projects/{projectID}/groups/{group_id}` or + // `projects/{projectID}/locations/{location}/groups/{group_id}`. Call + // [groupStats.list] + // [google.devtools.clouderrorreporting.v1beta1.ErrorStatsService.ListGroupStats] // to return a list of groups belonging to this project. // - // Example: `projects/my-project-123/groups/my-group` + // Examples: `projects/my-project-123/groups/my-group`, + // `projects/my-project-123/locations/global/groups/my-group` + // + // In the group resource name, the `group_id` is a unique identifier for a + // particular error group. The identifier is derived from key parts of the + // error-log content and is treated as Service Data. For information about + // how Service Data is handled, see [Google Cloud Privacy + // Notice](https://cloud.google.com/terms/cloud-privacy-notice). + // + // For a list of supported locations, see [Supported + // Regions](https://cloud.google.com/logging/docs/region-support). `global` is + // the default when unspecified. string group_name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/google/devtools/clouderrorreporting/v1beta1/error_stats_service.proto b/google/devtools/clouderrorreporting/v1beta1/error_stats_service.proto index 016e05bfd..7e8a1720d 100644 --- a/google/devtools/clouderrorreporting/v1beta1/error_stats_service.proto +++ b/google/devtools/clouderrorreporting/v1beta1/error_stats_service.proto @@ -37,12 +37,16 @@ option ruby_package = "Google::Cloud::ErrorReporting::V1beta1"; // individual events. service ErrorStatsService { option (google.api.default_host) = "clouderrorreporting.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 the specified groups. rpc ListGroupStats(ListGroupStatsRequest) returns (ListGroupStatsResponse) { option (google.api.http) = { get: "/v1beta1/{project_name=projects/*}/groupStats" + additional_bindings { + get: "/v1beta1/{project_name=projects/*/locations/*}/groupStats" + } }; option (google.api.method_signature) = "project_name,time_range"; } @@ -51,6 +55,9 @@ service ErrorStatsService { rpc ListEvents(ListEventsRequest) returns (ListEventsResponse) { option (google.api.http) = { get: "/v1beta1/{project_name=projects/*}/events" + additional_bindings { + get: "/v1beta1/{project_name=projects/*/locations/*}/events" + } }; option (google.api.method_signature) = "project_name,group_id"; } @@ -59,6 +66,9 @@ service ErrorStatsService { rpc DeleteEvents(DeleteEventsRequest) returns (DeleteEventsResponse) { option (google.api.http) = { delete: "/v1beta1/{project_name=projects/*}/events" + additional_bindings { + delete: "/v1beta1/{project_name=projects/*/locations/*}/events" + } }; option (google.api.method_signature) = "project_name"; } @@ -67,11 +77,21 @@ service ErrorStatsService { // Specifies a set of `ErrorGroupStats` to return. message ListGroupStatsRequest { // Required. The resource name of the Google Cloud Platform project. Written - // as `projects/{projectID}` or `projects/{projectNumber}`, where `{projectID}` - // and `{projectNumber}` can be found in the - // [Google Cloud Console](https://support.google.com/cloud/answer/6158840). + // as `projects/{projectID}` or `projects/{projectNumber}`, where + // `{projectID}` and `{projectNumber}` can be found in the + // [Google Cloud console](https://support.google.com/cloud/answer/6158840). + // It may also include a location, such as + // `projects/{projectID}/locations/{location}` where `{location}` is a cloud + // region. // - // Examples: `projects/my-project-123`, `projects/5551234`. + // Examples: `projects/my-project-123`, `projects/5551234`, + // `projects/my-project-123/locations/us-central1`, + // `projects/5551234/locations/us-central1`. + // + // For a list of supported locations, see [Supported + // Regions](https://cloud.google.com/logging/docs/region-support). `global` is + // the default when unspecified. Use `-` as a wildcard to request group stats + // from all regions. string project_name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -79,27 +99,44 @@ message ListGroupStatsRequest { } ]; - // Optional. List all <code>ErrorGroupStats</code> with these IDs. + // Optional. List all [ErrorGroupStats] + // [google.devtools.clouderrorreporting.v1beta1.ErrorGroupStats] with these + // IDs. The `group_id` is a unique identifier for a particular error group. + // The identifier is derived from key parts of the error-log content and is + // treated as Service Data. For information about how Service Data + // is handled, see [Google Cloud Privacy Notice] + // (https://cloud.google.com/terms/cloud-privacy-notice). repeated string group_id = 2 [(google.api.field_behavior) = OPTIONAL]; - // Optional. List only <code>ErrorGroupStats</code> which belong to a service - // context that matches the filter. - // Data for all service contexts is returned if this field is not specified. - ServiceContextFilter service_filter = 3 [(google.api.field_behavior) = OPTIONAL]; + // Optional. List only [ErrorGroupStats] + // [google.devtools.clouderrorreporting.v1beta1.ErrorGroupStats] which belong + // to a service context that matches the filter. Data for all service contexts + // is returned if this field is not specified. + ServiceContextFilter service_filter = 3 + [(google.api.field_behavior) = OPTIONAL]; // Optional. List data for the given time range. // If not set, a default time range is used. The field - // <code>time_range_begin</code> in the response will specify the beginning - // of this time range. - // Only <code>ErrorGroupStats</code> with a non-zero count in the given time - // range are returned, unless the request contains an explicit - // <code>group_id</code> list. If a <code>group_id</code> list is given, also - // <code>ErrorGroupStats</code> with zero occurrences are returned. + // [time_range_begin] + // [google.devtools.clouderrorreporting.v1beta1.ListGroupStatsResponse.time_range_begin] + // in the response will specify the beginning of this time range. Only + // [ErrorGroupStats] + // [google.devtools.clouderrorreporting.v1beta1.ErrorGroupStats] with a + // non-zero count in the given time range are returned, unless the request + // contains an explicit [group_id] + // [google.devtools.clouderrorreporting.v1beta1.ListGroupStatsRequest.group_id] + // list. If a [group_id] + // [google.devtools.clouderrorreporting.v1beta1.ListGroupStatsRequest.group_id] + // list is given, also [ErrorGroupStats] + // [google.devtools.clouderrorreporting.v1beta1.ErrorGroupStats] with zero + // occurrences are returned. QueryTimeRange time_range = 5 [(google.api.field_behavior) = OPTIONAL]; - // Optional. The preferred duration for a single returned `TimedCount`. - // If not set, no timed counts are returned. - google.protobuf.Duration timed_count_duration = 6 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The preferred duration for a single returned [TimedCount] + // [google.devtools.clouderrorreporting.v1beta1.TimedCount]. If not set, no + // timed counts are returned. + google.protobuf.Duration timed_count_duration = 6 + [(google.api.field_behavior) = OPTIONAL]; // Optional. The alignment of the timed counts to be returned. // Default is `ALIGNMENT_EQUAL_AT_END`. @@ -107,7 +144,8 @@ message ListGroupStatsRequest { // Optional. Time where the timed counts shall be aligned if rounded // alignment is chosen. Default is 00:00 UTC. - google.protobuf.Timestamp alignment_time = 8 [(google.api.field_behavior) = OPTIONAL]; + google.protobuf.Timestamp alignment_time = 8 + [(google.api.field_behavior) = OPTIONAL]; // Optional. The sort order in which the results are returned. // Default is `COUNT_DESC`. @@ -117,9 +155,10 @@ message ListGroupStatsRequest { // Default is 20. int32 page_size = 11 [(google.api.field_behavior) = OPTIONAL]; - // Optional. A `next_page_token` provided by a previous response. To view - // additional results, pass this token along with the identical query - // parameters as the first request. + // Optional. A [next_page_token] + // [google.devtools.clouderrorreporting.v1beta1.ListGroupStatsResponse.next_page_token] + // provided by a previous response. To view additional results, pass this + // token along with the identical query parameters as the first request. string page_token = 12 [(google.api.field_behavior) = OPTIONAL]; } @@ -140,6 +179,52 @@ message ListGroupStatsResponse { google.protobuf.Timestamp time_range_begin = 4; } +// Specifies how the time periods of error group counts are aligned. +enum TimedCountAlignment { + // No alignment specified. + ERROR_COUNT_ALIGNMENT_UNSPECIFIED = 0; + + // The time periods shall be consecutive, have width equal to the + // requested duration, and be aligned at the + // [alignment_time] + // [google.devtools.clouderrorreporting.v1beta1.ListGroupStatsRequest.alignment_time] + // provided in the request. + // + // The [alignment_time] + // [google.devtools.clouderrorreporting.v1beta1.ListGroupStatsRequest.alignment_time] + // does not have to be inside the query period but even if it is outside, only + // time periods are returned which overlap with the query period. + // + // A rounded alignment will typically result in a different size of the first + // or the last time period. + ALIGNMENT_EQUAL_ROUNDED = 1; + + // The time periods shall be consecutive, have width equal to the + // requested duration, and be aligned at the end of the requested time + // period. This can result in a different size of the + // first time period. + ALIGNMENT_EQUAL_AT_END = 2; +} + +// A sorting order of error groups. +enum ErrorGroupOrder { + // No group order specified. + GROUP_ORDER_UNSPECIFIED = 0; + + // Total count of errors in the given time window in descending order. + COUNT_DESC = 1; + + // Timestamp when the group was last seen in the given time window + // in descending order. + LAST_SEEN_DESC = 2; + + // Timestamp when the group was created in descending order. + CREATED_DESC = 3; + + // Number of affected users in the given time window in descending order. + AFFECTED_USERS_DESC = 4; +} + // Data extracted for a specific group based on certain filter criteria, // such as a given time period and/or service filter. message ErrorGroupStats { @@ -152,7 +237,8 @@ message ErrorGroupStats { // Approximate number of affected users in the given group that // match the filter criteria. - // Users are distinguished by data in the `ErrorContext` of the + // Users are distinguished by data in the [ErrorContext] + // [google.devtools.clouderrorreporting.v1beta1.ErrorContext] of the // individual error events, such as their login name or their remote // IP address in case of HTTP requests. // The number of affected users can be zero even if the number of @@ -213,55 +299,20 @@ message TimedCount { google.protobuf.Timestamp end_time = 3; } -// Specifies how the time periods of error group counts are aligned. -enum TimedCountAlignment { - // No alignment specified. - ERROR_COUNT_ALIGNMENT_UNSPECIFIED = 0; - - // The time periods shall be consecutive, have width equal to the - // requested duration, and be aligned at the `alignment_time` provided in - // the request. - // The `alignment_time` does not have to be inside the query period but - // even if it is outside, only time periods are returned which overlap - // with the query period. - // A rounded alignment will typically result in a - // different size of the first or the last time period. - ALIGNMENT_EQUAL_ROUNDED = 1; - - // The time periods shall be consecutive, have width equal to the - // requested duration, and be aligned at the end of the requested time - // period. This can result in a different size of the - // first time period. - ALIGNMENT_EQUAL_AT_END = 2; -} - -// A sorting order of error groups. -enum ErrorGroupOrder { - // No group order specified. - GROUP_ORDER_UNSPECIFIED = 0; - - // Total count of errors in the given time window in descending order. - COUNT_DESC = 1; - - // Timestamp when the group was last seen in the given time window - // in descending order. - LAST_SEEN_DESC = 2; - - // Timestamp when the group was created in descending order. - CREATED_DESC = 3; - - // Number of affected users in the given time window in descending order. - AFFECTED_USERS_DESC = 4; -} - // Specifies a set of error events to return. message ListEventsRequest { // Required. The resource name of the Google Cloud Platform project. Written - // as `projects/{projectID}`, where `{projectID}` is the - // [Google Cloud Platform project - // ID](https://support.google.com/cloud/answer/6158840). + // as `projects/{projectID}` or `projects/{projectID}/locations/{location}`, + // where `{projectID}` is the [Google Cloud Platform project + // ID](https://support.google.com/cloud/answer/6158840) and `{location}` is + // a Cloud region. + // + // Examples: `projects/my-project-123`, + // `projects/my-project-123/locations/global`. // - // Example: `projects/my-project-123`. + // For a list of supported locations, see [Supported + // Regions](https://cloud.google.com/logging/docs/region-support). `global` is + // the default when unspecified. string project_name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -270,12 +321,18 @@ message ListEventsRequest { ]; // Required. The group for which events shall be returned. + // The `group_id` is a unique identifier for a particular error group. The + // identifier is derived from key parts of the error-log content and is + // treated as Service Data. For information about how Service Data + // is handled, see [Google Cloud Privacy + // Notice](https://cloud.google.com/terms/cloud-privacy-notice). string group_id = 2 [(google.api.field_behavior) = REQUIRED]; // Optional. List only ErrorGroups which belong to a service context that // matches the filter. // Data for all service contexts is returned if this field is not specified. - ServiceContextFilter service_filter = 3 [(google.api.field_behavior) = OPTIONAL]; + ServiceContextFilter service_filter = 3 + [(google.api.field_behavior) = OPTIONAL]; // Optional. List only data for the given time range. // If not set a default time range is used. The field time_range_begin @@ -303,6 +360,12 @@ message ListEventsResponse { google.protobuf.Timestamp time_range_begin = 4; } +// A time range for which error group data shall be displayed. +// Query time ranges end at 'now'. +// When longer time ranges are selected, the resolution of the data decreases. +// The description of each time range below indicates the suggested minimum +// timed count duration for that range. +// // Requests might be rejected or the resulting timed count durations might be // adjusted for lower durations. message QueryTimeRange { @@ -357,11 +420,17 @@ message ServiceContextFilter { // Deletes all events in the project. message DeleteEventsRequest { // Required. The resource name of the Google Cloud Platform project. Written - // as `projects/{projectID}`, where `{projectID}` is the - // [Google Cloud Platform project - // ID](https://support.google.com/cloud/answer/6158840). + // as `projects/{projectID}` or `projects/{projectID}/locations/{location}`, + // where `{projectID}` is the [Google Cloud Platform project + // ID](https://support.google.com/cloud/answer/6158840) and `{location}` is + // a Cloud region. + // + // Examples: `projects/my-project-123`, + // `projects/my-project-123/locations/global`. // - // Example: `projects/my-project-123`. + // For a list of supported locations, see [Supported + // Regions](https://cloud.google.com/logging/docs/region-support). `global` is + // the default when unspecified. string project_name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -371,6 +440,4 @@ message DeleteEventsRequest { } // Response message for deleting error events. -message DeleteEventsResponse { - -} +message DeleteEventsResponse {} diff --git a/google/devtools/clouderrorreporting/v1beta1/report_errors_service.proto b/google/devtools/clouderrorreporting/v1beta1/report_errors_service.proto index 7e3d5f4e1..43cfc00fa 100644 --- a/google/devtools/clouderrorreporting/v1beta1/report_errors_service.proto +++ b/google/devtools/clouderrorreporting/v1beta1/report_errors_service.proto @@ -48,10 +48,16 @@ service ReportErrorsService { // `POST // https://clouderrorreporting.googleapis.com/v1beta1/{projectName}/events:report?key=123ABC456` // - // **Note:** [Error Reporting](/error-reporting) is a global service built - // on Cloud Logging and doesn't analyze logs stored - // in regional log buckets or logs routed to other Google Cloud projects. + // **Note:** [Error Reporting] (https://cloud.google.com/error-reporting) + // is a service built on Cloud Logging and can analyze log entries when all of + // the following are true: // + // * Customer-managed encryption keys (CMEK) are disabled on the log bucket. + // * The log bucket satisfies one of the following: + // * The log bucket is stored in the same project where the logs + // originated. + // * The logs were routed to a project, and then that project stored those + // logs in a log bucket that it owns. rpc ReportErrorEvent(ReportErrorEventRequest) returns (ReportErrorEventResponse) { option (google.api.http) = { @@ -89,7 +95,11 @@ message ReportErrorEventResponse {} message ReportedErrorEvent { // Optional. Time when the event occurred. // If not provided, the time when the event was received by the - // Error Reporting system will be used. + // Error Reporting system is used. If provided, the time must not + // exceed the [logs retention + // period](https://cloud.google.com/logging/quotas#logs_retention_periods) in + // the past, or be more than 24 hours in the future. + // If an invalid time is provided, then an error is returned. google.protobuf.Timestamp event_time = 1 [(google.api.field_behavior) = OPTIONAL]; @@ -115,9 +125,9 @@ message ReportedErrorEvent { // [`Exception.backtrace`](https://ruby-doc.org/core-2.2.0/Exception.html#method-i-backtrace). // * **C#**: Must be the return value of // [`Exception.ToString()`](https://msdn.microsoft.com/en-us/library/system.exception.tostring.aspx). - // * **PHP**: Must start with `PHP (Notice|Parse error|Fatal error|Warning)` - // and contain the result of - // [`(string)$exception`](http://php.net/manual/en/exception.tostring.php). + // * **PHP**: Must be prefixed with `"PHP (Notice|Parse error|Fatal + // error|Warning): "` and contain the result of + // [`(string)$exception`](https://php.net/manual/en/exception.tostring.php). // * **Go**: Must be the return value of // [`runtime.Stack()`](https://golang.org/pkg/runtime/debug/#Stack). string message = 3 [(google.api.field_behavior) = REQUIRED]; diff --git a/google/devtools/cloudprofiler/v2/BUILD.bazel b/google/devtools/cloudprofiler/v2/BUILD.bazel index 52bac4bae..dd016f75a 100644 --- a/google/devtools/cloudprofiler/v2/BUILD.bazel +++ b/google/devtools/cloudprofiler/v2/BUILD.bazel @@ -219,7 +219,7 @@ php_gapic_library( name = "cloudprofiler_php_gapic", srcs = [":cloudprofiler_proto_with_info"], grpc_service_config = "cloudprofiler_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "cloudprofiler_v2.yaml", transport = "grpc+rest", diff --git a/google/devtools/testing/v1/test_environment_discovery.proto b/google/devtools/testing/v1/test_environment_discovery.proto index 490d1bc86..6bc68b8e0 100644 --- a/google/devtools/testing/v1/test_environment_discovery.proto +++ b/google/devtools/testing/v1/test_environment_discovery.proto @@ -234,6 +234,9 @@ message AndroidModel { // URL of a thumbnail image (photo) of the device. string thumbnail_url = 19; + + // Output only. Lab info of this device. + LabInfo lab_info = 26 [(google.api.field_behavior) = OUTPUT_ONLY]; } // A version of the Android OS. @@ -313,6 +316,13 @@ message Distribution { double market_share = 2; } +// Lab specific information for a device. +message LabInfo { + // Lab name where the device is hosted. + // If empty, the device is hosted in a Google owned lab. + string name = 1; +} + // The currently supported iOS devices. message IosDeviceCatalog { // The set of supported iOS device models. diff --git a/google/firestore/admin/v1/database.proto b/google/firestore/admin/v1/database.proto index 67c8371df..848e2ec76 100644 --- a/google/firestore/admin/v1/database.proto +++ b/google/firestore/admin/v1/database.proto @@ -29,6 +29,10 @@ option java_package = "com.google.firestore.admin.v1"; option objc_class_prefix = "GCFS"; option php_namespace = "Google\\Cloud\\Firestore\\Admin\\V1"; option ruby_package = "Google::Cloud::Firestore::Admin::V1"; +option (google.api.resource_definition) = { + type: "firestore.googleapis.com/Operation" + pattern: "projects/{project}/databases/{database}/operations/{operation}" +}; // A Cloud Firestore Database. message Database { @@ -44,7 +48,7 @@ message Database { // // 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. + // Not used. DATABASE_TYPE_UNSPECIFIED = 0; // Firestore Native Mode @@ -128,6 +132,101 @@ message Database { DELETE_PROTECTION_ENABLED = 2; } + // The CMEK (Customer Managed Encryption Key) configuration for a Firestore + // database. If not present, the database is secured by the default Google + // encryption key. + message CmekConfig { + // Required. Only keys in the same location as this database are allowed to + // be used for encryption. + // + // For Firestore's nam5 multi-region, this corresponds to Cloud KMS + // multi-region us. For Firestore's eur3 multi-region, this corresponds to + // Cloud KMS multi-region europe. See + // https://cloud.google.com/kms/docs/locations. + // + // The expected format is + // `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`. + string kms_key_name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Currently in-use [KMS key + // versions](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions). + // During [key rotation](https://cloud.google.com/kms/docs/key-rotation), + // there can be multiple in-use key versions. + // + // The expected format is + // `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`. + repeated string active_key_version = 2 + [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Information about the provenance of this database. + message SourceInfo { + // Information about a backup that was used to restore a database. + message BackupSource { + // The resource name of the backup that was used to restore this + // database. Format: + // `projects/{project}/locations/{location}/backups/{backup}`. + string backup = 1 [(google.api.resource_reference) = { + type: "firestore.googleapis.com/Backup" + }]; + } + + // The source from which this database is derived. + oneof source { + // If set, this database was restored from the specified backup (or a + // snapshot thereof). + BackupSource backup = 1; + } + + // The associated long-running operation. This field may not be set after + // the operation has completed. Format: + // `projects/{project}/databases/{database}/operations/{operation}`. + string operation = 3 [(google.api.resource_reference) = { + type: "firestore.googleapis.com/Operation" + }]; + } + + // Encryption configuration for a new database being created from another + // source. + // + // The source could be a [Backup][google.firestore.admin.v1.Backup] . + message EncryptionConfig { + // The configuration options for using Google default encryption. + message GoogleDefaultEncryptionOptions {} + + // The configuration options for using the same encryption method as the + // source. + message SourceEncryptionOptions {} + + // The configuration options for using CMEK (Customer Managed Encryption + // Key) encryption. + message CustomerManagedEncryptionOptions { + // Required. Only keys in the same location as the database are allowed to + // be used for encryption. + // + // For Firestore's nam5 multi-region, this corresponds to Cloud KMS + // multi-region us. For Firestore's eur3 multi-region, this corresponds to + // Cloud KMS multi-region europe. See + // https://cloud.google.com/kms/docs/locations. + // + // The expected format is + // `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`. + string kms_key_name = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // The method for encrypting the database. + oneof encryption_type { + // Use Google default encryption. + GoogleDefaultEncryptionOptions google_default_encryption = 1; + + // The database will use the same encryption configuration as the source. + SourceEncryptionOptions use_source_encryption = 2; + + // Use Customer Managed Encryption Keys (CMEK) for encryption. + CustomerManagedEncryptionOptions customer_managed_encryption = 3; + } + } + // The resource name of the Database. // Format: `projects/{project}/databases/{database}` string name = 1; @@ -146,6 +245,11 @@ message Database { google.protobuf.Timestamp update_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The timestamp at which this database was deleted. Only set if + // the database has been deleted. + google.protobuf.Timestamp delete_time = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; + // The location of the database. Available locations are listed at // https://cloud.google.com/firestore/docs/locations. string location_id = 9; @@ -189,8 +293,8 @@ message 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 ("<key prefix>~<project id>") to construct - // the application id that is returned from the Cloud Datastore APIs in Google + // combination with the project ID ("<key prefix>~<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 @@ -200,6 +304,16 @@ message Database { // State of delete protection for the database. DeleteProtectionState delete_protection_state = 22; + // Optional. Presence indicates CMEK is enabled for this database. + CmekConfig cmek_config = 23 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The database resource's prior database ID. This field is only + // populated for deleted databases. + string previous_id = 25 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Information about the provenance of this database. + SourceInfo source_info = 26 [(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 eefee763c..e187b45d4 100644 --- a/google/firestore/admin/v1/field.proto +++ b/google/firestore/admin/v1/field.proto @@ -32,7 +32,7 @@ option ruby_package = "Google::Cloud::Firestore::Admin::V1"; // Represents a single field in the database. // // Fields are grouped by their "Collection Group", which represent all -// collections in the database with the same id. +// collections in the database with the same ID. message Field { option (google.api.resource) = { type: "firestore.googleapis.com/Field" diff --git a/google/firestore/admin/v1/firestore_admin.proto b/google/firestore/admin/v1/firestore_admin.proto index dd95c2ce7..ef6eb87e4 100644 --- a/google/firestore/admin/v1/firestore_admin.proto +++ b/google/firestore/admin/v1/firestore_admin.proto @@ -434,7 +434,7 @@ message CreateDatabaseRequest { // with first character a letter and the last a letter or a number. Must not // be UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. // - // "(default)" database id is also valid. + // "(default)" database ID is also valid. string database_id = 3 [(google.api.field_behavior) = REQUIRED]; } @@ -730,8 +730,8 @@ message ExportDocumentsRequest { } ]; - // Which collection ids to export. Unspecified means all collections. Each - // collection id in this list must be unique. + // Which collection IDs to export. Unspecified means all collections. Each + // collection ID in this list must be unique. repeated string collection_ids = 2; // The output URI. Currently only supports Google Cloud Storage URIs of the @@ -774,8 +774,8 @@ message ImportDocumentsRequest { } ]; - // Which collection ids to import. Unspecified means all collections included - // in the import. Each collection id in this list must be unique. + // Which collection IDs to import. Unspecified means all collections included + // in the import. Each collection ID in this list must be unique. repeated string collection_ids = 2; // Location of the exported files. @@ -898,7 +898,7 @@ message DeleteBackupRequest { } // The request message for -// [FirestoreAdmin.RestoreDatabase][google.firestore.admin.v1.RestoreDatabase]. +// [FirestoreAdmin.RestoreDatabase][google.firestore.admin.v1.FirestoreAdmin.RestoreDatabase]. message RestoreDatabaseRequest { // Required. The project to restore the database in. Format is // `projects/{project_id}`. @@ -910,19 +910,22 @@ message RestoreDatabaseRequest { ]; // Required. The ID to use for the database, which will become the final - // component of the database's resource name. This database id must not be + // component of the database's resource name. This database ID must not be // associated with an existing database. // // This value should be 4-63 characters. Valid characters are /[a-z][0-9]-/ // with first character a letter and the last a letter or a number. Must not // be UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. // - // "(default)" database id is also valid. + // "(default)" database ID is also valid. string database_id = 2 [(google.api.field_behavior) = REQUIRED]; // Required. Backup to restore from. Must be from the same project as the // parent. // + // The restored database will be created in the same location as the source + // backup. + // // Format is: `projects/{project_id}/locations/{location}/backups/{backup}` string backup = 3 [ (google.api.field_behavior) = REQUIRED, @@ -930,4 +933,12 @@ message RestoreDatabaseRequest { type: "firestore.googleapis.com/Backup" } ]; + + // Optional. Encryption configuration for the restored database. + // + // If this field is not specified, the restored database will use + // the same encryption configuration as the backup, namely + // [use_source_encryption][google.firestore.admin.v1.Database.EncryptionConfig.use_source_encryption]. + Database.EncryptionConfig encryption_config = 9 + [(google.api.field_behavior) = OPTIONAL]; } diff --git a/google/firestore/admin/v1/index.proto b/google/firestore/admin/v1/index.proto index f2a3cc373..1b8b0a48a 100644 --- a/google/firestore/admin/v1/index.proto +++ b/google/firestore/admin/v1/index.proto @@ -44,11 +44,11 @@ message Index { // 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. + // 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 + // against all collections that has the collection ID specified by the // index. COLLECTION_GROUP = 2; @@ -170,11 +170,11 @@ message Index { // 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 same collection id. + // query time, and that has the same collection ID. // // Indexes with a collection group query scope specified allow queries against // all collections descended from a specific document, specified at query - // time, and that have the same collection id as this index. + // time, and that have the same collection ID as this index. QueryScope query_scope = 2; // The API scope supported by this index. diff --git a/google/firestore/admin/v1/operation.proto b/google/firestore/admin/v1/operation.proto index 80b133764..39a20ecfd 100644 --- a/google/firestore/admin/v1/operation.proto +++ b/google/firestore/admin/v1/operation.proto @@ -146,13 +146,13 @@ message ExportDocumentsMetadata { // The progress, in bytes, of this operation. Progress progress_bytes = 5; - // Which collection ids are being exported. + // Which collection IDs are being exported. repeated string collection_ids = 6; // Where the documents are being exported to. string output_uri_prefix = 7; - // Which namespace ids are being exported. + // Which namespace IDs are being exported. repeated string namespace_ids = 8; // The timestamp that corresponds to the version of the database that is being @@ -181,13 +181,13 @@ message ImportDocumentsMetadata { // The progress, in bytes, of this operation. Progress progress_bytes = 5; - // Which collection ids are being imported. + // Which collection IDs are being imported. repeated string collection_ids = 6; // The location of the documents being imported. string input_uri_prefix = 7; - // Which namespace ids are being imported. + // Which namespace IDs are being imported. repeated string namespace_ids = 8; } @@ -211,10 +211,10 @@ message BulkDeleteDocumentsMetadata { // The progress, in bytes, of this operation. Progress progress_bytes = 5; - // The ids of the collection groups that are being deleted. + // The IDs of the collection groups that are being deleted. repeated string collection_ids = 6; - // Which namespace ids are being deleted. + // Which namespace IDs are being deleted. repeated string namespace_ids = 7; // The timestamp that corresponds to the version of the database that is being diff --git a/google/firestore/admin/v1/schedule.proto b/google/firestore/admin/v1/schedule.proto index 52200e8e5..46bc03920 100644 --- a/google/firestore/admin/v1/schedule.proto +++ b/google/firestore/admin/v1/schedule.proto @@ -65,6 +65,8 @@ message BackupSchedule { // At what relative time in the future, compared to its creation time, // the backup should be deleted, e.g. keep backups for 7 days. + // + // The maximum supported retention period is 14 weeks. google.protobuf.Duration retention = 6; // A oneof field to represent when backups will be taken. @@ -77,7 +79,7 @@ message BackupSchedule { } } -// Represents a recurring schedule that runs at a specific time every day. +// Represents a recurring schedule that runs every day. // // The time zone is UTC. message DailyRecurrence {} diff --git a/google/firestore/v1/document.proto b/google/firestore/v1/document.proto index 5ad6752aa..52dc85ca9 100644 --- a/google/firestore/v1/document.proto +++ b/google/firestore/v1/document.proto @@ -16,6 +16,7 @@ syntax = "proto3"; package google.firestore.v1; +import "google/api/field_behavior.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; import "google/type/latlng.proto"; @@ -122,7 +123,7 @@ message Value { // An array value. // - // Cannot directly contain another array value, though can contain an + // Cannot directly contain another array value, though can contain a // map which contains another array. ArrayValue array_value = 9; diff --git a/google/firestore/v1/query.proto b/google/firestore/v1/query.proto index f0fda1832..3b2280076 100644 --- a/google/firestore/v1/query.proto +++ b/google/firestore/v1/query.proto @@ -263,7 +263,10 @@ message StructuredQuery { repeated FieldReference fields = 2; } - // Nearest Neighbors search config. + // Nearest Neighbors search config. The ordering provided by FindNearest + // supersedes the order_by stage. If multiple documents have the same vector + // distance, the returned document order is not guaranteed to be stable + // between queries. message FindNearest { // The distance measure to use when comparing vectors. enum DistanceMeasure { @@ -272,20 +275,23 @@ message StructuredQuery { // Measures the EUCLIDEAN distance between the vectors. See // [Euclidean](https://en.wikipedia.org/wiki/Euclidean_distance) to learn - // more + // more. The resulting distance decreases the more similar two vectors + // are. EUCLIDEAN = 1; - // Compares vectors based on the angle between them, which allows you to - // measure similarity that isn't based on the vectors magnitude. - // We recommend using DOT_PRODUCT with unit normalized vectors instead of - // COSINE distance, which is mathematically equivalent with better - // performance. See [Cosine + // COSINE distance compares vectors based on the angle between them, which + // allows you to measure similarity that isn't based on the vectors + // magnitude. We recommend using DOT_PRODUCT with unit normalized vectors + // instead of COSINE distance, which is mathematically equivalent with + // better performance. See [Cosine // Similarity](https://en.wikipedia.org/wiki/Cosine_similarity) to learn - // more. + // more about COSINE similarity and COSINE distance. The resulting + // COSINE distance decreases the more similar two vectors are. COSINE = 2; // Similar to cosine but is affected by the magnitude of the vectors. See // [Dot Product](https://en.wikipedia.org/wiki/Dot_product) to learn more. + // The resulting distance increases the more similar two vectors are. DOT_PRODUCT = 3; } @@ -298,7 +304,7 @@ message StructuredQuery { // no more than 2048 dimensions. Value query_vector = 2 [(google.api.field_behavior) = REQUIRED]; - // Required. The Distance Measure to use, required. + // Required. The distance measure to use, required. DistanceMeasure distance_measure = 3 [(google.api.field_behavior) = REQUIRED]; @@ -306,6 +312,22 @@ message StructuredQuery { // integer of no more than 1000. google.protobuf.Int32Value limit = 4 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Optional name of the field to output the result of the vector + // distance calculation. Must conform to [document field + // name][google.firestore.v1.Document.fields] limitations. + string distance_result_field = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Option to specify a threshold for which no less similar + // documents will be returned. The behavior of the specified + // `distance_measure` will affect the meaning of the distance threshold. + // Since DOT_PRODUCT distances increase when the vectors are more similar, + // the comparison is inverted. + // + // For EUCLIDEAN, COSINE: WHERE distance <= distance_threshold + // For DOT_PRODUCT: WHERE distance >= distance_threshold + google.protobuf.DoubleValue distance_threshold = 6 + [(google.api.field_behavior) = OPTIONAL]; } // Optional sub-set of the fields to return. @@ -406,7 +428,7 @@ message StructuredQuery { // * The value must be greater than or equal to zero if specified. google.protobuf.Int32Value limit = 5; - // Optional. A potential Nearest Neighbors Search. + // Optional. A potential nearest neighbors search. // // Applies after all other filters and ordering. // diff --git a/google/iam/credentials/v1/BUILD.bazel b/google/iam/credentials/v1/BUILD.bazel index d535d46ef..9fc8f0f7f 100644 --- a/google/iam/credentials/v1/BUILD.bazel +++ b/google/iam/credentials/v1/BUILD.bazel @@ -186,7 +186,7 @@ php_gapic_library( name = "credentials_php_gapic", srcs = [":credentials_proto_with_info"], grpc_service_config = "iamcredentials_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "iamcredentials_v1.yaml", transport = "grpc+rest", diff --git a/google/iam/v1/iam_policy.proto b/google/iam/v1/iam_policy.proto index 12580e9cd..0841d9959 100644 --- a/google/iam/v1/iam_policy.proto +++ b/google/iam/v1/iam_policy.proto @@ -24,7 +24,6 @@ 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"; option go_package = "cloud.google.com/go/iam/apiv1/iampb;iampb"; option java_multiple_files = true; @@ -34,7 +33,6 @@ option php_namespace = "Google\\Cloud\\Iam\\V1"; // API Overview // -// // Manages Identity and Access Management (IAM) policies. // // Any implementation of an API that offers access control features @@ -89,7 +87,8 @@ service IAMPolicy { // 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(TestIamPermissionsRequest) returns (TestIamPermissionsResponse) { + rpc TestIamPermissions(TestIamPermissionsRequest) + returns (TestIamPermissionsResponse) { option (google.api.http) = { post: "/v1/{resource=**}:testIamPermissions" body: "*" @@ -103,7 +102,8 @@ message SetIamPolicyRequest { // See the operation documentation for the appropriate value for this field. string resource = 1 [ (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference).type = "*"]; + (google.api.resource_reference).type = "*" + ]; // REQUIRED: The complete policy to be applied to the `resource`. The size of // the policy is limited to a few 10s of KB. An empty policy is a @@ -125,7 +125,8 @@ message GetIamPolicyRequest { // See the operation documentation for the appropriate value for this field. string resource = 1 [ (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference).type = "*"]; + (google.api.resource_reference).type = "*" + ]; // OPTIONAL: A `GetPolicyOptions` object for specifying options to // `GetIamPolicy`. @@ -136,9 +137,10 @@ message GetIamPolicyRequest { message TestIamPermissionsRequest { // REQUIRED: The resource for which the policy detail is being requested. // See the operation documentation for the appropriate value for this field. - string resource = 1[ + string resource = 1 [ (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference).type = "*"]; + (google.api.resource_reference).type = "*" + ]; // The set of permissions to check for the `resource`. Permissions with // wildcards (such as '*' or 'storage.*') are not allowed. For more diff --git a/google/iam/v2/BUILD.bazel b/google/iam/v2/BUILD.bazel index 942d0f182..e15eae014 100644 --- a/google/iam/v2/BUILD.bazel +++ b/google/iam/v2/BUILD.bazel @@ -241,7 +241,7 @@ php_gapic_library( name = "iam_php_gapic", srcs = [":iam_proto_with_info"], grpc_service_config = "iam_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "iam_v2.yaml", transport = "grpc+rest", diff --git a/google/identity/accesscontextmanager/type/BUILD.bazel b/google/identity/accesscontextmanager/type/BUILD.bazel index a01c7734d..f2817a2e7 100644 --- a/google/identity/accesscontextmanager/type/BUILD.bazel +++ b/google/identity/accesscontextmanager/type/BUILD.bazel @@ -102,6 +102,7 @@ py_grpc_library( ############################################################################## load( "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", "php_proto_library", ) @@ -110,6 +111,14 @@ php_proto_library( deps = [":type_proto"], ) +# Please DO-NOT-REMOVE this section. +# This is required to generate php files for these protos. +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-identity-accesscontextmanager-type-php", + deps = [":type_php_proto"], +) + ############################################################################## # Node.js ############################################################################## diff --git a/google/identity/accesscontextmanager/v1/BUILD.bazel b/google/identity/accesscontextmanager/v1/BUILD.bazel index a49ba0267..069b7561c 100644 --- a/google/identity/accesscontextmanager/v1/BUILD.bazel +++ b/google/identity/accesscontextmanager/v1/BUILD.bazel @@ -283,7 +283,7 @@ php_gapic_library( name = "accesscontextmanager_php_gapic", srcs = [":accesscontextmanager_proto_with_info"], grpc_service_config = "accesscontextmanager_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "accesscontextmanager_v1.yaml", transport = "grpc+rest", diff --git a/google/maps/areainsights/v1/BUILD.bazel b/google/maps/areainsights/v1/BUILD.bazel new file mode 100644 index 000000000..c90893e54 --- /dev/null +++ b/google/maps/areainsights/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. + +# buildifier: disable=load-on-top + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +# buildifier: disable=same-origin-load +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") +load("@rules_proto//proto:defs.bzl", "proto_library") + +proto_library( + name = "areainsights_proto", + srcs = [ + "area_insights_service.proto", + ], + deps = [ + "//google/api:annotations_proto", + "//google/api:client_proto", + "//google/api:field_behavior_proto", + "//google/api:resource_proto", + "//google/type:latlng_proto", + ], +) + +proto_library_with_info( + name = "areainsights_proto_with_info", + deps = [ + ":areainsights_proto", + "//google/cloud:common_resources_proto", + ], +) + +############################################################################## +# Java +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "java_gapic_assembly_gradle_pkg", + "java_gapic_library", + "java_gapic_test", + "java_grpc_library", + "java_proto_library", +) + +java_proto_library( + name = "areainsights_java_proto", + deps = [":areainsights_proto"], +) + +java_grpc_library( + name = "areainsights_java_grpc", + srcs = [":areainsights_proto"], + deps = [":areainsights_java_proto"], +) + +java_gapic_library( + name = "areainsights_java_gapic", + srcs = [":areainsights_proto_with_info"], + gapic_yaml = None, + grpc_service_config = "areainsights_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "areainsights_v1.yaml", + test_deps = [ + ":areainsights_java_grpc", + ], + transport = "grpc+rest", + deps = [ + ":areainsights_java_proto", + "//google/api:api_java_proto", + ], +) + +java_gapic_test( + name = "areainsights_java_gapic_test_suite", + test_classes = [ + "com.google.maps.areainsights.v1.AreaInsightsClientHttpJsonTest", + "com.google.maps.areainsights.v1.AreaInsightsClientTest", + ], + runtime_deps = [":areainsights_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( + name = "google-cloud-maps-areainsights-v1-java", + include_samples = True, + transport = "grpc+rest", + deps = [ + ":areainsights_java_gapic", + ":areainsights_java_grpc", + ":areainsights_java_proto", + ":areainsights_proto", + ], +) + +############################################################################## +# Go +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "go_gapic_assembly_pkg", + "go_gapic_library", + "go_proto_library", +) + +go_proto_library( + name = "areainsights_go_proto", + compilers = ["@io_bazel_rules_go//proto:go_grpc"], + importpath = "cloud.google.com/go/maps/areainsights/apiv1/areainsightspb", + protos = [":areainsights_proto"], + deps = [ + "//google/api:annotations_go_proto", + "//google/type:latlng_go_proto", + ], +) + +go_gapic_library( + name = "areainsights_go_gapic", + srcs = [":areainsights_proto_with_info"], + grpc_service_config = "areainsights_grpc_service_config.json", + importpath = "cloud.google.com/go/maps/areainsights/apiv1;areainsights", + metadata = True, + release_level = "beta", + rest_numeric_enums = True, + service_yaml = "areainsights_v1.yaml", + transport = "grpc+rest", + deps = [ + ":areainsights_go_proto", + ], +) + +# Open Source Packages +go_gapic_assembly_pkg( + name = "gapi-cloud-maps-areainsights-v1-go", + deps = [ + ":areainsights_go_gapic", + ":areainsights_go_gapic_srcjar-metadata.srcjar", + ":areainsights_go_gapic_srcjar-snippets.srcjar", + ":areainsights_go_gapic_srcjar-test.srcjar", + ":areainsights_go_proto", + ], +) + +############################################################################## +# Python +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "py_gapic_assembly_pkg", + "py_gapic_library", + "py_test", +) + +py_gapic_library( + name = "areainsights_py_gapic", + srcs = [":areainsights_proto"], + grpc_service_config = "areainsights_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "areainsights_v1.yaml", + transport = "grpc+rest", + deps = [ + ], +) + +py_test( + name = "areainsights_py_gapic_test", + srcs = [ + "areainsights_py_gapic_pytest.py", + "areainsights_py_gapic_test.py", + ], + legacy_create_init = False, + deps = [":areainsights_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( + name = "maps-areainsights-v1-py", + deps = [ + ":areainsights_py_gapic", + ], +) + +############################################################################## +# PHP +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "php_gapic_assembly_pkg", + "php_gapic_library", + "php_proto_library", +) + +php_proto_library( + name = "areainsights_php_proto", + deps = [":areainsights_proto"], +) + +php_gapic_library( + name = "areainsights_php_gapic", + srcs = [":areainsights_proto_with_info"], + grpc_service_config = "areainsights_grpc_service_config.json", + migration_mode = "NEW_SURFACE_ONLY", + rest_numeric_enums = True, + service_yaml = "areainsights_v1.yaml", + transport = "grpc+rest", + deps = [ + ":areainsights_php_proto", + ], +) + +# Open Source Packages +php_gapic_assembly_pkg( + name = "google-cloud-maps-areainsights-v1-php", + deps = [ + ":areainsights_php_gapic", + ":areainsights_php_proto", + ], +) + +############################################################################## +# Node.js +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "nodejs_gapic_assembly_pkg", + "nodejs_gapic_library", +) + +nodejs_gapic_library( + name = "areainsights_nodejs_gapic", + package_name = "@google-cloud/areainsights", + src = ":areainsights_proto_with_info", + extra_protoc_parameters = ["metadata"], + grpc_service_config = "areainsights_grpc_service_config.json", + package = "google.maps.areainsights.v1", + rest_numeric_enums = True, + service_yaml = "areainsights_v1.yaml", + transport = "grpc+rest", + deps = [], +) + +nodejs_gapic_assembly_pkg( + name = "maps-areainsights-v1-nodejs", + deps = [ + ":areainsights_nodejs_gapic", + ":areainsights_proto", + ], +) + +############################################################################## +# Ruby +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", + "ruby_grpc_library", + "ruby_proto_library", +) + +ruby_proto_library( + name = "areainsights_ruby_proto", + deps = [":areainsights_proto"], +) + +ruby_grpc_library( + name = "areainsights_ruby_grpc", + srcs = [":areainsights_proto"], + deps = [":areainsights_ruby_proto"], +) + +ruby_cloud_gapic_library( + name = "areainsights_ruby_gapic", + srcs = [":areainsights_proto_with_info"], + extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-maps-areainsights-v1"], + grpc_service_config = "areainsights_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "areainsights_v1.yaml", + transport = "grpc+rest", + deps = [ + ":areainsights_ruby_grpc", + ":areainsights_ruby_proto", + ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( + name = "google-cloud-maps-areainsights-v1-ruby", + deps = [ + ":areainsights_ruby_gapic", + ":areainsights_ruby_grpc", + ":areainsights_ruby_proto", + ], +) + +############################################################################## +# C# +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "csharp_gapic_assembly_pkg", + "csharp_gapic_library", + "csharp_grpc_library", + "csharp_proto_library", +) + +csharp_proto_library( + name = "areainsights_csharp_proto", + deps = [":areainsights_proto"], +) + +csharp_grpc_library( + name = "areainsights_csharp_grpc", + srcs = [":areainsights_proto"], + deps = [":areainsights_csharp_proto"], +) + +csharp_gapic_library( + name = "areainsights_csharp_gapic", + srcs = [":areainsights_proto_with_info"], + common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", + grpc_service_config = "areainsights_grpc_service_config.json", + rest_numeric_enums = True, + service_yaml = "areainsights_v1.yaml", + transport = "grpc+rest", + deps = [ + ":areainsights_csharp_grpc", + ":areainsights_csharp_proto", + ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( + name = "google-cloud-maps-areainsights-v1-csharp", + deps = [ + ":areainsights_csharp_gapic", + ":areainsights_csharp_grpc", + ":areainsights_csharp_proto", + ], +) + +############################################################################## +# C++ +############################################################################## +# buildifier: disable=same-origin-load +load( + "@com_google_googleapis_imports//:imports.bzl", + "cc_grpc_library", + "cc_proto_library", +) + +cc_proto_library( + name = "areainsights_cc_proto", + deps = [":areainsights_proto"], +) + +cc_grpc_library( + name = "areainsights_cc_grpc", + srcs = [":areainsights_proto"], + grpc_only = True, + deps = [":areainsights_cc_proto"], +) diff --git a/google/maps/areainsights/v1/area_insights_service.proto b/google/maps/areainsights/v1/area_insights_service.proto new file mode 100644 index 000000000..340963db5 --- /dev/null +++ b/google/maps/areainsights/v1/area_insights_service.proto @@ -0,0 +1,339 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF 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.areainsights.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/type/latlng.proto"; + +option csharp_namespace = "Google.Maps.AreaInsights.V1"; +option go_package = "cloud.google.com/go/maps/areainsights/apiv1/areainsightspb;areainsightspb"; +option java_multiple_files = true; +option java_outer_classname = "AreaInsightsServiceProto"; +option java_package = "com.google.maps.areainsights.v1"; +option objc_class_prefix = "MAI"; +option php_namespace = "Google\\Maps\\AreaInsights\\V1"; +option (google.api.resource_definition) = { + type: "places.googleapis.com/Place" + pattern: "places/{place_id}" +}; + +// Service definition for the Places Insights API. +service AreaInsights { + option (google.api.default_host) = "areainsights.googleapis.com"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/cloud-platform"; + + // Compute Insights RPC + // + // This method lets you retrieve insights about areas using a variaty of + // filter such as: area, place type, operating status, price level + // and ratings. Currently "count" and "places" insights are supported. With + // "count" insights you can answer questions such as "How many restaurant are + // located in California that are operational, are inexpensive and have an + // average rating of at least 4 stars" (see `insight` enum for more details). + // With "places" insights, you can determine which places match the + // requested filter. Clients can then use those place resource names to fetch + // more details about each individual place using the Places API. + rpc ComputeInsights(ComputeInsightsRequest) + returns (ComputeInsightsResponse) { + option (google.api.http) = { + post: "/v1:computeInsights" + body: "*" + }; + } +} + +// Request for the ComputeInsights RPC. +message ComputeInsightsRequest { + // Required. Insights to compute. Currently only INSIGHT_COUNT and + // INSIGHT_PLACES are supported. + repeated Insight insights = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. Insight filter. + Filter filter = 5 [(google.api.field_behavior) = REQUIRED]; +} + +// Response for the ComputeInsights RPC. +message ComputeInsightsResponse { + // Result for Insights.INSIGHT_COUNT. + optional int64 count = 1; + + // Result for Insights.INSIGHT_PLACES. + repeated PlaceInsight place_insights = 5; +} + +// Holds information about a place +message PlaceInsight { + // The resource name of a place. This resource name can be used to retrieve + // details about the place using the [Places + // API](https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/places/get). + string place = 1 [ + (google.api.resource_reference) = { type: "places.googleapis.com/Place" } + ]; +} + +// Filters for the ComputeInsights RPC. +message Filter { + // Required. Restricts results to places which are located in the area + // specified by location filters. + LocationFilter location_filter = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Place type filters. + TypeFilter type_filter = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Restricts results to places whose operating status is included on + // this list. If operating_status is not set, OPERATING_STATUS_OPERATIONAL is + // used as default. + repeated OperatingStatus operating_status = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Restricts results to places whose price level is included on this + // list. If price_level is not set, all price levels are included in the + // results. + repeated PriceLevel price_levels = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Restricts results to places whose average user ratings are in the + // range specified by rating_filter. If rating_filter is not set, all ratings + // are included in the result. + RatingFilter rating_filter = 5 [(google.api.field_behavior) = OPTIONAL]; +} + +// Location filters. +// +// Specifies the area of interest for the insight. +message LocationFilter { + // A circle is defined by a center point and radius in meters. + message Circle { + // The center of the circle. + oneof center { + // The latitude and longitude of the center of the circle. + google.type.LatLng lat_lng = 1; + + // The Place resource name of the center of the circle. Only point places + // are supported. + string place = 2 [(google.api.resource_reference) = { + type: "places.googleapis.com/Place" + }]; + } + + // Optional. The radius of the circle in meters + int32 radius = 3 [(google.api.field_behavior) = OPTIONAL]; + } + + // A region is a geographic boundary such as: cities, postal codes, counties, + // states, etc. + message Region { + // The resource name of a region. + oneof region { + // The Place resource name of a region. + string place = 1 [(google.api.resource_reference) = { + type: "places.googleapis.com/Place" + }]; + } + } + + // Custom Area. + message CustomArea { + // A polygon is represented by a series of connected coordinates in an + // counterclockwise ordered sequence. The coordinates form a closed loop and + // define a filled region. The first and last coordinates are equivalent, + // and they must contain identical values. The format is a simplified + // version of GeoJSON polygons (we only support one counterclockwise + // exterior ring). + message Polygon { + // Optional. The coordinates that define the polygon. + repeated google.type.LatLng coordinates = 1 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. The custom area represented as a polygon + Polygon polygon = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // One of the following must be specified. + oneof area { + // Area as a circle. + Circle circle = 1; + + // Area as region. + Region region = 2; + + // Custom area specified by a polygon. + CustomArea custom_area = 3; + } +} + +// Place type filters. +// +// Only Place types from +// [Table +// a](https://developers.google.com/maps/documentation/places/web-service/place-types#table-a) +// are supported. +// +// A place can only have a single primary type associated with it. For example, +// the primary type might be "mexican_restaurant" or "steak_house". Use +// included_primary_types and excluded_primary_types to filter the results on a +// place's primary type. +// +// A place can also have multiple type values associated with it. For example a +// restaurant might have the following types: "seafood_restaurant", +// "restaurant", "food", "point_of_interest", "establishment". Use +// included_types and excluded_types to filter the results on the list of types +// associated with a place. +// +// If a search is specified with multiple type restrictions, only places that +// satisfy all of the restrictions are returned. For example, if you specify +// {"included_types": ["restaurant"], "excluded_primary_types": +// ["steak_house"]}, the returned places provide "restaurant" related services +// but do not operate primarily as a "steak_house". +// +// If there are any conflicting types, i.e. a type appears in both +// included_types and excluded_types types or included_primary_types and +// excluded_primary_types, an INVALID_ARGUMENT error is returned. +// +// One of included_types or included_primary_types must be set. +message TypeFilter { + // Optional. Included Place types. + repeated string included_types = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Excluded Place types. + repeated string excluded_types = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Included primary Place types. + repeated string included_primary_types = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Excluded primary Place types. + repeated string excluded_primary_types = 4 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Average user rating filters. +message RatingFilter { + // Optional. Restricts results to places whose average user rating is greater + // than or equal to min_rating. Values must be between 1.0 and 5.0. + optional float min_rating = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Restricts results to places whose average user rating is strictly + // less than or equal to max_rating. Values must be between 1.0 and 5.0. + optional float max_rating = 6 [(google.api.field_behavior) = OPTIONAL]; +} + +// Supported insights. +enum Insight { + // Not Specified. + INSIGHT_UNSPECIFIED = 0; + + // Count insight. + // + // When this insight is specified ComputeInsights returns the number of + // places that match the specified filter criteria. + // ``` + // For example if the request is: + // ComputeInsightsRequest { + // insights: INSIGHT_COUNT + // filter { + // location_filter {region: <PlaceId of state of CA>} + // type_filter {included_types: "restaurant"} + // operating_status: OPERATING_STATUS_OPERATIONAL + // price_levels: PRICE_LEVEL_FREE + // price_levels: PRICE_LEVEL_INEXPENSIVE + // min_rating: 4.0 + // } + // } + // + // The method will return the count of restaurants in California that are + // operational, with price level free or inexpensive and have an average + // rating of at least 4 starts. + // + // Example response: + // ComputeInsightsResponse { + // count: <number of places> + // } + // ``` + INSIGHT_COUNT = 1; + + // Return Places + // + // When this insight is specified ComputeInsights returns Places + // that match the specified filter criteria. + // ``` + // For example if the request is: + // ComputeInsightsRequest { + // insights: INSIGHT_PLACES + // filter { + // location_filter {region: <PlaceId of state of CA>} + // type_filter {included_types: "restaurant"} + // operating_status: OPERATING_STATUS_OPERATIONAL + // price_levels: PRICE_LEVEL_FREE + // price_levels: PRICE_LEVEL_INEXPENSIVE + // min_rating: 4.0 + // } + // } + // + // The method will return list of places of restaurants in + // California that are operational, with price level free or inexpensive and + // have an average rating of at least 4 stars. + // + // Example response: + // ComputeInsightsResponse { + // place_insights { place: "places/ABC" } + // place_insights { place: "places/PQR" } + // place_insights { place: "places/XYZ" } + // } + // ``` + INSIGHT_PLACES = 2; +} + +// Operating status of the place. +enum OperatingStatus { + // Not Specified. + OPERATING_STATUS_UNSPECIFIED = 0; + + // The place is operational and its open during its defined hours. + OPERATING_STATUS_OPERATIONAL = 1; + + // The Place is no longer in business. + OPERATING_STATUS_PERMANENTLY_CLOSED = 3; + + // The Place is temporarily closed and expected to reopen in the future. + OPERATING_STATUS_TEMPORARILY_CLOSED = 4; +} + +// Price level of the place. +enum PriceLevel { + // Place price level is unspecified or unknown. + PRICE_LEVEL_UNSPECIFIED = 0; + + // Place provides free services. + PRICE_LEVEL_FREE = 1; + + // Place provides inexpensive services. + PRICE_LEVEL_INEXPENSIVE = 2; + + // Place provides moderately priced services. + PRICE_LEVEL_MODERATE = 3; + + // Place provides expensive services. + PRICE_LEVEL_EXPENSIVE = 4; + + // Place provides very expensive services. + PRICE_LEVEL_VERY_EXPENSIVE = 5; +} diff --git a/google/cloud/gkeconnect/gateway/v1alpha1/connectgw_grpc_service_config.json b/google/maps/areainsights/v1/areainsights_grpc_service_config.json similarity index 67% rename from google/cloud/gkeconnect/gateway/v1alpha1/connectgw_grpc_service_config.json rename to google/maps/areainsights/v1/areainsights_grpc_service_config.json index d8cbff394..b12be5c42 100644 --- a/google/cloud/gkeconnect/gateway/v1alpha1/connectgw_grpc_service_config.json +++ b/google/maps/areainsights/v1/areainsights_grpc_service_config.json @@ -1,9 +1,9 @@ { "methodConfig": [{ "name": [ - { "service": "google.cloud/gkeconnect.gateway.v1alpha1.GatewayService" } + { "service": "google.maps.areainsights.v1.AreaInsights", "method": "ComputeInsights" } ], - "timeout": "60s", + "timeout": "120s", "retryPolicy": { "maxAttempts": 5, "initialBackoff": "1s", diff --git a/google/maps/areainsights/v1/areainsights_v1.yaml b/google/maps/areainsights/v1/areainsights_v1.yaml new file mode 100644 index 000000000..b7510c3a3 --- /dev/null +++ b/google/maps/areainsights/v1/areainsights_v1.yaml @@ -0,0 +1,48 @@ +type: google.api.Service +config_version: 3 +name: areainsights.googleapis.com +title: Places Insights API + +apis: +- name: google.maps.areainsights.v1.AreaInsights + +documentation: + summary: Places Insights API. + +authentication: + rules: + - selector: google.maps.areainsights.v1.AreaInsights.ComputeInsights + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/cloud-platform + +publishing: + new_issue_uri: https://issuetracker.google.com/issues/new?component=1624013&template=2026178 + documentation_uri: https://developers.google.com/maps/documentation/places-insights + api_short_name: area-insights + github_label: 'api: area_insights' + doc_tag_prefix: area_insights + organization: GEO + library_settings: + - version: google.maps.areainsights.v1 + launch_stage: BETA + java_settings: + common: + destinations: + - PACKAGE_MANAGER + python_settings: + common: + destinations: + - PACKAGE_MANAGER + node_settings: + common: + destinations: + - PACKAGE_MANAGER + dotnet_settings: + common: + destinations: + - PACKAGE_MANAGER + go_settings: + common: + destinations: + - PACKAGE_MANAGER diff --git a/google/maps/fleetengine/delivery/v1/delivery_api.proto b/google/maps/fleetengine/delivery/v1/delivery_api.proto index 4b3116622..5de3073c0 100644 --- a/google/maps/fleetengine/delivery/v1/delivery_api.proto +++ b/google/maps/fleetengine/delivery/v1/delivery_api.proto @@ -227,6 +227,7 @@ message CreateDeliveryVehicleRequest { // Required. The `DeliveryVehicle` entity to create. When creating a new // delivery vehicle, you may set the following optional fields: // + // * type // * last_location // * attributes // @@ -489,7 +490,7 @@ message ListTasksRequest { // 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 [List - // tasks](https://developers.google.com/maps/documentation/transportation-logistics/last-mile-fleet-solution/fleet-performance/fleet-engine/deliveries_api#list-tasks). + // tasks](https://developers.google.com/maps/documentation/mobility/fleet-engine/journeys/tasks/find-tasks#filter_listed_tasks). string filter = 6 [(google.api.field_behavior) = OPTIONAL]; } diff --git a/google/maps/places/v1/BUILD.bazel b/google/maps/places/v1/BUILD.bazel index 108c68915..0b6a830d3 100644 --- a/google/maps/places/v1/BUILD.bazel +++ b/google/maps/places/v1/BUILD.bazel @@ -19,7 +19,6 @@ package(default_visibility = ["//visibility:public"]) ############################################################################## # buildifier: disable=same-origin-load load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") -load("@rules_proto//proto:defs.bzl", "proto_library") load( "@com_google_googleapis_imports//:imports.bzl", "cc_grpc_library", @@ -51,6 +50,7 @@ load( "ruby_grpc_library", "ruby_proto_library", ) +load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( name = "places_proto", @@ -64,8 +64,13 @@ proto_library( "photo.proto", "place.proto", "places_service.proto", + "polyline.proto", "reference.proto", "review.proto", + "route_modifiers.proto", + "routing_preference.proto", + "routing_summary.proto", + "travel_mode.proto", ], deps = [ "//google/api:annotations_proto", @@ -77,6 +82,7 @@ proto_library( "//google/type:latlng_proto", "//google/type:localized_text_proto", "//google/type:money_proto", + "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:timestamp_proto", ], ) @@ -233,7 +239,7 @@ py_gapic_library( service_yaml = "places_v1.yaml", transport = "grpc+rest", deps = [ - ":viewport" + ":viewport", ], ) diff --git a/google/maps/places/v1/place.proto b/google/maps/places/v1/place.proto index 47e8206ac..0509e6bec 100644 --- a/google/maps/places/v1/place.proto +++ b/google/maps/places/v1/place.proto @@ -167,8 +167,10 @@ message Place { google.type.Date date = 1; } - // Is this place open right now? Always present unless we lack time-of-day - // or timezone data for these opening hours. + // Whether the opening hours period is currently active. For regular opening + // hours and current opening hours, this field means whether the place is + // open. For secondary opening hours and current secondary opening hours, + // this field means whether the secondary hours of this place is active. optional bool open_now = 1; // The periods that this place is open during the week. The periods are in diff --git a/google/maps/places/v1/places_service.proto b/google/maps/places/v1/places_service.proto index ea9f82aa2..18256c6b3 100644 --- a/google/maps/places/v1/places_service.proto +++ b/google/maps/places/v1/places_service.proto @@ -25,6 +25,11 @@ import "google/maps/places/v1/contextual_content.proto"; import "google/maps/places/v1/ev_charging.proto"; import "google/maps/places/v1/geometry.proto"; import "google/maps/places/v1/place.proto"; +import "google/maps/places/v1/polyline.proto"; +import "google/maps/places/v1/route_modifiers.proto"; +import "google/maps/places/v1/routing_preference.proto"; +import "google/maps/places/v1/routing_summary.proto"; +import "google/maps/places/v1/travel_mode.proto"; import "google/type/latlng.proto"; option cc_enable_arenas = true; @@ -87,6 +92,28 @@ service Places { } } +// Parameters to configure the routing calculations to the places in the +// response, both along a route (where result ranking will be influenced) and +// for calculating travel times on results. +message RoutingParameters { + // Optional. An explicit routing origin that overrides the origin defined in + // the polyline. By default, the polyline origin is used. + google.type.LatLng origin = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The travel mode. + TravelMode travel_mode = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The route modifiers. + RouteModifiers route_modifiers = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Specifies how to compute the routing summaries. The server + // attempts to use the selected routing preference to compute the route. The + // traffic aware routing preference is only available for the `DRIVE` or + // `TWO_WHEELER` `travelMode`. + RoutingPreference routing_preference = 4 + [(google.api.field_behavior) = OPTIONAL]; +} + // Request proto for Search Nearby. // // @@ -222,6 +249,10 @@ message SearchNearbyRequest { // How results will be ranked in the response. RankPreference rank_preference = 9; + + // Optional. Parameters that affect the routing to the search results. + RoutingParameters routing_parameters = 10 + [(google.api.field_behavior) = OPTIONAL]; } // Response proto for Search Nearby. @@ -230,6 +261,13 @@ message SearchNearbyResponse { // A list of places that meets user's requirements like places // types, number of places and specific location restriction. repeated Place places = 1; + + // A list of routing summaries where each entry associates to the + // corresponding place in the same index in the places field. If the routing + // summary is not available for one of the places, it will contain an empty + // entry. This list should have as many entries as the list of places if + // requested. + repeated RoutingSummary routing_summaries = 2; } // Request proto for SearchText. @@ -295,6 +333,25 @@ message SearchTextRequest { [(google.api.field_behavior) = OPTIONAL]; } + // Specifies a precalculated polyline from the [Routes + // API](https://developers.google.com/maps/documentation/routes) defining the + // route to search. Searching along a route is similar to using the + // `locationBias` or `locationRestriction` request option to bias the search + // results. However, while the `locationBias` and `locationRestriction` + // options let you specify a region to bias the search results, this option + // lets you bias the results along a trip route. + // + // Results are not guaranteed to be along the route provided, but rather are + // ranked within the search area defined by the polyline and, optionally, by + // the `locationBias` or `locationRestriction` based on minimal detour times + // from origin to destination. The results might be along an alternate route, + // especially if the provided polyline does not define an optimal route from + // origin to destination. + message SearchAlongRouteParameters { + // Required. The route polyline. + Polyline polyline = 1 [(google.api.field_behavior) = REQUIRED]; + } + // Required. The text query for textual search. string text_query = 1 [(google.api.field_behavior) = REQUIRED]; @@ -365,6 +422,14 @@ message SearchTextRequest { // Optional. Set the searchable EV options of a place search request. EVOptions ev_options = 15 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Additional parameters for routing to results. + RoutingParameters routing_parameters = 16 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Additional parameters proto for searching along a route. + SearchAlongRouteParameters search_along_route_parameters = 17 + [(google.api.field_behavior) = OPTIONAL]; } // Response proto for SearchText. @@ -373,6 +438,13 @@ message SearchTextResponse { // A list of places that meet the user's text search criteria. repeated Place places = 1; + // A list of routing summaries where each entry associates to the + // corresponding place in the same index in the places field. If the routing + // summary is not available for one of the places, it will contain an empty + // entry. This list will have as many entries as the list of places if + // requested. + repeated RoutingSummary routing_summaries = 2; + // Experimental: See // https://developers.google.com/maps/documentation/places/web-service/experimental/places-generative // for more details. @@ -382,7 +454,7 @@ message SearchTextResponse { // that are relevant to the `text_query` in the request are preferred. If the // contextual content is not available for one of the places, it will return // non-contextual content. It will be empty only when the content is - // unavailable for this place. This list should have as many entries as the + // unavailable for this place. This list will have as many entries as the // list of places if requested. repeated ContextualContent contextual_contents = 3; } diff --git a/google/maps/places/v1/polyline.proto b/google/maps/places/v1/polyline.proto new file mode 100644 index 000000000..80967b850 --- /dev/null +++ b/google/maps/places/v1/polyline.proto @@ -0,0 +1,47 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.maps.places.v1; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.Places.V1"; +option go_package = "cloud.google.com/go/maps/places/apiv1/placespb;placespb"; +option java_multiple_files = true; +option java_outer_classname = "PolylineProto"; +option java_package = "com.google.maps.places.v1"; +option objc_class_prefix = "GMPSV1"; +option php_namespace = "Google\\Maps\\Places\\V1"; + +// A route polyline. Only supports an [encoded +// polyline](https://developers.google.com/maps/documentation/utilities/polylinealgorithm), +// which can be passed as a string and includes compression with minimal +// lossiness. This is the Routes API default output. +message Polyline { + // Encapsulates the type of polyline. Routes API output defaults to + // `encoded_polyline`. + oneof polyline_type { + // An [encoded + // polyline](https://developers.google.com/maps/documentation/utilities/polylinealgorithm), + // as returned by the [Routes API by + // default](https://developers.google.com/maps/documentation/routes/reference/rest/v2/TopLevel/computeRoutes#polylineencoding). + // See the + // [encoder](https://developers.google.com/maps/documentation/utilities/polylineutility) + // and + // [decoder](https://developers.google.com/maps/documentation/routes/polylinedecoder) + // tools. + string encoded_polyline = 1; + } +} diff --git a/google/maps/places/v1/route_modifiers.proto b/google/maps/places/v1/route_modifiers.proto new file mode 100644 index 000000000..1dfd44a9c --- /dev/null +++ b/google/maps/places/v1/route_modifiers.proto @@ -0,0 +1,52 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.maps.places.v1; + +import "google/api/field_behavior.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.Places.V1"; +option go_package = "cloud.google.com/go/maps/places/apiv1/placespb;placespb"; +option java_multiple_files = true; +option java_outer_classname = "RouteModifiersProto"; +option java_package = "com.google.maps.places.v1"; +option objc_class_prefix = "GMPSV1"; +option php_namespace = "Google\\Maps\\Places\\V1"; + +// Encapsulates a set of optional conditions to satisfy when calculating the +// routes. +message RouteModifiers { + // Optional. When set to true, avoids toll roads where reasonable, giving + // preference to routes not containing toll roads. Applies only to the `DRIVE` + // and `TWO_WHEELER` [`TravelMode`][google.maps.places.v1.TravelMode]. + bool avoid_tolls = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. When set to true, avoids highways where reasonable, giving + // preference to routes not containing highways. Applies only to the `DRIVE` + // and `TWO_WHEELER` [`TravelMode`][google.maps.places.v1.TravelMode]. + bool avoid_highways = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. When set to true, avoids ferries where reasonable, giving + // preference to routes not containing ferries. Applies only to the `DRIVE` + // and `TWO_WHEELER` [`TravelMode`][google.maps.places.v1.TravelMode]. + bool avoid_ferries = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. When set to true, avoids navigating indoors where reasonable, + // giving preference to routes not containing indoor navigation. Applies only + // to the `WALK` [`TravelMode`][google.maps.places.v1.TravelMode]. + bool avoid_indoor = 4 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/google/maps/places/v1/routing_preference.proto b/google/maps/places/v1/routing_preference.proto new file mode 100644 index 000000000..31bf0fb7e --- /dev/null +++ b/google/maps/places/v1/routing_preference.proto @@ -0,0 +1,57 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.maps.places.v1; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.Places.V1"; +option go_package = "cloud.google.com/go/maps/places/apiv1/placespb;placespb"; +option java_multiple_files = true; +option java_outer_classname = "RoutingPreferenceProto"; +option java_package = "com.google.maps.places.v1"; +option objc_class_prefix = "GMPSV1"; +option php_namespace = "Google\\Maps\\Places\\V1"; + +// 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 [`TravelMode`][google.maps.places.v1.TravelMode] + // `DRIVE` and `TWO_WHEELER`, the route and duration chosen are based on road + // network and average time-independent traffic conditions, not current road + // conditions. Consequently, routes may include roads that are temporarily + // closed. Results for a given + // request may vary over time due to changes in the road network, updated + // average traffic conditions, and the distributed nature of the service. + // Results may also vary between nearly-equivalent routes at any time or + // 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/places/v1/routing_summary.proto b/google/maps/places/v1/routing_summary.proto new file mode 100644 index 000000000..621b92ad8 --- /dev/null +++ b/google/maps/places/v1/routing_summary.proto @@ -0,0 +1,54 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.maps.places.v1; + +import "google/protobuf/duration.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.Places.V1"; +option go_package = "cloud.google.com/go/maps/places/apiv1/placespb;placespb"; +option java_multiple_files = true; +option java_outer_classname = "RoutingSummaryProto"; +option java_package = "com.google.maps.places.v1"; +option objc_class_prefix = "GMPSV1"; +option php_namespace = "Google\\Maps\\Places\\V1"; + +// The duration and distance from the routing origin to a place in the +// response, and a second leg from that place to the destination, if requested. +// Note: Adding `routingSummaries` in the field mask without also including +// either the `routingParameters.origin` parameter or the +// `searchAlongRouteParameters.polyline.encodedPolyline` parameter in the +// request causes an error. +message RoutingSummary { + // A leg is a single portion of a journey from one location to another. + message Leg { + // The time it takes to complete this leg of the trip. + google.protobuf.Duration duration = 1; + + // The distance of this leg of the trip. + int32 distance_meters = 2; + } + + // The legs of the trip. + // + // When you calculate travel duration and distance from a set origin, `legs` + // contains a single leg containing the duration and distance from the origin + // to the destination. When you do a search along route, `legs` contains two + // legs: one from the origin to place, and one from the place to the + // destination. + repeated Leg legs = 1; +} diff --git a/google/maps/places/v1/travel_mode.proto b/google/maps/places/v1/travel_mode.proto new file mode 100644 index 000000000..d361c42fd --- /dev/null +++ b/google/maps/places/v1/travel_mode.proto @@ -0,0 +1,51 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.maps.places.v1; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Maps.Places.V1"; +option go_package = "cloud.google.com/go/maps/places/apiv1/placespb;placespb"; +option java_multiple_files = true; +option java_outer_classname = "TravelModeProto"; +option java_package = "com.google.maps.places.v1"; +option objc_class_prefix = "GMPSV1"; +option php_namespace = "Google\\Maps\\Places\\V1"; + +// Travel mode options. +// These options map to what [Routes API +// offers](https://developers.google.com/maps/documentation/routes/reference/rest/v2/RouteTravelMode). +enum TravelMode { + // No travel mode specified. Defaults to `DRIVE`. + TRAVEL_MODE_UNSPECIFIED = 0; + + // Travel by passenger car. + DRIVE = 1; + + // Travel by bicycle. Not supported with `search_along_route_parameters`. + BICYCLE = 2; + + // Travel by walking. Not supported with `search_along_route_parameters`. + WALK = 3; + + // Motorized two wheeled vehicles of all kinds such as scooters and + // motorcycles. Note that this is distinct from the `BICYCLE` travel mode + // which covers human-powered transport. Not supported with + // `search_along_route_parameters`. Only supported in those countries listed + // at [Countries and regions supported for two-wheeled + // vehicles](https://developers.google.com/maps/documentation/routes/coverage-two-wheeled). + TWO_WHEELER = 4; +} diff --git a/google/maps/routeoptimization/v1/route_optimization_service.proto b/google/maps/routeoptimization/v1/route_optimization_service.proto index 26b51bd3c..c10f1595a 100644 --- a/google/maps/routeoptimization/v1/route_optimization_service.proto +++ b/google/maps/routeoptimization/v1/route_optimization_service.proto @@ -85,11 +85,23 @@ service RouteOptimization { // // 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 + // messages) are read from and written 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. + // containing `ShipmentRoute` fields, which are a set of routes to be + // performed by vehicles minimizing the overall cost. + // + // The user can poll `operations.get` to check the status of the LRO: + // + // If the LRO `done` field is false, then at least one request is still + // being processed. Other requests may have completed successfully and their + // results are available in Cloud Storage. + // + // If the LRO's `done` field is true, then all requests have been processed. + // Any successfully processed requests will have their results available in + // Cloud Storage. Any requests that failed will not have their results + // available in Cloud Storage. If the LRO's `error` field is set, then it + // contains the error from one of the failed requests. rpc BatchOptimizeTours(BatchOptimizeToursRequest) returns (google.longrunning.Operation) { option (google.api.http) = { @@ -157,7 +169,8 @@ message OptimizeToursRequest { // [max_validation_errors][google.maps.routeoptimization.v1.OptimizeToursRequest.max_validation_errors] // to cap the number of errors returned. enum SolvingMode { - // Solve the model. + // Solve the model. Warnings may be issued in + // [OptimizeToursResponse.validation_errors][google.cloud.optimization.v1.OptimizeToursResponse.validation_errors]. DEFAULT_SOLVE = 0; // Only validates the model without solving it: populates as many @@ -361,7 +374,7 @@ message OptimizeToursRequest { // If true, polylines will be populated in response `ShipmentRoute`s. bool populate_polylines = 12; - // If true, polylines will be populated in response + // If true, polylines and route tokens will be populated in response // [ShipmentRoute.transitions][google.maps.routeoptimization.v1.ShipmentRoute.transitions]. bool populate_transition_polylines = 13; @@ -456,7 +469,8 @@ message OptimizeToursResponse { // List of all the validation errors that we were able to detect // independently. See the "MULTIPLE ERRORS" explanation for the // [OptimizeToursValidationError][google.maps.routeoptimization.v1.OptimizeToursValidationError] - // message. + // message. Instead of errors, this will include warnings in the case + // `solving_mode` is `DEFAULT_SOLVE`. repeated OptimizeToursValidationError validation_errors = 5; // Duration, distance and usage metrics for this solution. @@ -1008,6 +1022,32 @@ message ShipmentTypeRequirement { RequirementMode requirement_mode = 3; } +// Encapsulates a set of optional conditions to satisfy when calculating +// vehicle routes. This is similar to `RouteModifiers` in the Google Maps +// Platform Routes Preferred API; see: +// https://developers.google.com/maps/documentation/routes/reference/rest/v2/RouteModifiers. +message RouteModifiers { + // Specifies whether to avoid toll roads where reasonable. Preference will be + // given to routes not containing toll roads. Applies only to motorized travel + // modes. + bool avoid_tolls = 2; + + // Specifies whether to avoid highways where reasonable. Preference will be + // given to routes not containing highways. Applies only to motorized travel + // modes. + bool avoid_highways = 3; + + // Specifies whether to avoid ferries where reasonable. Preference will be + // given to routes not containing travel by ferries. Applies only to motorized + // travel modes. + bool avoid_ferries = 4; + + // Optional. Specifies whether to avoid navigating indoors where reasonable. + // Preference will be given to routes not containing indoor navigation. + // Applies only to the `WALKING` travel mode. + bool avoid_indoor = 5 [(google.api.field_behavior) = OPTIONAL]; +} + // 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`). @@ -1152,6 +1192,10 @@ message Vehicle { // speed. See also `travel_duration_multiple`. TravelMode travel_mode = 1; + // A set of conditions to satisfy that affect the way routes are calculated + // for the given vehicle. + RouteModifiers route_modifiers = 2; + // 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` @@ -1353,8 +1397,9 @@ message Vehicle { // [ShipmentModel.global_end_time][google.maps.routeoptimization.v1.ShipmentModel.global_end_time]) // and should respect: // ``` -// 0 <= `start_time` <= `soft_start_time` <= `end_time` and -// 0 <= `start_time` <= `soft_end_time` <= `end_time`. +// 0 <= `start_time` <= `end_time` and +// 0 <= `start_time` <= `soft_start_time` and +// 0 <= `soft_end_time` <= `end_time`. // ``` message TimeWindow { // The hard time window start time. If unspecified it will be set to @@ -1416,6 +1461,15 @@ message DistanceLimit { // nonnegative. optional int64 soft_max_meters = 2; + // Cost per kilometer incurred, increasing up to `soft_max_meters`, with + // formula: + // ``` + // min(distance_meters, soft_max_meters) / 1000.0 * + // cost_per_kilometer_below_soft_max. + // ``` + // This cost is not supported in `route_distance_limit`. + optional double cost_per_kilometer_below_soft_max = 4; + // Cost per kilometer incurred if distance is above `soft_max_meters` limit. // The additional cost is 0 if the distance is under the limit, otherwise the // formula used to compute the cost is the following: @@ -1794,6 +1848,17 @@ message ShipmentRoute { // is set to true. EncodedPolyline route_polyline = 9; + // Output only. An opaque token that can be passed to [Navigation + // SDK](https://developers.google.com/maps/documentation/navigation) to + // reconstruct the route during navigation, and, in the event of rerouting, + // honor the original intention when the route was created. Treat this token + // as an opaque blob. Don't compare its value across requests as its value + // may change even if the service returns the exact same route. This field + // is only populated if [populate_transition_polylines] + // [google.maps.routeoptimization.v1.OptimizeToursRequest.populate_transition_polylines] + // is set to true. + string route_token = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Vehicle loads during this transition, for each type that either appears // in this vehicle's // [Vehicle.load_limits][google.maps.routeoptimization.v1.Vehicle.load_limits], @@ -1947,8 +2012,7 @@ message SkippedShipment { // 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. + // This should never be used. CODE_UNSPECIFIED = 0; // There is no vehicle in the model making all shipments infeasible. @@ -2011,7 +2075,8 @@ message SkippedShipment { string label = 2; // A list of reasons that explain why the shipment was skipped. See comment - // above `Reason`. + // above `Reason`. If we are unable to understand why a shipment was skipped, + // reasons will not be set. repeated Reason reasons = 3; } @@ -2127,7 +2192,8 @@ message InjectedSolutionConstraint { 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. + // is also relaxed: visits can only be performed by this vehicle, but + // can potentially become unperformed. RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD = 2; // Same as `RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD`, but the @@ -2188,7 +2254,8 @@ message InjectedSolutionConstraint { repeated ConstraintRelaxation constraint_relaxations = 3; } -// Describes an error encountered when validating an `OptimizeToursRequest`. +// Describes an error or warning 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 @@ -2218,240 +2285,21 @@ message OptimizeToursValidationError { // A validation error is defined by the pair (`code`, `display_name`) which // are always present. // - // Other fields (below) provide more context about the error. + // The fields following this section 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. + // errors, among others. Some errors may cause the validation process to skip + // other errors. // // *STABILITY*: // `code` and `display_name` should be very stable. But new codes and // display names may appear over time, which may cause a given (invalid) // request to yield a different (`code`, `display_name`) pair because the new - // error hid the old one (see "MULTIPLE ERRORS"). - // - // *REFERENCE*: A list of all (code, name) pairs: - // - // * UNSPECIFIED = 0; - // * VALIDATION_TIMEOUT_ERROR = 10; Validation couldn't be completed within - // the deadline. - // - // * REQUEST_OPTIONS_ERROR = 12; - // * REQUEST_OPTIONS_INVALID_SOLVING_MODE = 1201; - // * REQUEST_OPTIONS_INVALID_MAX_VALIDATION_ERRORS = 1203; - // * REQUEST_OPTIONS_INVALID_GEODESIC_METERS_PER_SECOND = 1204; - // * REQUEST_OPTIONS_GEODESIC_METERS_PER_SECOND_TOO_SMALL = 1205; - // * REQUEST_OPTIONS_MISSING_GEODESIC_METERS_PER_SECOND = 1206; - // * REQUEST_OPTIONS_POPULATE_PATHFINDER_TRIPS_AND_GEODESIC_DISTANCE - // = 1207; - // * REQUEST_OPTIONS_COST_MODEL_OPTIONS_AND_GEODESIC_DISTANCE = 1208; - // * REQUEST_OPTIONS_TRAVEL_MODE_INCOMPATIBLE_WITH_TRAFFIC = 1211; - // * REQUEST_OPTIONS_MULTIPLE_TRAFFIC_FLAVORS = 1212; - // * REQUEST_OPTIONS_INVALID_TRAFFIC_FLAVOR = 1213; - // * REQUEST_OPTIONS_TRAFFIC_ENABLED_WITHOUT_GLOBAL_START_TIME = 1214; - // * REQUEST_OPTIONS_TRAFFIC_ENABLED_WITH_PRECEDENCES = 1215; - // * REQUEST_OPTIONS_TRAFFIC_PREFILL_MODE_INVALID = 1216; - // * REQUEST_OPTIONS_TRAFFIC_PREFILL_ENABLED_WITHOUT_TRAFFIC = 1217; - // * INJECTED_SOLUTION_ERROR = 20; - // * INJECTED_SOLUTION_MISSING_LABEL = 2000; - // * INJECTED_SOLUTION_DUPLICATE_LABEL = 2001; - // * INJECTED_SOLUTION_AMBIGUOUS_INDEX = 2002; - // * INJECTED_SOLUTION_INFEASIBLE_AFTER_GETTING_TRAVEL_TIMES = 2003; - // * INJECTED_SOLUTION_TRANSITION_INCONSISTENT_WITH_ACTUAL_TRAVEL = 2004; - // * INJECTED_SOLUTION_CONCURRENT_SOLUTION_TYPES = 2005; - // * INJECTED_SOLUTION_MORE_THAN_ONE_PER_TYPE = 2006; - // * INJECTED_SOLUTION_REFRESH_WITHOUT_POPULATE = 2008; - // * INJECTED_SOLUTION_CONSTRAINED_ROUTE_PORTION_INFEASIBLE = 2010; - // * SHIPMENT_MODEL_ERROR = 22; - // * SHIPMENT_MODEL_TOO_LARGE = 2200; - // * SHIPMENT_MODEL_TOO_MANY_CAPACITY_TYPES = 2201; - // * SHIPMENT_MODEL_GLOBAL_START_TIME_NEGATIVE_OR_NAN = 2202; - // * SHIPMENT_MODEL_GLOBAL_END_TIME_TOO_LARGE_OR_NAN = 2203; - // * SHIPMENT_MODEL_GLOBAL_START_TIME_AFTER_GLOBAL_END_TIME = 2204; - // * SHIPMENT_MODEL_GLOBAL_DURATION_TOO_LONG = 2205; - // * SHIPMENT_MODEL_MAX_ACTIVE_VEHICLES_NOT_POSITIVE = 2206; - // * SHIPMENT_MODEL_DURATION_MATRIX_TOO_LARGE = 2207; - // * INDEX_ERROR = 24; - // * TAG_ERROR = 26; - // * TIME_WINDOW_ERROR = 28; - // * TIME_WINDOW_INVALID_START_TIME = 2800; - // * TIME_WINDOW_INVALID_END_TIME = 2801; - // * TIME_WINDOW_INVALID_SOFT_START_TIME = 2802; - // * TIME_WINDOW_INVALID_SOFT_END_TIME = 2803; - // * TIME_WINDOW_OUTSIDE_GLOBAL_TIME_WINDOW = 2804; - // * TIME_WINDOW_START_TIME_AFTER_END_TIME = 2805; - // * TIME_WINDOW_INVALID_COST_PER_HOUR_BEFORE_SOFT_START_TIME = 2806; - // * TIME_WINDOW_INVALID_COST_PER_HOUR_AFTER_SOFT_END_TIME = 2807; - // * TIME_WINDOW_COST_BEFORE_SOFT_START_TIME_WITHOUT_SOFT_START_TIME - // = 2808; - // * TIME_WINDOW_COST_AFTER_SOFT_END_TIME_WITHOUT_SOFT_END_TIME = 2809; - // * TIME_WINDOW_SOFT_START_TIME_WITHOUT_COST_BEFORE_SOFT_START_TIME - // = 2810; - // * TIME_WINDOW_SOFT_END_TIME_WITHOUT_COST_AFTER_SOFT_END_TIME = 2811; - // * TIME_WINDOW_OVERLAPPING_ADJACENT_OR_EARLIER_THAN_PREVIOUS = 2812; - // * TIME_WINDOW_START_TIME_AFTER_SOFT_START_TIME = 2813; - // * TIME_WINDOW_SOFT_START_TIME_AFTER_END_TIME = 2814; - // * TIME_WINDOW_START_TIME_AFTER_SOFT_END_TIME = 2815; - // * TIME_WINDOW_SOFT_END_TIME_AFTER_END_TIME = 2816; - // * TIME_WINDOW_COST_BEFORE_SOFT_START_TIME_SET_AND_MULTIPLE_WINDOWS - // = 2817; - // * TIME_WINDOW_COST_AFTER_SOFT_END_TIME_SET_AND_MULTIPLE_WINDOWS = 2818; - // * TRANSITION_ATTRIBUTES_ERROR = 30; - // * TRANSITION_ATTRIBUTES_INVALID_COST = 3000; - // * TRANSITION_ATTRIBUTES_INVALID_COST_PER_KILOMETER = 3001; - // * TRANSITION_ATTRIBUTES_DUPLICATE_TAG_PAIR = 3002; - // * TRANSITION_ATTRIBUTES_DISTANCE_LIMIT_MAX_METERS_UNSUPPORTED = 3003; - // * TRANSITION_ATTRIBUTES_UNSPECIFIED_SOURCE_TAGS = 3004; - // * TRANSITION_ATTRIBUTES_CONFLICTING_SOURCE_TAGS_FIELDS = 3005; - // * TRANSITION_ATTRIBUTES_UNSPECIFIED_DESTINATION_TAGS = 3006; - // * TRANSITION_ATTRIBUTES_CONFLICTING_DESTINATION_TAGS_FIELDS = 3007; - // * TRANSITION_ATTRIBUTES_DELAY_DURATION_NEGATIVE_OR_NAN = 3008; - // * TRANSITION_ATTRIBUTES_DELAY_DURATION_EXCEEDS_GLOBAL_DURATION = 3009; - // * AMOUNT_ERROR = 31; - // * AMOUNT_NEGATIVE_VALUE = 3100; - // * LOAD_LIMIT_ERROR = 33; - // * LOAD_LIMIT_INVALID_COST_ABOVE_SOFT_MAX = 3303; - // * LOAD_LIMIT_SOFT_MAX_WITHOUT_COST_ABOVE_SOFT_MAX = 3304; - // * LOAD_LIMIT_COST_ABOVE_SOFT_MAX_WITHOUT_SOFT_MAX = 3305; - // * LOAD_LIMIT_NEGATIVE_SOFT_MAX = 3306; - // * LOAD_LIMIT_MIXED_DEMAND_TYPE = 3307; - // * LOAD_LIMIT_MAX_LOAD_NEGATIVE_VALUE = 3308; - // * LOAD_LIMIT_SOFT_MAX_ABOVE_MAX = 3309; - // * INTERVAL_ERROR = 34; - // * INTERVAL_MIN_EXCEEDS_MAX = 3401; - // * INTERVAL_NEGATIVE_MIN = 3402; - // * INTERVAL_NEGATIVE_MAX = 3403; - // * INTERVAL_MIN_EXCEEDS_CAPACITY = 3404; - // * INTERVAL_MAX_EXCEEDS_CAPACITY = 3405; - // * DISTANCE_LIMIT_ERROR = 36; - // * DISTANCE_LIMIT_INVALID_COST_AFTER_SOFT_MAX = 3601; - // * DISTANCE_LIMIT_SOFT_MAX_WITHOUT_COST_AFTER_SOFT_MAX = 3602; - // * DISTANCE_LIMIT_COST_AFTER_SOFT_MAX_WITHOUT_SOFT_MAX = 3603; - // * DISTANCE_LIMIT_NEGATIVE_MAX = 3604; - // * DISTANCE_LIMIT_NEGATIVE_SOFT_MAX = 3605; - // * DISTANCE_LIMIT_SOFT_MAX_LARGER_THAN_MAX = 3606; - // * DURATION_LIMIT_ERROR = 38; - // * DURATION_LIMIT_MAX_DURATION_NEGATIVE_OR_NAN = 3800; - // * DURATION_LIMIT_SOFT_MAX_DURATION_NEGATIVE_OR_NAN = 3801; - // * DURATION_LIMIT_INVALID_COST_PER_HOUR_AFTER_SOFT_MAX = 3802; - // * DURATION_LIMIT_SOFT_MAX_WITHOUT_COST_AFTER_SOFT_MAX = 3803; - // * DURATION_LIMIT_COST_AFTER_SOFT_MAX_WITHOUT_SOFT_MAX = 3804; - // * DURATION_LIMIT_QUADRATIC_SOFT_MAX_DURATION_NEGATIVE_OR_NAN = 3805; - // * DURATION_LIMIT_INVALID_COST_AFTER_QUADRATIC_SOFT_MAX = 3806; - // * DURATION_LIMIT_QUADRATIC_SOFT_MAX_WITHOUT_COST_PER_SQUARE_HOUR - // = 3807; - // * DURATION_LIMIT_COST_PER_SQUARE_HOUR_WITHOUT_QUADRATIC_SOFT_MAX - // = 3808; - // * DURATION_LIMIT_QUADRATIC_SOFT_MAX_WITHOUT_MAX = 3809; - // * DURATION_LIMIT_SOFT_MAX_LARGER_THAN_MAX = 3810; - // * DURATION_LIMIT_QUADRATIC_SOFT_MAX_LARGER_THAN_MAX = 3811; - // * DURATION_LIMIT_DIFF_BETWEEN_MAX_AND_QUADRATIC_SOFT_MAX_TOO_LARGE - // = 3812; - // * DURATION_LIMIT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION = 3813; - // * DURATION_LIMIT_SOFT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION = 3814; - // * DURATION_LIMIT_QUADRATIC_SOFT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION - // = 3815; - // * SHIPMENT_ERROR = 40; - // * SHIPMENT_PD_LIMIT_WITHOUT_PICKUP_AND_DELIVERY = 4014; - // * SHIPMENT_PD_ABSOLUTE_DETOUR_LIMIT_DURATION_NEGATIVE_OR_NAN = 4000; - // * SHIPMENT_PD_ABSOLUTE_DETOUR_LIMIT_DURATION_EXCEEDS_GLOBAL_DURATION - // = 4001; - // * SHIPMENT_PD_RELATIVE_DETOUR_LIMIT_INVALID = 4015; - // * SHIPMENT_PD_DETOUR_LIMIT_AND_EXTRA_VISIT_DURATION = 4016; - // * SHIPMENT_PD_TIME_LIMIT_DURATION_NEGATIVE_OR_NAN = 4002; - // * SHIPMENT_PD_TIME_LIMIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4003; - // * SHIPMENT_EMPTY_SHIPMENT_TYPE = 4004; - // * SHIPMENT_NO_PICKUP_NO_DELIVERY = 4005; - // * SHIPMENT_INVALID_PENALTY_COST = 4006; - // * SHIPMENT_ALLOWED_VEHICLE_INDEX_OUT_OF_BOUNDS = 4007; - // * SHIPMENT_DUPLICATE_ALLOWED_VEHICLE_INDEX = 4008; - // * SHIPMENT_INCONSISTENT_COST_FOR_VEHICLE_SIZE_WITHOUT_INDEX = 4009; - // * SHIPMENT_INCONSISTENT_COST_FOR_VEHICLE_SIZE_WITH_INDEX = 4010; - // * SHIPMENT_INVALID_COST_FOR_VEHICLE = 4011; - // * SHIPMENT_COST_FOR_VEHICLE_INDEX_OUT_OF_BOUNDS = 4012; - // * SHIPMENT_DUPLICATE_COST_FOR_VEHICLE_INDEX = 4013; - // * VEHICLE_ERROR = 42; - // * VEHICLE_EMPTY_REQUIRED_OPERATOR_TYPE = 4200; - // * VEHICLE_DUPLICATE_REQUIRED_OPERATOR_TYPE = 4201; - // * VEHICLE_NO_OPERATOR_WITH_REQUIRED_OPERATOR_TYPE = 4202; - // * VEHICLE_EMPTY_START_TAG = 4203; - // * VEHICLE_DUPLICATE_START_TAG = 4204; - // * VEHICLE_EMPTY_END_TAG = 4205; - // * VEHICLE_DUPLICATE_END_TAG = 4206; - // * VEHICLE_EXTRA_VISIT_DURATION_NEGATIVE_OR_NAN = 4207; - // * VEHICLE_EXTRA_VISIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4208; - // * VEHICLE_EXTRA_VISIT_DURATION_EMPTY_KEY = 4209; - // * VEHICLE_FIRST_SHIPMENT_INDEX_OUT_OF_BOUNDS = 4210; - // * VEHICLE_FIRST_SHIPMENT_IGNORED = 4211; - // * VEHICLE_FIRST_SHIPMENT_NOT_BOUND = 4212; - // * VEHICLE_LAST_SHIPMENT_INDEX_OUT_OF_BOUNDS = 4213; - // * VEHICLE_LAST_SHIPMENT_IGNORED = 4214; - // * VEHICLE_LAST_SHIPMENT_NOT_BOUND = 4215; - // * VEHICLE_IGNORED_WITH_USED_IF_ROUTE_IS_EMPTY = 4216; - // * VEHICLE_INVALID_COST_PER_KILOMETER = 4217; - // * VEHICLE_INVALID_COST_PER_HOUR = 4218; - // * VEHICLE_INVALID_COST_PER_TRAVELED_HOUR = 4219; - // * VEHICLE_INVALID_FIXED_COST = 4220; - // * VEHICLE_INVALID_TRAVEL_DURATION_MULTIPLE = 4221; - // * VEHICLE_TRAVEL_DURATION_MULTIPLE_WITH_SHIPMENT_PD_DETOUR_LIMITS - // = 4223; - // * VEHICLE_MATRIX_INDEX_WITH_SHIPMENT_PD_DETOUR_LIMITS = 4224; - // * VEHICLE_MINIMUM_DURATION_LONGER_THAN_DURATION_LIMIT = 4222; - // * VISIT_REQUEST_ERROR = 44; - // * VISIT_REQUEST_EMPTY_TAG = 4400; - // * VISIT_REQUEST_DUPLICATE_TAG = 4401; - // * VISIT_REQUEST_DURATION_NEGATIVE_OR_NAN = 4404; - // * VISIT_REQUEST_DURATION_EXCEEDS_GLOBAL_DURATION = 4405; - // * PRECEDENCE_ERROR = 46; - // * BREAK_ERROR = 48; - // * BREAK_RULE_EMPTY = 4800; - // * BREAK_REQUEST_UNSPECIFIED_DURATION = 4801; - // * BREAK_REQUEST_UNSPECIFIED_EARLIEST_START_TIME = 4802; - // * BREAK_REQUEST_UNSPECIFIED_LATEST_START_TIME = 4803; - // * BREAK_REQUEST_DURATION_NEGATIVE_OR_NAN = 4804; = 4804; - // * BREAK_REQUEST_LATEST_START_TIME_BEFORE_EARLIEST_START_TIME = 4805; - // * BREAK_REQUEST_EARLIEST_START_TIME_BEFORE_GLOBAL_START_TIME = 4806; - // * BREAK_REQUEST_LATEST_END_TIME_AFTER_GLOBAL_END_TIME = 4807; - // * BREAK_REQUEST_NON_SCHEDULABLE = 4808; - // * BREAK_FREQUENCY_MAX_INTER_BREAK_DURATION_NEGATIVE_OR_NAN = 4809; - // * BREAK_FREQUENCY_MIN_BREAK_DURATION_NEGATIVE_OR_NAN = 4810; - // * BREAK_FREQUENCY_MIN_BREAK_DURATION_EXCEEDS_GLOBAL_DURATION = 4811; - // * BREAK_FREQUENCY_MAX_INTER_BREAK_DURATION_EXCEEDS_GLOBAL_DURATION - // = 4812; - // * BREAK_REQUEST_DURATION_EXCEEDS_GLOBAL_DURATION = 4813; - // * BREAK_FREQUENCY_MISSING_MAX_INTER_BREAK_DURATION = 4814; - // * BREAK_FREQUENCY_MISSING_MIN_BREAK_DURATION = 4815; - // * SHIPMENT_TYPE_INCOMPATIBILITY_ERROR = 50; - // * SHIPMENT_TYPE_INCOMPATIBILITY_EMPTY_TYPE = 5001; - // * SHIPMENT_TYPE_INCOMPATIBILITY_LESS_THAN_TWO_TYPES = 5002; - // * SHIPMENT_TYPE_INCOMPATIBILITY_DUPLICATE_TYPE = 5003; - // * SHIPMENT_TYPE_INCOMPATIBILITY_INVALID_INCOMPATIBILITY_MODE = 5004; - // * SHIPMENT_TYPE_INCOMPATIBILITY_TOO_MANY_INCOMPATIBILITIES = 5005; - // * SHIPMENT_TYPE_REQUIREMENT_ERROR = 52; - // * SHIPMENT_TYPE_REQUIREMENT_NO_REQUIRED_TYPE = 52001; - // * SHIPMENT_TYPE_REQUIREMENT_NO_DEPENDENT_TYPE = 52002; - // * SHIPMENT_TYPE_REQUIREMENT_INVALID_REQUIREMENT_MODE = 52003; - // * SHIPMENT_TYPE_REQUIREMENT_TOO_MANY_REQUIREMENTS = 52004; - // * SHIPMENT_TYPE_REQUIREMENT_EMPTY_REQUIRED_TYPE = 52005; - // * SHIPMENT_TYPE_REQUIREMENT_DUPLICATE_REQUIRED_TYPE = 52006; - // * SHIPMENT_TYPE_REQUIREMENT_NO_REQUIRED_TYPE_FOUND = 52007; - // * SHIPMENT_TYPE_REQUIREMENT_EMPTY_DEPENDENT_TYPE = 52008; - // * SHIPMENT_TYPE_REQUIREMENT_DUPLICATE_DEPENDENT_TYPE = 52009; - // * SHIPMENT_TYPE_REQUIREMENT_SELF_DEPENDENT_TYPE = 52010; - // * SHIPMENT_TYPE_REQUIREMENT_GRAPH_HAS_CYCLES = 52011; - // * VEHICLE_OPERATOR_ERROR = 54; - // * VEHICLE_OPERATOR_EMPTY_TYPE = 5400; - // * VEHICLE_OPERATOR_MULTIPLE_START_TIME_WINDOWS = 5401; - // * VEHICLE_OPERATOR_SOFT_START_TIME_WINDOW = 5402; - // * VEHICLE_OPERATOR_MULTIPLE_END_TIME_WINDOWS = 5403; - // * VEHICLE_OPERATOR_SOFT_END_TIME_WINDOW = 5404; - // * DURATION_SECONDS_MATRIX_ERROR = 56; - // * DURATION_SECONDS_MATRIX_DURATION_NEGATIVE_OR_NAN = 5600; - // * DURATION_SECONDS_MATRIX_DURATION_EXCEEDS_GLOBAL_DURATION = 5601; + // error hid the old one. For example, see "MULTIPLE ERRORS". int32 code = 1; // The error display name. diff --git a/google/maps/routes/v1/compute_custom_routes_request.proto b/google/maps/routes/v1/compute_custom_routes_request.proto index 971d2a495..d160ff9ac 100644 --- a/google/maps/routes/v1/compute_custom_routes_request.proto +++ b/google/maps/routes/v1/compute_custom_routes_request.proto @@ -22,7 +22,6 @@ import "google/maps/routes/v1/polyline.proto"; import "google/maps/routes/v1/waypoint.proto"; import "google/protobuf/timestamp.proto"; -option cc_enable_arenas = true; option csharp_namespace = "Google.Maps.Routes.V1"; option go_package = "cloud.google.com/go/maps/routes/apiv1/routespb;routespb"; option java_multiple_files = true; @@ -39,58 +38,63 @@ message ComputeCustomRoutesRequest { // 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. + // 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. Only DRIVE is supported now. + // Optional. Specifies the mode of transportation. Only `DRIVE` and + // 'TWO_WHEELER' are supported. 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 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. 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 = 13 [(google.api.field_behavior) = OPTIONAL]; + PolylineEncoding polyline_encoding = 13 + [(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]; + google.protobuf.Timestamp departure_time = 7 + [(google.api.field_behavior) = OPTIONAL]; - // Optional. A set of conditions to satisfy that affect the way routes are calculated. + // Optional. A set of conditions to satisfy that affect the way routes are + // calculated. RouteModifiers route_modifiers = 11 [(google.api.field_behavior) = OPTIONAL]; // Required. A route objective to optimize for. RouteObjective route_objective = 12 [(google.api.field_behavior) = REQUIRED]; // 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. + // information, see [Unicode Locale + // Identifier](http://www.unicode.org/reports/tr35/#Unicode_locale_identifier). + // See [Language + // Support](https://developers.google.com/maps/faq#languagesupport) for the + // list of supported languages. When you don't provide this value, the display + // language is inferred from the location of the route request. string language_code = 9 [(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. + // 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 = 10 [(google.api.field_behavior) = OPTIONAL]; } -// Encapsulates an objective to optimize for by ComputeCustomRoutes. +// Encapsulates an objective to optimize for by `ComputeCustomRoutes`. message RouteObjective { - // Encapsulates a RateCard route objective. + // Encapsulates a `RateCard` route objective. message RateCard { // Encapsulates the cost used in the rate card. message MonetaryCost { @@ -108,20 +112,27 @@ 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. + // Deprecated: Custom layers will stop affecting route generation soon. + // Customized data layer that customers use to 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. + option deprecated = true; + + // Information about a dataset that customers have uploaded in advance. The + // dataset information is used 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]; + // Optional. Deprecated: use display_name instead. + // ID of a customer uploaded dataset which is used to influence the route. + // If the dataset does not exist or is not yet ready, the request fails. + string dataset_id = 1 + [deprecated = true, (google.api.field_behavior) = OPTIONAL]; + + // Optional. Display name of the customer uploaded dataset which is used + // to influence the route. If the dataset does not exist or is not yet + // ready, the request fails. + string display_name = 2 [(google.api.field_behavior) = OPTIONAL]; } - // Required. A dataset that the customer uploaded in advance. + // Required. A dataset that the customer has uploaded in advance. DatasetInfo dataset_info = 1 [(google.api.field_behavior) = REQUIRED]; } @@ -131,11 +142,8 @@ message RouteObjective { 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). + // Optional. Deprecated: Custom layers will stop affecting route generation + // soon. Specifies the custom data layer being used to affect generated + // routes. Customers can turn off the custom layer by not setting this field. 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 1b5fe97d4..993aea6c3 100644 --- a/google/maps/routes/v1/compute_custom_routes_response.proto +++ b/google/maps/routes/v1/compute_custom_routes_response.proto @@ -19,7 +19,6 @@ package google.maps.routes.v1; import "google/maps/routes/v1/custom_route.proto"; import "google/maps/routes/v1/fallback_info.proto"; -option cc_enable_arenas = true; option csharp_namespace = "Google.Maps.Routes.V1"; option go_package = "cloud.google.com/go/maps/routes/apiv1/routespb;routespb"; option java_multiple_files = true; @@ -30,18 +29,18 @@ option php_namespace = "Google\\Maps\\Routes\\V1"; // ComputeCustomRoutes response message. message ComputeCustomRoutesResponse { - // Encapsulates fallback info for ComputeCustomRoutes. ComputeCustomRoutes + // Encapsulates fallback info for `ComputeCustomRoutes`. `ComputeCustomRoutes` // performs two types of fallbacks: // - // 1. If it cannot compute the route using the routing_preference requested by - // the customer, it will fallback to another routing mode. In this case - // fallback_routing_mode and routing_mode_fallback_reason are used to + // 1. If it cannot compute the route using the `routing_preference` requested + // by the customer, it will fallback to another routing mode. In this case + // `fallback_routing_mode` and `routing_mode_fallback_reason` are used to // communicate the fallback routing mode used, as well as the reason for // fallback. // // 2. If it cannot compute a 'best' route for the route objective specified by // the customer, it might fallback to another objective. - // fallback_route_objective is used to communicate the fallback route + // `fallback_route_objective` is used to communicate the fallback route // objective. message FallbackInfo { // RouteObjective used for the response. @@ -49,9 +48,9 @@ message ComputeCustomRoutesResponse { // Fallback route objective unspecified. FALLBACK_ROUTE_OBJECTIVE_UNSPECIFIED = 0; - // If customer requests RateCard and sets include_tolls to true, and + // If customer requests `RateCard` and sets include_tolls to true, and // Google does not have toll price data for the route, the API falls back - // to RateCard without considering toll price. + // to `RateCard` without considering toll price. FALLBACK_RATECARD_WITHOUT_TOLL_PRICE_DATA = 1; } diff --git a/google/maps/routes/v1/compute_route_matrix_request.proto b/google/maps/routes/v1/compute_route_matrix_request.proto index 0348e44f8..dbbca9fe4 100644 --- a/google/maps/routes/v1/compute_route_matrix_request.proto +++ b/google/maps/routes/v1/compute_route_matrix_request.proto @@ -21,7 +21,6 @@ import "google/maps/routes/v1/compute_routes_request.proto"; import "google/maps/routes/v1/waypoint.proto"; import "google/protobuf/timestamp.proto"; -option cc_enable_arenas = true; option csharp_namespace = "Google.Maps.Routes.V1"; option go_package = "cloud.google.com/go/maps/routes/apiv1/routespb;routespb"; option java_multiple_files = true; @@ -32,8 +31,8 @@ option php_namespace = "Google\\Maps\\Routes\\V1"; // 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 + // 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 @@ -42,27 +41,30 @@ message ComputeRouteMatrixRequest { // 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]; + 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]; + // 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. 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. 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]; + // 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 diff --git a/google/maps/routes/v1/compute_routes_request.proto b/google/maps/routes/v1/compute_routes_request.proto index e37649cad..022796d34 100644 --- a/google/maps/routes/v1/compute_routes_request.proto +++ b/google/maps/routes/v1/compute_routes_request.proto @@ -16,13 +16,13 @@ syntax = "proto3"; package google.maps.routes.v1; +import "google/api/field_behavior.proto"; import "google/maps/routes/v1/polyline.proto"; import "google/maps/routes/v1/toll_passes.proto"; import "google/maps/routes/v1/vehicle_emission_type.proto"; import "google/maps/routes/v1/waypoint.proto"; import "google/protobuf/timestamp.proto"; -option cc_enable_arenas = true; option csharp_namespace = "Google.Maps.Routes.V1"; option go_package = "cloud.google.com/go/maps/routes/apiv1/routespb;routespb"; option java_multiple_files = true; @@ -31,7 +31,7 @@ option java_package = "com.google.maps.routes.v1"; option objc_class_prefix = "GMRS"; option php_namespace = "Google\\Maps\\Routes\\V1"; -// ComputeRoutes request message. +// `ComputeRoutes` request message. message ComputeRoutesRequest { // Required. Origin waypoint. Waypoint origin = 1; @@ -50,10 +50,8 @@ message ComputeRoutesRequest { // 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. + // an error is returned. You can specify this option only when the + // `travel_mode` is `DRIVE` or `TWO_WHEELER`, otherwise the request fails. RoutingPreference routing_preference = 5; // Optional. Specifies your preference for the quality of the polyline. @@ -67,7 +65,9 @@ message ComputeRoutesRequest { // time that has already occurred, then the request fails. google.protobuf.Timestamp departure_time = 7; - // Specifies whether to calculate alternate routes in addition to the route. + // Optional. Specifies whether to calculate alternate routes in addition to + // the route. No alternative routes are returned for requests that have + // intermediate waypoints. bool compute_alternative_routes = 8; // Optional. A set of conditions to satisfy that affect the way routes are @@ -75,11 +75,12 @@ message ComputeRoutesRequest { RouteModifiers route_modifiers = 9; // 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. + // information, see [Unicode Locale + // Identifier](http://www.unicode.org/reports/tr35/#Unicode_locale_identifier). + // See [Language + // Support](https://developers.google.com/maps/faq#languagesupport) for the + // list of supported languages. When you don't provide this value, the display + // language is inferred from the location of the route request. string language_code = 10; // Optional. Specifies the units of measure for the display fields. This @@ -92,34 +93,34 @@ message ComputeRoutesRequest { // 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. + // `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 + // `optimize_waypoint_order` 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 // 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 + // When set to true, avoids toll roads where reasonable, giving preference to + // routes not containing toll roads. Applies only to the `DRIVE` and // `TWO_WHEELER` 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 + // When set to true, avoids highways where reasonable, giving preference 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. + // When set to true, avoids ferries where reasonable, giving preference to + // routes not containing 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. + // When set to true, avoids navigating indoors where reasonable, giving + // preference to routes not containing indoor navigation. // Applies only to the `WALK` travel mode. bool avoid_indoor = 4; @@ -130,18 +131,18 @@ message RouteModifiers { // 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. + // Applies only to the `DRIVE` and `TWO_WHEELER` travel modes. repeated TollPass toll_passes = 6; } -// Encapsulates the vehicle information, such as the license plate last -// character. +// Encapsulates the vehicle information, such as the vehicle emission type. message VehicleInfo { // Specifies the license plate last character. Could be a digit or a letter. string license_plate_last_character = 1; // Describes the vehicle's emission type. - // Applies only to the DRIVE travel mode. + // Applies only to the `DRIVE` + // [`RouteTravelMode`][google.maps.routes.v1.RouteTravelMode]. VehicleEmissionType emission_type = 2; } @@ -165,6 +166,9 @@ enum RouteTravelMode { // Travel by licensed taxi, which may allow the vehicle to travel on // designated taxi lanes in some areas. + // + // TAXI mode is an experimental feature. If customer requests TAXI route in a + // city where taxi lane data is not available, a DRIVE route is returned. TAXI = 5; } @@ -174,9 +178,17 @@ enum RoutingPreference { // No routing preference specified. Default to `TRAFFIC_AWARE`. ROUTING_PREFERENCE_UNSPECIFIED = 0; - // Computes routes without taking traffic conditions into consideration. - // Suitable when traffic conditions don't matter. Using this value produces - // the lowest latency. + // 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, the route and duration + // chosen are based on road network and average time-independent traffic + // conditions, not current road conditions. Consequently, routes may include + // roads that are temporarily closed. Results for + // a given request may vary over time due to changes + // in the road network, updated average traffic conditions, and the + // distributed nature of the service. Results may also vary between + // nearly-equivalent routes at any time or frequency. TRAFFIC_UNAWARE = 1; // Calculates routes taking traffic conditions into consideration. In contrast diff --git a/google/maps/routes/v1/compute_routes_response.proto b/google/maps/routes/v1/compute_routes_response.proto index 4861c2e7a..f248d5b2c 100644 --- a/google/maps/routes/v1/compute_routes_response.proto +++ b/google/maps/routes/v1/compute_routes_response.proto @@ -19,7 +19,6 @@ package google.maps.routes.v1; import "google/maps/routes/v1/fallback_info.proto"; import "google/maps/routes/v1/route.proto"; -option cc_enable_arenas = true; option csharp_namespace = "Google.Maps.Routes.V1"; option go_package = "cloud.google.com/go/maps/routes/apiv1/routespb;routespb"; option java_multiple_files = true; @@ -31,7 +30,7 @@ option php_namespace = "Google\\Maps\\Routes\\V1"; // ComputeRoutes the response message. message ComputeRoutesResponse { // Contains an array of computed routes (up to three) when you specify - // compute_alternatives_routes, and contains just one route when you don't. + // `compute_alternatives_routes`, and contains just one route when you don't. // When this array contains multiple entries, the first one is the most // recommended route. If the array is empty, then it means no route could be // found. diff --git a/google/maps/routes/v1/custom_route.proto b/google/maps/routes/v1/custom_route.proto index be40e6efb..12e14bc35 100644 --- a/google/maps/routes/v1/custom_route.proto +++ b/google/maps/routes/v1/custom_route.proto @@ -18,7 +18,6 @@ package google.maps.routes.v1; import "google/maps/routes/v1/route.proto"; -option cc_enable_arenas = true; option csharp_namespace = "Google.Maps.Routes.V1"; option go_package = "cloud.google.com/go/maps/routes/apiv1/routespb;routespb"; option java_multiple_files = true; @@ -28,16 +27,17 @@ option objc_class_prefix = "GMRS"; option php_namespace = "Google\\Maps\\Routes\\V1"; // Encapsulates a custom route computed based on the route objective specified -// by the customer. CustomRoute contains a route and a route token, which can be -// passed to NavSDK to reconstruct the custom route for turn by turn navigation. +// by the customer. `CustomRoute` contains a route and a route token, which can +// be passed to NavSDK to reconstruct the custom route for turn by turn +// navigation. message CustomRoute { // The route considered 'best' for the input route objective. Route route = 11; // Web-safe base64 encoded route token that can be passed to NavSDK, which // allows NavSDK to reconstruct the route during navigation, and in the event - // of rerouting honor the original intention when RoutesPreferred - // ComputeCustomRoutes is called. Customers should treat this token as an + // of rerouting honor the original intention when `RoutesPreferred` + // `ComputeCustomRoutes` is called. Customers should treat this token as an // opaque blob. string token = 12; } diff --git a/google/maps/routes/v1/fallback_info.proto b/google/maps/routes/v1/fallback_info.proto index bc59479ef..3a1152fb2 100644 --- a/google/maps/routes/v1/fallback_info.proto +++ b/google/maps/routes/v1/fallback_info.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.maps.routes.v1; -option cc_enable_arenas = true; option csharp_namespace = "Google.Maps.Routes.V1"; option go_package = "cloud.google.com/go/maps/routes/apiv1/routespb;routespb"; option java_multiple_files = true; @@ -61,11 +60,11 @@ enum FallbackRoutingMode { // Not used. FALLBACK_ROUTING_MODE_UNSPECIFIED = 0; - // Indicates the "TRAFFIC_UNAWARE" routing mode was used to compute the + // 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 + // Indicates the `TRAFFIC_AWARE` routing mode was used to compute the // response. FALLBACK_TRAFFIC_AWARE = 2; } diff --git a/google/maps/routes/v1/polyline.proto b/google/maps/routes/v1/polyline.proto index 287216ddc..bb2f8abfb 100644 --- a/google/maps/routes/v1/polyline.proto +++ b/google/maps/routes/v1/polyline.proto @@ -18,7 +18,6 @@ package google.maps.routes.v1; import "google/protobuf/struct.proto"; -option cc_enable_arenas = true; option csharp_namespace = "Google.Maps.Routes.V1"; option go_package = "cloud.google.com/go/maps/routes/apiv1/routespb;routespb"; option java_multiple_files = true; @@ -32,11 +31,11 @@ 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) + // 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) + // format](https://tools.ietf.org/html/rfc7946#section-3.1.4). google.protobuf.Struct geo_json_linestring = 2; } } @@ -68,6 +67,6 @@ enum PolylineEncoding { ENCODED_POLYLINE = 1; // Specifies a polyline using the [GeoJSON LineString - // format](https://tools.ietf.org/html/rfc7946#section-3.1.4) + // format](https://tools.ietf.org/html/rfc7946#section-3.1.4). GEO_JSON_LINESTRING = 2; } diff --git a/google/maps/routes/v1/route.proto b/google/maps/routes/v1/route.proto index 86dcdc44d..d1c7841a7 100644 --- a/google/maps/routes/v1/route.proto +++ b/google/maps/routes/v1/route.proto @@ -16,13 +16,13 @@ syntax = "proto3"; package google.maps.routes.v1; +import "google/api/field_behavior.proto"; import "google/geo/type/viewport.proto"; import "google/maps/routes/v1/polyline.proto"; import "google/maps/routes/v1/waypoint.proto"; import "google/protobuf/duration.proto"; import "google/type/money.proto"; -option cc_enable_arenas = true; option csharp_namespace = "Google.Maps.Routes.V1"; option go_package = "cloud.google.com/go/maps/routes/apiv1/routespb;routespb"; option java_multiple_files = true; @@ -57,8 +57,8 @@ message Route { // conditions into consideration. google.protobuf.Duration static_duration = 4; - // The overall route polyline. This polyline will be the combined polyline of - // all `legs`. + // The overall route polyline. This polyline is the combined polyline of all + // `legs`. Polyline polyline = 5; // A description of the route. @@ -73,8 +73,8 @@ 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. + // 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 @@ -94,7 +94,7 @@ 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, + // 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; @@ -111,24 +111,26 @@ message RouteTravelAdvisory { // speed_reading_intervals: [A,C), [C,D), [D,G). repeated SpeedReadingInterval speed_reading_intervals = 3; + // Deprecated: This field will stop being populated soon. // 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; + CustomLayerInfo custom_layer_info = 4 [deprecated = true]; } // 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. + // 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 intervals cover the entire polyline of the `RouteLeg` without overlap. // The start point of a specified interval is the same as the end point of the // preceding interval. // @@ -138,24 +140,16 @@ message RouteLegTravelAdvisory { // speed_reading_intervals: [A,C), [C,D), [D,G). repeated SpeedReadingInterval speed_reading_intervals = 2; + // Deprecated: This field will stop being populated soon. // 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; + CustomLayerInfo custom_layer_info = 3 [deprecated = true]; } // 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). + // NOTE: This field is not currently populated. repeated SpeedReadingInterval speed_reading_intervals = 1; } @@ -217,12 +211,11 @@ message RouteLeg { // Encapsulates toll information on a `Route` or on a `RouteLeg`. message TollInfo { - // The monetary amount of tolls for the corresponding Route or RouteLeg. + // 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. + // to be charged by the toll stations. Typically this list contains 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; } @@ -256,16 +249,92 @@ message RouteLegStep { } message NavigationInstruction { - // Encapsulates the navigation instructions for the current step (e.g., turn - // left, merge, straight, etc.). This field determines which icon to display. + // Encapsulates the navigation instructions for the current step (for example, + // turn left, merge, or straight). This field determines which icon to + // display. Maneuver maneuver = 1; // Instructions for navigating this step. string instructions = 2; } +// 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. + // In JSON, when the index is 0, the field appears to be unpopulated. + int32 start_polyline_point_index = 1; + + // The ending index of this interval in the polyline. + // In JSON, when the index is 0, the field appears to be unpopulated. + int32 end_polyline_point_index = 2; + + // Traffic speed in this interval. + Speed speed = 3; +} + +// Deprecated: This field will stop being populated soon. +// Encapsulates statistics about the time spent and distance travelled in a +// custom area. +message CustomLayerInfo { + option deprecated = true; + + // 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; + + // Total unique distance traveled across all activated areas in the provided + // dataset (in meters). For example, if a route travels through the + // intersection of area A and area B, the distance in the intersection region + // is only added once to the `total_distance_in_areas_meters`. + float total_distance_in_areas_meters = 2; + + // Total time spent across all activated areas in the provided dataset. + // For example, if a route travels through the intersection of area A and + // area B, the time spent in the intersection region is only added once to the + // `total_duration_in_areas`. + google.protobuf.Duration total_duration_in_areas = 3; +} + // A set of values that specify the navigation action to take for the current -// step (e.g., turn left, merge, straight, etc.). +// step (for example, turn left, merge, or straight). enum Maneuver { // Not used. MANEUVER_UNSPECIFIED = 0; @@ -323,64 +392,10 @@ enum Maneuver { // Turn right at the roundabout. ROUNDABOUT_RIGHT = 18; -} - -// 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. - // In JSON, when the index is 0, the field appears to be unpopulated. - int32 start_polyline_point_index = 1; - - // The ending index of this interval in the polyline. - // In JSON, when the index is 0, the field appears to be unpopulated. - int32 end_polyline_point_index = 2; - - // 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; + // Initial maneuver. + DEPART = 19; - // 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; + // Used to indicate a street name change. + NAME_CHANGE = 20; } diff --git a/google/maps/routes/v1/route_matrix_element.proto b/google/maps/routes/v1/route_matrix_element.proto index 5622d1295..c9792c67a 100644 --- a/google/maps/routes/v1/route_matrix_element.proto +++ b/google/maps/routes/v1/route_matrix_element.proto @@ -21,7 +21,6 @@ import "google/maps/routes/v1/route.proto"; import "google/protobuf/duration.proto"; import "google/rpc/status.proto"; -option cc_enable_arenas = true; option csharp_namespace = "Google.Maps.Routes.V1"; option go_package = "cloud.google.com/go/maps/routes/apiv1/routespb;routespb"; option java_multiple_files = true; diff --git a/google/maps/routes/v1/route_service.proto b/google/maps/routes/v1/route_service.proto index ffc37c67f..8e9fd2d32 100644 --- a/google/maps/routes/v1/route_service.proto +++ b/google/maps/routes/v1/route_service.proto @@ -25,7 +25,6 @@ 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"; -option cc_enable_arenas = true; option csharp_namespace = "Google.Maps.Routes.V1"; option go_package = "cloud.google.com/go/maps/routes/apiv1/routespb;routespb"; option java_multiple_files = true; @@ -37,7 +36,8 @@ option php_namespace = "Google\\Maps\\Routes\\V1"; // The Routes Preferred API. service RoutesPreferred { option (google.api.default_host) = "routespreferred.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/maps-platform.routespreferred"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/maps-platform.routespreferred"; // Returns the primary route along with optional alternate routes, given a set // of terminal and intermediate waypoints. @@ -116,7 +116,8 @@ service RoutesPreferred { // 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) { + rpc ComputeRouteMatrix(ComputeRouteMatrixRequest) + returns (stream RouteMatrixElement) { option (google.api.http) = { post: "/v1:computeRouteMatrix" body: "*" @@ -157,7 +158,8 @@ service RoutesPreferred { // 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 ComputeCustomRoutes(ComputeCustomRoutesRequest) returns (ComputeCustomRoutesResponse) { + rpc ComputeCustomRoutes(ComputeCustomRoutesRequest) + returns (ComputeCustomRoutesResponse) { option (google.api.http) = { post: "/v1:computeCustomRoutes" body: "*" diff --git a/google/maps/routes/v1/toll_passes.proto b/google/maps/routes/v1/toll_passes.proto index 1fb092690..6c81cdba4 100644 --- a/google/maps/routes/v1/toll_passes.proto +++ b/google/maps/routes/v1/toll_passes.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.maps.routes.v1; -option cc_enable_arenas = true; option csharp_namespace = "Google.Maps.Routes.V1"; option go_package = "cloud.google.com/go/maps/routes/apiv1/routespb;routespb"; option java_multiple_files = true; @@ -96,13 +95,44 @@ enum TollPass { // India, HP state plate exemption. IN_LOCAL_HP_PLATE_EXEMPT = 79; - // Mexico toll pass. + // Japan + // ETC. Electronic wireless system to collect tolls. + // https://www.go-etc.jp/ + JP_ETC = 98; + + // Japan + // ETC2.0. New version of ETC with further discount and bidirectional + // communication between devices on vehicles and antennas on the road. + // https://www.go-etc.jp/etc2/index.html + JP_ETC2 = 99; + + // Mexico + // 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; + + // Mexico + // 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; @@ -193,11 +223,18 @@ enum TollPass { // MI, USA. US_MI_AMBASSADOR_BRIDGE_PREMIER_COMMUTER_CARD = 36; + // MI, USA. + US_MI_BCPASS = 94; + // MI, USA. US_MI_GROSSE_ILE_TOLL_BRIDGE_PASS_TAG = 37; // MI, USA. - US_MI_IQ_PROX_CARD = 38; + // Deprecated as this pass type no longer exists. + US_MI_IQ_PROX_CARD = 38 [deprecated = true]; + + // MI, USA. + US_MI_IQ_TAG = 95; // MI, USA. US_MI_MACKINAC_BRIDGE_MAC_PASS = 39; @@ -244,6 +281,9 @@ enum TollPass { // SC, USA. US_SC_PALPASS = 47; + // TX, USA. + US_TX_AVI_TAG = 97; + // TX, USA. US_TX_BANCPASS = 48; @@ -265,6 +305,9 @@ enum TollPass { // TX, USA. US_TX_EZTAG = 54; + // TX, USA. + US_TX_FUEGO_TAG = 96; + // TX, USA. US_TX_LAREDO_TRADE_TAG = 55; @@ -298,6 +341,9 @@ enum TollPass { // WV, USA. US_WV_MEMORIAL_BRIDGE_TICKETS = 63; + // WV, USA + US_WV_MOV_PASS = 100; + // WV, USA. US_WV_NEWELL_TOLL_BRIDGE_TICKET = 64; } diff --git a/google/maps/routes/v1/vehicle_emission_type.proto b/google/maps/routes/v1/vehicle_emission_type.proto index a31fa17c8..5203b5e2d 100644 --- a/google/maps/routes/v1/vehicle_emission_type.proto +++ b/google/maps/routes/v1/vehicle_emission_type.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.maps.routes.v1; -option cc_enable_arenas = true; option csharp_namespace = "Google.Maps.Routes.V1"; option go_package = "cloud.google.com/go/maps/routes/apiv1/routespb;routespb"; option java_multiple_files = true; diff --git a/google/maps/routes/v1/waypoint.proto b/google/maps/routes/v1/waypoint.proto index cfad50bb1..02abfb5fd 100644 --- a/google/maps/routes/v1/waypoint.proto +++ b/google/maps/routes/v1/waypoint.proto @@ -19,7 +19,6 @@ package google.maps.routes.v1; import "google/protobuf/wrappers.proto"; import "google/type/latlng.proto"; -option cc_enable_arenas = true; option csharp_namespace = "Google.Maps.Routes.V1"; option go_package = "cloud.google.com/go/maps/routes/apiv1/routespb;routespb"; option java_multiple_files = true; @@ -49,7 +48,7 @@ message Waypoint { // 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 + // If `ComputeRoutesRequest.optimize_waypoint_order` is set to true then // this field cannot be set to true; otherwise, the request fails. bool via = 3; @@ -65,7 +64,7 @@ message Waypoint { // 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, and when the 'location_type' is set to 'location'. + // travel modes. bool side_of_road = 5; } @@ -75,9 +74,9 @@ message Location { 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 + // This value specifies 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. + // of due North, 90 specifies a heading of due East, and so on. You can use + // this field only for `DRIVE` and `TWO_WHEELER` travel modes. google.protobuf.Int32Value heading = 2; } diff --git a/google/maps/routes/v1alpha/route_service.proto b/google/maps/routes/v1alpha/route_service.proto index c6d9ddad2..b65052346 100644 --- a/google/maps/routes/v1alpha/route_service.proto +++ b/google/maps/routes/v1alpha/route_service.proto @@ -25,7 +25,6 @@ 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"; -option cc_enable_arenas = true; option csharp_namespace = "Google.Maps.Routes.V1Alpha"; option go_package = "cloud.google.com/go/maps/routes/apiv1alpha/routespb;routespb"; option java_multiple_files = true; @@ -37,7 +36,8 @@ option php_namespace = "Google\\Maps\\Routes\\V1alpha"; // The Routes Preferred API. service RoutesAlpha { option (google.api.default_host) = "routespreferred.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/maps-platform.routespreferred"; + option (google.api.oauth_scopes) = + "https://www.googleapis.com/auth/maps-platform.routespreferred"; // Returns the primary route along with optional alternate routes, given a set // of terminal and intermediate waypoints. @@ -73,7 +73,8 @@ service RoutesAlpha { // 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(google.maps.routes.v1.ComputeRoutesRequest) returns (google.maps.routes.v1.ComputeRoutesResponse) { + rpc ComputeRoutes(google.maps.routes.v1.ComputeRoutesRequest) + returns (google.maps.routes.v1.ComputeRoutesResponse) { option (google.api.http) = { post: "/v1alpha:computeRoutes" body: "*" @@ -115,7 +116,8 @@ service RoutesAlpha { // 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(google.maps.routes.v1.ComputeRouteMatrixRequest) returns (stream google.maps.routes.v1.RouteMatrixElement) { + rpc ComputeRouteMatrix(google.maps.routes.v1.ComputeRouteMatrixRequest) + returns (stream google.maps.routes.v1.RouteMatrixElement) { option (google.api.http) = { post: "/v1alpha:computeRouteMatrix" body: "*" @@ -156,7 +158,8 @@ service RoutesAlpha { // 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 ComputeCustomRoutes(google.maps.routes.v1.ComputeCustomRoutesRequest) returns (google.maps.routes.v1.ComputeCustomRoutesResponse) { + rpc ComputeCustomRoutes(google.maps.routes.v1.ComputeCustomRoutesRequest) + returns (google.maps.routes.v1.ComputeCustomRoutesResponse) { option (google.api.http) = { post: "/v1alpha:computeCustomRoutes" body: "*" diff --git a/google/marketingplatform/admin/v1alpha/BUILD.bazel b/google/marketingplatform/admin/v1alpha/BUILD.bazel index e25c13261..f1826eca2 100644 --- a/google/marketingplatform/admin/v1alpha/BUILD.bazel +++ b/google/marketingplatform/admin/v1alpha/BUILD.bazel @@ -40,7 +40,6 @@ proto_library_with_info( name = "admin_proto_with_info", deps = [ ":admin_proto", - "//google/cloud:common_resources_proto", ], ) @@ -88,8 +87,8 @@ java_gapic_library( java_gapic_test( name = "admin_java_gapic_test_suite", test_classes = [ - "com.google.marketingplatform.admin.v1alpha.MarketingplatformAdminServiceClientHttpJsonTest", - "com.google.marketingplatform.admin.v1alpha.MarketingplatformAdminServiceClientTest", + "com.google.ads.marketingplatform.admin.v1alpha.MarketingplatformAdminServiceClientHttpJsonTest", + "com.google.ads.marketingplatform.admin.v1alpha.MarketingplatformAdminServiceClientTest", ], runtime_deps = [":admin_java_gapic_test"], ) @@ -170,6 +169,11 @@ py_gapic_library( name = "admin_py_gapic", srcs = [":admin_proto"], grpc_service_config = "marketingplatform_admin_v1alpha_grpc_service_config.json", + opt_args = [ + "python-gapic-namespace=google.ads", + "python-gapic-name=marketingplatform_admin", + "warehouse-package-name=google-ads-marketingplatform-admin", + ], rest_numeric_enums = True, service_yaml = "marketingplatformadmin_v1alpha.yaml", transport = "grpc+rest", @@ -245,7 +249,7 @@ load( nodejs_gapic_library( name = "admin_nodejs_gapic", - package_name = "@google-cloud/admin", + package_name = "@google-ads/marketing-platform-admin", src = ":admin_proto_with_info", extra_protoc_parameters = ["metadata"], grpc_service_config = "marketingplatform_admin_v1alpha_grpc_service_config.json", @@ -325,6 +329,7 @@ load( csharp_proto_library( name = "admin_csharp_proto", + extra_opts = [], deps = [":admin_proto"], ) @@ -337,7 +342,6 @@ csharp_grpc_library( csharp_gapic_library( name = "admin_csharp_gapic", srcs = [":admin_proto_with_info"], - common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", grpc_service_config = "marketingplatform_admin_v1alpha_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "marketingplatformadmin_v1alpha.yaml", diff --git a/google/marketingplatform/admin/v1alpha/marketingplatform_admin.proto b/google/marketingplatform/admin/v1alpha/marketingplatform_admin.proto index f501b2b5f..11c5497a5 100644 --- a/google/marketingplatform/admin/v1alpha/marketingplatform_admin.proto +++ b/google/marketingplatform/admin/v1alpha/marketingplatform_admin.proto @@ -23,13 +23,13 @@ import "google/api/resource.proto"; import "google/marketingplatform/admin/v1alpha/resources.proto"; import "google/protobuf/empty.proto"; -option csharp_namespace = "Google.Marketingplatform.Admin.V1Alpha"; +option csharp_namespace = "Google.Ads.MarketingPlatform.Admin.V1Alpha"; option go_package = "google.golang.org/genproto/googleapis/marketingplatform/admin/v1alpha;admin"; option java_multiple_files = true; option java_outer_classname = "MarketingplatformAdminProto"; -option java_package = "com.google.marketingplatform.admin.v1alpha"; -option php_namespace = "Google\\Marketingplatform\\Admin\\V1alpha"; -option ruby_package = "Google::Marketingplatform::AdminService::V1alpha"; +option java_package = "com.google.ads.marketingplatform.admin.v1alpha"; +option php_namespace = "Google\\Ads\\MarketingPlatform\\Admin\\V1alpha"; +option ruby_package = "Google::Ads::MarketingPlatform::Admin::V1alpha"; option (google.api.resource_definition) = { type: "analyticsadmin.googleapis.com/Property" pattern: "properties/{property}" diff --git a/google/marketingplatform/admin/v1alpha/resources.proto b/google/marketingplatform/admin/v1alpha/resources.proto index 27c82dac4..78b24833d 100644 --- a/google/marketingplatform/admin/v1alpha/resources.proto +++ b/google/marketingplatform/admin/v1alpha/resources.proto @@ -19,13 +19,13 @@ package google.marketingplatform.admin.v1alpha; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Marketingplatform.Admin.V1Alpha"; +option csharp_namespace = "Google.Ads.MarketingPlatform.Admin.V1Alpha"; option go_package = "google.golang.org/genproto/googleapis/marketingplatform/admin/v1alpha;admin"; option java_multiple_files = true; option java_outer_classname = "ResourcesProto"; -option java_package = "com.google.marketingplatform.admin.v1alpha"; -option php_namespace = "Google\\Marketingplatform\\Admin\\V1alpha"; -option ruby_package = "Google::Marketingplatform::AdminService::V1alpha"; +option java_package = "com.google.ads.marketingplatform.admin.v1alpha"; +option php_namespace = "Google\\Ads\\MarketingPlatform\\Admin\\V1alpha"; +option ruby_package = "Google::Ads::MarketingPlatform::Admin::V1alpha"; option (google.api.resource_definition) = { type: "analyticsadmin.googleapis.com/Account" pattern: "accounts/{account}" diff --git a/google/privacy/dlp/v2/BUILD.bazel b/google/privacy/dlp/v2/BUILD.bazel index 9be30db8b..766a6fe3a 100644 --- a/google/privacy/dlp/v2/BUILD.bazel +++ b/google/privacy/dlp/v2/BUILD.bazel @@ -193,7 +193,7 @@ php_gapic_library( name = "dlp_php_gapic", srcs = [":dlp_proto_with_info"], grpc_service_config = "dlp_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "dlp_v2.yaml", transport = "grpc+rest", diff --git a/google/privacy/dlp/v2/dlp.proto b/google/privacy/dlp/v2/dlp.proto index b8710b11c..a6e7acf3c 100644 --- a/google/privacy/dlp/v2/dlp.proto +++ b/google/privacy/dlp/v2/dlp.proto @@ -47,13 +47,9 @@ option (google.api.resource_definition) = { pattern: "organizations/{organization}/locations/{location}" }; -// The Cloud Data Loss Prevention (DLP) API is a service that allows clients -// to detect the presence of Personally Identifiable Information (PII) and other -// privacy-sensitive data in user-supplied, unstructured data streams, like text -// blocks or images. -// The service also includes methods for sensitive data redaction and -// scheduling of data scans on Google Cloud Platform based data sets. -// +// Sensitive Data Protection provides access to a powerful sensitive data +// inspection, classification, and de-identification platform that works +// on text, images, and Google Cloud storage repositories. // To learn more about concepts and find how-to guides see // https://cloud.google.com/sensitive-data-protection/docs/. service DlpService { @@ -160,7 +156,7 @@ service DlpService { rpc CreateInspectTemplate(CreateInspectTemplateRequest) returns (InspectTemplate) { option (google.api.http) = { - post: "/v2/{parent=organizations/*}/inspectTemplates" + post: "/v2/{parent=projects/*/locations/*}/inspectTemplates" body: "*" additional_bindings { post: "/v2/{parent=organizations/*/locations/*}/inspectTemplates" @@ -171,7 +167,7 @@ service DlpService { body: "*" } additional_bindings { - post: "/v2/{parent=projects/*/locations/*}/inspectTemplates" + post: "/v2/{parent=organizations/*}/inspectTemplates" body: "*" } }; @@ -185,7 +181,7 @@ service DlpService { rpc UpdateInspectTemplate(UpdateInspectTemplateRequest) returns (InspectTemplate) { option (google.api.http) = { - patch: "/v2/{name=organizations/*/inspectTemplates/*}" + patch: "/v2/{name=projects/*/locations/*/inspectTemplates/*}" body: "*" additional_bindings { patch: "/v2/{name=organizations/*/locations/*/inspectTemplates/*}" @@ -196,7 +192,7 @@ service DlpService { body: "*" } additional_bindings { - patch: "/v2/{name=projects/*/locations/*/inspectTemplates/*}" + patch: "/v2/{name=organizations/*/inspectTemplates/*}" body: "*" } }; @@ -209,13 +205,13 @@ service DlpService { // to learn more. rpc GetInspectTemplate(GetInspectTemplateRequest) returns (InspectTemplate) { option (google.api.http) = { - get: "/v2/{name=organizations/*/inspectTemplates/*}" + get: "/v2/{name=projects/*/locations/*/inspectTemplates/*}" additional_bindings { get: "/v2/{name=organizations/*/locations/*/inspectTemplates/*}" } additional_bindings { get: "/v2/{name=projects/*/inspectTemplates/*}" } additional_bindings { - get: "/v2/{name=projects/*/locations/*/inspectTemplates/*}" + get: "/v2/{name=organizations/*/inspectTemplates/*}" } }; option (google.api.method_signature) = "name"; @@ -228,13 +224,13 @@ service DlpService { rpc ListInspectTemplates(ListInspectTemplatesRequest) returns (ListInspectTemplatesResponse) { option (google.api.http) = { - get: "/v2/{parent=organizations/*}/inspectTemplates" + get: "/v2/{parent=projects/*/locations/*}/inspectTemplates" additional_bindings { get: "/v2/{parent=organizations/*/locations/*}/inspectTemplates" } additional_bindings { get: "/v2/{parent=projects/*}/inspectTemplates" } additional_bindings { - get: "/v2/{parent=projects/*/locations/*}/inspectTemplates" + get: "/v2/{parent=organizations/*}/inspectTemplates" } }; option (google.api.method_signature) = "parent"; @@ -247,13 +243,13 @@ service DlpService { rpc DeleteInspectTemplate(DeleteInspectTemplateRequest) returns (google.protobuf.Empty) { option (google.api.http) = { - delete: "/v2/{name=organizations/*/inspectTemplates/*}" + delete: "/v2/{name=projects/*/locations/*/inspectTemplates/*}" additional_bindings { delete: "/v2/{name=organizations/*/locations/*/inspectTemplates/*}" } additional_bindings { delete: "/v2/{name=projects/*/inspectTemplates/*}" } additional_bindings { - delete: "/v2/{name=projects/*/locations/*/inspectTemplates/*}" + delete: "/v2/{name=organizations/*/inspectTemplates/*}" } }; option (google.api.method_signature) = "name"; @@ -898,6 +894,10 @@ service DlpService { option (google.api.http) = { post: "/v2/{parent=projects/*/locations/*}/connections" body: "*" + additional_bindings { + post: "/v2/{parent=organizations/*/locations/*}/connections" + body: "*" + } }; option (google.api.method_signature) = "parent, connection"; } @@ -906,15 +906,22 @@ service DlpService { rpc GetConnection(GetConnectionRequest) returns (Connection) { option (google.api.http) = { get: "/v2/{name=projects/*/locations/*/connections/*}" + additional_bindings { + get: "/v2/{name=organizations/*/locations/*/connections/*}" + } }; option (google.api.method_signature) = "name"; } - // Lists Connections in a parent. + // Lists Connections in a parent. Use SearchConnections to see all connections + // within an organization. rpc ListConnections(ListConnectionsRequest) returns (ListConnectionsResponse) { option (google.api.http) = { get: "/v2/{parent=projects/*/locations/*}/connections" + additional_bindings { + get: "/v2/{parent=organizations/*/locations/*}/connections" + } }; option (google.api.method_signature) = "parent"; } @@ -936,6 +943,9 @@ service DlpService { returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v2/{name=projects/*/locations/*/connections/*}" + additional_bindings { + delete: "/v2/{name=organizations/*/locations/*/connections/*}" + } }; option (google.api.method_signature) = "name"; } @@ -945,6 +955,10 @@ service DlpService { option (google.api.http) = { patch: "/v2/{name=projects/*/locations/*/connections/*}" body: "*" + additional_bindings { + patch: "/v2/{name=organizations/*/locations/*/connections/*}" + body: "*" + } }; option (google.api.method_signature) = "name"; } @@ -1567,9 +1581,9 @@ message RedactImageRequest { // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // // + Projects scope, location specified: - // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> + // `projects/{project_id}/locations/{location_id}` // + Projects scope, no location specified (defaults to global): - // `projects/`<var>PROJECT_ID</var> + // `projects/{project_id}` // // The following example `parent` string specifies a parent project with the // identifier `example-project`, and specifies the `europe-west3` location @@ -1632,9 +1646,9 @@ message DeidentifyContentRequest { // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // // + Projects scope, location specified: - // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> + // `projects/{project_id}/locations/{location_id}` // + Projects scope, no location specified (defaults to global): - // `projects/`<var>PROJECT_ID</var> + // `projects/{project_id}` // // The following example `parent` string specifies a parent project with the // identifier `example-project`, and specifies the `europe-west3` location @@ -1701,9 +1715,9 @@ message ReidentifyContentRequest { // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // // + Projects scope, location specified: - // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> + // `projects/{project_id}/locations/{location_id}` // + Projects scope, no location specified (defaults to global): - // `projects/`<var>PROJECT_ID</var> + // `projects/{project_id}` // // The following example `parent` string specifies a parent project with the // identifier `example-project`, and specifies the `europe-west3` location @@ -1773,9 +1787,9 @@ message InspectContentRequest { // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // // + Projects scope, location specified: - // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> + // `projects/{project_id}/locations/{location_id}` // + Projects scope, no location specified (defaults to global): - // `projects/`<var>PROJECT_ID</var> + // `projects/{project_id}` // // The following example `parent` string specifies a parent project with the // identifier `example-project`, and specifies the `europe-west3` location @@ -2258,7 +2272,7 @@ message ListInfoTypesRequest { // // The format of this value is as follows: // - // locations/<var>LOCATION_ID</var> + // `locations/{location_id}` string parent = 4; // BCP-47 language code for localized infoType friendly @@ -3357,8 +3371,7 @@ message CryptoReplaceFfxFpeConfig { // This must be encoded as ASCII. // The order of characters does not matter. // The full list of allowed characters is: - // <code>0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz - // ~`!@#$%^&*()_-+={[}]|\:;"'<,>.?/</code> + // ``0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz~`!@#$%^&*()_-+={[}]|\:;"'<,>.?/`` string custom_alphabet = 5; // The native way to select the alphabet. Must be in the range [2, 95]. @@ -4281,13 +4294,13 @@ message CreateInspectTemplateRequest { // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // // + Projects scope, location specified: - // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> + // `projects/{project_id}/locations/{location_id}` // + Projects scope, no location specified (defaults to global): - // `projects/`<var>PROJECT_ID</var> + // `projects/{project_id}` // + Organizations scope, location specified: - // `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var> + // `organizations/{org_id}/locations/{location_id}` // + Organizations scope, no location specified (defaults to global): - // `organizations/`<var>ORG_ID</var> + // `organizations/{org_id}` // // The following example `parent` string specifies a parent project with the // identifier `example-project`, and specifies the `europe-west3` location @@ -4355,13 +4368,13 @@ message ListInspectTemplatesRequest { // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // // + Projects scope, location specified: - // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> + // `projects/{project_id}/locations/{location_id}` // + Projects scope, no location specified (defaults to global): - // `projects/`<var>PROJECT_ID</var> + // `projects/{project_id}` // + Organizations scope, location specified: - // `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var> + // `organizations/{org_id}/locations/{location_id}` // + Organizations scope, no location specified (defaults to global): - // `organizations/`<var>ORG_ID</var> + // `organizations/{org_id}` // // The following example `parent` string specifies a parent project with the // identifier `example-project`, and specifies the `europe-west3` location @@ -4434,9 +4447,9 @@ message CreateJobTriggerRequest { // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // // + Projects scope, location specified: - // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> + // `projects/{project_id}/locations/{location_id}` // + Projects scope, no location specified (defaults to global): - // `projects/`<var>PROJECT_ID</var> + // `projects/{project_id}` // // The following example `parent` string specifies a parent project with the // identifier `example-project`, and specifies the `europe-west3` location @@ -4507,9 +4520,9 @@ message CreateDiscoveryConfigRequest { // (project or organization): // // + Projects scope: - // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> + // `projects/{project_id}/locations/{location_id}` // + Organizations scope: - // `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var> + // `organizations/{org_id}/locations/{location_id}` // // The following example `parent` string specifies a parent project with the // identifier `example-project`, and specifies the `europe-west3` location @@ -4568,7 +4581,7 @@ message ListDiscoveryConfigsRequest { // Required. Parent resource name. // // The format of this value is as follows: - // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> + // `projects/{project_id}/locations/{location_id}` // // The following example `parent` string specifies a parent project with the // identifier `example-project`, and specifies the `europe-west3` location @@ -4638,9 +4651,9 @@ message CreateDlpJobRequest { // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // // + Projects scope, location specified: - // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> + // `projects/{project_id}/locations/{location_id}` // + Projects scope, no location specified (defaults to global): - // `projects/`<var>PROJECT_ID</var> + // `projects/{project_id}` // // The following example `parent` string specifies a parent project with the // identifier `example-project`, and specifies the `europe-west3` location @@ -4683,9 +4696,9 @@ message ListJobTriggersRequest { // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // // + Projects scope, location specified: - // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> + // `projects/{project_id}/locations/{location_id}` // + Projects scope, no location specified (defaults to global): - // `projects/`<var>PROJECT_ID</var> + // `projects/{project_id}` // // The following example `parent` string specifies a parent project with the // identifier `example-project`, and specifies the `europe-west3` location @@ -4794,6 +4807,18 @@ message InspectJobConfig { repeated Action actions = 4; } +// Whether a profile being created is the first generation or an update. +enum ProfileGeneration { + // Unused. + PROFILE_GENERATION_UNSPECIFIED = 0; + + // The profile is the first profile for the resource. + PROFILE_GENERATION_NEW = 1; + + // The profile is an update to a previous profile. + PROFILE_GENERATION_UPDATE = 2; +} + // 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 @@ -4868,6 +4893,66 @@ message DataProfileAction { ERROR_CHANGED = 4; } + // Message expressing intention to publish to Google Security Operations. + message PublishToChronicle {} + + // If set, a summary finding will be created/updated in SCC for each profile. + message PublishToSecurityCommandCenter {} + + // If set, attaches the [tags] + // (https://cloud.google.com/resource-manager/docs/tags/tags-overview) + // provided to profiled resources. Tags support [access + // control](https://cloud.google.com/iam/docs/tags-access-control). You can + // conditionally grant or deny access to a resource based on whether the + // resource has a specific tag. + message TagResources { + // The tag to attach to profiles matching the condition. At most one + // `TagCondition` can be specified per sensitivity level. + message TagCondition { + // The tag value to attach to resources. + TagValue tag = 1; + + // The type of condition on which attaching the tag will be predicated. + oneof type { + // Conditions attaching the tag to a resource on its profile having this + // sensitivity score. + SensitivityScore sensitivity_score = 2; + } + } + + // A value of a tag. + message TagValue { + // The format of the tag value. + oneof format { + // The namespaced name for the tag value to attach to resources. Must be + // in the format `{parent_id}/{tag_key_short_name}/{short_name}`, for + // example, "123456/environment/prod". + string namespaced_value = 1; + } + } + + // The tags to associate with different conditions. + repeated TagCondition tag_conditions = 1; + + // The profile generations for which the tag should be attached to + // resources. If you attach a tag to only new profiles, then if the + // sensitivity score of a profile subsequently changes, its tag doesn't + // change. By default, this field includes only new profiles. To include + // both new and updated profiles for tagging, this field should explicitly + // include both `PROFILE_GENERATION_NEW` and `PROFILE_GENERATION_UPDATE`. + repeated ProfileGeneration profile_generations_to_tag = 2; + + // Whether applying a tag to a resource should lower the risk of the profile + // for that resource. For example, in conjunction with an [IAM deny + // policy](https://cloud.google.com/iam/docs/deny-overview), you can deny + // all principals a permission if a tag value is present, mitigating the + // risk of the resource. This also lowers the data risk of resources at the + // lower levels of the resource hierarchy. For example, reducing the data + // risk of a table data profile also reduces the data risk of the + // constituent column data profiles. + bool lower_data_risk_to_low = 3; + } + // Type of action to execute when a profile is generated. oneof action { // Export data profiles into a provided location. @@ -4875,6 +4960,18 @@ message DataProfileAction { // Publish a message into the Pub/Sub topic. PubSubNotification pub_sub_notification = 2; + + // Publishes generated data profiles to Google Security Operations. + // For more information, see [Use Sensitive Data Protection data in + // context-aware + // analytics](https://cloud.google.com/chronicle/docs/detection/usecase-dlp-high-risk-user-download). + PublishToChronicle publish_to_chronicle = 3; + + // Publishes findings to SCC for each data profile. + PublishToSecurityCommandCenter publish_to_scc = 4; + + // Tags the profiled resources with the specified tag values. + TagResources tag_resources = 8; } } @@ -4894,6 +4991,9 @@ message DataProfileJobConfig { // that are profiled, and the Cloud DLP API must be enabled. string project_id = 5; + // Must be set only when scanning other clouds. + OtherCloudDiscoveryStartingLocation other_cloud_starting_location = 8; + // Detection logic for profile generation. // // Not all template features are used by profiles. FindingLimits, @@ -4947,8 +5047,8 @@ message BigQueryTableTypes { repeated BigQueryTableType types = 1; } -// Over time new types may be added. Currently VIEW, MATERIALIZED_VIEW, -// and SNAPSHOT are not supported. +// Over time new types may be added. Currently VIEW, MATERIALIZED_VIEW, and +// non-BigLake external tables are not supported. enum BigQueryTableTypeCollection { // Unused. BIG_QUERY_COLLECTION_UNSPECIFIED = 0; @@ -4966,8 +5066,8 @@ enum BigQueryTableTypeCollection { BIG_QUERY_COLLECTION_ONLY_SUPPORTED_TYPES = 2; } -// Over time new types may be added. Currently VIEW, MATERIALIZED_VIEW, -// SNAPSHOT, and non-BigLake external tables are not supported. +// Over time new types may be added. Currently VIEW, MATERIALIZED_VIEW, and +// non-BigLake external tables are not supported. enum BigQueryTableType { // Unused. BIG_QUERY_TABLE_TYPE_UNSPECIFIED = 0; @@ -4977,6 +5077,9 @@ enum BigQueryTableType { // A table that references data stored in Cloud Storage. BIG_QUERY_TABLE_TYPE_EXTERNAL_BIG_LAKE = 2; + + // A snapshot of a BigQuery table. + BIG_QUERY_TABLE_TYPE_SNAPSHOT = 3; } // How frequently data profiles can be updated. New options can be added at a @@ -5058,6 +5161,9 @@ message DiscoveryConfig { // Only set when the parent is an org. OrgConfig org_config = 2; + // Must be set only when scanning other clouds. + OtherCloudDiscoveryStartingLocation other_cloud_starting_location = 12; + // Detection logic for profile generation. // // Not all template features are used by Discovery. FindingLimits, @@ -5124,6 +5230,10 @@ message DiscoveryTarget { // Cloud Storage target for Discovery. The first target to match a table // will be the one applied. CloudStorageDiscoveryTarget cloud_storage_target = 4; + + // Other clouds target for discovery. The first target to match a resource + // will be the one applied. + OtherCloudDiscoveryTarget other_cloud_target = 5; } } @@ -5246,6 +5356,10 @@ message DiscoveryGenerationCadence { // defined by the `InspectTemplate` change. // If not set, changing the template will not cause a data profile to update. DiscoveryInspectTemplateModifiedCadence inspect_template_modified_cadence = 3; + + // Frequency at which profiles should be updated, regardless of whether the + // underlying resource has changed. Defaults to never. + DataProfileUpdateFrequency refresh_frequency = 4; } // The cadence at which to update data profiles when a table is modified. @@ -5491,6 +5605,11 @@ message DiscoveryCloudSqlGenerationCadence { // frequency regardless of whether the underlying tables have changed. // Defaults to never. DataProfileUpdateFrequency refresh_frequency = 2; + + // Governs when to update data profiles when the inspection rules + // defined by the `InspectTemplate` change. + // If not set, changing the template will not cause a data profile to update. + DiscoveryInspectTemplateModifiedCadence inspect_template_modified_cadence = 3; } // Discovery target for credentials and secrets in cloud resource metadata. @@ -5726,6 +5845,208 @@ message DiscoveryFileStoreConditions { } } +// Target used to match against for discovery of resources from other clouds. +// An [AWS connector in Security Command Center +// (Enterprise](https://cloud.google.com/security-command-center/docs/connect-scc-to-aws) +// is required to use this feature. +message OtherCloudDiscoveryTarget { + // Required. The type of data profiles generated by this discovery target. + // Supported values are: + // * aws/s3/bucket + DataSourceType data_source_type = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The resources that the discovery cadence applies to. The + // first target with a matching filter will be the one to apply to a resource. + DiscoveryOtherCloudFilter filter = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. In addition to matching the filter, these conditions must be true + // before a profile is generated. + DiscoveryOtherCloudConditions conditions = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Type of cadence. + oneof cadence { + // How often and when to update data profiles. New resources that match both + // the filter and conditions are scanned as quickly as possible depending on + // system capacity. + DiscoveryOtherCloudGenerationCadence generation_cadence = 4; + + // Disable profiling for resources that match this filter. + Disabled disabled = 5; + } +} + +// Determines which resources from the other cloud will have profiles generated. +// Includes the ability to filter by resource names. +message DiscoveryOtherCloudFilter { + // Whether the filter applies to a specific set of resources or all + // other resources. The first filter to match will be applied, regardless of + // the condition. Defaults to `others` if none is set. + oneof filter { + // A collection of resources for this filter to apply to. + OtherCloudResourceCollection collection = 1; + + // The resource to scan. Configs using this filter can only have one target + // (the target with this single resource reference). + OtherCloudSingleResourceReference single_resource = 2; + + // Optional. Catch-all. This should always be the last target in the list + // because anything above it will apply first. Should only appear once in a + // configuration. If none is specified, a default one will be added + // automatically. + AllOtherResources others = 100 [(google.api.field_behavior) = OPTIONAL]; + } +} + +// Match resources using regex filters. +message OtherCloudResourceCollection { + // The first filter containing a pattern that matches a resource will be used. + oneof pattern { + // A collection of regular expressions to match a resource against. + OtherCloudResourceRegexes include_regexes = 1; + } +} + +// A collection of regular expressions to determine what resources to match +// against. +message OtherCloudResourceRegexes { + // A group of regular expression patterns to match against one or more + // resources. + // Maximum of 100 entries. The sum of all regular expression's length can't + // exceed 10 KiB. + repeated OtherCloudResourceRegex patterns = 1; +} + +// A pattern to match against one or more resources. At least one pattern must +// be specified. Regular expressions use RE2 +// [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found +// under the google/re2 repository on GitHub. +message OtherCloudResourceRegex { + // The type of resource regex to use. + oneof resource_regex { + // Regex for Amazon S3 buckets. + AmazonS3BucketRegex amazon_s3_bucket_regex = 1; + } +} + +// AWS account regex. +message AwsAccountRegex { + // Optional. Regex to test the AWS account ID against. + // If empty, all accounts match. + string account_id_regex = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Amazon S3 bucket regex. +message AmazonS3BucketRegex { + // The AWS account regex. + AwsAccountRegex aws_account_regex = 1; + + // Optional. Regex to test the bucket name against. + // If empty, all buckets match. + string bucket_name_regex = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// Identifies a single resource, like a single Amazon S3 bucket. +message OtherCloudSingleResourceReference { + // The resource to scan. + oneof resource { + // Amazon S3 bucket. + AmazonS3Bucket amazon_s3_bucket = 1; + } +} + +// AWS account. +message AwsAccount { + // Required. AWS account ID. + string account_id = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// Amazon S3 bucket. +message AmazonS3Bucket { + // The AWS account. + AwsAccount aws_account = 1; + + // Required. The bucket name. + string bucket_name = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Requirements that must be true before a resource is profiled for the first +// time. +message DiscoveryOtherCloudConditions { + // Minimum age a resource must be before Cloud DLP can profile it. Value must + // be 1 hour or greater. + google.protobuf.Duration min_age = 1; + + // The conditions to apply. + oneof conditions { + // Amazon S3 bucket conditions. + AmazonS3BucketConditions amazon_s3_bucket_conditions = 2; + } +} + +// Amazon S3 bucket conditions. +message AmazonS3BucketConditions { + // Supported Amazon S3 bucket types. + // Defaults to TYPE_ALL_SUPPORTED. + enum BucketType { + // Unused. + TYPE_UNSPECIFIED = 0; + + // All supported classes. + TYPE_ALL_SUPPORTED = 1; + + // A general purpose Amazon S3 bucket. + TYPE_GENERAL_PURPOSE = 2; + } + + // Supported Amazon S3 object storage classes. + // Defaults to ALL_SUPPORTED_CLASSES. + enum ObjectStorageClass { + // Unused. + UNSPECIFIED = 0; + + // All supported classes. + ALL_SUPPORTED_CLASSES = 1; + + // Standard object class. + STANDARD = 2; + + // Standard - infrequent access object class. + STANDARD_INFREQUENT_ACCESS = 4; + + // Glacier - instant retrieval object class. + GLACIER_INSTANT_RETRIEVAL = 6; + + // Objects in the S3 Intelligent-Tiering access tiers. + INTELLIGENT_TIERING = 7; + } + + // Optional. Bucket types that should be profiled. + // Optional. Defaults to TYPE_ALL_SUPPORTED if unspecified. + repeated BucketType bucket_types = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Object classes that should be profiled. + // Optional. Defaults to ALL_SUPPORTED_CLASSES if unspecified. + repeated ObjectStorageClass object_storage_classes = 2 + [(google.api.field_behavior) = OPTIONAL]; +} + +// How often existing resources should have their profiles refreshed. +// New resources are scanned as quickly as possible depending on system +// capacity. +message DiscoveryOtherCloudGenerationCadence { + // Optional. Frequency to update profiles regardless of whether the underlying + // resource has changes. Defaults to never. + DataProfileUpdateFrequency refresh_frequency = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Governs when to update data profiles when the inspection rules + // defined by the `InspectTemplate` change. + // If not set, changing the template will not cause a data profile to update. + DiscoveryInspectTemplateModifiedCadence inspect_template_modified_cadence = 2 + [(google.api.field_behavior) = OPTIONAL]; +} + // The location to begin a discovery scan. Denotes an organization ID or folder // ID within an organization. message DiscoveryStartingLocation { @@ -5734,11 +6055,36 @@ message DiscoveryStartingLocation { // The ID of an organization to scan. int64 organization_id = 1; - // The ID of the folder within an organization to scan. + // The ID of the folder within an organization to be scanned. int64 folder_id = 2; } } +// The other cloud starting location for discovery. +message OtherCloudDiscoveryStartingLocation { + // The AWS starting location for discovery. + message AwsDiscoveryStartingLocation { + // The scope of this starting location. + oneof scope { + // The AWS account ID that this discovery config applies to. + // Within an AWS organization, you can find the AWS account ID inside an + // AWS account ARN. Example: + // arn:{partition}:organizations::{management_account_id}:account/{org_id}/{account_id} + string account_id = 2; + + // All AWS assets stored in Asset Inventory that didn't match other AWS + // discovery configs. + bool all_asset_inventory_assets = 3; + } + } + + // The other cloud starting location for discovery. + oneof location { + // The AWS starting location for discovery. + AwsDiscoveryStartingLocation aws_location = 1; + } +} + // Match discovery resources not covered by any other filter. message AllOtherResources {} @@ -5837,9 +6183,9 @@ message ListDlpJobsRequest { // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // // + Projects scope, location specified: - // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> + // `projects/{project_id}/locations/{location_id}` // + Projects scope, no location specified (defaults to global): - // `projects/`<var>PROJECT_ID</var> + // `projects/{project_id}` // // The following example `parent` string specifies a parent project with the // identifier `example-project`, and specifies the `europe-west3` location @@ -5956,13 +6302,13 @@ message CreateDeidentifyTemplateRequest { // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // // + Projects scope, location specified: - // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> + // `projects/{project_id}/locations/{location_id}` // + Projects scope, no location specified (defaults to global): - // `projects/`<var>PROJECT_ID</var> + // `projects/{project_id}` // + Organizations scope, location specified: - // `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var> + // `organizations/{org_id}/locations/{location_id}` // + Organizations scope, no location specified (defaults to global): - // `organizations/`<var>ORG_ID</var> + // `organizations/{org_id}` // // The following example `parent` string specifies a parent project with the // identifier `example-project`, and specifies the `europe-west3` location @@ -6032,13 +6378,13 @@ message ListDeidentifyTemplatesRequest { // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // // + Projects scope, location specified: - // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> + // `projects/{project_id}/locations/{location_id}` // + Projects scope, no location specified (defaults to global): - // `projects/`<var>PROJECT_ID</var> + // `projects/{project_id}` // + Organizations scope, location specified: - // `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var> + // `organizations/{org_id}/locations/{location_id}` // + Organizations scope, no location specified (defaults to global): - // `organizations/`<var>ORG_ID</var> + // `organizations/{org_id}` // // The following example `parent` string specifies a parent project with the // identifier `example-project`, and specifies the `europe-west3` location @@ -6229,13 +6575,13 @@ message CreateStoredInfoTypeRequest { // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // // + Projects scope, location specified: - // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> + // `projects/{project_id}/locations/{location_id}` // + Projects scope, no location specified (defaults to global): - // `projects/`<var>PROJECT_ID</var> + // `projects/{project_id}` // + Organizations scope, location specified: - // `organizations/`<var>ORG_ID</var>`/locations/`<var>LOCATION_ID</var> + // `organizations/{org_id}/locations/{location_id}` // + Organizations scope, no location specified (defaults to global): - // `organizations/`<var>ORG_ID</var> + // `organizations/{org_id}` // // The following example `parent` string specifies a parent project with the // identifier `example-project`, and specifies the `europe-west3` location @@ -6305,9 +6651,9 @@ message ListStoredInfoTypesRequest { // location](https://cloud.google.com/sensitive-data-protection/docs/specifying-location): // // + Projects scope, location specified: - // `projects/`<var>PROJECT_ID</var>`/locations/`<var>LOCATION_ID</var> + // `projects/{project_id}/locations/{location_id}` // + Projects scope, no location specified (defaults to global): - // `projects/`<var>PROJECT_ID</var> + // `projects/{project_id}` // // The following example `parent` string specifies a parent project with the // identifier `example-project`, and specifies the `europe-west3` location @@ -6851,7 +7197,7 @@ message ProjectDataProfile { // The resource name of the profile. string name = 1; - // Project ID that was profiled. + // Project ID or account that was profiled. string project_id = 2; // The last time the profile was generated. @@ -6954,13 +7300,14 @@ message TableDataProfile { // locations. string dataset_location = 29; - // If the resource is BigQuery, the dataset ID. + // If the resource is BigQuery, the dataset ID. string dataset_id = 25; - // If the resource is BigQuery, the BigQuery table ID. + // The table ID. string table_id = 26; - // The resource name of the resource profiled. + // The Cloud Asset Inventory resource that was profiled in order to generate + // this TableDataProfile. // https://cloud.google.com/apis/design/resource_names#full_resource_name string full_resource = 3; @@ -7219,15 +7566,15 @@ message ColumnDataProfile { // The Google Cloud project ID that owns the profiled resource. string dataset_project_id = 19; - // The BigQuery location where the dataset's data is stored. + // If supported, the location where the dataset's data is stored. // See https://cloud.google.com/bigquery/docs/locations for supported - // locations. + // BigQuery locations. string dataset_location = 20; - // The BigQuery dataset ID. + // The BigQuery dataset ID, if the resource profiled is a BigQuery table. string dataset_id = 21; - // The BigQuery table ID. + // The table ID. string table_id = 22; // The name of the column. @@ -7269,6 +7616,7 @@ message ColumnDataProfile { // The profile for a file store. // // * Cloud Storage: maps 1:1 with a bucket. +// * Amazon S3: maps 1:1 with a bucket. message FileStoreDataProfile { option (google.api.resource) = { type: "dlp.googleapis.com/FileStoreDataProfile" @@ -7301,12 +7649,15 @@ message FileStoreDataProfile { string project_data_profile = 3; // The Google Cloud project ID that owns the resource. + // For Amazon S3 buckets, this is the AWS Account Id. string project_id = 4; // The location of the file store. // // * Cloud Storage: // https://cloud.google.com/storage/docs/locations#available-locations + // * Amazon S3: + // https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints string file_store_location = 5; // For resources that have multiple storage locations, these are those @@ -7324,10 +7675,14 @@ message FileStoreDataProfile { // The file store path. // // * Cloud Storage: `gs://{bucket}` + // * Amazon S3: `s3://{bucket}` string file_store_path = 6; // The resource name of the resource profiled. // https://cloud.google.com/apis/design/resource_names#full_resource_name + // + // Example format of an S3 bucket full resource name: + // `//cloudasset.googleapis.com/organizations/{org_id}/otherCloudConnections/aws/arn:aws:s3:::{bucket_name}` string full_resource = 24; // The snapshot of the configurations used to generate the profile. @@ -7412,10 +7767,12 @@ message FileClusterSummary { repeated Error errors = 6; // A sample of file types scanned in this cluster. Empty if no files were - // scanned. + // scanned. File extensions can be derived from the file name or the file + // content. repeated FileExtensionInfo file_extensions_scanned = 7; // A sample of file types seen in this cluster. Empty if no files were seen. + // File extensions can be derived from the file name or the file content. repeated FileExtensionInfo file_extensions_seen = 8; // True if no files exist in this cluster. If the bucket had more files than @@ -7502,7 +7859,12 @@ message ListFileStoreDataProfilesRequest { // * A restriction has the form of `{field} {operator} {value}`. // * Supported fields/values: // - `project_id` - The Google Cloud project ID. + // - `account_id` - The AWS account ID. // - `file_store_path` - The path like "gs://bucket". + // - `data_source_type` - The profile's data source type, like + // "google/storage/bucket". + // - `data_storage_location` - The location where the file store's data is + // stored, like "us-central1". // - `sensitivity_level` - HIGH|MODERATE|LOW // - `data_risk_level` - HIGH|MODERATE|LOW // - `resource_visibility`: PUBLIC|RESTRICTED @@ -7637,8 +7999,15 @@ message DataProfilePubSubMessage { // Request message for CreateConnection. message CreateConnectionRequest { - // Required. Parent resource name in the format: - // `projects/{project}/locations/{location}`. + // Required. Parent resource name. + // + // The format of this value varies depending on the scope of the request + // (project or organization): + // + // + Projects scope: + // `projects/{project_id}/locations/{location_id}` + // + Organizations scope: + // `organizations/{org_id}/locations/{location_id}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -7662,8 +8031,9 @@ message GetConnectionRequest { // Request message for ListConnections. message ListConnectionsRequest { - // Required. Parent name, for example: - // `projects/project-id/locations/global`. + // Required. Resource name of the organization or project, for + // example, `organizations/433245324/locations/europe` or + // `projects/project-id/locations/asia`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -7684,8 +8054,9 @@ message ListConnectionsRequest { // Request message for SearchConnections. message SearchConnectionsRequest { - // Required. Parent name, typically an organization, without location. - // For example: `organizations/12345678`. + // Required. Resource name of the organization or project with a wildcard + // location, for example, `organizations/433245324/locations/-` or + // `projects/project-id/locations/-`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -7759,6 +8130,7 @@ message Connection { option (google.api.resource) = { type: "dlp.googleapis.com/Connection" pattern: "projects/{project}/locations/{location}/connections/{connection}" + pattern: "organizations/{organization}/locations/{location}/connections/{connection}" }; // Output only. Name of the connection: @@ -7884,14 +8256,19 @@ message DeleteTableDataProfileRequest { // Message used to identify the type of resource being profiled. message DataSourceType { // Output only. An identifying string to the type of resource being profiled. - // Current values: google/bigquery/table, google/project + // Current values: + // + // * google/bigquery/table + // * google/project + // * google/sql/table + // * google/gcs/bucket string data_source = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Message used to identify file cluster type being profiled. message FileClusterType { // Cluster type. Each cluster corresponds to a set of file types. - // Over time new types may be added. + // Over time, new types may be added and files may move between clusters. enum Cluster { // Unused. CLUSTER_UNSPECIFIED = 0; diff --git a/google/privacy/dlp/v2/dlp_grpc_service_config.json b/google/privacy/dlp/v2/dlp_grpc_service_config.json index ffdb62287..d28b704cd 100755 --- a/google/privacy/dlp/v2/dlp_grpc_service_config.json +++ b/google/privacy/dlp/v2/dlp_grpc_service_config.json @@ -117,6 +117,18 @@ { "service": "google.privacy.dlp.v2.DlpService", "method": "GetColumnDataProfile" + }, + { + "service": "google.privacy.dlp.v2.DlpService", + "method": "GetFileStoreDataProfile" + }, + { + "service": "google.privacy.dlp.v2.DlpService", + "method": "ListFileStoreDataProfiles" + }, + { + "service": "google.privacy.dlp.v2.DlpService", + "method": "DeleteFileStoreDataProfile" } ], "timeout": "300s", diff --git a/google/privacy/dlp/v2/storage.proto b/google/privacy/dlp/v2/storage.proto index 2f3763d63..db3dad755 100644 --- a/google/privacy/dlp/v2/storage.proto +++ b/google/privacy/dlp/v2/storage.proto @@ -653,7 +653,7 @@ message StorageConfig { // Specification of the field containing the timestamp of scanned items. // Used for data sources like Datastore and BigQuery. // - // <b>For BigQuery</b> + // **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 @@ -668,13 +668,11 @@ message StorageConfig { // 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. // - // <ul> - // <li><code>_PARTITIONTIME</code></li> - // <li><code>_PARTITIONDATE</code></li> - // <li><code>_PARTITION_LOAD_TIME</code></li> - // </ul> + // - `_PARTITIONTIME` + // - `_PARTITIONDATE` + // - `_PARTITION_LOAD_TIME` // - // <b>For Datastore</b> + // **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 diff --git a/google/pubsub/v1/pubsub.proto b/google/pubsub/v1/pubsub.proto index b5092087a..0f269f525 100644 --- a/google/pubsub/v1/pubsub.proto +++ b/google/pubsub/v1/pubsub.proto @@ -237,10 +237,188 @@ message IngestionDataSourceSettings { string gcp_service_account = 5 [(google.api.field_behavior) = REQUIRED]; } + // Ingestion settings for Cloud Storage. + message CloudStorage { + // Possible states for ingestion from Cloud Storage. + enum State { + // Default value. This value is unused. + STATE_UNSPECIFIED = 0; + + // Ingestion is active. + ACTIVE = 1; + + // Permission denied encountered while calling the Cloud Storage API. This + // can happen if the Pub/Sub SA has not been granted the + // [appropriate + // permissions](https://cloud.google.com/storage/docs/access-control/iam-permissions): + // - storage.objects.list: to list the objects in a bucket. + // - storage.objects.get: to read the objects in a bucket. + // - storage.buckets.get: to verify the bucket exists. + CLOUD_STORAGE_PERMISSION_DENIED = 2; + + // Permission denied encountered while publishing to the topic. This can + // happen if the Pub/Sub SA has not been granted the [appropriate publish + // permissions](https://cloud.google.com/pubsub/docs/access-control#pubsub.publisher) + PUBLISH_PERMISSION_DENIED = 3; + + // The provided Cloud Storage bucket doesn't exist. + BUCKET_NOT_FOUND = 4; + + // The Cloud Storage bucket has too many objects, ingestion will be + // paused. + TOO_MANY_OBJECTS = 5; + } + + // Configuration for reading Cloud Storage data in text format. Each line of + // text as specified by the delimiter will be set to the `data` field of a + // Pub/Sub message. + message TextFormat { + // Optional. When unset, '\n' is used. + optional string delimiter = 1 [(google.api.field_behavior) = OPTIONAL]; + } + + // Configuration for reading Cloud Storage data in Avro binary format. The + // bytes of each object will be set to the `data` field of a Pub/Sub + // message. + message AvroFormat {} + + // Configuration for reading Cloud Storage data written via [Cloud Storage + // subscriptions](https://cloud.google.com/pubsub/docs/cloudstorage). The + // data and attributes fields of the originally exported Pub/Sub message + // will be restored when publishing. + message PubSubAvroFormat {} + + // Output only. An output-only field that indicates the state of the Cloud + // Storage ingestion source. + State state = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Cloud Storage bucket. The bucket name must be without any + // prefix like "gs://". See the [bucket naming requirements] + // (https://cloud.google.com/storage/docs/buckets#naming). + string bucket = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Defaults to text format. + oneof input_format { + // Optional. Data from Cloud Storage will be interpreted as text. + TextFormat text_format = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Data from Cloud Storage will be interpreted in Avro format. + AvroFormat avro_format = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. It will be assumed data from Cloud Storage was written via + // [Cloud Storage + // subscriptions](https://cloud.google.com/pubsub/docs/cloudstorage). + PubSubAvroFormat pubsub_avro_format = 5 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. Only objects with a larger or equal creation timestamp will be + // ingested. + google.protobuf.Timestamp minimum_object_create_time = 6 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Glob pattern used to match objects that will be ingested. If + // unset, all objects will be ingested. See the [supported + // patterns](https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob). + string match_glob = 9 [(google.api.field_behavior) = OPTIONAL]; + } + // Only one source type can have settings set. oneof source { // Optional. Amazon Kinesis Data Streams. AwsKinesis aws_kinesis = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Cloud Storage. + CloudStorage cloud_storage = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // Optional. Platform Logs settings. If unset, no Platform Logs will be + // generated. + PlatformLogsSettings platform_logs_settings = 4 + [(google.api.field_behavior) = OPTIONAL]; +} + +// Settings for Platform Logs produced by Pub/Sub. +message PlatformLogsSettings { + // Severity levels of Platform Logs. + enum Severity { + // Default value. Logs level is unspecified. Logs will be disabled. + SEVERITY_UNSPECIFIED = 0; + + // Logs will be disabled. + DISABLED = 1; + + // Debug logs and higher-severity logs will be written. + DEBUG = 2; + + // Info logs and higher-severity logs will be written. + INFO = 3; + + // Warning logs and higher-severity logs will be written. + WARNING = 4; + + // Only error logs will be written. + ERROR = 5; + } + + // Optional. The minimum severity level of Platform Logs that will be written. + Severity severity = 1 [(google.api.field_behavior) = OPTIONAL]; +} + +// Payload of the Platform Log entry sent when a failure is encountered while +// ingesting. +message IngestionFailureEvent { + // Specifies the reason why some data may have been left out of + // the desired Pub/Sub message due to the API message limits + // (https://cloud.google.com/pubsub/quotas#resource_limits). For example, + // when the number of attributes is larger than 100, the number of + // attributes is truncated to 100 to respect the limit on the attribute count. + // Other attribute limits are treated similarly. When the size of the desired + // message would've been larger than 10MB, the message won't be published at + // all, and ingestion of the subsequent messages will proceed as normal. + message ApiViolationReason {} + + // Set when an Avro file is unsupported or its format is not valid. When this + // occurs, one or more Avro objects won't be ingested. + message AvroFailureReason {} + + // Failure when ingesting from a Cloud Storage source. + message CloudStorageFailure { + // Optional. Name of the Cloud Storage bucket used for ingestion. + string bucket = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Name of the Cloud Storage object which contained the section + // that couldn't be ingested. + string object_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Generation of the Cloud Storage object which contained the + // section that couldn't be ingested. + int64 object_generation = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Reason why ingestion failed for the specified object. + oneof reason { + // Optional. Failure encountered when parsing an Avro file. + AvroFailureReason avro_failure_reason = 5 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The Pub/Sub API limits prevented the desired message from + // being published. + ApiViolationReason api_violation_reason = 6 + [(google.api.field_behavior) = OPTIONAL]; + } + } + + // Required. Name of the import topic. Format is: + // projects/{project_name}/topics/{topic_name}. + string topic = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Error details explaining why ingestion to Pub/Sub has failed. + string error_message = 2 [(google.api.field_behavior) = REQUIRED]; + + oneof failure { + // Optional. Failure when ingesting from Cloud Storage. + CloudStorageFailure cloud_storage_failure = 3 + [(google.api.field_behavior) = OPTIONAL]; } } @@ -774,6 +952,20 @@ message Subscription { RESOURCE_ERROR = 2; } + // Information about an associated Analytics Hub subscription + // (https://cloud.google.com/bigquery/docs/analytics-hub-manage-subscriptions). + message AnalyticsHubSubscriptionInfo { + // Optional. The name of the associated Analytics Hub listing resource. + // Pattern: + // "projects/{project}/locations/{location}/dataExchanges/{data_exchange}/listings/{listing}" + string listing = 1 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The name of the associated Analytics Hub subscription resource. + // Pattern: + // "projects/{project}/locations/{location}/subscriptions/{subscription}" + string subscription = 2 [(google.api.field_behavior) = OPTIONAL]; + } + // 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 @@ -837,7 +1029,7 @@ message Subscription { // backlog, from the moment a message is published. If `retain_acked_messages` // is true, then this also configures the retention of acknowledged messages, // and thus configures how far back in time a `Seek` can be done. Defaults to - // 7 days. Cannot be more than 7 days or less than 10 minutes. + // 7 days. Cannot be more than 31 days or less than 10 minutes. google.protobuf.Duration message_retention_duration = 8 [(google.api.field_behavior) = OPTIONAL]; @@ -922,6 +1114,11 @@ message Subscription { // Output only. An output-only field indicating whether or not the // subscription can receive messages. State state = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Information about the associated Analytics Hub subscription. + // Only set if the subscritpion is created by Analytics Hub. + AnalyticsHubSubscriptionInfo analytics_hub_subscription_info = 23 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // A policy that specifies how Pub/Sub retries message delivery. diff --git a/google/pubsub/v1/pubsub_v1.yaml b/google/pubsub/v1/pubsub_v1.yaml index 78501f0c6..07a5162d2 100644 --- a/google/pubsub/v1/pubsub_v1.yaml +++ b/google/pubsub/v1/pubsub_v1.yaml @@ -9,6 +9,9 @@ apis: - name: google.pubsub.v1.SchemaService - name: google.pubsub.v1.Subscriber +types: +- name: google.pubsub.v1.IngestionFailureEvent + documentation: summary: |- Provides reliable, many-to-many, asynchronous messaging between diff --git a/google/shopping/css/v1/css_product_common.proto b/google/shopping/css/v1/css_product_common.proto index 574ba4519..4cb460f2d 100644 --- a/google/shopping/css/v1/css_product_common.proto +++ b/google/shopping/css/v1/css_product_common.proto @@ -205,17 +205,31 @@ message Attributes { // Custom label 4 for custom grouping of items in a Shopping campaign. optional string custom_label_4 = 50; + + // Number and amount of installments to pay for an item. + HeadlineOfferInstallment headline_offer_installment = 51; + + // Number of periods (months or years) and amount of payment per period + // for an item with an associated subscription contract. + HeadlineOfferSubscriptionCost headline_offer_subscription_cost = 52; } -// The certification for the product. +// The certification for the product. Use the this attribute to describe +// certifications, such as energy efficiency ratings, associated with a product. message Certification { - // Name of the certification. + // The name of the certification. At this time, the most common value is + // "EPREL", which represents energy efficiency certifications in the EU + // European Registry for Energy Labeling (EPREL) database. string name = 1; - // Name of the certification body. + // The authority or certification body responsible for issuing the + // certification. At this time, the most common value is "EC" or + // “European_Commission” for energy labels in the EU. string authority = 2; - // A unique code to identify the certification. + // The code of the certification. For example, for the EPREL certificate with + // the link https://eprel.ec.europa.eu/screen/product/dishwashers2019/123456 + // the code is 123456. The code is required for European Energy Labels. string code = 3; } @@ -329,3 +343,42 @@ message CssProductStatus { // 8601](http://en.wikipedia.org/wiki/ISO_8601) format. google.protobuf.Timestamp google_expiration_date = 7; } + +// The SubscriptionCost of the product. +message HeadlineOfferSubscriptionCost { + // The type of subscription period. + // Supported values are: + // * "`month`" + // * "`year`" + SubscriptionPeriod period = 1; + + // The number of subscription periods the buyer has to pay. + int64 period_length = 2; + + // The amount the buyer has to pay per subscription period. + google.shopping.type.Price amount = 3; +} + +// A message that represents installment. +message HeadlineOfferInstallment { + // The number of installments the buyer has to pay. + int64 months = 1; + + // The amount the buyer has to pay per month. + google.shopping.type.Price amount = 2; + + // The up-front down payment amount the buyer has to pay. + google.shopping.type.Price downpayment = 3; +} + +// The subscription period of the product. +enum SubscriptionPeriod { + // Indicates that the subscription period is unspecified. + SUBSCRIPTION_PERIOD_UNSPECIFIED = 0; + + // Indicates that the subscription period is month. + MONTH = 1; + + // Indicates that the subscription period is year. + YEAR = 2; +} diff --git a/google/shopping/merchant/accounts/BUILD.bazel b/google/shopping/merchant/accounts/BUILD.bazel index 8e217aa96..05d5e0eee 100644 --- a/google/shopping/merchant/accounts/BUILD.bazel +++ b/google/shopping/merchant/accounts/BUILD.bazel @@ -21,7 +21,7 @@ ruby_cloud_gapic_library( srcs = ["//google/shopping/merchant/accounts/v1beta:accounts_proto_with_info"], extra_protoc_parameters = [ "ruby-cloud-gem-name=google-shopping-merchant-accounts", - "ruby-cloud-wrapper-of=v1beta:0.0", + "ruby-cloud-wrapper-of=v1beta:0.2", ], service_yaml = "//google/shopping/merchant/accounts/v1beta:merchantapi_v1beta.yaml", transport = "grpc+rest", diff --git a/google/shopping/merchant/accounts/v1beta/BUILD.bazel b/google/shopping/merchant/accounts/v1beta/BUILD.bazel index 14db50388..ea2089c56 100644 --- a/google/shopping/merchant/accounts/v1beta/BUILD.bazel +++ b/google/shopping/merchant/accounts/v1beta/BUILD.bazel @@ -28,6 +28,8 @@ proto_library( "account_tax.proto", "accountissue.proto", "accounts.proto", + "accountservices.proto", + "autofeedsettings.proto", "businessidentity.proto", "businessinfo.proto", "customerservice.proto", @@ -49,7 +51,8 @@ proto_library( "//google/api:client_proto", "//google/api:field_behavior_proto", "//google/api:resource_proto", - "//google/shopping/type:type_proto", # Manual fix. Original :types_proto + # Manual edit: Types -> Type + "//google/shopping/type:type_proto", "//google/type:date_proto", "//google/type:datetime_proto", "//google/type:interval_proto", @@ -84,10 +87,7 @@ load( java_proto_library( name = "accounts_java_proto", - deps = [ - ":accounts_proto", - "//google/shopping/type:type_proto", # Added manually - ], + deps = [":accounts_proto"], ) java_grpc_library( @@ -122,6 +122,8 @@ java_gapic_test( "com.google.shopping.merchant.accounts.v1beta.AccountTaxServiceClientTest", "com.google.shopping.merchant.accounts.v1beta.AccountsServiceClientHttpJsonTest", "com.google.shopping.merchant.accounts.v1beta.AccountsServiceClientTest", + "com.google.shopping.merchant.accounts.v1beta.AutofeedSettingsServiceClientHttpJsonTest", + "com.google.shopping.merchant.accounts.v1beta.AutofeedSettingsServiceClientTest", "com.google.shopping.merchant.accounts.v1beta.BusinessIdentityServiceClientHttpJsonTest", "com.google.shopping.merchant.accounts.v1beta.BusinessIdentityServiceClientTest", "com.google.shopping.merchant.accounts.v1beta.BusinessInfoServiceClientHttpJsonTest", @@ -151,6 +153,7 @@ java_gapic_test( # Open Source Packages java_gapic_assembly_gradle_pkg( name = "google-cloud-merchant-accounts-v1beta-java", + include_samples = True, transport = "grpc+rest", deps = [ ":accounts_java_gapic", @@ -158,7 +161,6 @@ java_gapic_assembly_gradle_pkg( ":accounts_java_proto", ":accounts_proto", ], - include_samples = True, ) ############################################################################## @@ -179,7 +181,8 @@ go_proto_library( protos = [":accounts_proto"], deps = [ "//google/api:annotations_go_proto", - "//google/shopping/type:type_go_proto", # Manual fix. Original :types_go_proto + # Manual edit: Types -> Type + "//google/shopping/type:type_go_proto", "//google/type:date_go_proto", "//google/type:datetime_go_proto", "//google/type:interval_go_proto", @@ -208,9 +211,9 @@ go_gapic_assembly_pkg( name = "gapi-cloud-merchant-accounts-v1beta-go", deps = [ ":accounts_go_gapic", - ":accounts_go_gapic_srcjar-test.srcjar", ":accounts_go_gapic_srcjar-metadata.srcjar", ":accounts_go_gapic_srcjar-snippets.srcjar", + ":accounts_go_gapic_srcjar-test.srcjar", ":accounts_go_proto", ], ) @@ -239,9 +242,9 @@ py_gapic_library( srcs = [":accounts_proto"], grpc_service_config = "accounts_grpc_service_config.json", opt_args = [ - "proto-plus-deps=google.shopping.type", # Added manually - "python-gapic-namespace=google.shopping", + "proto-plus-deps=google.shopping.type", "python-gapic-name=merchant_accounts", + "python-gapic-namespace=google.shopping", ], rest_numeric_enums = True, service_yaml = "merchantapi_v1beta.yaml", @@ -289,8 +292,8 @@ php_gapic_library( name = "accounts_php_gapic", srcs = [":accounts_proto_with_info"], grpc_service_config = "accounts_grpc_service_config.json", - rest_numeric_enums = True, migration_mode = "NEW_SURFACE_ONLY", + rest_numeric_enums = True, service_yaml = "merchantapi_v1beta.yaml", transport = "grpc+rest", deps = [ @@ -345,8 +348,8 @@ nodejs_gapic_assembly_pkg( # buildifier: disable=same-origin-load load( "@com_google_googleapis_imports//:imports.bzl", - "ruby_gapic_assembly_pkg", "ruby_cloud_gapic_library", + "ruby_gapic_assembly_pkg", "ruby_grpc_library", "ruby_proto_library", ) @@ -403,7 +406,6 @@ load( csharp_proto_library( name = "accounts_csharp_proto", - extra_opts = [], deps = [":accounts_proto"], ) diff --git a/google/shopping/merchant/accounts/v1beta/accountissue.proto b/google/shopping/merchant/accounts/v1beta/accountissue.proto index a6329d76e..8651baa5a 100644 --- a/google/shopping/merchant/accounts/v1beta/accountissue.proto +++ b/google/shopping/merchant/accounts/v1beta/accountissue.proto @@ -21,7 +21,6 @@ import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/shopping/type/types.proto"; -import "google/type/datetime.proto"; option go_package = "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb"; option java_multiple_files = true; @@ -142,7 +141,7 @@ message ListAccountIssuesRequest { // Optional. The [IANA](https://www.iana.org/time-zones) timezone used to // localize times in human-readable fields. For example 'America/Los_Angeles'. // If not set, 'America/Los_Angeles' will be used. - google.type.TimeZone time_zone = 5 [(google.api.field_behavior) = OPTIONAL]; + string time_zone = 5 [(google.api.field_behavior) = OPTIONAL]; } // Response message for the `ListAccountIssues` method. diff --git a/google/shopping/merchant/accounts/v1beta/accounts.proto b/google/shopping/merchant/accounts/v1beta/accounts.proto index c223bcdfe..e54dcb372 100644 --- a/google/shopping/merchant/accounts/v1beta/accounts.proto +++ b/google/shopping/merchant/accounts/v1beta/accounts.proto @@ -22,6 +22,7 @@ import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; +import "google/shopping/merchant/accounts/v1beta/accountservices.proto"; import "google/shopping/merchant/accounts/v1beta/user.proto"; import "google/type/datetime.proto"; @@ -58,6 +59,9 @@ service AccountsService { // Deletes the specified account regardless of its type: standalone, MCA or // sub-account. Deleting an MCA leads to the deletion of all of its // sub-accounts. Executing this method requires admin access. + // The deletion succeeds only if the account does not provide services + // to any other account and has no processed offers. You can use the `force` + // parameter to override this. rpc DeleteAccount(DeleteAccountRequest) returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/accounts/v1beta/{name=accounts/*}" @@ -79,7 +83,8 @@ service AccountsService { // constraints of the request such as page size or filters. // This is not just listing the sub-accounts of an MCA, but all accounts the // calling user has access to including other MCAs, linked accounts, - // standalone accounts and so on. + // standalone accounts and so on. If no filter is provided, then it returns + // accounts the user is directly added to. rpc ListAccounts(ListAccountsRequest) returns (ListAccountsResponse) { option (google.api.http) = { get: "/accounts/v1beta/accounts" @@ -156,7 +161,10 @@ message GetAccountRequest { message CreateAndConfigureAccountRequest { // Reference to a Terms of Service resource. message AcceptTermsOfService { - // Required. The resource name of the terms of service version. + // Required. The resource name of the terms of service version in the format + // `termsOfService/{version}`. To retrieve the latest version, use the + // [termsOfService.retrieveLatest](/merchant/api/reference/rest/accounts_v1beta/termsOfService/retrieveLatest) + // method. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -173,12 +181,12 @@ message CreateAndConfigureAccountRequest { // Additional instructions to add account services during creation of the // account. message AddAccountService { - // Currently only supports - // [Multi-client](https://support.google.com/merchants/answer/188487) - // parent account type. + // The service type to be added. oneof service_type { - // The provider is an aggregator for the account. - google.protobuf.Empty account_aggregation = 2; + // The provider is an + // [aggregator](https://support.google.com/merchants/answer/188487) for + // the account. Payload for service type Account Aggregation. + AccountAggregation account_aggregation = 103; } // Optional. The provider of the service. @@ -202,11 +210,14 @@ message CreateAndConfigureAccountRequest { optional AcceptTermsOfService accept_terms_of_service = 3 [(google.api.field_behavior) = OPTIONAL]; - // Optional. If specified, an account service between the account to be - // created and the provider account is initialized as part of the - // creation. + // Required. An account service between the account to be created and the + // provider account is initialized as part of the creation. At least one such + // service needs to be provided. Currently exactly one of these needs to be + // `account_aggregation`, which means you can only create sub accounts, not + // standalone account through this method. Additional `account_management` or + // `product_management` services may be provided. repeated AddAccountService service = 4 - [(google.api.field_behavior) = OPTIONAL]; + [(google.api.field_behavior) = REQUIRED]; } // Request message for the `DeleteAccount` method. @@ -219,6 +230,10 @@ message DeleteAccountRequest { type: "merchantapi.googleapis.com/Account" } ]; + + // Optional. If set to `true`, the account is deleted even if it provides + // services to other accounts or has processed offers. + bool force = 2 [(google.api.field_behavior) = OPTIONAL]; } // Request message for the `UpdateAccount` method. diff --git a/google/shopping/merchant/accounts/v1beta/accounts_grpc_service_config.json b/google/shopping/merchant/accounts/v1beta/accounts_grpc_service_config.json index 7bdcc2d41..f8a7a5a5a 100644 --- a/google/shopping/merchant/accounts/v1beta/accounts_grpc_service_config.json +++ b/google/shopping/merchant/accounts/v1beta/accounts_grpc_service_config.json @@ -6,13 +6,46 @@ "service": "google.shopping.merchant.accounts.v1beta.AccountsService" }, { - "service": "google.shopping.merchant.accounts.v1beta.TermsOfServiceService" + "service": "google.shopping.merchant.accounts.v1beta.AccountIssueService" + }, + { + "service": "google.shopping.merchant.accounts.v1beta.AccountTaxService" + }, + { + "service": "google.shopping.merchant.accounts.v1beta.AutofeedSettingsService" + }, + { + "service": "google.shopping.merchant.accounts.v1beta.BusinessIdentityService" + }, + { + "service": "google.shopping.merchant.accounts.v1beta.BusinessInfoService" + }, + { + "service": "google.shopping.merchant.accounts.v1beta.EmailPreferencesService" + }, + { + "service": "google.shopping.merchant.accounts.v1beta.HomepageService" + }, + { + "service": "google.shopping.merchant.accounts.v1beta.OnlineReturnPolicyService" }, { - "service": "google.shopping.merchant.accounts.v1beta.OnlineReturnPolicyService" + "service": "google.shopping.merchant.accounts.v1beta.ProgramsService" + }, + { + "service": "google.shopping.merchant.accounts.v1beta.RegionsService" }, { "service": "google.shopping.merchant.accounts.v1beta.ShippingSettingService" + }, + { + "service": "google.shopping.merchant.accounts.v1beta.TermsOfServiceAgreementStateService" + }, + { + "service": "google.shopping.merchant.accounts.v1beta.TermsOfServiceService" + }, + { + "service": "google.shopping.merchant.accounts.v1beta.UserService" } ], "timeout": "60s", @@ -21,9 +54,7 @@ "initialBackoff": "1s", "maxBackoff": "10s", "backoffMultiplier": 1.3, - "retryableStatusCodes": [ - "UNAVAILABLE" - ] + "retryableStatusCodes": ["UNAVAILABLE"] } } ] diff --git a/google/cloud/visionai/v1/prediction.proto b/google/shopping/merchant/accounts/v1beta/accountservices.proto similarity index 60% rename from google/cloud/visionai/v1/prediction.proto rename to google/shopping/merchant/accounts/v1beta/accountservices.proto index 88a91dec5..daeb15f3a 100644 --- a/google/cloud/visionai/v1/prediction.proto +++ b/google/shopping/merchant/accounts/v1beta/accountservices.proto @@ -14,22 +14,17 @@ syntax = "proto3"; -package google.cloud.visionai.v1; +package google.shopping.merchant.accounts.v1beta; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -option csharp_namespace = "Google.Cloud.VisionAi.V1"; -option go_package = "cloud.google.com/go/visionai/apiv1/visionaipb;visionaipb"; +option go_package = "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb"; option java_multiple_files = true; -option java_outer_classname = "PredictionServiceProto"; -option java_package = "com.google.cloud.visionai.v1"; -option php_namespace = "Google\\Cloud\\VisionAI\\V1"; -option ruby_package = "Google::Cloud::VisionAI::V1"; +option java_outer_classname = "AccountServicesProto"; +option java_package = "com.google.shopping.merchant.accounts.v1beta"; -// A service for online prediction. -service PredictionService { - option (google.api.default_host) = "visionai.googleapis.com"; -} +// `AccountAggregation` payload. +message AccountAggregation {} diff --git a/google/shopping/merchant/accounts/v1beta/autofeedsettings.proto b/google/shopping/merchant/accounts/v1beta/autofeedsettings.proto new file mode 100644 index 000000000..f6e0c1b36 --- /dev/null +++ b/google/shopping/merchant/accounts/v1beta/autofeedsettings.proto @@ -0,0 +1,106 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.shopping.merchant.accounts.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/field_mask.proto"; + +option go_package = "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb"; +option java_multiple_files = true; +option java_outer_classname = "AutofeedSettingsProto"; +option java_package = "com.google.shopping.merchant.accounts.v1beta"; + +// Service to support +// [autofeed](https://support.google.com/merchants/answer/7538732) setting. +service AutofeedSettingsService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Retrieves the autofeed settings of an account. + rpc GetAutofeedSettings(GetAutofeedSettingsRequest) + returns (AutofeedSettings) { + option (google.api.http) = { + get: "/accounts/v1beta/{name=accounts/*/autofeedSettings}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates the autofeed settings of an account. + rpc UpdateAutofeedSettings(UpdateAutofeedSettingsRequest) + returns (AutofeedSettings) { + option (google.api.http) = { + patch: "/accounts/v1beta/{autofeed_settings.name=accounts/*/autofeedSettings}" + body: "autofeed_settings" + }; + option (google.api.method_signature) = "autofeed_settings,update_mask"; + } +} + +// Collection of information related to the +// [autofeed](https://support.google.com/merchants/answer/7538732) settings. +message AutofeedSettings { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/AutofeedSettings" + pattern: "accounts/{account}/autofeedSettings" + plural: "autofeedSettings" + singular: "autofeedSettings" + }; + + // Identifier. The resource name of the autofeed settings. + // Format: `accounts/{account}/autofeedSettings`. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Required. Enables or disables product crawling through the autofeed for the + // given account. Autofeed accounts must meet [certain + // conditions](https://support.google.com/merchants/answer/7538732#Configure_automated_feeds_Standard_Experience), + // which can be checked through the `eligible` field. + // The account must **not** be a marketplace. + // When the autofeed is enabled for the first time, the products usually + // appear instantly. When re-enabling, it might take up to 24 hours for + // products to appear. + bool enable_products = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Determines whether merchant is eligible for being enrolled + // into an autofeed. + bool eligible = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request message for the `GetAutofeedSettings` method. +message GetAutofeedSettingsRequest { + // Required. The resource name of the autofeed settings. + // Format: `accounts/{account}/autofeedSettings` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/AutofeedSettings" + } + ]; +} + +// Request message for the `UpdateAutofeedSettings` method. +message UpdateAutofeedSettingsRequest { + // Required. The new version of the autofeed setting. + AutofeedSettings autofeed_settings = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Required. List of fields being updated. + google.protobuf.FieldMask update_mask = 2 + [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/shopping/merchant/accounts/v1beta/businessinfo.proto b/google/shopping/merchant/accounts/v1beta/businessinfo.proto index f2cfed816..b040b3d10 100644 --- a/google/shopping/merchant/accounts/v1beta/businessinfo.proto +++ b/google/shopping/merchant/accounts/v1beta/businessinfo.proto @@ -83,6 +83,12 @@ message BusinessInfo { // Optional. The customer service of the business. optional CustomerService customer_service = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The 10-digit [Korean business registration + // number](https://support.google.com/merchants/answer/9037766) separated with + // dashes in the format: XXX-XX-XXXXX. + optional string korean_business_registration_number = 6 + [(google.api.field_behavior) = OPTIONAL]; } // Request message for the `GetBusinessInfo` method. diff --git a/google/shopping/merchant/accounts/v1beta/merchantapi_v1beta.yaml b/google/shopping/merchant/accounts/v1beta/merchantapi_v1beta.yaml index de4220c44..e50be1e45 100644 --- a/google/shopping/merchant/accounts/v1beta/merchantapi_v1beta.yaml +++ b/google/shopping/merchant/accounts/v1beta/merchantapi_v1beta.yaml @@ -5,8 +5,8 @@ title: Merchant API apis: - name: google.shopping.merchant.accounts.v1beta.AccountIssueService -- name: google.shopping.merchant.accounts.v1beta.AccountTaxService - name: google.shopping.merchant.accounts.v1beta.AccountsService +- name: google.shopping.merchant.accounts.v1beta.AutofeedSettingsService - name: google.shopping.merchant.accounts.v1beta.BusinessIdentityService - name: google.shopping.merchant.accounts.v1beta.BusinessInfoService - name: google.shopping.merchant.accounts.v1beta.EmailPreferencesService @@ -20,7 +20,23 @@ apis: - name: google.shopping.merchant.accounts.v1beta.UserService documentation: - summary: Programmatically manage your Merchant Center accounts. + summary: Programmatically manage your Merchant Center Accounts. + overview: |- + Merchant API consists of multiple Sub-APIs. Accounts Sub-API: Enables you + to programmatically manage your accounts. Conversions Sub-API: Enables you + to programmatically manage your conversion sources for a merchant account. + Datasources Sub-API: Enables you to programmatically manage your + datasources. Inventories Sub-API: This bundle enables you to + programmatically manage your local and regional inventories. Local Feeds + Partnerships Sub-API: This bundle enables LFP partners to submit local + inventories for a merchant. Notifications Sub-API: This bundle enables you + to programmatically manage your notification subscriptions. Products + Sub-API: This bundle enables you to programmatically manage your products. + Promotions Sub-API: This bundle enables you to programmatically manage + your promotions for products. Quota Sub-API: This bundle enables you to + list your quotas for all APIs you are using. Reports Sub-API: This bundle + enables you to programmatically retrieve reports and insights about + products, their performance and their competitive environment. authentication: rules: @@ -28,11 +44,15 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/content - - selector: 'google.shopping.merchant.accounts.v1beta.AccountTaxService.*' + - selector: 'google.shopping.merchant.accounts.v1beta.AccountsService.*' oauth: canonical_scopes: |- https://www.googleapis.com/auth/content - - selector: 'google.shopping.merchant.accounts.v1beta.AccountsService.*' + - selector: google.shopping.merchant.accounts.v1beta.AutofeedSettingsService.GetAutofeedSettings + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content + - selector: google.shopping.merchant.accounts.v1beta.AutofeedSettingsService.UpdateAutofeedSettings oauth: canonical_scopes: |- https://www.googleapis.com/auth/content @@ -119,6 +139,8 @@ publishing: common: destinations: - PACKAGE_MANAGER + cpp_settings: + common: {} php_settings: common: destinations: diff --git a/google/shopping/merchant/accounts/v1beta/shippingsettings.proto b/google/shopping/merchant/accounts/v1beta/shippingsettings.proto index 73b8a3dd6..a7fac4a8a 100644 --- a/google/shopping/merchant/accounts/v1beta/shippingsettings.proto +++ b/google/shopping/merchant/accounts/v1beta/shippingsettings.proto @@ -54,7 +54,7 @@ service ShippingSettingsService { } // The merchant account's [shipping -// setting]((https://support.google.com/merchants/answer/6069284). +// setting](https://support.google.com/merchants/answer/6069284). message ShippingSettings { option (google.api.resource) = { type: "merchantapi.googleapis.com/ShippingSettings" @@ -355,11 +355,15 @@ message DeliveryTime { // Minimum number of business days spent before an order is shipped. // 0 means same day shipped, 1 means next day shipped. + // 'min_handling_days' and 'max_handling_days' should be either set or not set + // at the same time. optional int32 min_handling_days = 4; // Maximum number of business days spent before an order is shipped. // 0 means same day shipped, 1 means next day shipped. // Must be greater than or equal to `min_handling_days`. + // 'min_handling_days' and 'max_handling_days' should be either set or not set + // at the same time. optional int32 max_handling_days = 5; // Transit time table, number of business days spent in transit based on row diff --git a/google/shopping/merchant/accounts/v1beta/termsofservice.proto b/google/shopping/merchant/accounts/v1beta/termsofservice.proto index 549a3a941..86c0c37aa 100644 --- a/google/shopping/merchant/accounts/v1beta/termsofservice.proto +++ b/google/shopping/merchant/accounts/v1beta/termsofservice.proto @@ -110,13 +110,13 @@ message GetTermsOfServiceRequest { // Request message for the `RetrieveLatestTermsOfService` method. message RetrieveLatestTermsOfServiceRequest { - // Region code as defined by [CLDR](https://cldr.unicode.org/). This is either - // a country when the ToS applies specifically to that country or 001 when it - // applies globally. - string region_code = 1; + // Required. Region code as defined by [CLDR](https://cldr.unicode.org/). This + // is either a country when the ToS applies specifically to that country or + // 001 when it applies globally. + string region_code = 1 [(google.api.field_behavior) = REQUIRED]; - // The Kind this terms of service version applies to. - TermsOfServiceKind kind = 2; + // Required. The Kind this terms of service version applies to. + TermsOfServiceKind kind = 2 [(google.api.field_behavior) = REQUIRED]; } // Request message for the `AcceptTermsOfService` method. diff --git a/google/shopping/merchant/accounts/v1beta/termsofserviceagreementstate.proto b/google/shopping/merchant/accounts/v1beta/termsofserviceagreementstate.proto index 3d3b76f23..df3d93436 100644 --- a/google/shopping/merchant/accounts/v1beta/termsofserviceagreementstate.proto +++ b/google/shopping/merchant/accounts/v1beta/termsofserviceagreementstate.proto @@ -85,6 +85,8 @@ message TermsOfServiceAgreementState { // Identifier. The resource name of the terms of service version. // Format: `accounts/{account}/termsOfServiceAgreementState/{identifier}` + // The identifier format is: `{TermsOfServiceKind}-{country}` + // For example, an identifier could be: `MERCHANT_CENTER-US` string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // Region code as defined by https://cldr.unicode.org/. This is the @@ -144,6 +146,7 @@ message Required { message GetTermsOfServiceAgreementStateRequest { // Required. The resource name of the terms of service version. // Format: `accounts/{account}/termsOfServiceAgreementState/{identifier}` + // The identifier format is: `{TermsOfServiceKind}-{country}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { diff --git a/google/shopping/merchant/datasources/BUILD.bazel b/google/shopping/merchant/datasources/BUILD.bazel index c40e7841c..543db3972 100644 --- a/google/shopping/merchant/datasources/BUILD.bazel +++ b/google/shopping/merchant/datasources/BUILD.bazel @@ -21,7 +21,7 @@ ruby_cloud_gapic_library( srcs = ["//google/shopping/merchant/datasources/v1beta:datasources_proto_with_info"], extra_protoc_parameters = [ "ruby-cloud-gem-name=google-shopping-merchant-data_sources", - "ruby-cloud-wrapper-of=v1beta:0.0", + "ruby-cloud-wrapper-of=v1beta:0.2", ], service_yaml = "//google/shopping/merchant/datasources/v1beta:merchantapi_v1beta.yaml", transport = "grpc+rest", diff --git a/google/shopping/merchant/datasources/v1beta/BUILD.bazel b/google/shopping/merchant/datasources/v1beta/BUILD.bazel index 39ca7190b..b2a4ac731 100644 --- a/google/shopping/merchant/datasources/v1beta/BUILD.bazel +++ b/google/shopping/merchant/datasources/v1beta/BUILD.bazel @@ -27,6 +27,7 @@ proto_library( "datasources.proto", "datasourcetypes.proto", "fileinputs.proto", + "fileuploads.proto", ], deps = [ "//google/api:annotations_proto", @@ -37,6 +38,7 @@ proto_library( "//google/type:timeofday_proto", "@com_google_protobuf//:empty_proto", "@com_google_protobuf//:field_mask_proto", + "@com_google_protobuf//:timestamp_proto", ], ) @@ -94,6 +96,8 @@ java_gapic_test( test_classes = [ "com.google.shopping.merchant.datasources.v1beta.DataSourcesServiceClientHttpJsonTest", "com.google.shopping.merchant.datasources.v1beta.DataSourcesServiceClientTest", + "com.google.shopping.merchant.datasources.v1beta.FileUploadsServiceClientHttpJsonTest", + "com.google.shopping.merchant.datasources.v1beta.FileUploadsServiceClientTest", ], runtime_deps = [":datasources_java_gapic_test"], ) @@ -176,15 +180,15 @@ py_gapic_library( name = "datasources_py_gapic", srcs = [":datasources_proto"], grpc_service_config = "datasources_grpc_service_config.json", + opt_args = [ + "python-gapic-name=merchant_datasources", + "python-gapic-namespace=google.shopping", + ], rest_numeric_enums = True, service_yaml = "merchantapi_v1beta.yaml", transport = "grpc+rest", deps = [ ], - opt_args = [ - "python-gapic-namespace=google.shopping", - "python-gapic-name=merchant_datasources", - ], ) py_test( @@ -300,9 +304,7 @@ ruby_grpc_library( ruby_cloud_gapic_library( name = "datasources_ruby_gapic", srcs = [":datasources_proto_with_info"], - extra_protoc_parameters = [ - "ruby-cloud-gem-name=google-shopping-merchant-data_sources-v1beta", - ], + extra_protoc_parameters = ["ruby-cloud-gem-name=google-shopping-merchant-data_sources-v1beta"], grpc_service_config = "datasources_grpc_service_config.json", rest_numeric_enums = True, service_yaml = "merchantapi_v1beta.yaml", @@ -337,7 +339,6 @@ load( csharp_proto_library( name = "datasources_csharp_proto", - extra_opts = [], deps = [":datasources_proto"], ) diff --git a/google/shopping/merchant/datasources/v1beta/datasourcetypes.proto b/google/shopping/merchant/datasources/v1beta/datasourcetypes.proto index 684c4b855..b7dc31699 100644 --- a/google/shopping/merchant/datasources/v1beta/datasourcetypes.proto +++ b/google/shopping/merchant/datasources/v1beta/datasourcetypes.proto @@ -28,6 +28,34 @@ option ruby_package = "Google::Shopping::Merchant::DataSources::V1beta"; // The primary data source for local and online products. message PrimaryProductDataSource { + // Default rule management of the data source. + message DefaultRule { + // Required. The list of data sources linked in the [default + // rule](https://support.google.com/merchants/answer/7450276). + // This list is ordered by the default rule priority of joining the data. + // It might include none or multiple references to `self` and supplemental + // data sources. + // + // The list must not be empty. + // + // To link the data source to the default rule, you need to add a + // new reference to this list (in sequential order). + // + // To unlink the data source from the default rule, you need to remove the + // given reference from this list. To create attribute rules that are + // different from the default rule, see [Set up your attribute + // rules](//support.google.com/merchants/answer/14994083). + // + // Changing the order of this list will result in changing the priority of + // data sources in the default rule. + // + // For example, providing the following list: [`1001`, `self`] will + // take attribute values from supplemental data source `1001`, and fallback + // to `self` if the attribute is not set in `1001`. + repeated DataSourceReference take_from_data_sources = 1 + [(google.api.field_behavior) = REQUIRED]; + } + // Data Source Channel. // // Channel is used to distinguish between data sources for different product @@ -43,6 +71,8 @@ message PrimaryProductDataSource { LOCAL_PRODUCTS = 2; // Unified data source for both local and online products. + // Note: Products management through the API is not possible for this + // channel. PRODUCTS = 3; } @@ -91,9 +121,18 @@ message PrimaryProductDataSource { // [CLDR territory // code](https://github.com/unicode-org/cldr/blob/latest/common/main/en.xml). repeated string countries = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Default rule management of the data source. If set, the linked + // data sources will be replaced. + DefaultRule default_rule = 7 [(google.api.field_behavior) = OPTIONAL]; } -// The supplemental data source for local and online products. +// The supplemental data source for local and online products. Supplemental API +// data sources must not have `feedLabel` and `contentLanguage` fields set. You +// can only use supplemental data sources to update existing products. For +// information about creating a supplemental data source, see [Create a +// supplemental data source and link it to the primary data +// source](/merchant/api/guides/data-sources/overview#create-supplemental-data-source). message SupplementalProductDataSource { // Optional. Immutable. The feed label that is specified on the data source // level. @@ -129,6 +168,12 @@ message SupplementalProductDataSource { (google.api.field_behavior) = OPTIONAL, (google.api.field_behavior) = IMMUTABLE ]; + + // Output only. The (unordered and deduplicated) list of all primary data + // sources linked to this data source in either default or custom rules. + // Supplemental data source cannot be deleted before all links are removed. + repeated DataSourceReference referencing_primary_data_sources = 7 + [(google.api.field_behavior) = OUTPUT_ONLY]; } // The local inventory data source. @@ -197,3 +242,24 @@ message PromotionDataSource { (google.api.field_behavior) = IMMUTABLE ]; } + +// Data source reference can be used to manage related data sources within the +// data source service. +message DataSourceReference { + oneof data_source_id { + // Self should be used to reference the primary data source itself. + bool self = 1; + + // Optional. The name of the primary data source. + // Format: + // `accounts/{account}/dataSources/{datasource}` + string primary_data_source_name = 3 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The name of the supplemental data source. + // Format: + // `accounts/{account}/dataSources/{datasource}` + string supplemental_data_source_name = 2 + [(google.api.field_behavior) = OPTIONAL]; + } +} diff --git a/google/shopping/merchant/datasources/v1beta/fileuploads.proto b/google/shopping/merchant/datasources/v1beta/fileuploads.proto new file mode 100644 index 000000000..b33f65a94 --- /dev/null +++ b/google/shopping/merchant/datasources/v1beta/fileuploads.proto @@ -0,0 +1,154 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.shopping.merchant.datasources.v1beta; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Shopping.Merchant.DataSources.V1Beta"; +option go_package = "cloud.google.com/go/shopping/merchant/datasources/apiv1beta/datasourcespb;datasourcespb"; +option java_multiple_files = true; +option java_outer_classname = "FileUploadsProto"; +option java_package = "com.google.shopping.merchant.datasources.v1beta"; +option php_namespace = "Google\\Shopping\\Merchant\\DataSources\\V1beta"; +option ruby_package = "Google::Shopping::Merchant::DataSources::V1beta"; + +// Service to manage data source file uploads. +service FileUploadsService { + option (google.api.default_host) = "merchantapi.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content"; + + // Gets the latest data source file upload. Only the `latest` alias is + // accepted for a file upload. + rpc GetFileUpload(GetFileUploadRequest) returns (FileUpload) { + option (google.api.http) = { + get: "/datasources/v1beta/{name=accounts/*/dataSources/*/fileUploads/*}" + }; + option (google.api.method_signature) = "name"; + } +} + +// The file upload of a specific data source, that is, the result of the +// retrieval of the data source at a certain timestamp computed asynchronously +// when the data source processing is finished. Only applicable to file data +// sources. +message FileUpload { + option (google.api.resource) = { + type: "merchantapi.googleapis.com/FileUpload" + pattern: "accounts/{account}/dataSources/{datasource}/fileUploads/{fileupload}" + plural: "fileUploads" + singular: "fileUpload" + }; + + // An error occurring in the data source, like "invalid price". + message Issue { + // The severity of the issue. + enum Severity { + // Severity unspecified. + SEVERITY_UNSPECIFIED = 0; + + // The issue is the warning. + WARNING = 1; + + // The issue is an error. + ERROR = 2; + } + + // Output only. The title of the issue, for example, "Item too big". + string title = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The error description, for example, "Your data source + // contains items which have too many attributes, or are too big. These + // items will be dropped". + string description = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The code of the error, for example, + // "validation/invalid_value". Returns + // "?" if the code is unknown. + string code = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of occurrences of the error in the file upload. + int64 count = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The severity of the issue. + Severity severity = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Link to the documentation explaining the issue in more + // details, if available. + string documentation_uri = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The processing state of the data source. + enum ProcessingState { + // Processing state unspecified. + PROCESSING_STATE_UNSPECIFIED = 0; + + // The data source could not be processed or all the items had errors. + FAILED = 1; + + // The data source is being processed. + IN_PROGRESS = 2; + + // The data source was processed successfully, though some items might have + // had errors. + SUCCEEDED = 3; + } + + // Identifier. The name of the data source file upload. + // Format: + // `{datasource.name=accounts/{account}/dataSources/{datasource}/fileUploads/{fileupload}}` + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // Output only. The data source id. + int64 data_source_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The processing state of the data source. + ProcessingState processing_state = 3 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The list of issues occurring in the data source. + repeated Issue issues = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of items in the data source that were processed. + int64 items_total = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of items in the data source that were created. + int64 items_created = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of items in the data source that were updated. + int64 items_updated = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The date at which the file of the data source was uploaded. + google.protobuf.Timestamp upload_time = 8 + [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Request message for the GetFileUploadRequest method. +message GetFileUploadRequest { + // Required. The name of the data source file upload to retrieve. + // Format: + // `accounts/{account}/dataSources/{datasource}/fileUploads/latest` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "merchantapi.googleapis.com/FileUpload" + } + ]; +} diff --git a/google/shopping/merchant/datasources/v1beta/merchantapi_v1beta.yaml b/google/shopping/merchant/datasources/v1beta/merchantapi_v1beta.yaml index fa95a941e..5e61d5bb0 100644 --- a/google/shopping/merchant/datasources/v1beta/merchantapi_v1beta.yaml +++ b/google/shopping/merchant/datasources/v1beta/merchantapi_v1beta.yaml @@ -5,9 +5,26 @@ title: Merchant API apis: - name: google.shopping.merchant.datasources.v1beta.DataSourcesService +- name: google.shopping.merchant.datasources.v1beta.FileUploadsService documentation: - summary: Programmatically manage your Merchant Center accounts. + summary: Programmatically manage your Merchant Center Accounts. + overview: |- + Merchant API consists of multiple Sub-APIs. Accounts Sub-API: Enables you + to programmatically manage your accounts. Conversions Sub-API: Enables you + to programmatically manage your conversion sources for a merchant account. + Datasources Sub-API: Enables you to programmatically manage your + datasources. Inventories Sub-API: This bundle enables you to + programmatically manage your local and regional inventories. Local Feeds + Partnerships Sub-API: This bundle enables LFP partners to submit local + inventories for a merchant. Notifications Sub-API: This bundle enables you + to programmatically manage your notification subscriptions. Products + Sub-API: This bundle enables you to programmatically manage your products. + Promotions Sub-API: This bundle enables you to programmatically manage + your promotions for products. Quota Sub-API: This bundle enables you to + list your quotas for all APIs you are using. Reports Sub-API: This bundle + enables you to programmatically retrieve reports and insights about + products, their performance and their competitive environment. authentication: rules: @@ -15,6 +32,10 @@ authentication: oauth: canonical_scopes: |- https://www.googleapis.com/auth/content + - selector: google.shopping.merchant.datasources.v1beta.FileUploadsService.GetFileUpload + oauth: + canonical_scopes: |- + https://www.googleapis.com/auth/content publishing: new_issue_uri: https://issuetracker.google.com/issues/new?component=171084&template=555201 @@ -30,6 +51,8 @@ publishing: common: destinations: - PACKAGE_MANAGER + cpp_settings: + common: {} php_settings: common: destinations: diff --git a/google/spanner/admin/database/v1/backup.proto b/google/spanner/admin/database/v1/backup.proto index f684a4c60..f3473f4ea 100644 --- a/google/spanner/admin/database/v1/backup.proto +++ b/google/spanner/admin/database/v1/backup.proto @@ -103,6 +103,24 @@ message Backup { // Output only. Size of the backup in bytes. int64 size_bytes = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The number of bytes that will be freed by deleting this + // backup. This value will be zero if, for example, this backup is part of an + // incremental backup chain and younger backups in the chain require that we + // keep its data. For backups not in an incremental backup chain, this is + // always the size of the backup. This value may change if backups on the same + // chain get created, deleted or expired. + int64 freeable_size_bytes = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. For a backup in an incremental backup chain, this is the + // storage space needed to keep the data that has changed since the previous + // backup. For all other backups, this is always the size of the backup. This + // value may change if backups on the same chain get deleted or expired. + // + // This field can be used to calculate the total storage space used by a set + // of backups. For example, the total space used by all backups of a database + // can be computed by summing up this field. + int64 exclusive_size_bytes = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The current state of the backup. State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; @@ -166,7 +184,28 @@ message Backup { // the list of all backup schedule URIs that are associated with creating // this backup. If collapsing is not done, then this field captures the // single backup schedule URI associated with creating this backup. - repeated string backup_schedules = 14 + repeated string backup_schedules = 14 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "spanner.googleapis.com/BackupSchedule" + } + ]; + + // Output only. Populated only for backups in an incremental backup chain. + // Backups share the same chain id if and only if they belong to the same + // incremental backup chain. Use this field to determine which backups are + // part of the same incremental backup chain. The ordering of backups in the + // chain can be determined by ordering the backup `version_time`. + string incremental_backup_chain_id = 17 + [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Data deleted at a time older than this is guaranteed not to be + // retained in order to support this backup. For a backup in an incremental + // backup chain, this is the version time of the oldest backup that exists or + // ever existed in the chain. For all other backups, this is the version time + // of the backup. This field can be used to understand what data is being + // retained by the backup system. + google.protobuf.Timestamp oldest_version_time = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; } @@ -391,6 +430,7 @@ message ListBackupsRequest { // * `expire_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ) // * `version_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ) // * `size_bytes` + // * `backup_schedules` // // You can combine multiple expressions by enclosing each expression in // parentheses. By default, expressions are combined with AND logic, but @@ -409,6 +449,8 @@ message ListBackupsRequest { // * `expire_time < \"2018-03-28T14:50:00Z\"` // - The backup `expire_time` is before 2018-03-28T14:50:00Z. // * `size_bytes > 10000000000` - The backup's size is greater than 10GB + // * `backup_schedules:daily` + // - The backup is created from a schedule with "daily" in its name. string filter = 2; // Number of backups to be returned in the response. If 0 or @@ -705,3 +747,11 @@ message CopyBackupEncryptionConfig { // A full backup stores the entire contents of the database at a given // version time. message FullBackupSpec {} + +// The specification for incremental backup chains. +// An incremental backup stores the delta of changes between a previous +// backup and the database contents at a given version time. An +// incremental backup chain consists of a full backup and zero or more +// successive incremental backups. The first backup created for an +// incremental backup chain is always a full backup. +message IncrementalBackupSpec {} diff --git a/google/spanner/admin/database/v1/backup_schedule.proto b/google/spanner/admin/database/v1/backup_schedule.proto index 9ef4587f8..c9b5e7e3f 100644 --- a/google/spanner/admin/database/v1/backup_schedule.proto +++ b/google/spanner/admin/database/v1/backup_schedule.proto @@ -83,6 +83,9 @@ message BackupSchedule { oneof backup_type_spec { // The schedule creates only full backups. FullBackupSpec full_backup_spec = 7; + + // The schedule creates incremental backup chains. + IncrementalBackupSpec incremental_backup_spec = 8; } // Output only. The timestamp at which the schedule was last updated. diff --git a/google/spanner/admin/instance/v1/common.proto b/google/spanner/admin/instance/v1/common.proto index 075b45fea..69717ec22 100644 --- a/google/spanner/admin/instance/v1/common.proto +++ b/google/spanner/admin/instance/v1/common.proto @@ -16,6 +16,7 @@ syntax = "proto3"; package google.spanner.admin.instance.v1; +import "google/api/field_behavior.proto"; import "google/protobuf/timestamp.proto"; option csharp_namespace = "Google.Cloud.Spanner.Admin.Instance.V1"; @@ -54,3 +55,9 @@ enum FulfillmentPeriod { // to complete. FULFILLMENT_PERIOD_EXTENDED = 2; } + +// ReplicaSelection identifies replicas with common properties. +message ReplicaSelection { + // Required. Name of the location of the replicas (e.g., "us-central1"). + string location = 1 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/google/spanner/admin/instance/v1/spanner_instance_admin.proto b/google/spanner/admin/instance/v1/spanner_instance_admin.proto index 499bd8603..ba6726b31 100644 --- a/google/spanner/admin/instance/v1/spanner_instance_admin.proto +++ b/google/spanner/admin/instance/v1/spanner_instance_admin.proto @@ -80,38 +80,38 @@ service InstanceAdmin { option (google.api.method_signature) = "name"; } - // Creates an instance config and begins preparing it to be used. The + // Creates an instance configuration 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`. + // instance configuration. The instance configuration name is assigned by the + // caller. If the named instance configuration 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 + // * The instance configuration is readable via the API, with all requested + // attributes. The instance configuration'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 + // * Cancelling the operation renders the instance configuration immediately // unreadable via the API. // * Except for deleting the creating resource, all other attempts to modify - // the instance config are rejected. + // the instance configuration are rejected. // // Upon completion of the returned operation: // // * Instances can be created using the instance configuration. - // * The instance config's + // * The instance configuration'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 // `<instance_config_name>/operations/<operation_id>` and can be used to track - // creation of the instance config. The + // creation of the instance configuration. 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 @@ -135,16 +135,16 @@ service InstanceAdmin { }; } - // Updates an instance config. The returned + // Updates an instance configuration. 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`. + // the progress of updating the instance. If the named instance configuration + // does not exist, returns `NOT_FOUND`. // - // Only user managed configurations can be updated. + // Only user-managed configurations can be updated. // // Immediately after the request returns: // - // * The instance config's + // * The instance configuration's // [reconciling][google.spanner.admin.instance.v1.InstanceConfig.reconciling] // field is set to true. // @@ -154,23 +154,23 @@ service InstanceAdmin { // [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 + // * All other attempts to modify the instance configuration are rejected. + // * Reading the instance configuration 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 + // * The new values of the instance configuration are readable via the API. + // * The instance configuration'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 // `<instance_config_name>/operations/<operation_id>` and can be used to track - // the instance config modification. The + // the instance configuration 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 @@ -192,11 +192,11 @@ service InstanceAdmin { }; } - // Deletes the instance config. Deletion is only allowed when no + // Deletes the instance configuration. Deletion is only allowed when no // instances are using the configuration. If any instances are using - // the config, returns `FAILED_PRECONDITION`. + // the configuration, returns `FAILED_PRECONDITION`. // - // Only user managed configurations can be deleted. + // Only user-managed configurations can be deleted. // // Authorization requires `spanner.instanceConfigs.delete` permission on // the resource [name][google.spanner.admin.instance.v1.InstanceConfig.name]. @@ -208,9 +208,9 @@ service InstanceAdmin { option (google.api.method_signature) = "name"; } - // Lists the user-managed instance config [long-running + // Lists the user-managed instance configuration [long-running // operations][google.longrunning.Operation] in the given project. An instance - // config operation has a name of the form + // configuration operation has a name of the form // `projects/<project>/instanceConfigs/<instance_config>/operations/<operation>`. // The long-running operation // [metadata][google.longrunning.Operation.metadata] field type @@ -567,6 +567,78 @@ service InstanceAdmin { }; option (google.api.method_signature) = "parent"; } + + // Moves an instance to the target instance configuration. You can use the + // returned [long-running operation][google.longrunning.Operation] to track + // the progress of moving the instance. + // + // `MoveInstance` returns `FAILED_PRECONDITION` if the instance meets any of + // the following criteria: + // + // * Is undergoing a move to a different instance configuration + // * Has backups + // * Has an ongoing update + // * Contains any CMEK-enabled databases + // * Is a free trial instance + // + // While the operation is pending: + // + // * All other attempts to modify the instance, including changes to its + // compute capacity, are rejected. + // * The following database and backup admin operations are rejected: + // + // * `DatabaseAdmin.CreateDatabase` + // * `DatabaseAdmin.UpdateDatabaseDdl` (disabled if default_leader is + // specified in the request.) + // * `DatabaseAdmin.RestoreDatabase` + // * `DatabaseAdmin.CreateBackup` + // * `DatabaseAdmin.CopyBackup` + // + // * Both the source and target instance configurations are subject to + // hourly compute and storage charges. + // * The instance might experience higher read-write latencies and a higher + // transaction abort rate. However, moving an instance doesn't cause any + // downtime. + // + // The returned [long-running operation][google.longrunning.Operation] has + // a name of the format + // `<instance_name>/operations/<operation_id>` and can be used to track + // the move instance operation. The + // [metadata][google.longrunning.Operation.metadata] field type is + // [MoveInstanceMetadata][google.spanner.admin.instance.v1.MoveInstanceMetadata]. + // The [response][google.longrunning.Operation.response] field type is + // [Instance][google.spanner.admin.instance.v1.Instance], + // if successful. + // Cancelling the operation sets its metadata's + // [cancel_time][google.spanner.admin.instance.v1.MoveInstanceMetadata.cancel_time]. + // Cancellation is not immediate because it involves moving any data + // previously moved to the target instance configuration back to the original + // instance configuration. You can use this operation to track the progress of + // the cancellation. Upon successful completion of the cancellation, the + // operation terminates with `CANCELLED` status. + // + // If not cancelled, upon completion of the returned operation: + // + // * The instance successfully moves to the target instance + // configuration. + // * You are billed for compute and storage in target instance + // configuration. + // + // Authorization requires the `spanner.instances.update` permission on + // the resource [instance][google.spanner.admin.instance.v1.Instance]. + // + // For more details, see + // [Move an instance](https://cloud.google.com/spanner/docs/move-instance). + rpc MoveInstance(MoveInstanceRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/instances/*}:move" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "google.spanner.admin.instance.v1.MoveInstanceResponse" + metadata_type: "google.spanner.admin.instance.v1.MoveInstanceMetadata" + }; + } } message ReplicaInfo { @@ -637,29 +709,31 @@ message InstanceConfig { USER_MANAGED = 2; } - // Indicates the current state of the instance config. + // Indicates the current state of the instance configuration. enum State { // Not specified. STATE_UNSPECIFIED = 0; - // The instance config is still being created. + // The instance configuration is still being created. CREATING = 1; - // The instance config is fully created and ready to be used to create - // instances. + // The instance configuration 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/<project>/instanceConfigs/[a-z][-a-z0-9]*`. + // + // User instance configuration must start with `custom-`. 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. + // Output only. Whether this instance configuration is a Google-managed 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 @@ -703,30 +777,61 @@ message InstanceConfig { map<string, string> 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. + // to help prevent simultaneous updates of a instance configuration from + // overwriting each other. It is strongly suggested that systems make use of + // the etag in the read-modify-write cycle to perform instance configuration + // updates in order to avoid race conditions: An etag is returned in the + // response which contains instance configurations, and systems are expected + // to put that etag in the request to update instance configuration to ensure + // that their change is applied to the same version of the instance + // configuration. If no etag is provided in the call to update the instance + // configuration, then the existing instance configuration 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. + // Output only. If true, the instance configuration is being created or + // updated. If false, there are no ongoing operations for the instance + // configuration. bool reconciling = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Output only. The current instance config state. + // Output only. The current instance configuration state. Applicable only for + // `USER_MANAGED` configurations. State state = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; } -// Autoscaling config for an instance. +// ReplicaComputeCapacity describes the amount of server resources that are +// allocated to each replica identified by the replica selection. +message ReplicaComputeCapacity { + // Required. Identifies replicas by specified properties. + // All replicas in the selection have the same amount of compute capacity. + ReplicaSelection replica_selection = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Compute capacity allocated to each replica identified by the specified + // selection. + // The unit is selected based on the unit used to specify the instance size + // for non-autoscaling instances, or the unit used in autoscaling limit for + // autoscaling instances. + oneof compute_capacity { + // The number of nodes allocated to each replica. + // + // This may be zero in API responses for instances that are not yet in + // state `READY`. + int32 node_count = 2; + + // The number of processing units allocated to each replica. + // + // This may be zero in API responses for instances that are not yet in + // state `READY`. + int32 processing_units = 3; + } +} + +// Autoscaling configuration for an instance. message AutoscalingConfig { // The autoscaling limits for the instance. Users can define the minimum and // maximum compute capacity allocated to the instance, and the autoscaler will @@ -777,6 +882,37 @@ message AutoscalingConfig { [(google.api.field_behavior) = REQUIRED]; } + // AsymmetricAutoscalingOption specifies the scaling of replicas identified by + // the given selection. + message AsymmetricAutoscalingOption { + // Overrides the top-level autoscaling configuration for the replicas + // identified by `replica_selection`. All fields in this message are + // optional. Any unspecified fields will use the corresponding values from + // the top-level autoscaling configuration. + message AutoscalingConfigOverrides { + // Optional. If specified, overrides the min/max limit in the top-level + // autoscaling configuration for the selected replicas. + AutoscalingLimits autoscaling_limits = 1 + [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If specified, overrides the autoscaling target + // high_priority_cpu_utilization_percent in the top-level autoscaling + // configuration for the selected replicas. + int32 autoscaling_target_high_priority_cpu_utilization_percent = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + + // Required. Selects the replicas to which this AsymmetricAutoscalingOption + // applies. Only read-only replicas are supported. + ReplicaSelection replica_selection = 1 + [(google.api.field_behavior) = REQUIRED]; + + // Optional. Overrides applied to the top-level autoscaling configuration + // for the selected replicas. + AutoscalingConfigOverrides overrides = 2 + [(google.api.field_behavior) = OPTIONAL]; + } + // Required. Autoscaling limits for an instance. AutoscalingLimits autoscaling_limits = 1 [(google.api.field_behavior) = REQUIRED]; @@ -784,6 +920,18 @@ message AutoscalingConfig { // Required. The autoscaling targets for an instance. AutoscalingTargets autoscaling_targets = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Optional asymmetric autoscaling options. + // Replicas matching the replica selection criteria will be autoscaled + // independently from other replicas. The autoscaler will scale the replicas + // based on the utilization of replicas identified by the replica selection. + // Replica selections should not overlap with each other. + // + // Other replicas (those do not match any replica selection) will be + // autoscaled together and will have the same compute capacity allocated to + // them. + repeated AsymmetricAutoscalingOption asymmetric_autoscaling_options = 3 + [(google.api.field_behavior) = OPTIONAL]; } // An isolated set of Cloud Spanner resources on which databases can be hosted. @@ -808,6 +956,40 @@ message Instance { READY = 2; } + // The edition selected for this instance. Different editions provide + // different capabilities at different price points. + enum Edition { + // Edition not specified. + EDITION_UNSPECIFIED = 0; + + // Standard edition. + STANDARD = 1; + + // Enterprise edition. + ENTERPRISE = 2; + + // Enterprise Plus edition. + ENTERPRISE_PLUS = 3; + } + + // Indicates the default backup behavior for new databases within the + // instance. + enum DefaultBackupScheduleType { + // Not specified. + DEFAULT_BACKUP_SCHEDULE_TYPE_UNSPECIFIED = 0; + + // No default backup schedule will be created automatically on creation of a + // database within the instance. + NONE = 1; + + // A default backup schedule will be created automatically on creation of a + // database within the instance. The default backup schedule creates a full + // backup every 24 hours and retains the backup for a period of 7 days. Once + // created, the default backup schedule can be edited/deleted similar to any + // other backup schedule. + AUTOMATIC = 2; + } + // Required. A unique identifier for the instance, which cannot be changed // after the instance is created. Values are of the form // `projects/<project>/instances/[a-z][-a-z0-9]*[a-z0-9]`. The final @@ -829,34 +1011,56 @@ message Instance { // Must be unique per project and between 4 and 30 characters in length. string display_name = 3 [(google.api.field_behavior) = REQUIRED]; - // The number of nodes allocated to this instance. At most one of either - // node_count or processing_units should be present in the message. + // The number of nodes allocated to this instance. At most, one of either + // `node_count` or `processing_units` should be present in the message. // - // Users can set the node_count field to specify the target number of nodes + // Users can set the `node_count` field to specify the target number of nodes // allocated to the instance. // - // This may be zero in API responses for instances that are not yet in state - // `READY`. + // If autoscaling is enabled, `node_count` is treated as an `OUTPUT_ONLY` + // field and reflects the current number of nodes allocated to the instance. // - // See [the - // documentation](https://cloud.google.com/spanner/docs/compute-capacity) - // for more information about nodes and processing units. + // This might be zero in API responses for instances that are not yet in the + // `READY` state. + // + // If the instance has varying node count across replicas (achieved by + // setting asymmetric_autoscaling_options in autoscaling config), the + // node_count here is the maximum node count across all replicas. + // + // For more information, see + // [Compute capacity, nodes, and processing + // units](https://cloud.google.com/spanner/docs/compute-capacity). 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. + // The number of processing units allocated to this instance. At most, one of + // either `processing_units` or `node_count` should be present in the message. // - // Users can set the processing_units field to specify the target number of + // Users can set the `processing_units` field to specify the target number of // processing units allocated to the instance. // - // This may be zero in API responses for instances that are not yet in state - // `READY`. + // If autoscaling is enabled, `processing_units` is treated as an + // `OUTPUT_ONLY` field and reflects the current number of processing units + // allocated to the instance. // - // See [the - // documentation](https://cloud.google.com/spanner/docs/compute-capacity) - // for more information about nodes and processing units. + // This might be zero in API responses for instances that are not yet in the + // `READY` state. + // + // If the instance has varying processing units per replica + // (achieved by setting asymmetric_autoscaling_options in autoscaling config), + // the processing_units here is the maximum processing units across all + // replicas. + // + // For more information, see + // [Compute capacity, nodes and processing + // units](https://cloud.google.com/spanner/docs/compute-capacity). int32 processing_units = 9; + // Output only. Lists the compute capacity per ReplicaSelection. A replica + // selection identifies a set of replicas with common properties. Replicas + // identified by a ReplicaSelection are scaled with the same compute capacity. + repeated ReplicaComputeCapacity replica_compute_capacity = 19 + [(google.api.field_behavior) = OUTPUT_ONLY]; + // Optional. The autoscaling configuration. Autoscaling is enabled if this // field is set. When autoscaling is enabled, node_count and processing_units // are treated as OUTPUT_ONLY fields and reflect the current compute capacity @@ -904,6 +1108,21 @@ message Instance { // Output only. The time at which the instance was most recently updated. google.protobuf.Timestamp update_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The `Edition` of the current instance. + Edition edition = 20 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Controls the default backup behavior for new databases within the + // instance. + // + // Note that `AUTOMATIC` is not permitted for free instances, as backups and + // backup schedules are not allowed for free instances. + // + // In the `GetInstance` or `ListInstances` response, if the value of + // default_backup_schedule_type is unset or NONE, no default backup + // schedule will be created for new databases within the instance. + DefaultBackupScheduleType default_backup_schedule_type = 23 + [(google.api.field_behavior) = OPTIONAL]; } // The request for @@ -958,8 +1177,8 @@ message GetInstanceConfigRequest { // 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/<project>`. + // Required. The name of the project in which to create the instance + // configuration. Values are of the form `projects/<project>`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -967,10 +1186,10 @@ message CreateInstanceConfigRequest { } ]; - // 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 + // Required. The ID of the instance configuration 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. + // conflicts with Google-managed configurations. string instance_config_id = 2 [(google.api.field_behavior) = REQUIRED]; // Required. The InstanceConfig proto of the configuration to create. @@ -988,8 +1207,9 @@ message CreateInstanceConfigRequest { // 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 + // Required. The user instance configuration to update, which must always + // include the instance configuration 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 @@ -1024,12 +1244,12 @@ message DeleteInstanceConfigRequest { ]; // Used for optimistic concurrency control as a way to help prevent - // simultaneous deletes of an instance config from overwriting each + // simultaneous deletes of an instance configuration 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. + // only deletes the instance configuration when the etag provided matches the + // current status of the requested instance configuration. Otherwise, deletes + // the instance configuration without checking the current status of the + // requested instance configuration. string etag = 2; // An option to validate, but not actually execute, a request, @@ -1040,7 +1260,7 @@ message DeleteInstanceConfigRequest { // The request for // [ListInstanceConfigOperations][google.spanner.admin.instance.v1.InstanceAdmin.ListInstanceConfigOperations]. message ListInstanceConfigOperationsRequest { - // Required. The project of the instance config operations. + // Required. The project of the instance configuration operations. // Values are of the form `projects/<project>`. string parent = 1 [ (google.api.field_behavior) = REQUIRED, @@ -1089,7 +1309,7 @@ message ListInstanceConfigOperationsRequest { // `(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 instance configuration name contains "custom-config". // * The operation started before 2021-03-28T14:50:00Z. // * The operation resulted in an error. string filter = 2; @@ -1109,9 +1329,9 @@ message ListInstanceConfigOperationsRequest { // The response for // [ListInstanceConfigOperations][google.spanner.admin.instance.v1.InstanceAdmin.ListInstanceConfigOperations]. message ListInstanceConfigOperationsResponse { - // The list of matching instance config [long-running + // The list of matching instance configuration [long-running // operations][google.longrunning.Operation]. Each operation's name will be - // prefixed by the instance config's name. The operation's + // prefixed by the name of the instance configuration. 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; @@ -1313,7 +1533,7 @@ message UpdateInstanceMetadata { // Metadata type for the operation returned by // [CreateInstanceConfig][google.spanner.admin.instance.v1.InstanceAdmin.CreateInstanceConfig]. message CreateInstanceConfigMetadata { - // The target instance config end state. + // The target instance configuration end state. InstanceConfig instance_config = 1; // The progress of the @@ -1328,7 +1548,7 @@ message CreateInstanceConfigMetadata { // Metadata type for the operation returned by // [UpdateInstanceConfig][google.spanner.admin.instance.v1.InstanceAdmin.UpdateInstanceConfig]. message UpdateInstanceConfigMetadata { - // The desired instance config after updating. + // The desired instance configuration after updating. InstanceConfig instance_config = 1; // The progress of the @@ -1717,3 +1937,47 @@ message ListInstancePartitionOperationsResponse { // [instance_partition_deadline][google.spanner.admin.instance.v1.ListInstancePartitionOperationsRequest.instance_partition_deadline]. repeated string unreachable_instance_partitions = 3; } + +// The request for +// [MoveInstance][google.spanner.admin.instance.v1.InstanceAdmin.MoveInstance]. +message MoveInstanceRequest { + // Required. The instance to move. + // Values are of the form `projects/<project>/instances/<instance>`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "spanner.googleapis.com/Instance" + } + ]; + + // Required. The target instance configuration where to move the instance. + // Values are of the form `projects/<project>/instanceConfigs/<config>`. + string target_config = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "spanner.googleapis.com/InstanceConfig" + } + ]; +} + +// The response for +// [MoveInstance][google.spanner.admin.instance.v1.InstanceAdmin.MoveInstance]. +message MoveInstanceResponse {} + +// Metadata type for the operation returned by +// [MoveInstance][google.spanner.admin.instance.v1.InstanceAdmin.MoveInstance]. +message MoveInstanceMetadata { + // The target instance configuration where to move the instance. + // Values are of the form `projects/<project>/instanceConfigs/<config>`. + string target_config = 1; + + // The progress of the + // [MoveInstance][google.spanner.admin.instance.v1.InstanceAdmin.MoveInstance] + // operation. + // [progress_percent][google.spanner.admin.instance.v1.OperationProgress.progress_percent] + // is reset when cancellation is requested. + OperationProgress progress = 2; + + // The time at which this operation was cancelled. + google.protobuf.Timestamp cancel_time = 3; +} diff --git a/google/spanner/v1/commit_response.proto b/google/spanner/v1/commit_response.proto index d44aad63b..d5f9b15d5 100644 --- a/google/spanner/v1/commit_response.proto +++ b/google/spanner/v1/commit_response.proto @@ -17,6 +17,7 @@ syntax = "proto3"; package google.spanner.v1; import "google/protobuf/timestamp.proto"; +import "google/spanner/v1/transaction.proto"; option csharp_namespace = "Google.Cloud.Spanner.V1"; option go_package = "cloud.google.com/go/spanner/apiv1/spannerpb;spannerpb"; @@ -47,4 +48,12 @@ message CommitResponse { // For more information, see // [CommitRequest.return_commit_stats][google.spanner.v1.CommitRequest.return_commit_stats]. CommitStats commit_stats = 2; + + // Clients should examine and retry the commit if any of the following + // reasons are populated. + oneof MultiplexedSessionRetry { + // If specified, transaction has not committed yet. + // Clients must retry the commit with the new precommit token. + MultiplexedSessionPrecommitToken precommit_token = 4; + } } diff --git a/google/spanner/v1/result_set.proto b/google/spanner/v1/result_set.proto index f392c1d7d..0b8aabf86 100644 --- a/google/spanner/v1/result_set.proto +++ b/google/spanner/v1/result_set.proto @@ -16,6 +16,7 @@ syntax = "proto3"; package google.spanner.v1; +import "google/api/field_behavior.proto"; import "google/protobuf/struct.proto"; import "google/spanner/v1/query_plan.proto"; import "google/spanner/v1/transaction.proto"; @@ -53,6 +54,16 @@ message ResultSet { // Other fields may or may not be populated, based on the // [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode]. ResultSetStats stats = 3; + + // Optional. A precommit token will be included if the read-write transaction + // is on a multiplexed session. + // The precommit token with the highest sequence number from this transaction + // attempt should be passed to the + // [Commit][google.spanner.v1.Spanner.Commit] request for this transaction. + // This feature is not yet supported and will result in an UNIMPLEMENTED + // error. + MultiplexedSessionPrecommitToken precommit_token = 5 + [(google.api.field_behavior) = OPTIONAL]; } // Partial results from a streaming read or SQL query. Streaming reads and @@ -157,6 +168,16 @@ message PartialResultSet { // This field will also be present in the last response for DML // statements. ResultSetStats stats = 5; + + // Optional. A precommit token will be included if the read-write transaction + // is on a multiplexed session. + // The precommit token with the highest sequence number from this transaction + // attempt should be passed to the + // [Commit][google.spanner.v1.Spanner.Commit] request for this transaction. + // This feature is not yet supported and will result in an UNIMPLEMENTED + // error. + MultiplexedSessionPrecommitToken precommit_token = 8 + [(google.api.field_behavior) = OPTIONAL]; } // Metadata about a [ResultSet][google.spanner.v1.ResultSet] or [PartialResultSet][google.spanner.v1.PartialResultSet]. diff --git a/google/spanner/v1/spanner.proto b/google/spanner/v1/spanner.proto index 301139210..847815464 100644 --- a/google/spanner/v1/spanner.proto +++ b/google/spanner/v1/spanner.proto @@ -628,9 +628,19 @@ message ExecuteSqlRequest { // execution statistics information. PLAN = 1; - // This mode returns both the query plan and the execution statistics along - // with the results. + // This mode returns the query plan, overall execution statistics, + // operator level execution statistics along with the results. This has a + // performance overhead compared to the other modes. It is not recommended + // to use this mode for production traffic. PROFILE = 2; + + // This mode returns the overall (but not operator-level) execution + // statistics along with the results. + WITH_STATS = 3; + + // This mode returns the query plan, overall (but not operator-level) + // execution statistics along with the results. + WITH_PLAN_AND_STATS = 4; } // Query optimizer configuration. @@ -899,6 +909,16 @@ message ExecuteBatchDmlResponse { // If all DML statements are executed successfully, the status is `OK`. // Otherwise, the error status of the first failed statement. google.rpc.Status status = 2; + + // Optional. A precommit token will be included if the read-write transaction + // is on a multiplexed session. + // The precommit token with the highest sequence number from this transaction + // attempt should be passed to the + // [Commit][google.spanner.v1.Spanner.Commit] request for this transaction. + // This feature is not yet supported and will result in an UNIMPLEMENTED + // error. + MultiplexedSessionPrecommitToken precommit_token = 3 + [(google.api.field_behavior) = OPTIONAL]; } // Options for a PartitionQueryRequest and @@ -1215,6 +1235,14 @@ message BeginTransactionRequest { // transaction, set it on the reads and writes that are part of this // transaction instead. RequestOptions request_options = 3; + + // Optional. Required for read-write transactions on a multiplexed session + // that commit mutations but do not perform any reads or queries. Clients + // should randomly select one of the mutations from the mutation set and send + // it as a part of this request. + // This feature is not yet supported and will result in an UNIMPLEMENTED + // error. + Mutation mutation_key = 4 [(google.api.field_behavior) = OPTIONAL]; } // The request for [Commit][google.spanner.v1.Spanner.Commit]. @@ -1262,6 +1290,15 @@ message CommitRequest { // Common options for this request. RequestOptions request_options = 6; + + // Optional. If the read-write transaction was executed on a multiplexed + // session, the precommit token with the highest sequence number received in + // this transaction attempt, should be included here. Failing to do so will + // result in a FailedPrecondition error. + // This feature is not yet supported and will result in an UNIMPLEMENTED + // error. + MultiplexedSessionPrecommitToken precommit_token = 9 + [(google.api.field_behavior) = OPTIONAL]; } // The request for [Rollback][google.spanner.v1.Spanner.Rollback]. diff --git a/google/spanner/v1/transaction.proto b/google/spanner/v1/transaction.proto index 8af513d15..fe5645384 100644 --- a/google/spanner/v1/transaction.proto +++ b/google/spanner/v1/transaction.proto @@ -16,6 +16,7 @@ syntax = "proto3"; package google.spanner.v1; +import "google/api/field_behavior.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; @@ -378,6 +379,14 @@ message TransactionOptions { // Read lock mode for the transaction. ReadLockMode read_lock_mode = 1; + + // Optional. Clients should pass the transaction ID of the previous + // transaction attempt that was aborted if this transaction is being + // executed on a multiplexed session. + // This feature is not yet supported and will result in an UNIMPLEMENTED + // error. + bytes multiplexed_session_previous_transaction_id = 2 + [(google.api.field_behavior) = OPTIONAL]; } // Message type to initiate a Partitioned DML transaction. @@ -512,6 +521,17 @@ message Transaction { // A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. // Example: `"2014-10-02T15:01:23.045123456Z"`. google.protobuf.Timestamp read_timestamp = 2; + + // A precommit token will be included in the response of a BeginTransaction + // request if the read-write transaction is on a multiplexed session and + // a mutation_key was specified in the + // [BeginTransaction][google.spanner.v1.BeginTransactionRequest]. + // The precommit token with the highest sequence number from this transaction + // attempt should be passed to the [Commit][google.spanner.v1.Spanner.Commit] + // request for this transaction. + // This feature is not yet supported and will result in an UNIMPLEMENTED + // error. + MultiplexedSessionPrecommitToken precommit_token = 3; } // This message is used to select the transaction in which a @@ -539,3 +559,17 @@ message TransactionSelector { TransactionOptions begin = 3; } } + +// When a read-write transaction is executed on a multiplexed session, +// this precommit token is sent back to the client +// as a part of the [Transaction] message in the BeginTransaction response and +// also as a part of the [ResultSet] and [PartialResultSet] responses. +message MultiplexedSessionPrecommitToken { + // Opaque precommit token. + bytes precommit_token = 1; + + // An incrementing seq number is generated on every precommit token + // that is returned. Clients should remember the precommit token with the + // highest sequence number from the current transaction attempt. + int32 seq_num = 2; +} diff --git a/google/spanner/v1/type.proto b/google/spanner/v1/type.proto index 4e77106c9..734cfb54c 100644 --- a/google/spanner/v1/type.proto +++ b/google/spanner/v1/type.proto @@ -32,20 +32,24 @@ message Type { // Required. The [TypeCode][google.spanner.v1.TypeCode] for this type. TypeCode code = 1 [(google.api.field_behavior) = REQUIRED]; - // If [code][google.spanner.v1.Type.code] == [ARRAY][google.spanner.v1.TypeCode.ARRAY], then `array_element_type` - // is the type of the array elements. + // If [code][google.spanner.v1.Type.code] == + // [ARRAY][google.spanner.v1.TypeCode.ARRAY], then `array_element_type` is the + // type of the array elements. Type array_element_type = 2; - // If [code][google.spanner.v1.Type.code] == [STRUCT][google.spanner.v1.TypeCode.STRUCT], then `struct_type` - // provides type information for the struct's fields. + // If [code][google.spanner.v1.Type.code] == + // [STRUCT][google.spanner.v1.TypeCode.STRUCT], then `struct_type` provides + // type information for the struct's fields. StructType struct_type = 3; - // The [TypeAnnotationCode][google.spanner.v1.TypeAnnotationCode] that disambiguates SQL type that Spanner will - // use to represent values of this type during query processing. This is - // necessary for some type codes because a single [TypeCode][google.spanner.v1.TypeCode] can be mapped - // to different SQL types depending on the SQL dialect. [type_annotation][google.spanner.v1.Type.type_annotation] - // typically is not needed to process the content of a value (it doesn't - // affect serialization) and clients can ignore it on the read path. + // The [TypeAnnotationCode][google.spanner.v1.TypeAnnotationCode] that + // disambiguates SQL type that Spanner will use to represent values of this + // type during query processing. This is necessary for some type codes because + // a single [TypeCode][google.spanner.v1.TypeCode] can be mapped to different + // SQL types depending on the SQL dialect. + // [type_annotation][google.spanner.v1.Type.type_annotation] typically is not + // needed to process the content of a value (it doesn't affect serialization) + // and clients can ignore it on the read path. TypeAnnotationCode type_annotation = 4; // If [code][google.spanner.v1.Type.code] == @@ -56,7 +60,8 @@ message Type { string proto_type_fqn = 5; } -// `StructType` defines the fields of a [STRUCT][google.spanner.v1.TypeCode.STRUCT] type. +// `StructType` defines the fields of a +// [STRUCT][google.spanner.v1.TypeCode.STRUCT] type. message StructType { // Message representing a single field of a struct. message Field { @@ -76,9 +81,9 @@ message StructType { // The list of fields that make up this struct. Order is // significant, because values of this struct type are represented as // lists, where the order of field values matches the order of - // fields in the [StructType][google.spanner.v1.StructType]. In turn, the order of fields - // matches the order of columns in a read request, or the order of - // fields in the `SELECT` clause of a query. + // fields in the [StructType][google.spanner.v1.StructType]. In turn, the + // order of fields matches the order of columns in a read request, or the + // order of fields in the `SELECT` clause of a query. repeated Field fields = 1; } @@ -137,14 +142,14 @@ enum TypeCode { STRUCT = 9; // Encoded as `string`, in decimal format or scientific notation format. - // <br>Decimal format: - // <br>`[+-]Digits[.[Digits]]` or - // <br>`[+-][Digits].Digits` + // Decimal format: + // `[+-]Digits[.[Digits]]` or + // `[+-][Digits].Digits` // // Scientific notation: - // <br>`[+-]Digits[.[Digits]][ExponentIndicator[+-]Digits]` or - // <br>`[+-][Digits].Digits[ExponentIndicator[+-]Digits]` - // <br>(ExponentIndicator is `"e"` or `"E"`) + // `[+-]Digits[.[Digits]][ExponentIndicator[+-]Digits]` or + // `[+-][Digits].Digits[ExponentIndicator[+-]Digits]` + // (ExponentIndicator is `"e"` or `"E"`) NUMERIC = 10; // Encoded as a JSON-formatted `string` as described in RFC 7159. The @@ -163,6 +168,13 @@ enum TypeCode { // Encoded as `string`, in decimal format. ENUM = 14; + + // Encoded as `string`, in `ISO8601` duration format - + // `P[n]Y[n]M[n]DT[n]H[n]M[n[.fraction]]S` + // where `n` is an integer. + // For example, `P1Y2M3DT4H5M6.5S` represents time duration of 1 year, 2 + // months, 3 days, 4 hours, 5 minutes, and 6.5 seconds. + INTERVAL = 16; } // `TypeAnnotationCode` is used as a part of [Type][google.spanner.v1.Type] to @@ -175,19 +187,20 @@ enum TypeAnnotationCode { TYPE_ANNOTATION_CODE_UNSPECIFIED = 0; // PostgreSQL compatible NUMERIC type. This annotation needs to be applied to - // [Type][google.spanner.v1.Type] instances having [NUMERIC][google.spanner.v1.TypeCode.NUMERIC] - // type code to specify that values of this type should be treated as - // PostgreSQL NUMERIC values. Currently this annotation is always needed for - // [NUMERIC][google.spanner.v1.TypeCode.NUMERIC] when a client interacts with PostgreSQL-enabled - // Spanner databases. + // [Type][google.spanner.v1.Type] instances having + // [NUMERIC][google.spanner.v1.TypeCode.NUMERIC] type code to specify that + // values of this type should be treated as PostgreSQL NUMERIC values. + // Currently this annotation is always needed for + // [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. + // [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; // PostgreSQL compatible OID type. This annotation can be used by a client diff --git a/google/storage/v2/README.md b/google/storage/v2/README.md index 86f10b361..2c3f4434a 100644 --- a/google/storage/v2/README.md +++ b/google/storage/v2/README.md @@ -1,16 +1,13 @@ # Cloud Storage API -Stop. This folder is likely not what you are looking for. - -This folder contains protocol buffer definitions for an unreleased API for -accessing Cloud Storage. Unless told otherwise by a Google Cloud representative, -do not use any of the contents of this folder. If you would like to use Cloud -Storage, please consult our -[official documentation](https://cloud.google.com/storage/docs/apis) for details -on our XML and JSON APIs, or else consider one of our -[client libraries](https://cloud.google.com/storage/docs/reference/libraries). - -This API defined in this folder is unreleased and may shut off, break, or fail -at any time for any users who are not registered as a part of a private preview -program. +This folder contains protocol buffer definitions for an API +only accessible to select customers. Customers not participating should +not depend on this file. Please contact Google Cloud sales if you are +interested. Unless told otherwise by a Google Cloud +representative, do not use or otherwise rely on any of the contents of this folder. If you +would like to use Cloud Storage, please consult our [official +documentation](https://cloud.google.com/storage/docs/apis) for details on +our XML and JSON APIs, or else consider one of our +[client +libraries](https://cloud.google.com/storage/docs/reference/libraries). diff --git a/google/storage/v2/storage.proto b/google/storage/v2/storage.proto index 0f9758f19..c7229d4e9 100644 --- a/google/storage/v2/storage.proto +++ b/google/storage/v2/storage.proto @@ -134,11 +134,13 @@ service Storage { option (google.api.method_signature) = "resource,policy"; } - // Tests a set of permissions on the given bucket or object to see which, if - // any, are held by the caller. + // Tests a set of permissions on the given bucket, object, or managed folder + // to see which, if any, are held by the caller. // The `resource` field in the request should be - // `projects/_/buckets/{bucket}` for a bucket or - // `projects/_/buckets/{bucket}/objects/{object}` for an object. + // `projects/_/buckets/{bucket}` for a bucket, + // `projects/_/buckets/{bucket}/objects/{object}` for an object, or + // `projects/_/buckets/{bucket}/managedFolders/{managedFolder}` + // for a managed folder. rpc TestIamPermissions(google.iam.v1.TestIamPermissionsRequest) returns (google.iam.v1.TestIamPermissionsResponse) { option (google.api.routing) = { @@ -147,6 +149,10 @@ service Storage { field: "resource" path_template: "{bucket=projects/*/buckets/*}/objects/**" } + routing_parameters { + field: "resource" + path_template: "{bucket=projects/*/buckets/*}/managedFolders/**" + } }; option (google.api.method_signature) = "resource,permissions"; } @@ -159,51 +165,6 @@ service Storage { option (google.api.method_signature) = "bucket,update_mask"; } - // Permanently deletes a NotificationConfig. - rpc DeleteNotificationConfig(DeleteNotificationConfigRequest) - 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 NotificationConfig. - rpc GetNotificationConfig(GetNotificationConfigRequest) - returns (NotificationConfig) { - option (google.api.routing) = { - routing_parameters { - field: "name" - path_template: "{bucket=projects/*/buckets/*}/**" - } - }; - option (google.api.method_signature) = "name"; - } - - // Creates a NotificationConfig for a given bucket. - // These NotificationConfigs, when triggered, publish messages to the - // specified Pub/Sub topics. See - // https://cloud.google.com/storage/docs/pubsub-notifications. - rpc CreateNotificationConfig(CreateNotificationConfigRequest) - returns (NotificationConfig) { - option (google.api.routing) = { - routing_parameters { field: "parent" path_template: "{bucket=**}" } - }; - option (google.api.method_signature) = "parent,notification_config"; - } - - // Retrieves a list of NotificationConfigs for a given bucket. - rpc ListNotificationConfigs(ListNotificationConfigsRequest) - returns (ListNotificationConfigsResponse) { - 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) { @@ -418,57 +379,6 @@ service Storage { }; 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"; - } } // Request message for DeleteBucket. @@ -633,78 +543,6 @@ message UpdateBucketRequest { [(google.api.field_behavior) = REQUIRED]; } -// Request message for DeleteNotificationConfig. -message DeleteNotificationConfigRequest { - // Required. The parent bucket of the NotificationConfig. - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "storage.googleapis.com/NotificationConfig" - } - ]; -} - -// Request message for GetNotificationConfig. -message GetNotificationConfigRequest { - // Required. The parent bucket of the NotificationConfig. - // Format: - // `projects/{project}/buckets/{bucket}/notificationConfigs/{notificationConfig}` - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "storage.googleapis.com/NotificationConfig" - } - ]; -} - -// Request message for CreateNotificationConfig. -message CreateNotificationConfigRequest { - // Required. The bucket to which this NotificationConfig belongs. - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - child_type: "storage.googleapis.com/NotificationConfig" - } - ]; - - // Required. Properties of the NotificationConfig to be inserted. - NotificationConfig notification_config = 2 - [(google.api.field_behavior) = REQUIRED]; -} - -// Request message for ListNotifications. -message ListNotificationConfigsRequest { - // Required. Name of a Google Cloud Storage bucket. - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - child_type: "storage.googleapis.com/NotificationConfig" - } - ]; - - // The maximum number of NotificationConfigs to return. The service may - // return fewer than this value. 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 `ListNotificationConfigs` call. - // Provide this to retrieve the subsequent page. - // - // When paginating, all other parameters provided to `ListNotificationConfigs` - // must match the call that provided the page token. - string page_token = 3; -} - -// The result of a call to ListNotificationConfigs -message ListNotificationConfigsResponse { - // The list of items. - repeated NotificationConfig notification_configs = 1; - - // A token, which can be sent as `page_token` to retrieve the next page. - // If this field is omitted, there are no subsequent pages. - string next_page_token = 2; -} - // Request message for ComposeObject. message ComposeObjectRequest { // Description of a source object for a composition request. @@ -820,6 +658,13 @@ message RestoreObjectRequest { // Required. The specific revision of the object to restore. int64 generation = 3 [(google.api.field_behavior) = REQUIRED]; + // Optional. Restore token used to differentiate soft-deleted objects with the + // same name and generation. Only applicable for hierarchical namespace + // buckets. This parameter is optional, and is only required in the rare case + // when there are multiple soft-deleted objects with the same name and + // generation. + string restore_token = 11 [(google.api.field_behavior) = OPTIONAL]; + // 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. @@ -970,6 +815,13 @@ message GetObjectRequest { // metadata.owner. // * may be used to mean "all fields". optional google.protobuf.FieldMask read_mask = 10; + + // Optional. Restore token used to differentiate soft-deleted objects with the + // same name and generation. Only applicable for hierarchical namespace + // buckets and if soft_deleted is set to true. This parameter is optional, and + // is only required in the rare case when there are multiple soft-deleted + // objects with the same name and generation. + string restore_token = 12 [(google.api.field_behavior) = OPTIONAL]; } // Response message for ReadObject. @@ -1138,8 +990,7 @@ message BidiWriteObjectRequest { // Checksums for the complete object. If the checksums computed by the service // don't match the specified checksums the call will fail. May only be - // provided in the first or last request (either with first_message, or - // finish_write set). + // provided in last request (with finish_write set). ObjectChecksums object_checksums = 6; // For each BidiWriteObjectRequest where state_lookup is `true` or the client @@ -1520,128 +1371,6 @@ message UpdateObjectRequest { CommonObjectRequestParams common_object_request_params = 8; } -// Request message for GetServiceAccount. -message GetServiceAccountRequest { - // Required. Project ID, in the format of "projects/{projectIdentifier}". - // {projectIdentifier} 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" - } - ]; -} - -// Request message for CreateHmacKey. -message CreateHmacKeyRequest { - // Required. The project that the HMAC-owning service account lives in, in the - // format of "projects/{projectIdentifier}". {projectIdentifier} 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" - } - ]; - - // Required. The service account to create the HMAC for. - string service_account_email = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Create hmac response. The only time the secret for an HMAC will be returned. -message CreateHmacKeyResponse { - // Key metadata. - HmacKeyMetadata metadata = 1; - - // HMAC key secret material. - // In raw bytes format (not base64-encoded). - bytes secret_key_bytes = 3; -} - -// Request object to delete a given HMAC key. -message DeleteHmacKeyRequest { - // Required. The identifying key for the HMAC to delete. - string access_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The project that owns the HMAC key, in the format of - // "projects/{projectIdentifier}". - // {projectIdentifier} 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" - } - ]; -} - -// Request object to get metadata on a given HMAC key. -message GetHmacKeyRequest { - // Required. The identifying key for the HMAC to delete. - string access_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The project the HMAC key lies in, in the format of - // "projects/{projectIdentifier}". - // {projectIdentifier} 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" - } - ]; -} - -// Request to fetch a list of HMAC keys under a given project. -message ListHmacKeysRequest { - // Required. The project to list HMAC keys for, in the format of - // "projects/{projectIdentifier}". - // {projectIdentifier} 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" - } - ]; - - // The maximum number of keys to return. - int32 page_size = 2; - - // A previously returned token from ListHmacKeysResponse to get the next page. - string page_token = 3; - - // If set, filters to only return HMAC keys for specified service account. - string service_account_email = 4; - - // 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. -message ListHmacKeysResponse { - // The list of items. - repeated HmacKeyMetadata hmac_keys = 1; - - // The continuation token, used to page through large result sets. Provide - // this value in a subsequent request to return the next page of results. - string next_page_token = 2; -} - -// 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. - // Otherwise, the hmac_key's access_id and project fields will be used to - // identify the key. - HmacKeyMetadata hmac_key = 1 [(google.api.field_behavior) = REQUIRED]; - - // 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 the Customer-Supplied Encryption Keys @@ -1745,6 +1474,8 @@ message Bucket { option (google.api.resource) = { type: "storage.googleapis.com/Bucket" pattern: "projects/{project}/buckets/{bucket}" + plural: "buckets" + singular: "bucket" }; // Billing properties of a bucket. @@ -2140,7 +1871,8 @@ message Bucket { bool satisfies_pzs = 25; // Configuration that, if present, specifies the data placement for a - // [https://cloud.google.com/storage/docs/use-dual-regions][Dual Region]. + // [https://cloud.google.com/storage/docs/locations#location-dr][configurable + // dual-region]. CustomPlacementConfig custom_placement_config = 26; // The bucket's Autoclass configuration. If there is no configuration, the @@ -2233,89 +1965,11 @@ message ObjectChecksums { // [https://cloud.google.com/storage/docs/hashes-etags#json-api][Hashes and // ETags: Best Practices]. // Not all objects will provide an MD5 hash. For example, composite objects - // provide only crc32c hashes. - // This value is equivalent to running `cat object.txt | openssl md5 -binary` + // provide only crc32c hashes. This value is equivalent to running `cat + // object.txt | openssl md5 -binary` bytes md5_hash = 2; } -// Hmac Key Metadata, which includes all information other than the secret. -message HmacKeyMetadata { - // Immutable. Resource name ID of the key in the format - // {projectIdentifier}/{accessId}. - // {projectIdentifier} can be the project ID or project number. - string id = 1 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Globally unique id for keys. - string access_id = 2 [(google.api.field_behavior) = IMMUTABLE]; - - // Immutable. Identifies the project that owns the service account of the - // specified HMAC key, in the format "projects/{projectIdentifier}". - // {projectIdentifier} 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" - } - ]; - - // 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; - - // 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 etag of the HMAC key. - string etag = 8; -} - -// A directive to publish Pub/Sub notifications upon changes to a bucket. -message NotificationConfig { - option (google.api.resource) = { - type: "storage.googleapis.com/NotificationConfig" - pattern: "projects/{project}/buckets/{bucket}/notificationConfigs/{notification_config}" - }; - - // Required. The resource name of this NotificationConfig. - // Format: - // `projects/{project}/buckets/{bucket}/notificationConfigs/{notificationConfig}` - // 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]; - - // The etag of the NotificationConfig. - // If included in the metadata of GetNotificationConfigRequest, the operation - // will only be performed if the etag matches that of the NotificationConfig. - 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; - - // A list of additional attributes to attach to each Pub/Sub - // message published for this NotificationConfig. - map<string, string> custom_attributes = 4; - - // If present, only apply this NotificationConfig to object names that - // begin with this prefix. - 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 { @@ -2354,6 +2008,12 @@ message Object { // versioning. int64 generation = 3 [(google.api.field_behavior) = IMMUTABLE]; + // Output only. Restore token used to differentiate deleted objects with the + // same name and generation. This field is output only, and only set for + // deleted objects in HNS buckets. + optional string restore_token = 35 + [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The version of the metadata for this generation of this // object. Used for preconditions and for detecting changes in metadata. A // metageneration number is only meaningful in the context of a particular @@ -2410,7 +2070,10 @@ message Object { int32 component_count = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Hashes for the data part of this object. This field is used - // for output only and will be silently ignored if provided in requests. + // for output only and will be silently ignored if provided in requests. The + // checksums of the complete object regardless of data range. If the object is + // downloaded in full, the client should compute one of these checksums over + // the downloaded object and compare it against the value provided here. ObjectChecksums checksums = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The modification time of the object metadata. @@ -2493,7 +2156,10 @@ message Object { // An access-control entry. message ObjectAccessControl { - // The access permission for the entity. + // The access permission for the entity. One of the following values: + // * `READER` + // * `WRITER` + // * `OWNER` string role = 1; // The ID of the access-control entry. @@ -2565,14 +2231,6 @@ message ProjectTeam { string team = 2; } -// A service account, owned by Cloud Storage, which may be used when taking -// action on behalf of a given project, for example to publish Pub/Sub -// notifications or to retrieve security keys. -message ServiceAccount { - // The ID of the notification. - string email_address = 1; -} - // The owner of a specific resource. message Owner { // The entity, in the form `user-`*userId*. diff --git a/google/storage/v2/storage_grpc_service_config.json b/google/storage/v2/storage_grpc_service_config.json index 093922118..657ad1cce 100644 --- a/google/storage/v2/storage_grpc_service_config.json +++ b/google/storage/v2/storage_grpc_service_config.json @@ -1,6 +1,10 @@ { "methodConfig": [{ - "name": [{ "service": "google.storage.v2.Storage"}], + "name": [ + { + "service": "google.storage.v2.Storage" + } + ], "timeout": "60s", "retryPolicy": { "maxAttempts": 5, diff --git a/google/storage/v2/storage_v2.yaml b/google/storage/v2/storage_v2.yaml index 8a7aa5f96..3ac783c93 100644 --- a/google/storage/v2/storage_v2.yaml +++ b/google/storage/v2/storage_v2.yaml @@ -15,22 +15,17 @@ enums: documentation: summary: |- - Stop. This folder is likely not what you are looking for. - - This folder contains protocol buffer definitions for an API - only accessible to select customers. Customers not participating should + This folder contains protocol buffer definitions for an API only accessible + to select customers. Customers not participating should not depend on this file. Please contact Google Cloud sales if you are interested. Unless told otherwise by a Google Cloud - representative, do not use or otherwise rely on any of the contents of this folder. If you - would like to use Cloud Storage, please consult our [official + representative, do not use or otherwise rely on any of the contents of + this folder. If you would like to use Cloud Storage, please consult our + [official documentation](https://cloud.google.com/storage/docs/apis) for details on our XML and JSON APIs, or else consider one of our [client libraries](https://cloud.google.com/storage/docs/reference/libraries). - - This API defined in this folder is unreleased and may shut off, break, or - fail at any time for any users who are not registered as a part of a - private preview program. overview: |- The Google Cloud Storage API allows applications to read and write data through the abstractions of buckets and objects, which are similar to diff --git a/google/storagetransfer/v1/BUILD.bazel b/google/storagetransfer/v1/BUILD.bazel index 466121ce4..55e6b1729 100644 --- a/google/storagetransfer/v1/BUILD.bazel +++ b/google/storagetransfer/v1/BUILD.bazel @@ -213,7 +213,7 @@ php_gapic_library( name = "storagetransfer_php_gapic", srcs = [":storagetransfer_proto_with_info"], grpc_service_config = "storagetransfer_grpc_service_config.json", - migration_mode = "MIGRATING", + migration_mode = "NEW_SURFACE_ONLY", rest_numeric_enums = True, service_yaml = "storagetransfer_v1.yaml", transport = "grpc+rest", diff --git a/google/storagetransfer/v1/storagetransfer_v1.yaml b/google/storagetransfer/v1/storagetransfer_v1.yaml index 434e7df7a..3ca0b1077 100644 --- a/google/storagetransfer/v1/storagetransfer_v1.yaml +++ b/google/storagetransfer/v1/storagetransfer_v1.yaml @@ -50,13 +50,6 @@ documentation: Lists transfer operations. Operations are ordered by their creation time in reverse chronological order. -backend: - rules: - - selector: 'google.longrunning.Operations.*' - deadline: 30.0 - - selector: 'google.storagetransfer.v1.StorageTransferService.*' - deadline: 30.0 - http: rules: - selector: google.longrunning.Operations.CancelOperation diff --git a/google/storagetransfer/v1/transfer_types.proto b/google/storagetransfer/v1/transfer_types.proto index 378795c11..757eae4c0 100644 --- a/google/storagetransfer/v1/transfer_types.proto +++ b/google/storagetransfer/v1/transfer_types.proto @@ -205,6 +205,21 @@ message GcsData { // The root path value must meet // [Object Name Requirements](/storage/docs/naming#objectnames). string path = 3; + + // Preview. Enables the transfer of managed folders between Cloud Storage + // buckets. Set this option on the gcs_data_source. + // + // If set to true: + // + // - Managed folders in the source bucket are transferred to the + // destination bucket. + // - Managed folders in the destination bucket are overwritten. Other + // OVERWRITE options are not supported. + // + // See + // [Transfer Cloud Storage managed + // folders](/storage-transfer/docs/managed-folders). + bool managed_folder_transfer_enabled = 4; } // An AwsS3Data resource can be a data source, but not a data sink. @@ -242,26 +257,46 @@ message AwsS3Data { // this project. string role_arn = 4; + // Optional. The CloudFront distribution domain name pointing to this bucket, + // to use when fetching. + // + // See + // [Transfer from S3 via + // CloudFront](https://cloud.google.com/storage-transfer/docs/s3-cloudfront) + // for more information. + // + // Format: `https://{id}.cloudfront.net` or any valid custom domain. Must + // begin with `https://`. + string cloudfront_domain = 6 [(google.api.field_behavior) = OPTIONAL]; + // Optional. The Resource name of a secret in Secret Manager. // - // The Azure SAS token must be stored in Secret Manager in JSON format: - // <pre>{ - // "sas_token" : "<var>SAS_TOKEN</var>" - // }</pre> + // AWS credentials must be stored in Secret Manager in JSON format: + // + // { + // "access_key_id": "ACCESS_KEY_ID", + // "secret_access_key": "SECRET_ACCESS_KEY" + // } + // // [GoogleServiceAccount][google.storagetransfer.v1.GoogleServiceAccount] must // be granted `roles/secretmanager.secretAccessor` for the resource. // - // See [Configure access to a source: Microsoft Azure Blob Storage] - // (https://cloud.google.com/storage-transfer/docs/source-microsoft-azure#secret_manager) + // See [Configure access to a source: Amazon S3] + // (https://cloud.google.com/storage-transfer/docs/source-amazon-s3#secret_manager) // for more information. // - // If `credentials_secret` is specified, do not specify [azure_credentials][]. - // - // This feature is in - // [preview](https://cloud.google.com/terms/service-terms#1). + // If `credentials_secret` is specified, do not specify + // [role_arn][google.storagetransfer.v1.AwsS3Data.role_arn] or + // [aws_access_key][google.storagetransfer.v1.AwsS3Data.aws_access_key]. // // Format: `projects/{project_number}/secrets/{secret_name}` string credentials_secret = 7 [(google.api.field_behavior) = OPTIONAL]; + + oneof private_network { + // Egress bytes over a Google-managed private network. + // This network is shared between other users of Storage Transfer Service. + bool managed_private_network = 8; + } } // An AzureBlobStorageData resource can be a data source, but not a data sink. @@ -298,9 +333,11 @@ message AzureBlobStorageData { // Optional. The Resource name of a secret in Secret Manager. // // The Azure SAS token must be stored in Secret Manager in JSON format: - // <pre>{ - // "sas_token" : "<var>SAS_TOKEN</var>" - // }</pre> + // + // { + // "sas_token" : "SAS_TOKEN" + // } + // // [GoogleServiceAccount][google.storagetransfer.v1.GoogleServiceAccount] must // be granted `roles/secretmanager.secretAccessor` for the resource. // @@ -311,9 +348,6 @@ message AzureBlobStorageData { // If `credentials_secret` is specified, do not specify // [azure_credentials][google.storagetransfer.v1.AzureBlobStorageData.azure_credentials]. // - // This feature is in - // [preview](https://cloud.google.com/terms/service-terms#1). - // // Format: `projects/{project_number}/secrets/{secret_name}` string credentials_secret = 7 [(google.api.field_behavior) = OPTIONAL]; } @@ -371,6 +405,15 @@ message PosixFilesystem { string root_directory = 1; } +// An HdfsData resource specifies a path within an HDFS entity (e.g. a cluster). +// All cluster-specific settings, such as namenodes and ports, are configured on +// the transfer agents servicing requests, so HdfsData only contains the root +// path to the data in our transfer. +message HdfsData { + // Root path to transfer files. + string path = 1; +} + // An AwsS3CompatibleData resource. message AwsS3CompatibleData { // Required. Specifies the name of the bucket. @@ -473,7 +516,7 @@ message S3CompatibleMetadata { ListApi list_api = 4; } -// Represents an On-Premises Agent pool. +// Represents an agent pool. message AgentPool { option (google.api.resource) = { type: "storagetransfer.googleapis.com/agentPools" @@ -485,8 +528,8 @@ message AgentPool { // 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. + // This is an initialization state. During this stage, resources are + // allocated for the AgentPool. CREATING = 1; // Determines that the AgentPool is created for use. At this state, Agents @@ -602,6 +645,9 @@ message TransferSpec { // An AWS S3 compatible data source. AwsS3CompatibleData aws_s3_compatible_data_source = 19; + + // An HDFS cluster data source. + HdfsData hdfs_data_source = 20; } oneof intermediate_data_location { @@ -768,10 +814,10 @@ message MetadataOptions { // 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. + // Preserves the source object's `timeCreated` or `lastModified` 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; } @@ -818,9 +864,10 @@ message MetadataOptions { 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 + // transfers. If unspecified, the default behavior is the same as // [TIME_CREATED_SKIP][google.storagetransfer.v1.MetadataOptions.TimeCreated.TIME_CREATED_SKIP]. + // This behavior is supported for transfers to Cloud Storage buckets from + // Cloud Storage, Amazon S3, S3-compatible storage, and Azure sources. TimeCreated time_created = 9; } @@ -986,8 +1033,7 @@ message TransferJob { // Transfer specification. TransferSpec transfer_spec = 4; - // Notification configuration. This is not supported for transfers involving - // PosixFilesystem. + // Notification configuration. NotificationConfig notification_config = 11; // Logging configuration. @@ -1219,16 +1265,10 @@ message NotificationConfig { // Specifies the logging behavior for transfer operations. // -// For cloud-to-cloud transfers, logs are sent to Cloud Logging. See +// Logs can be sent to Cloud Logging for all transfer types. 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 { @@ -1260,19 +1300,18 @@ message LoggingConfig { } // 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. + // For PosixFilesystem transfers, enables + // [file system transfer + // logs](https://cloud.google.com/storage-transfer/docs/on-prem-transfer-log-format) + // instead of, or in addition to, Cloud Logging. + // + // This option ignores [LoggableAction] and [LoggableActionState]. If these + // are set, Cloud Logging will also be enabled for this transfer. bool enable_onprem_gcs_transfer_logs = 3; } diff --git a/grafeas/v1/compliance.proto b/grafeas/v1/compliance.proto index 0c14dad68..4a620edd3 100644 --- a/grafeas/v1/compliance.proto +++ b/grafeas/v1/compliance.proto @@ -69,6 +69,8 @@ message ComplianceVersion { message ComplianceOccurrence { repeated NonCompliantFile non_compliant_files = 2; string non_compliance_reason = 3; + // The OS and config version the benchmark was run on. + grafeas.v1.ComplianceVersion version = 4; } // Details about files that caused a compliance check to fail. diff --git a/grafeas/v1/discovery.proto b/grafeas/v1/discovery.proto index bd37ac214..9e9bd1848 100644 --- a/grafeas/v1/discovery.proto +++ b/grafeas/v1/discovery.proto @@ -123,4 +123,29 @@ message DiscoveryOccurrence { // The status of an SBOM generation. SBOMStatus sbom_status = 9; + + // The status of an vulnerability attestation generation. + message VulnerabilityAttestation { + // An enum indicating the state of the attestation generation. + enum VulnerabilityAttestationState { + // Default unknown state. + VULNERABILITY_ATTESTATION_STATE_UNSPECIFIED = 0; + // Attestation was successfully generated and stored. + SUCCESS = 1; + // Attestation was unsuccessfully generated and stored. + FAILURE = 2; + } + + // The last time we attempted to generate an attestation. + google.protobuf.Timestamp last_attempt_time = 1; + + // The success/failure state of the latest attestation attempt. + VulnerabilityAttestationState state = 2; + + // If failure, the error reason for why the attestation generation failed. + string error = 3; + } + + // The status of an vulnerability attestation generation. + VulnerabilityAttestation vulnerability_attestation = 10; } diff --git a/grafeas/v1/grafeas.proto b/grafeas/v1/grafeas.proto index 84d3f7a24..06f117f42 100644 --- a/grafeas/v1/grafeas.proto +++ b/grafeas/v1/grafeas.proto @@ -93,6 +93,9 @@ service Grafeas { returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v1/{name=projects/*/occurrences/*}" + additional_bindings { + delete: "/v1/{name=projects/*/locations/*/occurrences/*}" + } }; option (google.api.method_signature) = "name"; } @@ -102,6 +105,10 @@ service Grafeas { option (google.api.http) = { post: "/v1/{parent=projects/*}/occurrences" body: "occurrence" + additional_bindings { + post: "/v1/{parent=projects/*/locations/*}/occurrences" + body: "occurrence" + } }; option (google.api.method_signature) = "parent,occurrence"; } @@ -112,6 +119,10 @@ service Grafeas { option (google.api.http) = { post: "/v1/{parent=projects/*}/occurrences:batchCreate" body: "*" + additional_bindings { + post: "/v1/{parent=projects/*/locations/*}/occurrences:batchCreate" + body: "*" + } }; option (google.api.method_signature) = "parent,occurrences"; } @@ -121,6 +132,10 @@ service Grafeas { option (google.api.http) = { patch: "/v1/{name=projects/*/occurrences/*}" body: "occurrence" + additional_bindings { + patch: "/v1/{name=projects/*/locations/*/occurrences/*}" + body: "occurrence" + } }; option (google.api.method_signature) = "name,occurrence,update_mask"; } @@ -159,6 +174,9 @@ service Grafeas { rpc DeleteNote(DeleteNoteRequest) returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v1/{name=projects/*/notes/*}" + additional_bindings { + delete: "/v1/{name=projects/*/locations/*/notes/*}" + } }; option (google.api.method_signature) = "name"; } @@ -168,6 +186,10 @@ service Grafeas { option (google.api.http) = { post: "/v1/{parent=projects/*}/notes" body: "note" + additional_bindings { + post: "/v1/{parent=projects/*/locations/*}/notes" + body: "note" + } }; option (google.api.method_signature) = "parent,note_id,note"; } @@ -178,6 +200,10 @@ service Grafeas { option (google.api.http) = { post: "/v1/{parent=projects/*}/notes:batchCreate" body: "*" + additional_bindings { + post: "/v1/{parent=projects/*/locations/*}/notes:batchCreate" + body: "*" + } }; option (google.api.method_signature) = "parent,notes"; } @@ -187,6 +213,10 @@ service Grafeas { option (google.api.http) = { patch: "/v1/{name=projects/*/notes/*}" body: "note" + additional_bindings { + patch: "/v1/{name=projects/*/locations/*/notes/*}" + body: "note" + } }; option (google.api.method_signature) = "name,note,update_mask"; } diff --git a/grafeas/v1/swagger/grafeas.swagger.json b/grafeas/v1/swagger/grafeas.swagger.json index eeeb249d0..6c0541a9d 100644 --- a/grafeas/v1/swagger/grafeas.swagger.json +++ b/grafeas/v1/swagger/grafeas.swagger.json @@ -131,8 +131,8 @@ ] }, "delete": { - "summary": "Deletes the specified note.", - "operationId": "Grafeas_DeleteNote", + "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_DeleteOccurrence2", "responses": { "200": { "description": "A successful response.", @@ -150,11 +150,11 @@ "parameters": [ { "name": "name_1", - "description": "The name of the note in the form of\n`projects/[PROVIDER_ID]/notes/[NOTE_ID]`.", + "description": "The name of the occurrence in the form of\n`projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.", "in": "path", "required": true, "type": "string", - "pattern": "projects/[^/]+/notes/[^/]+" + "pattern": "projects/[^/]+/locations/[^/]+/occurrences/[^/]+" } ], "tags": [ @@ -162,13 +162,13 @@ ] }, "patch": { - "summary": "Updates the specified note.", - "operationId": "Grafeas_UpdateNote", + "summary": "Updates the specified occurrence.", + "operationId": "Grafeas_UpdateOccurrence2", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1Note" + "$ref": "#/definitions/v1Occurrence" } }, "default": { @@ -181,19 +181,19 @@ "parameters": [ { "name": "name_1", - "description": "The name of the note in the form of\n`projects/[PROVIDER_ID]/notes/[NOTE_ID]`.", + "description": "The name of the occurrence in the form of\n`projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.", "in": "path", "required": true, "type": "string", - "pattern": "projects/[^/]+/notes/[^/]+" + "pattern": "projects/[^/]+/locations/[^/]+/occurrences/[^/]+" }, { "name": "body", - "description": "The updated note.", + "description": "The updated occurrence.", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/v1Note" + "$ref": "#/definitions/v1Occurrence" } }, { @@ -330,8 +330,8 @@ ] }, "delete": { - "summary": "Deletes the specified project.", - "operationId": "Projects_DeleteProject", + "summary": "Deletes the specified note.", + "operationId": "Grafeas_DeleteNote", "responses": { "200": { "description": "A successful response.", @@ -349,15 +349,62 @@ "parameters": [ { "name": "name_2", - "description": "The name of the project in the form of `projects/{PROJECT_ID}`.", + "description": "The name of the note in the form of\n`projects/[PROVIDER_ID]/notes/[NOTE_ID]`.", "in": "path", "required": true, "type": "string", - "pattern": "projects/[^/]+" + "pattern": "projects/[^/]+/notes/[^/]+" } ], "tags": [ - "Projects" + "Grafeas" + ] + }, + "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_2", + "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" ] } }, @@ -392,6 +439,84 @@ "tags": [ "Grafeas" ] + }, + "delete": { + "summary": "Deletes the specified note.", + "operationId": "Grafeas_DeleteNote2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "properties": {} + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "name_3", + "description": "The name of the note in the form of\n`projects/[PROVIDER_ID]/notes/[NOTE_ID]`.", + "in": "path", + "required": true, + "type": "string", + "pattern": "projects/[^/]+/locations/[^/]+/notes/[^/]+" + } + ], + "tags": [ + "Grafeas" + ] + }, + "patch": { + "summary": "Updates the specified note.", + "operationId": "Grafeas_UpdateNote2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1Note" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "name_3", + "description": "The name of the note in the form of\n`projects/[PROVIDER_ID]/notes/[NOTE_ID]`.", + "in": "path", + "required": true, + "type": "string", + "pattern": "projects/[^/]+/locations/[^/]+/notes/[^/]+" + }, + { + "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_4}": { @@ -425,6 +550,37 @@ "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_4", + "description": "The name of the project in the form of `projects/{PROJECT_ID}`.", + "in": "path", + "required": true, + "type": "string", + "pattern": "projects/[^/]+" + } + ], + "tags": [ + "Projects" + ] } }, "/v1/{name}": { @@ -679,6 +835,110 @@ "tags": [ "Grafeas" ] + }, + "post": { + "summary": "Creates a new note.", + "operationId": "Grafeas_CreateNote2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1Note" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "parent_1", + "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/[^/]+/locations/[^/]+" + }, + { + "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_1}/notes:batchCreate": { + "post": { + "summary": "Creates new notes in batch.", + "operationId": "Grafeas_BatchCreateNotes2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1BatchCreateNotesResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "parent_1", + "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/[^/]+/locations/[^/]+" + }, + { + "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_1}/occurrences": { @@ -734,6 +994,103 @@ "tags": [ "Grafeas" ] + }, + "post": { + "summary": "Creates a new occurrence.", + "operationId": "Grafeas_CreateOccurrence2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1Occurrence" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "parent_1", + "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/[^/]+/locations/[^/]+" + }, + { + "name": "body", + "description": "The occurrence to create.", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1Occurrence" + } + } + ], + "tags": [ + "Grafeas" + ] + } + }, + "/v1/{parent_1}/occurrences:batchCreate": { + "post": { + "summary": "Creates new occurrences in batch.", + "operationId": "Grafeas_BatchCreateOccurrences2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1BatchCreateOccurrencesResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "parent_1", + "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/[^/]+/locations/[^/]+" + }, + { + "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" + ] } }, "/v1/{parent}/notes": { @@ -1208,6 +1565,25 @@ }, "description": "The status of an SBOM generation." }, + "DiscoveryOccurrenceVulnerabilityAttestation": { + "type": "object", + "properties": { + "lastAttemptTime": { + "type": "string", + "format": "date-time", + "description": "The last time we attempted to generate an attestation." + }, + "state": { + "$ref": "#/definitions/VulnerabilityAttestationVulnerabilityAttestationState", + "description": "The success/failure state of the latest attestation attempt." + }, + "error": { + "type": "string", + "description": "If failure, the error reason for why the attestation generation failed." + } + }, + "description": "The status of an vulnerability attestation generation." + }, "InTotoSlsaProvenanceV1BuildDefinition": { "type": "object", "properties": { @@ -1516,6 +1892,16 @@ }, "title": "Publisher contains information about the publisher of\nthis Note.\n(-- api-linter: core::0123::resource-annotation=disabled\n aip.dev/not-precedent: Publisher is not a separate resource. --)" }, + "VulnerabilityAttestationVulnerabilityAttestationState": { + "type": "string", + "enum": [ + "VULNERABILITY_ATTESTATION_STATE_UNSPECIFIED", + "SUCCESS", + "FAILURE" + ], + "default": "VULNERABILITY_ATTESTATION_STATE_UNSPECIFIED", + "description": "An enum indicating the state of the attestation generation.\n\n - VULNERABILITY_ATTESTATION_STATE_UNSPECIFIED: Default unknown state.\n - SUCCESS: Attestation was successfully generated and stored.\n - FAILURE: Attestation was unsuccessfully generated and stored." + }, "VulnerabilityNoteDetail": { "type": "object", "properties": { @@ -2394,6 +2780,10 @@ }, "nonComplianceReason": { "type": "string" + }, + "version": { + "$ref": "#/definitions/v1ComplianceVersion", + "description": "The OS and config version the benchmark was run on." } }, "description": "An indication that the compliance checks in the associated ComplianceNote\nwere not satisfied for particular resources or a specified reason." @@ -2559,6 +2949,10 @@ "sbomStatus": { "$ref": "#/definitions/DiscoveryOccurrenceSBOMStatus", "description": "The status of an SBOM generation." + }, + "vulnerabilityAttestation": { + "$ref": "#/definitions/DiscoveryOccurrenceVulnerabilityAttestation", + "description": "The status of an vulnerability attestation generation." } }, "description": "Provides information about the analysis status of a discovered resource."